// JavaScript Document
function validate() {
	valid = true;
	checkName('name','error_custName');
	HomeEmail();
	checkPhone('areaCode','digits1','digits2','error_phone');
	CheckByDeliveryMethod();
	
			
	return valid;
}

///// Start HomeEmail
function HomeEmail () {

var strng = document.getElementById("email").value;
//var strng = document.getElementById(field).value;
var error="";
	if (strng == "") {
	   error = "You didn't enter an email address.\n";
	   valid = false;
	}

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       error = "Please enter a valid email address.\n";
	   valid = false;
    }
    else {
//test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = "The email address contains illegal characters.\n";
		  valid = false
  	     }
	   
	} 
   //valid = false;
//   alert(error);
	document.getElementById("error_email").innerHTML = error;
	return valid;
//document.getElementById("emailError").innerHTML = error;
// document.getElementById("email").focus();
//return error;    
}
////// end home e-mail

function checkName(fieldId, errorFieldId) {
	var strng = document.getElementById(fieldId).value;
	var error="";
	if (strng == "") {
		error = "Please enter your name. \n";
		valid = false;
	}
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = "Your name contains illegal characters.\n";
		  valid = false;
  	     }
			
	document.getElementById(errorFieldId).innerHTML = error;
		return valid;
}
////////////////////

function checkPhone (aCodeName, dig1Name, dig2Name, errorLocation) {
	var error = "";
	areaCode = document.getElementById(aCodeName).value;
	digits1 = document.getElementById(dig1Name).value;
	digits2 = document.getElementById(dig2Name).value;
	strng = areaCode+digits1+digits2;

	if (strng == "") {
	   error = "You didn't enter a phone number.\n";
	   valid = false;
		}
	var stripped = strng.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
	    if (isNaN(parseInt(stripped))) {
	       error = "The phone number contains illegal characters.";
		valid = false;	  
	    }
    if (!(stripped.length == 10)) {
		error = "The phone number is the wrong length. Make sure you included an area code.\n";
		valid = false;
    } 
document.getElementById(errorLocation).innerHTML = error;
 return valid;

}
///////////////////
function CheckByDeliveryMethod() {
	if (document.getElementById("delivery_method").value == "delivery") { 
		
		if (document.getElementById("NoDelivery_RnameSame").checked === true) {
			//Check for same recipient / different name --- then number
			var strng = document.getElementById("delivery_recipient").value;
			var error="";
			if (strng == "") {
				error = "Please enter a name. \n";
				valid = false;
			}
      		var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
	        if (strng.match(illegalChars)) {
    	  	    error = "This name contains illegal characters.\n";
				valid = false;
  		     }
			 document.getElementById("error_deliveryRname").innerHTML = error;
			 
			 //Check phone
			 checkPhone ("delivery_rAreaCode", "delivery_rDigits1", "delivery_rDigits2", "error_deliveryRnumber");
		}
		
		//// This information above^ is checked if the recipient is different
			 //Check address
			 
				 var addr1 = document.getElementById("delivery_address1").value;
				 var addr2 = document.getElementById("delivery_address2").value;
				 
				 if ( (addr1 == "") && (addr2=="") ) {
					 valid = false;
					 error = "Please enter a delivery address";
					 } else {error = "";}
					 document.getElementById("error_deliveryAddress").innerHTML = error;
			// Check City/State
				city = document.getElementById("delivery_city").value;
				state = document.getElementById("delivery_state").value;
				error = "";
				if (city == "") {
					error = "Please enter your city";
					valid = false;
					if (state == "") {
						error+= " and state";
						
					}
				}else if (state == "") { 
					error = "Please enter your state";
					valid = false;
				}
				document.getElementById("error_CityState").innerHTML = error;
			 var zipField = document.getElementById("delivery_zip")
			zip = document.getElementById("delivery_zip").options[zipField.selectedIndex].value;
			
			if ( (zip == "") || (zip.length < 5) ) {
				error = "Please select your Zipcode";
				valid = false;
				document.getElementById("error_Zip").innerHTML = error;
			}
		
	

//		document.getElementById("error_deliveryRname").innerHTML = document.getElementById("NoDelivery_RnameSame").value;

		return valid;
}
		else if (document.getElementById("delivery_method").value == "pickup") {
			
			if (document.getElementById("NoPickup_RnameSame").checked === true) {
			//Check for same recipient / different name --- then number
				var strng = document.getElementById("pickup_recipient").value;
				var error="";
				if (strng == "") {
					error = "Please enter a name. \n";
					valid = false;
				}
    	  		var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
	    	    if (strng.match(illegalChars)) {
    	  		    error = "This name contains illegal characters.\n";
					valid = false;
  		     	}
			 	document.getElementById("error_pickupRname").innerHTML = error;
				return valid;			
			}// end if

	return valid;			
		} // end elseif (for Pickup method)
						 
}
/////////////////////






function checkEmail () {
//var strng = document.getElementById(field).value;
document.getElementById("email").value;
var error="";
if (strng == "") {
   error = "You didn't enter an email address.\n";
}

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       error = "Please enter a valid email address.\n";
    }
    else {
//test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = "The email address contains illegal characters.\n";
       }
    }
document.getElementById("emailError").innerHTML = error;
// document.getElementById("email").focus();
return error;    
}

function checkPhone (aCodeName, dig1Name, dig2Name, errorLocation) {
	var error = "";
	areaCode = document.getElementById(aCodeName).value;
	digits1 = document.getElementById(dig1Name).value;
	digits2 = document.getElementById(dig2Name).value;
	strng = areaCode+digits1+digits2;

	if (strng == "") {
	   error = "You didn't enter a phone number.\n";
	   valid = false;
	}
	var stripped = strng.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
	    if (isNaN(parseInt(stripped))) {
	       error = "The phone number contains illegal characters.";
		valid =  false;	  
	    }
    if (!(stripped.length == 10)) {
	error = "The phone number is the wrong length. Make sure you included an area code.\n";
	valid = false;
    } 
document.getElementById(errorLocation).innerHTML = error;
	return valid;
}

/*pickupCheck()
	{
document.write(checkPhone("areaCode","digits1,digits2","phoneNumError"));
//	checkEmail();
	//if (checkPhone("areaCode","digits1,digits2","phoneNumError")==false){ return false;}
	}*/
	
	
	
	
/////// Below validate credit card confirmation
function ValidateCardPage() {
	valid = true;
 if	(document.getElementById("OrderMessage")){
	 document.getElementById("OrderMessage").innerHTML = ""; }
	document.getElementById("error_BillAddress").innerHTML = "";
	document.getElementById("error_City").innerHTML = "";
	document.getElementById("error_State").innerHTML = "";
	document.getElementById("error_CardNum").innerHTML = "";	
	document.getElementById("error_Zip").innerHTML = "";
	document.getElementById("error_expiration").innerHTML = "";
	
	checkCreditName("cardholderFname","first","error_FirstName");
	checkCreditName("cardholderLname","last","error_LastName");

			var addr = document.getElementById("BillAddress").value;
				 
				 if (addr == "") {
					 valid = false;
					 document.getElementById("error_BillAddress").innerHTML = "Please enter a delivery address";
					 } 
					 
				error = "";					 
			// Check City/State
				city = document.getElementById("City").value;
				state = document.getElementById("State").value;

				if (city == "") {
					error = "Please enter your city";
					valid = false;
					document.getElementById("error_City").innerHTML = error;		

					
				}
			if (state == "") {
				error = "Please enter your state";
				valid = false;
				document.getElementById("error_State").innerHTML = error;		
					}
		cardnum = document.getElementById("creditCard").value;
			if ( (cardnum == "") || (cardnum.length < 13) ) {
				error = "Please enter the full card number";
				valid = false;
				document.getElementById("error_CardNum").innerHTML = error;
			}
			
		zip = document.getElementById("zipCode").value;
			if ( (zip == "") || (zip.length < 5) ) {
				error = "Please enter the full Zip Code";
				valid = false;
				document.getElementById("error_Zip").innerHTML = error;
			}	
			
		expiration = document.getElementById("expiration").value;
			if ( (expiration == "") || (expiration.length < 4) ) {
				error = "Please enter the expiration in the form MMYY";
				valid = false;
				document.getElementById("error_expiration").innerHTML = error;
			}		
return valid;


} // end ValidateCardPage
	




function checkCreditName(fieldId,WhichForL,errorFieldId) {
	var strng = document.getElementById(fieldId).value;
	var error="";
	if (strng == "") {
		error = "Please enter your " + WhichForL + " name. \n";
		valid = false;
	}
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = "Your name contains illegal characters.\n";
		  valid = false;
  	     }
			
	document.getElementById(errorFieldId).innerHTML = error;
	
	
		return valid;
}

function checkValidInt(obj,cutLeadingZero) {
	// validate the input (strip non-digits).
	var validChars = "0123456789";
	var thisString = document.getElementById(obj.id).value;
	var newString = "";
	for (var n = 0; n <= thisString.length; n++) {
		if (validChars.indexOf(thisString.charAt(n)) != -1)
			newString += thisString.charAt(n);
	}
	while (newString.charAt(0) == '0' && cutLeadingZero == 1)
		newString = newString.substring(1); // take off leading '0'

	// update display
		document.getElementById(obj.id).value = newString;
}


