
/****************************************************************/
// Check whether string s is empty.
/****************************************************************/  

function formil_onsubmit(f)
{
	return true;
}

function formorder1_onsubmit(f)  
 {	
 if ('test'==f.fname.value&&'qa'==f.lname.value) 
	{
	dopopup='';
	f.phone.value='5619819721'
		if(f.email.value=='')
		{
		f.email.value='qa@eneighborhoods.com'
		return false
		}
	}
	if ('test'==f.fname.value&&'en'==f.lname.value) 
	{
	dopopup='';
	return true
	}
	 
	else
	{
		validate_Phone(f.phone.value)
		
			if (isWhitespace(f.fname.value)){
				alert("Please enter First Name.");
				f.fname.focus();
				return false;
			}	
			if (isWhitespace(f.lname.value)){
				alert("Please enter Last Name.");
				f.lname.focus();
				return false;
			}	
		else if (!validate_Phone(f.phone.value)){
				alert("Please enter phone number in the format ##########, ###-###-####, or (###)###-####.");
				f.phone.focus();
				f.phone.select();
				return false;
			}  
		else if(isEmail(f.email.value)==false){
				alert("Please enter e-mail address in following format: a@b.com.");
				f.email.focus();
				return false;
			}
		//else if(isWhitespace(f.embeddedname.value)){
		//		alert("Please enter embedded name.");
		//		f.embeddedname.focus();
		//		return false;
		//	}
	
	}       
  
 }
 
 function formBonus_onsubmit(f)  
 {	
	if ('test'==f.fname.value&&'qa'==f.lname.value) 
	{
		dopopup='';
		f.phone.value='5619819721';
		if(f.email.value=='')
		{
			f.email.value='qa@eneighborhoods.com';
			return false;
		}
	}

	if ('test'==f.fname.value&&'en'==f.lname.value) 
	{
		dopopup='';
		return true;
	}
	else
	{
		//validate_Phone(f.phone.value)
		
		if (isWhitespace(f.fname.value))
		{
			alert("Please enter First Name.");
			f.fname.focus();
			return false;
		}
		
		if (isWhitespace(f.lname.value))
		{
			alert("Please enter Last Name.");
			f.lname.focus();
			return false;
		}
		
		if (!validate_Phone(f.phone.value))
		{
			alert("Please enter phone number in the format ##########, ###-###-####, or (###)###-####.");
			f.phone.focus();
			f.phone.select();
			return false;
		}
			
		if(isEmail(f.pdfEmail.value)==false)
		{
			alert("Please enter e-mail address in following format: a@b.com.");
			f.pdfEmail.focus();
			return false;
		}
	}   
 }
 
 /***************************************************************/
// Check whether string s is empty.
/****************************************************************/  
function formorder2_onsubmit(f) {
	if (f.creditcardnumber.value=='testqa') 
	{
		dopopup='';
		f.cardType.selectedIndex=1
		f.creditcardnumber.value='4111111111111111'
		f.month.selectedIndex =3
		f.year.selectedIndex =3
		f.companyname.value='eNeighborhoods'
		f.shipaddress1.value='1 park place'
		f.shipcity.value='Boca Raton'
		f.shipstate.selectedIndex=10
		f.shipzip.value='33487'
		
		return false;
	}
	
	if (f.cardType.selectedIndex == 0){
	      alert("Please select the credit card type.");
	      f.cardType.focus();
	      return false;

}
	if(isWhitespace(f.creditcardnumber.value)){
	      alert("Please fill in your credit card account number.");
	      f.creditcardnumber.focus();
	      return false;
	}
    else if(f.month.selectedIndex == 0){
	      alert("Please supply the expiration date of you credit card.");
	      f.month.focus();
	      return false;
      }
    else if(f.year.selectedIndex == 0){
	      alert("Please supply the expiration date of you credit card.");
	      f.year.focus();
	      return false;
      }

   else if(validateCard(f.creditcardnumber.value, f.cardType.value, f.month[document.formorder2.month.selectedIndex].value, f.year[f.year.selectedIndex].value)==false)
     { return false;}
     
	if (isWhitespace(f.companyname.value)){
		alert("Please enter Company Name.");
		f.companyname.focus();
		return false;
	}	
	if (isWhitespace(f.shipaddress1.value)){
		alert("Please enter Ship To Address.");
		f.shipaddress1.focus();
		return false;
	}
	else if(isWhitespace(f.shipcity.value)){
		alert("Please enter Shipment City.");
		f.shipcity.focus();
		return false;
	}
	else if(f.shipstate.selectedIndex==0){
		alert("Please enter Shipment State.");
		f.shipstate.focus();
		return false;
	}
	else if(isZipcode(f.shipzip.value)==false){
		alert("Please enter 5 digit shipment zip code.");
		f.shipzip.focus();
		return false;
	}
     
	dopopup = ''
	return true;

 }


 function isNumeric (strItem) {
       
	  for (var i = 0; i < strItem.length; i++) {
			if (strItem.charAt(i) < '0' || strItem.charAt(i)>'9') {
				return false;
			}
		}
	return true;
   }

function isZipcode(strZip){
   if (isWhitespace(strZip))
      return false;
    var s = new String(strZip);

	if (s.length != 5 )
		// inappropriate length
		return false;


	for (var i=0; i < s.length; i++){
		if (s.charAt(i) < '0' || s.charAt(i) > '9')
			return false;
	   }
    return true;
}

/****************************************************************/
// Check whether string strZip length.
/****************************************************************/  
 function isZipcode(strZip){
   if (isWhitespace(strZip))
      return false;
    var s = new String(strZip);
     
	if (s.length != 5 )
		// inappropriate length
		return false;


	for (var i=0; i < s.length; i++){
		if (s.charAt(i) < '0' || s.charAt(i) > '9')
			return false;
	   }
    return true;
}

/****************************************************************/
// isEmail (STRING s [, BOOLEAN emptyOK])
//  
// Email address must be of form a@b.c ... in other words:
// * there must be at least one character before the @
// * there must be at least one character before and after the .
// * the characters @ and . are both required
//
// For explanation of optional argument emptyOK,
// see comments of function isInteger.
/****************************************************************/

function isEmail (s)
{   //if (isEmpty(s))  
      // if (isEmail.arguments.length == 1) return false;
       //else return (isEmail.arguments[1] == true);
    
    // is s whitespace?
    if (isWhitespace(s)) return false;
     
    // there must be >= 1 character before @, so we
    // start looking at character position 1  
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}


/****************************************************************/
// Check whether string s is empty.
/****************************************************************/
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

/****************************************************************/
// Returns true if string s is empty or  
// whitespace characters only.
/****************************************************************/
function isWhitespace (s)

{   var i;
     var whitespace = " \t\n\r";    
    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {    
	// Check that current character isn't whitespace.
	   var c = s.charAt(i);

	   if (whitespace.indexOf(c) == -1)  
	   return false;
    }

    // All characters are whitespace.
    return true;
}

function validate_Phone(myPhone)
	{
	var phone = new String(returnNumbers(myPhone))
		if (phone.length != 10)
			{
			return false;
			}
		if (phone.charAt(0)=="0")
			{
			return false;
			}
	return true;
	}

function returnNumbers (input) 
{
	s = input;
	filteredValues = "1234567890";     // Characters stripped out
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++) 
		{  // Search through string and append to unfiltered values to returnString.
			var c = s.charAt(i);
			if (filteredValues.indexOf(c) != -1) returnString += c;
		}
	return returnString;
}
function FillEmb()	{
		
		if(isWhitespace(document.getElementById("embeddedname").value))
			{
			document.getElementById("embeddedname").value = document.getElementById("fname").value + ' ' + document.getElementById("lname").value
			} 
}
function checkPhone(str){
	var regexp=/^(\d{10}|\d{3}-\d{3}-\d{4}|\(\d{3}\)\d{3}-\d{4})$/;
	return regexp.test(str);
}

function verify()
	{
	if(document.login.id.value==""){
	      alert("You must type in your ID in the Login box.");
	      return false;
      }
    else if(document.login.password.value==""){
	      alert("You must type in your password.");
	      return false;
      }
   else
      	       
	  return true;
  }      
   
function mod10( cardNumber ) { // LUHN Formula for validation of credit card numbers.
	var ar = new Array( cardNumber.length );
	var i = 0,sum = 0;
	for( i = 0; i < cardNumber.length; ++i ) {
		ar[i] = parseInt(cardNumber.charAt(i));
	}
	for( i = ar.length -2; i >= 0; i-=2 ) {  // you have to start from the right, and work back.
		ar[i] *= 2;							 // every second digit starting with the right most (check digit)
		if( ar[i] > 9 ) ar[i]-=9;			 // will be doubled, and summed with the skipped digits.
	}										 // if the double digit is &gt; 9, add those individual digits together  
	for( i = 0; i < ar.length; ++i ) {
		sum += ar[i];						 // if the sum is divisible by 10 mod10 succeeds
	}
	return (((sum%10)==0)?true:false);	  		
}

function expired( month, year ) {
	var now = new Date();						 // this function is designed to be Y2K compliant.
	var expiresIn = new Date(year,month,0,0,0);	 // create an expired on date object with valid thru expiration date
	expiresIn.setDate(expiresIn.getDate() + 1 ); // adjust the month, to first day, hour, minute &amp; second of expired month
	if( now.getTime() < expiresIn.getTime() ) return false;
	return true;								// then we get the miliseconds, and do a long integer comparison
}


function validateCard(cardNumber,cardType,cardMonth,cardYear) {
	if( cardNumber.length == 0 ) {						//most of these checks are self explanitory
		alert("Please enter a valid card number.");
		return false;					
	}
	for( var i = 0; i < cardNumber.length; ++i ) {	// make sure the number is all digits.. (by design)
		var c = cardNumber.charAt(i);
		if( c < '0' || c > '9' ) {
			alert("Please enter a valid card number.  Use only digits.  Do not use spaces or hyphens.");
			return false;
		}
	}
	var length = cardNumber.length;		//perform card specific length and prefix tests
	switch( cardType ) {
		case 'a':
			if( length != 15 ) {
				alert("Please enter a valid American Express Card number.");
				return false;
			}
			var prefix = parseInt( cardNumber.substring(0,2));
			if( prefix != 34 && prefix != 37 ) {
				alert("Please enter a valid American Express Card number.");
				return false;
			}
			break;
		case 'd':
			if( length != 16 ) {
				alert("Please enter a valid Discover Card number.");
				return false;
			}
			var prefix = parseInt( cardNumber.substring(0,4));
			if( prefix != 6011 ) {
				alert("Please enter a valid Discover Card number.");
				return false;
			}
			break;
		case 'm':
			if( length != 16 ) {
				alert("Please enter a valid MasterCard number.");
				return false;
			}
			var prefix = parseInt( cardNumber.substring(0,2));
			if( prefix < 51 || prefix > 55) {
				alert("Please enter a valid MasterCard Card number.");
				return false;
			}
			break;
		case 'v':
			if( length != 16 && length != 13 ) {
				alert("Please enter a valid Visa Card number.");
				return false;
			}
			var prefix = parseInt( cardNumber.substring(0,1));
			if( prefix != 4 ) {
				alert("Please enter a valid Visa Card number.");
				return false;
			}
			break;
	}
	if( !mod10( cardNumber ) ) {                   		// run the check digit algorithm
		alert("Sorry!  This is not a valid credit card number.");
		return false;
	}
	if(expired( cardMonth, cardYear ) ) {				// check if entered date is already expired.
		alert("Sorry!  The expiration date you have entered would make this card invalid.");
		return false;
	}
		
	return true; // at this point card has not been proven to be invalid

}
