

//Start of Amount Validation
var phoneNumber;
 var digits = "0123456789";
	  var alphabets="abcdefghijklmnopqrstuvwxyz'";
	 // non-digit characters which are allowed in phone numbers
     var phoneNumberDelimiters = "()- ";
     // characters which are allowed in US phone numbers
     var validUSPhoneChars = digits + phoneNumberDelimiters;
     // U.S. phone numbers have 10 digits.
     // They are formatted as 123 456 7890 or (123) 456-7890.
     var digitsInUSPhoneNumber = 10;
     var defaultEmptyOK = false;
     var iUSPhone = "Please enter a valid contact phone number." ;
     var whitespace = " \t\n\r ";
     var e;
     var i;
     var w;	
function ValidateAmount(amount)
{
var digits="0123456789";
var i=0;
var flag=0;
var decimalCount=0;
if(amount.length>0)
	 {
		if(amount.length==1)
		  {
			 var j = amount.charAt(0);  
			 if(j=='.')
			   {
			    return false;
			  }
			 
		  }
		for(i=0;i<amount.length;i++)
	      {
			 var c = amount.charAt(i);      
			 var d = digits.indexOf(c);	 
				 if(d==-1){
				 if(c=='.') 
				  {decimalCount++;}
				  else
				   { return false;
				   }
				  if(decimalCount>=2)
				   {
				   return false;
				    }
								 } 
		  }
      }
      else { return false;}
      if(flag==1)
      { 
         return false;
      }
      return true;
}
//End of Amount Validation


// Start of Name Validation 
function ValidateName(name)
{
var w=0;
var counter=0;
var alphabets="abcdefghijklmnopqrstuvwxyz'";
var i=0;
var ctr=0;
var j=0;
if(name.length >=2) {
   for(i=0;i<name.length;i++)
     {
       var c=name.charAt(i).toLowerCase();
       var d=alphabets.indexOf(c);
       if(c=='\''){counter++;}
       if(c==' '){
          ctr++;
             if(ctr==2){
       		for(j=i+1;j<name.length;j++){
	         	if(name.charAt(j)!=' '){return false;}
			}
          return true;
          }
      continue;
      }  
       if(d<0){return false;}
   }
}
else
 { return false;}
 if(counter>1){return false;}
 return true;
 }
 
 // End of Name Validation
 
 //Start of Address Validations
 
 function CheckAddress(Address)
 {
 var flag=0;
  if(Address.length<=3)
  {return false;}
  else{
       if(Address.indexOf("<")>=0){return false;}
      }
      return true;
   }
//End of Address Validation


//Start of City Validation
function CheckCity(City)
{
if (City.length==0){
return false;}
else{
if(City.indexOf("<")>=0){
return false;}
}
return true;
}
// End of City Validation

//Start of Zipcode Validation
function CheckZip(City)
{
var l=City;
var flag=0;
var valid="0123456789";
if(l==null || l.length==0){
return false;}
else if( l.length!=5 )
{return false;}
else{
var temp=City;
for (var i=0;i<l.length;i++)
{
if(valid.indexOf(temp.substring(i,i+1))==-1)
{return false;}
}}if(flag==1){return false;}
else{return true;}
}
//End of ZipCode Validation

//Start of Phone Validation
function CheckPhone(PhoneNum)
{
 var flag=0;
 phoneNumber=PhoneNum;
        if (PhoneNum.length > 0)
		    {
	       var check = checkUSPhone(PhoneNum);
	      	if(check == false){
			flag=1;
            }
           }
           else{ return false;
           }
      if(flag==1)
        {return false;
          }
if(CheckAllZeros(PhoneNum)==true){
return true;
}         
else{
return false;
}
}

//Start of Email Validations
function CheckEmail(Email)
{
 var flag=0;
if(Email.length==0){return false;}
else {
    var theStr = new String(Email);
    var index = theStr.indexOf("@");
    
    if (index>0)
    {
    var pindex = theStr.indexOf(".",index);
        if ((pindex > index+1) && (theStr.length > pindex+1))
           {
				if(theStr.indexOf(".",pindex+1)==-1){
				var len=theStr.length - (pindex+1);
	
				if(len<2 || len>4){flag=1;}
				}
				
				// check for other .
				if(theStr.indexOf(".",pindex+1)!=-1){
				   	if((pindex + 1)==theStr.indexOf(".",pindex+1)){flag=1;} // one after the other .
					if(theStr.indexOf(".",pindex+1)==theStr.length){flag=1;} // no ending with a dot
					pindex=theStr.indexOf(".",pindex+1);
						if(theStr.indexOf(".",pindex+1)!=-1){flag=1;}
							else
							{
							if(pindex==theStr.length-1){flag=1};
							  //
							  var len=theStr.length - (pindex+1);
							  if(len<2 || len>4){flag=1;}
							}
				   
	    		 }		 
	          }
	          else{flag=1;}
	 }
	 else
	  { flag=1;}
  
  }
 if(flag==1)
   {
   return false;
   }
   else {return true;}
 }

//End of Email Validation

//Start the Phone Number Functions
function isUSPhoneNumber (s)
{   if (isEmpty(s)) 
       if (isUSPhoneNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isUSPhoneNumber.arguments[1] == true);
    return (isInteger(s) && s.length == digitsInUSPhoneNumber)
}
// takes USPhone, a string of 10 digits
// and reformats as (123) 456-789
 
function reformatUSPhone (USPhone)
{   return (reformat (USPhone, "(", 3, ") ", 3, "-", 4));
}

function reformatDaytime_PhoneOnKeyUp()
{
    var Daytime_Phone = phoneNumber;
    var normalizedPhone = stripCharsInBag(Daytime_Phone.value, phoneNumberDelimiters);
    Daytime_Phone.value = (reformat (normalizedPhone, "(", 3, ") ", 3, "-", 4));
   }
function checkUSPhone(theField, emptyOK)
{
    if (checkUSPhone.arguments.length == 1) emptyOK = defaultEmptyOK;
       if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else
    {
        var normalizedPhone = stripCharsInBag(theField, phoneNumberDelimiters);
         for(var i=0;i<normalizedPhone.length;i++)
			{
			
			if(validUSPhoneChars.indexOf(normalizedPhone.substring(i,i+1))==-1)
			  {
			  return false;
      		  }
		    }
              if(normalizedPhone.length==10){
       theField.value = reformatUSPhone(normalizedPhone);
             return true;
         } //i just added
       else
       { return false;}
       }
}

function checkUSPhone2(phone)
{
     //var phone = "document.form.Daytime_Phone";
    
     if ((phone.substring(3,10)=="5551212") || (phone.substring(0,10)=="1234567890") || (phone.substring(3,10)=="4567890")){
  //alert ("Please enter a valid phone number.");phone.focus();
  return false;
     }
     
     // Expects a phone number. Makes sure the user doesn't just enter identical characters
     // (i.e. 111-1111)
 
     lastpart=phone.substring(3,10);
     sample=lastpart.substring(0,1);
     for(i=1;i<lastpart.length;i++){
         if ((lastpart.substring(i,i+1))==sample){
             //alert ("Please enter a valid phone number.");phone.focus();
             return false;
         }
     }
     
      // Expects a phone number. Makes sure the user doesn't just enter sequential characters
     // (i.e. 234-5678)
 
     shortphone=phone.substring(3,10);
     first=shortphone.substring(0,1);
     second=shortphone.substring(1,2);
     diff=parseInt(first)-parseInt(second);
     if(Math.abs(diff)!=1) {
         return true;
     }
     if (diff == -1){  //ascending order
         for(i=0; i<shortphone.length-1; i++){
             if ((parseInt(shortphone.substring(i,i+1)))==(parseInt(shortphone.substring(i+1,i+2))-1)) {
                 //alert ("Please enter a valid phone number.");phone.focus();
                 return false;
             }
         }
     }
     if (diff == 1){   //descending order
         for(i=0;i<shortphone.length-1;i++){
             if ((parseInt(shortphone.substring(i,i+1)))==(parseInt(shortphone.substring(i+1,i+2))+1)) {
                 //alert ("Please enter a valid phone number.");phone.focus();
                 return false;
             }
         }
     }     
    
     return true;
}



 
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}




function stripCharsInBag (s, bag)
 
{   var i;
    var returnString = "";

    // Search through string's characters one by one.
    // If character is not in bag, append to 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 isInteger (s)
 
{   var i;
 
    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
 
    // Search through string's characters one by one
    // until we find a non-numeric character.
    // When we do, return false; if we don't, return true.
 
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
 
        if (!isDigit(c)) return false;
    }
 
    // All characters are numbers.
    return true;
}
function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}
function reformat (s)
 
{   var arg;
    var sPos = 0;
    var resultString = "";
 
    for (var i = 1; i < reformat.arguments.length; i++) {
       arg = reformat.arguments[i];
       if (i % 2 == 1) resultString += arg;
       else {
           resultString += s.substring(sPos, sPos + arg);
           sPos += arg;
       }
    }
    return resultString;
}

function warnInvalid (theField, s)
{     return false;
}


function ValidateMaliciousCode(Entry)
 {
 if(Entry.indexOf("<")>=0){return true;}
 else{return false;}
 }
// End the Phone Number Functions

//Start of Date Validation

function ValidDate(dateStr) {
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
var matchArray = dateStr.match(datePat); 
if (matchArray == null) {
return false;;
}
month = matchArray[1]; 
day = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { 
return false;
}
if (day < 1 || day > 31) {
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
return false;
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
return false;
   }
}
return true; 
}

//End of Date Validation

//Start of Social Security Validation 
function ValidateSocialSecurity(SocialStr)
{
var flag=0;
    var i;
    var ctr=0;
    var numbers=0;
    if (SocialStr.length >=9 && SocialStr.length <=11 ) { 
		for(i=0;i<SocialStr.length;i++){
		 var c = SocialStr.charAt(i);
         var d = digits.indexOf(c);	
    	if(d==-1){
				if(c=='-' ){
					if(i==3 || i==6){
						ctr+=1;
					}  
					else{
					flag=1;return false;
					}

				}
	
			}
			else
			 { numbers+=1;}
	        }
		if((ctr==0 || ctr==2) && numbers==9)
		 {
		  flag=0;}
		 else
		 {flag=1; return false;}
    }
	else{
	  flag=1;
	  return false;
    } 
        
    if(flag==1){
     return false;
	      }
     else
     {
		if(ctr==0) 
		  {
     	return true;
     	
		  }
    }
    if(flag==1){return false;} else{return true;}

}

//End of Social Security Validation

//Start of FormatPhone Number 
function FormatPhone(PhoneNumber)
{
var i=0;
var formatedPhone='(';
var PlainPhoneNumber='';
for(i=0;i<PhoneNumber.length;i++)
 {
if( PhoneNumber.charAt(i)=='(' || PhoneNumber.charAt(i)==')' || PhoneNumber.charAt(i)=='-')
 {} else
 {
 PlainPhoneNumber +=PhoneNumber.charAt(i);
 }
 }


for(i=0;i<PlainPhoneNumber.length;i++)
 {
 formatedPhone +=PlainPhoneNumber.charAt(i);
 if(i==2){formatedPhone+=')'; }
 if(i==5){formatedPhone+='-';}
 }
return formatedPhone;

}
//End of FormatPhone Number 

function CheckAllZeros(PhoneNumber){
var i=0;
var ctr=0;
var PlainPhoneNumber='';
for(i=0;i<PhoneNumber.length;i++)
 {
if( PhoneNumber.charAt(i)=='(' || PhoneNumber.charAt(i)==')' || PhoneNumber.charAt(i)=='-')
 {} else
 {
 PlainPhoneNumber +=PhoneNumber.charAt(i);
 }
 }
for(i=0;i<PlainPhoneNumber.length;i++){
if(PlainPhoneNumber.charAt(i)=='0'){
ctr+=1;
}
}
if(ctr==10){
return false;
}
else{
return true;
}
 
}//End of function 

function ValidateYearOnly(Year){
if(Year.length!=4){
return false;
}
else{
var thedate = new Date();
var theyear = thedate.getYear();
var cutoffYear=1800;
var digits="0123456789";
var d;
for(var i=0;i<Year.length;i++){
d = digits.indexOf(Year.charAt(i));
if(d==-1){return false;}
}
if(Year > theyear || Year < cutoffYear){
return false;
}
}
return true;
} // End of Function 

function ValidateChildrensAge(Children,Ages){
var digits="0123456789";
var ctr=0;
var singleAge;
var d;
if(Ages.length==0){return false;}
for(i=0;i<Ages.length;i++){
d = digits.indexOf(Ages.charAt(i));
if(d==-1){
 if(Ages.charAt(i)==' '){continue;}
  if(Ages.charAt(i)==','){
   ctr++;
  if(i==(Ages.length-1)){return false;} //check last one is a comma
  if(singleAge==null || singleAge.length==0 || singleAge >=50){
  return false;
  }
  singleAge='';
  }
 else{
	return false;
	}
  }
else{
singleAge=singleAge + Ages.charAt(i);
}
}
if(singleAge>=50){return false;}
if(ctr==(Children-1)){return true;} else{return false;}
} // End of function 

function YearOnly(YearNum){
var digits="0123456789";
var d=0;
for(var i=0;i<YearNum.length;i++){
d = digits.indexOf(YearNum.charAt(i));
if(d==-1){return false;}
}
if(YearNum>99){return false;}
} // End of function

function MonthOnly(MonthNum)
{
var digits="0123456789";
var d=0;
for(var i=0;i<MonthNum.length;i++){
d = digits.indexOf(MonthNum.charAt(i));
if(d==-1){return false;}
}
if(YearNum>11){return false;}
} // End of function

function NumberofYear(numYear,max){
var digits="0123456789";
var d=0;
if(numYear.length==0){return false;}
for(var i=0;i<numYear.length;i++){
d = digits.indexOf(numYear.charAt(i));
if(d==-1){return false;}
}
if(numYear>max){return false;}else{return true;}
} //End of function 

function Password(data){
var passwrd=data.toLowerCase();
var i=0;
var digits="0123456789";
var d=0;
var alphabets="abcdefghijklmnopqrstuvwxyz'";
if(passwrd.length>12){return false;}
for(i=0;i<passwrd.length;i++){
d = alphabets.indexOf(passwrd.charAt(i));
if(d==-1){
d = digits.indexOf(passwrd.charAt(i));
if(d==-1){return false;}
}
}
} // End of function 

function OnlyNumber(data){
var digits="0123456789";
var d=0;
var i=0;
if(data.length==0){return false;}
for(i=0;i<data.length;i++){
d = digits.indexOf(data.charAt(i));
if(d==-1){return false;}
}
} // end of function 
 
