/* function: validate contact us form - DONE!
===================================================================== */
function ContactUsFormSubmit(){
	// Make quick references to our fields
	var msgFName = document.getElementById('firstname');
	var msgLName = document.getElementById('lastname');
	var msgAddr1 = document.getElementById('address1');
	//var msgAddr2 = document.getElementById('address2');
	var msgCity = document.getElementById('city');
	var msgState = document.getElementById('state');
	var msgZCode = document.getElementById('zipcode');
	var msgEmail = document.getElementById('email');
	var msgDPhone = document.getElementById('dayphone');
	//var msgEPhone = document.getElementById('evephone');
	var msgSubject = document.getElementById('msgsubject');
	var msgMessage = document.getElementById('message');
	
	// Check each input in the order that it appears in the form!
	if(isEmptyF(msgFName, "Please enter your First Name")){
		if(isEmptyF(msgLName, "Please enter your Last Name")){
			if(isEmptyF(msgAddr1, "Please enter your Address")){
				if(isEmptyF(msgCity, "Please enter your City")){
					if(madeSelection(msgState, "Please select your State")){
						if(isZipcode(msgZCode, "Please enter your Zip Code")){
							if(emailValidator(msgEmail, "Please enter a valid Email Address")){
								if(isPhone(msgDPhone, "Please enter your Daytime Phone")){
									if(isEmptyF(msgSubject, "Please enter a Message Subject")){
										if(isEmptyF(msgMessage, "Please enter your Message")){
											document.ContactUsForm.submit();
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return false;
}
/* function: all form validation functions
===================================================================== */
function isEmptyF(elem, helperMsg){
	if(elem.value.length == 0){
		alert(helperMsg);
		elem.value="";
		elem.style.background = '#ffffcc';
		elem.focus(); // set the focus to this input
		return false;
	}
	return true;
}

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.value="";
		elem.style.background = '#ffffcc';
		elem.focus();
		return false;
	}
}

function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z \s]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.value="";
		elem.style.background = '#ffffcc';
		elem.focus();
		return false;
	}
}

function isPhone(elem, helperMsg){
	var iPhone = /(^\(\d{3}\)\s\d{3}-\d{4}$)/
	if(elem.value.match(iPhone)){
		return true;
	}else{
		alert(helperMsg);
		elem.value="";
		elem.style.background = '#ffffcc';
		elem.focus();
		return false;
	}
}

function isZipcode(elem, helperMsg){
	var zCode = /(^\d{5}$)|(^\d{5}-\d{4}$)/
	if(elem.value.match(zCode)){
		return true;
	}else{
		alert(helperMsg);
		elem.value="";
		elem.style.background = '#ffffcc';
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z \s]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.value="";
		elem.style.background = '#ffffcc';
		elem.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter between " +min+ " and " +max+ " characters");
		elem.value="";
		elem.style.background = '#ffffcc';
		elem.focus();
		return false;
	}
}

function madeSelection(elem, helperMsg){
	if(elem.value == 0){
		alert(helperMsg);
		elem.value="";
		elem.style.background = '#ffffcc';
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function nonMatchingPwd(elem, helperMsg){
	var frmPwd1 = document.getElementById('logonpassword');
	var frmPwd2 = document.getElementById('confirmlogonpassword');
	if(frmPwd1.value != frmPwd2.value){
		alert("The passwords do not match. The password and the confirm password entries must be the same!");
		frmPwd2.value="";
		frmPwd2.style.background = '#ffffcc';
		frmPwd2.focus();
		return false;
	}else{
		return true;
	}
}

function nonMatchingEml(elem, helperMsg){
	var frmId1 = document.getElementById('logonid');
	var frmId2 = document.getElementById('confirmlogonid');
	if(frmId1.value != frmId2.value){
		alert("The emails do not match. The email and the confirm email entries must be the same!");
		frmId2.value="";
		frmId2.style.background = '#ffffcc';
		frmId2.focus();
		return false;
	}else{
		return true;
	}
}

function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.value="";
		elem.style.background = '#ffffcc';
		elem.focus();
		return false;
	}
}
/* function: check if string is empty
===================================================================== */
function isEmpty(s) {   
	return ((s == null) || (s.length == 0))
}
/* Returns true if character c is a digit (0 .. 9) */
function isDigit (c) {
	return ((c >= "0") && (c <= "9"))
}
/* Function formats the string based on the function arguments */
function reformat (s){
		var arg;
		var sPos = 0;
		var argPos=0;
		var resultString = "";

		for (var i = 1; i < reformat.arguments.length; i++) {
			 arg = reformat.arguments[i];
			 if (i % 2 == 1) {
					if(argPos < s.length)
					resultString += arg;
			 }
			 else {
					 resultString += s.substring(sPos, sPos + arg);
					 sPos += arg;
					 argPos+=arg;
			 }
		}
		return resultString;
}
/* function: validates phone and formats it to (xxx) 000-000 - DONE!
===================================================================== */
function checkUSPhone (phoneNoObj) {
	
	var phoneNoVal=phoneNoObj.value;
	
	if (isEmpty(phoneNoVal))
	return true;
	
	var normalizedPhone ="";
	//Strip all the characters except the numbers
	for (i = 0; i < phoneNoVal.length; i++){
	// Check that current character is number.
	var c =phoneNoVal.charAt(i);
	
	if (isDigit(c)) normalizedPhone += c;
	}
	
	if ((normalizedPhone.length > 3)	&& (normalizedPhone.length <= 6 )){
	 
	var len=normalizedPhone.length - 3;
	phoneNoObj.value=reformat (normalizedPhone, "(", 3, ") ",len)
	return true;
	}
	else if (normalizedPhone.length > 6){
	 
	var len=normalizedPhone.length - 6;
	phoneNoObj.value=reformat (normalizedPhone, "(", 3, ") ", 3, "-", len )
	return true;
	}else{
	 phoneNoObj.value=normalizedPhone;
	 return true;
	}
}
/* function: creates popup with given URL
===================================================================== */
function winPopVid(URL) {
	day = new Date();
	id = day.getTime();
	
	eval("product" + id + " = window.open(URL, '" + id + "', 'toolbar=0, scrollbars=0, location=0, statusbar=0, menubar=0, resizable=0, width=660, height=550, left=360, top=160');");
	}