//==============character references===========
var smallLetters="abcdefghijklmnopqrstuvwxyz";//small letters
var capsLetters="ABCDEFGHIJKLMNOPQRSTUVWXYZ ";//capital letters
var alphabets=smallLetters+capsLetters;
var numerics="0123456789";//numerics
var alphaNumerics=alphabets+numerics;
var space=" ";
var underScore="_";
var hyphen="-";
var dot=".";
var at="@";
var stringChars=space+underScore+hyphen+dot;
var specialChars='!'+'\"'+'#'+'$'+'%'+'&'+'\''+'('+')'+'*'+'+'+'-'+'.'+'/'+':'+';'+'<'+'?'+'@'+'['+'\\'+']'+'^'+'_'+'`'+'{'+'|'+'}'+'~';


//==============character key codes===========

var backSpaceKey=8;
var tabKey=9;
var shiftKey=16;
var spaceKey=32;
var underScoreKey=95;
var hyphenKey=45;

var leftParanthesisKey=40;
var rightParanthesisKey=41;

var leftArrowKey=37;//%
var rightArrowKey=39;//'
var deleteKey=46;
var dotKey=46;
var numericStart=48;
var numericEnd=57;
var lowerAlphabetStart=97;
var lowerAlphabetEnd=122;
var upperAlphabetStart=65;
var upperAlphabetEnd=90;

function allowOnlyNumerics(evt){	
	var charCode = (evt.which) ? evt.which : evt.keyCode;
	if(navigator.appName=='Netscape'){
		if(	charCode==backSpaceKey||charCode==deleteKey||charCode==tabKey||charCode==shiftKey||charCode==leftArrowKey||charCode==rightArrowKey)
		return true;
		else if (charCode > 31 && (charCode < numericStart || charCode > numericEnd))	
			return false;		
	}else{	
	if (charCode > 31 && (charCode < numericStart || charCode > numericEnd))	
		return false;	
	else
		return true;	
	}	
}



function trim(str)

{

    if(!str || typeof str != 'string')

        return '';



    return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');

}

function trimField(field){

 field.value=field.value.replace(/^\s*|\s*$/g,"");

 return field.value;

}

function isEmpty(str,name)

{

	var retval=true;

	var count=0;

	if (str.value=="")

		{

			alert(name);

			str.focus();

			retval=false;

		}

	else

		{

			for(i=0;i<str.value.length;i++)

			{

				if(str.value.charAt(i)==" ")

				count++;

			}

			if (count==str.value.length)

			{

				alert(name);

				str.focus();

				retval=false;

			}

		}

	return retval;

}



function isValidChars(str,name)

{

	var invalidchars=",#$%^&*()!~`+\|=[{]};:'<>?/";

	var retval=true;

	var i;

	for (i=0;i<invalidchars.length;i++)

		if (str.value.indexOf(invalidchars.charAt(i)) > -1)

		{

			alert(name);

			str.value="";

			str.focus();

			retval=false;

		}

	return retval;

}	



function IsEmailValid(str,name)

{

	var retval=true;

	var AtSym=str.value.indexOf('@');				

	var Period=str.value.lastIndexOf('.');		

	var Space=str.value.indexOf(' ');				

	var Length=str.value.length-1;

	var index = str.value.indexOf('@');

    var substr = str.value.substring(index+1);

    var index2 = substr.indexOf('@');

	var count=0;

	if (str.value=="")

		{

			alert("Please enter Email");

			str.focus();

			retval=false;

		}

	else

		{

			for(i=0;i<str.value.length;i++)

			{

				if(str.value.charAt(i)==" ")

				count++;

			}

			if (count==str.value.length)

			{

				alert("Please enter Email");

				str.focus();

				retval=false;

			}

			else if((AtSym<1)||(str.value.charAt(0)=='_')||(str.value.charAt(Length)=="_")||	//'@' can't be in first position

		(str.value.indexOf("_")==AtSym+1)||(str.value.charAt(AtSym-1)=="_")||

		(Period<=AtSym+1)||					//Must be atleast one valid char between '@' and '.'

		(Period==Length)||					//Must be atleast one valid char after '.'

		((Space>0) && (Space!=Length))||

		(index2 != -1))                       //No empty spaces permitted

		{

			alert(name);

			str.focus();

			retval=false; 

		}

	}

return retval;

}



function matching(str1,str2,name)

{

	alert("34234324");

	var retval=true;

	if (str1.value != str2.value)

	{

		alert(name);

		str2.focus();

		retval=false;

	}

	return retval;

}

function isEmptyLbox(str,name)

{

	var retval=true;

	if (str.value=="0")

	{

		alert(name);

		str.focus();

		retval=false;

	}

	return retval;

}



function isDOBvalid(Day,Month,Year,name)

{

var ArrDays=new Array(31,28,31,30,31,30,31,31,30,31,30,31);

if (Year.value%4==0)													

{

	ArrDays[1]=29;			

}

if ( Day.value > ArrDays[Month.value-1])			

{

		ArrDays[1]=28;

		alert("Enter Valid Date " + name);

		Day.focus();

		return false;

}

}

function isValidPhone(str,name)

{

 var retval=true;

  var num="1234567890-";

 var i; 

 //alert(num.charAt(i));  

 for(i=0; i<str.value.length; i++)

	 { 

	  if(num.indexOf(str.value.charAt(i)) < 0 || num.indexOf(str.value.charAt(i)) >num.length )

		  {

		  //alert(name);

		  str.focus(); 

		  retval = false;

		  }

		}

	 if (retval == false)

		  {

			  alert(name);

		  }

	  

 return retval;

 } 



 function isValidZip(country,str,name)

	{

	 var retval=true;

	 var nm=0;

	 var alp=0;



	  var num="1234567890";

	  var alpha="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

	  var i; 

 //alert(num.charAt(i));  

 for(i=0; i<str.value.length; i++)

	 { 

	      if(num.indexOf(str.value.charAt(i)) >= 0 && num.indexOf(str.value.charAt(i)) <num.length )

		  {

			  nm++;

			  str.focus(); 

		  }

		  else if(alpha.indexOf(str.value.charAt(i)) >= 0 && alpha.indexOf(str.value.charAt(i)) <alpha.length )

		  {

			  alp++;

			  str.focus(); 

		  }

	 }

	if(country.value !='US' && nm==0)

	 {

		retval=false;

		 alert(name);

	 }

	 else if(country.value =='US' && alp!=0)

	 {

		 retval=false;

		 alert(name);

	 }



 return retval;

 } 

 function isNumeric(str,name)

{

 var retval=true;

  var num="1234567890";

 var i; 

 //alert(num.charAt(i));  

 for(i=0; i<str.value.length; i++)

	 { 

	  if(num.indexOf(str.value.charAt(i)) < 0 || num.indexOf(str.value.charAt(i)) >num.length )

		  {

		  //alert(name);

		  str.focus(); 

		  retval = false;

		  }

		}

	 if (retval == false)

		  {

			  alert(name);

		  }

	  

 return retval;

 } 

function checkValidMonthDate(intMonth, intDay){

	switch(intMonth){

		case "02":

			if(intDay == 31){	return false; }

			break;

		case "04":

			if(intDay == 31){	return false; }

			break;

		case "06":

			if(intDay == 31){	return false; }

			break;

		case "09":

			if(intDay == 31){	return false; }

			break;

		case "11":

			if(intDay == 31){	return false; }

			break;

	}

}

function checkLeapYear(intYear){

	if(intYear%3200 == 0){return false;}

	if(intYear%400 != 0 && intYear%100 == 0){return false;}

	if(intYear%4 != 0){return false;}

	return true;

}

function matching(str1,str2,name)

{

	var retval=true;

	if (str1.value != str2.value)

	{

		alert(name);

		str2.focus();

		retval=false;

	}

	return retval;

}


