var whitespace = " \t\n\r";
var Min_Phone_Length=7;
var todayStr="05-27-2007";
var todayArr=todayStr.split("-");
var today = new Date(todayArr[2],todayArr[0]-1,todayArr[1]);
var digits = "0123456789";
var phoneNumberDelimiters = "()-x ";
var validWorldPhoneChars = phoneNumberDelimiters;// + "+";
var minDigitsInIPhoneNumber = 5;

function isEmpty(name){ 	
	
	if (name == ""){
		return true;
	}
	arr=name.split(" ");
	if(arr.length-1 == name.length){
		return true;
	}
	return false;   
}

function isEmail(s){
	
	  if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
   
    if (isWhitespace(s)) return false;
    
    var i = 1;
    var sLength = s.length;

    while ((i < sLength) && (s.charAt(i) != "@")){
    	i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

	while ((i < sLength) && (s.charAt(i) != ".")){
		i++
	}

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function isWhitespace (s){
	
	var i;
    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }


    return true;
}
//////////////////////////////////////////////////////////////////////
function isUsername(TheNumber) {
	var valid = 1;
	var GoodChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";
	var i = 0;
	if (TheNumber=="") {
		valid = 1;
	}
	for (i =0; i <= TheNumber.length -1; i++) {
		if (GoodChars.indexOf(TheNumber.charAt(i)) == -1) {
			valid = 0;
		}
	} 
	return valid;
}
//////////////////////////////////////////////////////////////////////
function checkNumeric(fName)
{
	var numeric=fName.value;
	if(isNaN(numeric))
			
			return false;

		return true;
}
function checkNotNumeric(fName)
{
	return !(checkNumeric(fName));
}

function checkPercentRange(formName)
{
	return checkMinMaxValue(1,100,formName);
}
function checkNumericPozitiv(fName)
{
	var numeric=fName.value;
	if(!isNaN(numeric)&&numeric*1>0&&checkInteger(fName))
					return true;
	
	
		return false;

}
function checkNumericPozitivFloat(fName)
{
	var numeric=fName.value;
	if(!isNaN(numeric)&&numeric*1>=0)
					return true;
	
	
		return false;

}
function checkNumericPozitivFloatNoNull(fName)
{
	var numeric=fName.value;
	if(!isNaN(numeric)&&numeric*1>0)
					return true;
	
	
		return false;

}

function checkInteger(fName)
{
	var numeric=fName.value;
	if(!isNaN(numeric)&&numeric.indexOf('.')==-1)
					return true;
	
	
		return false;

}
function IntegerPozitivOrNull(fName)
{
return checkInteger(fName)&&fName.value>=0;

}
//////////////////////////////////////////////////////////////////////
function alphanumeric(alphane)
{
	var numeric = alphane.value;
	for(var j=0; j<numeric.length; j++)
		{
		  var alphaa = numeric.charAt(j);
		  var hh = alphaa.charCodeAt(0);
		  if((hh > 47 && hh < 58) || (hh > 64 && hh < 91) || (hh > 96 && hh < 123))
		  {//keep cheking, doing nothing;
		  }
		else	{
			 return false;
		  }
		}
 return true;
}

//////////////////////////////////////////////////////////////////////
function CheckWhiteSpaces(formName)
{ 
	if(formName.value.indexOf(" ") != -1)
	{
		return false;
	}
	return true;
}
function CheckCheckBox(fObj)
{
	if(fObj.checked)
	return true
	return false;
}

//////////////////////////////////////////////////////////////////////
function checkStrLenWithRange(upper,lower,formName)
     {
          if((formName.value.length>upper)||(formName.value.length<lower))
              {    
                    return false;
					
              }
			
              return true;
     }
  //////////////////////////////////////////////////////////////////////   
     function CheckEmpty(formName)
{   
	if (formName.value == "")
	{
	 	return false;
	}
	arr=formName.value.split(" ");

	if(arr.length-1 == formName.value.length)
	{
        	return false;
	}/**/
	return true;      
}/////////////////////////////////////////////

function isMoney(fObj)
{
	return checkNumericPozitivFloat(fObj)
}
     function TimeRange(min,max,formValue)
		{
			if((formValue*1<min)||(formValue*1>max))
			{  
				return false;
			}
			return true;
	
		}

  //////////////////////////////////////////////////////////////////////  
function checkEmail(formName)
{
	str=formName.value;
	
var filter=/^[a-zA-Z]+[a-zA-Z0-9_\-]*(\.[a-zA-Z0-9]+[a-zA-Z0-9\-_]*)*@[a-zA-Z0-9]+[a-zA-Z0-9_\-]*(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$/i
//var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(str))
	testresults=true
	else
	testresults=false

return (testresults)
}
  //////////////////////////////////////////////////////////////////////  
  function checkInvalidChars(formName,invalidStrIndex)
{
	//var invalidChars = '@`‘’&#$-\/.\\%_^|,;:^~()"{}><[]?*!'+"'";
	checkValue=formName.value;
	var invalidChars=new Array();
	
	//disallow all
	 invalidChars[0] = '@`‘’&#$-\/.\\%_^|,;:^~()"{}><[]?*!'+"'";
	//Family, names
	 invalidChars[1] = '@`‘’&#$\/.\\%_^|,;:^~()"{}><[]?*!'+"'"; 
	//passwords
	 invalidChars[2] = '@`‘’&#$-\/.\\%^|,;:^~()"{}><[]?*!'+"'"; 

	 invalidChars[3] = '@`‘’&$%_^|;:^~()"{}><[]?*!'+"'"; 
	//instant messenger	
	 invalidChars[4] = '`‘’&#$\/\\%_^|,;:^~()"{}><[]?*!'+"'";
	//city 
	 invalidChars[5] = '1234567890@`‘’&#$-\/.\\%_^|,;:^~()"{}><[]?*!'+"'";
	// new fnames, lnames
	 invalidChars[6] = '1234567890@`‘’&#$\/.\\%_^|,;:^~()"{}><[]?*!';
	 
	for (var i=0; i < invalidChars[invalidStrIndex].length; i++)
	    {	
			badChar = invalidChars[invalidStrIndex].charAt(i);
		
		if (checkValue.indexOf(badChar,0) > -1)
		{
			return false;
		}
	    }
	    
	    return true;	
}
//////////////////////////////////////
function checkPasswordLength(formName)
{
	return checkStrLenWithRange(12,6,formName);
}
//////////////////////////////////////
function checkOldPasswordLength(formName)
{
	return checkStrLenWithRange(12,4,formName);
}
//////////////////////////////////////
function checkUsernameLength(formName)
{
	return checkStrLenWithRange(20,4,formName);
}
///////////////////////////////////////
function CheckSelectBox(formName)
{
	if(formName.value=='0'||formName.value=='')
	return false;
	
	return true;
}
////////////////////////////////
function checkPostalChars(formName)
{
	var str = formName.value.replace(/\S/g, "");
	return str.length <= 1 && checkInvalidChars(formName,0);
}
////////////////////////////////
function checkNameChars(formName)
{
	return checkInvalidChars(formName,1);
}
//////////////////////////////////////
function checkPasswordChars(formName)
{
	return checkInvalidChars(formName,2);
}
////////////////////////////////
function checkNameChars2(formName)
{
	return checkInvalidChars(formName,3);
}
//////////////////////////////////////
function checkNameChars3(formName)
{
	return checkInvalidChars(formName,4);
}
//////////////////////////////////////
function checkNameChars4(formName)
{
	return checkInvalidChars(formName,5);
}
//////////////////////////////////////
function checkNameChars5(formName)
{
	return checkInvalidChars(formName,6);
}
//////////////////////////////////////
function checkMinMaxValue(lower,upper,formName)
     {  
   
		  if((formName.value*1>upper*1)||(formName.value*1<lower*1))
              {    
					
               
				   return false;
					
              }
			 
              return true;
     }
  //////////////////////////////////////////////////////////////////////  
  function SecurityCodeLength(fElement)
	{
		return checkStrLenWithRange(3,3,fElement);
		
	}
	  //////////////////////////////////////////////////////////////////////  
function checkMonthValue(formName)
{
	return checkMinMaxValue(1,12,formName);
}
function checkDayValue(formName)
{
	return checkMinMaxValue(1,31,formName);
}
  //////////////////////////////////////////////////////////////////////  
function checkExpYear(formName)
{

	futureDate=theCurrYear*1+15;
	return checkMinMaxValue(theCurrYear*1,futureDate,formName);
	
	
}
  //////////////////////////////////////////////////////////////////////  
function checkExpMonth(formName)
{
	
	return checkMinMaxValue(theCurrMonth*1,12,formName);

	
}
  ////////////////////////////////////////////////////////////////////// 
	function monthLengh(fElement)
	{
		return checkStrLenWithRange(2,2,fElement);
	}
	  ////////////////////////////////////////////////////////////////////// 
		function yearLengh(fElement)
	{
		return checkStrLenWithRange(4,4,fElement);
	}
////////////////////////////////////////////
function CheckMinMaxDepositAmount(fElement)
{
	
	return checkMinMaxValue(minAmount,maxAmount,fElement)
	
	
}

////////////////////////////////// creating dynamic the state select //////////////////////////

var USstateNames = new Array("Alabama","Alaska","Arizona","Arkansas","California","Colorado",
														 "Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho",
														 "Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine",
														 "Maryland","Massachusetts","Michigan","Minnesota","Mississippi",
														 "Missouri","Montana","Nebraska","Nevada","New Hampshire",
														 "New Jersey","New Mexico","New York","North Carolina","North Dakota",
														 "Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island",
														 "South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont",
														 "Virginia","Washington","West Virginia","Wisconsin","Wyoming","None");
var USstateSymbols = new Array("AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA",
															 "HI","ID","IL","IN","IA","KS","KY","LA","ME","MD",
															 "MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ",
															 "NM","NY","NC","ND","OH","OK","OR","PA","RI","SC",
															 "SD","TN","TX","UT","VT","VA","WA","WV","WI","WY");
var CANADAstateNames = new Array("Alberta","British Columbia","Manitoba","New Brunswick","Newfoundland","Northwest Territories",
																 "Nova Scotia","Nunavut","Ontario","Prince Edward Island","Quebec","Saskatachewan","Yukon","None");
var CANADAstateSymbols = new Array("AB","BC","MB","NB","NF","NT","NS","NU","ON","PE","QC","SK","YT");

function buildUSStates(formName,selectName){
	var sadeState=eval("document."+formName+"['"+selectName+"']");
	sadeState.options.length = 0;
	for (i=0;i<USstateNames.length;i++)
		sadeState.options[i]=new Option(USstateNames[i],USstateSymbols[i]);
}

function buildCANADAStates(formName,selectName){
	var sadeState=eval("document."+formName+"['"+selectName+"']");
	sadeState.options.length = 0;
	for (i=0;i<CANADAstateNames.length;i++)
		sadeState.options[i]=new Option(CANADAstateNames[i],CANADAstateSymbols[i]);
}

///////////////////////////////////////////////////////////////////////////////////////////////
function checkForm(formName){
	
	var msg = "";
	//switchButtons(buttonsName,true);
	disableSubmit();
	for(var i in Checks){
		msgIndex=Checks[i].length-1;			
		sade=eval("document."+formName+"[i]");
		sade.err=false;
		for(var y=0;y<Checks[i].length;y++){
			if(!Checks[i][y](sade) && !(sade.err)){
				//switchButtons(buttonsName,false);
				//alert(i)
				sade.err=true;
				if (msg == "")
					sade.focus();
				msg += errMsgs[i][y] + "\n";
				sade.style.borderColor = '#FF0000';
				//changeFormClass('username','error');
			}
			if (!(sade.err))
				sade.style.borderColor = '#858585';
		}
		if (errorFieldName){
			sade=eval('document.'+formName+'.'+errorFieldName);
			sade.style.borderColor = '#FF0000';
			sade.focus();
		}
	}
	if (typeof(checkIfValidDate) != "undefined"){
		if (!isDate(document.registration.dobDay.value,document.registration.dobMonth.value,document.registration.dobYear.value)){
			msg += "Birth Date is invalid, please choose a valid date.\n";
		}
	}
	if (msg != ""){
		alert(msg);
		subBut = false;
		enableSubmit();
		return false;
	}
	return true;
}
///////////////////////////////////////////////////////////////////////////////////////////////
function disableSubmit() {

	var submits = document.getElementsByTagName('input');
	for (i=0; i < submits.length; i++) {
		if (submits[i].type == 'submit' || submits[i].name == 'submit') {
			submits[i].disabled = true;
		}
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////
function enableSubmit() {

	var submits = document.getElementsByTagName('input');
	for (i=0; i < submits.length; i++) {
		if (submits[i].type == 'submit' || submits[i].name == 'submit') {
			submits[i].disabled = false;
		}
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////
function compareCalendarDates(){
	return compareDates(document.frm.show_from, document.frm.show_to);
}
///////////////////////////////////////////////////////////////////////////////////////////////
function compareDates(fromDate, toDate){

	fromDate=fromDate.value;
	toDate=toDate.value;
	if(fromDate>toDate){
		return false;
	}
	return true; 
}
///////////////////////////////////////////////////////////////////////////////////////////////
function checkPasswordConfirm(){
	return checkEqualStrings(document.frm.passwd, document.frm.rpasswd);
}
///////////////////////////////////////////////////////////////////////////////////////////////
function checkEqualStrings(fElement1,fElement2){
	
	if(fElement1.value==fElement2.value)
	return true;
	return false;
}
///////////////////////////////////////////////////////////////////////////////////////////////
function nameLength(fElement){
	
	return checkStrLenWithRange(100,2,fElement);
}
///////////////////////////////////////////////////////////////////////////////////////////////
function postalLength(fElement){
	
	return checkStrLenWithRange(12,4,fElement);
}
///////////////////////////////////////////////////////////////////////////////////////////////
function isInteger(s){
	
	var i;
	for (i = 0; i < s.length; i++){// Check that current character is number.  
		var c = s.charAt(i);        
		if (((c < "0") || (c > "9"))) return false;  
	}  
	return true;
}
///////////////////////////////////////////////////////////////////////////////////////////////									
function stripCharsInBag(s, bag){
	
	var i;
	var returnString = "";      
	for (i = 0; i < s.length; i++){// Check that current character isn't whitespace.    
		var c = s.charAt(i);    
		if (bag.indexOf(c) == -1) returnString += c;  
	} 
	return returnString;
}
///////////////////////////////////////////////////////////////////////////////////////////////											  
function CheckPhone(formName){
	var num = formName.value;
	var validChars = " /+-";
	for (i=0;i<validChars.length;i++)
		while (num.indexOf(validChars.charAt(i)) != -1){
			j = num.indexOf(validChars.charAt(i));
			num = num.substring(0,j) + num.substring(j+1,num.length);
		}
	return (!isNaN(num));
}
///////////////////////////////////////////////////////////////////////////////////////////////											  
function initFormHighlights(formName) {

	if (errorFieldName){
		var sade=eval('document.'+formName+'.'+errorFieldName);
		sade.style.borderColor = '#FF0000';
		sade.focus();
	}
}
///////////////////////////////////////////////////////////////////////////////////////////////											  
