// JavaScript Document
//Form validation functions

function validateForm(formName)
{
	var formTitle = formName;
	
	switch (formTitle)
	{
		case 'frm_contact_us':
			OkToSubmit_contactUs(formTitle);
		break;
		
		case 'frm_request_literature':
			OkToSubmit_requestLiterature(formTitle);
		break;
		
		//Add new validation calls for other forms:
		//individual validation function name format: OkToSubmit_[formName]
		/*case '':
		
		break;*/
		
		default:
			alert("No validation is necessary for this form.");
	}
}

function OkToSubmit_contactUs(formTitle)
{
	//var f = document.forms[0]; //original statement
	var f = eval("document."+formTitle);
	var err = "";
	var intErr = 0;
	var bad = 0;
	var err_sorry = "Sorry, we were unable to process your request.\nPlease complete the following:\n\n";
	var err_fname = "Enter your First Name\n";
	var err_lname = "Enter your Last Name\n";
	var err_street = "Enter your Street Address\n";
	var err_city = "Enter your City\n";
	var err_state1 = "Select your State/Province\n";
	var err_state2 = "Select a valid State/Province\n";
	var err_country = "Indicate your Country\n";
	var err_zip1 = "Enter your Zip/Postal Code\n";
	var err_zip2 = "Enter a valid Zip/Postal Code\n";
	var err_phone1 = "Enter your Area Code and Phone Number\n";
	var err_phone2 = "Enter your Area Code\n";
	var err_phone3 = "Enter your Phone Number\n"
	var err_phone4 = "Enter a valid Area Code\n";
	var err_phone5 = "Enter a valid Phone Number\n";
	var err_email1 = "Enter your E-mail Address\n";
	var err_email2 = "Enter a valid E-mail Address\n";
	var err_conf_email1 = "Please Confirm your E-mail Address\n";
	var err_conf_email2 = "The E-mail Addresses entered are not the same\n";
	var err_category = "Select a Category\n";
	
	if(trim(f.elements["fname"]) == "")
		err += err_fname;
	if(trim(f.elements["lname"]) == "")
		err += err_lname;
	if(trim(f.elements["category"]) == "")
		err += err_category;
	/*if(trim(f.elements["street"]) == "")
		err += err_street;
	if(trim(f.elements["city"]) == "")
		err += err_city;
	if(f.elements["state"].selectedIndex == 0)
		err += err_state1;
	else
	{
		if(f.elements["country"][0].checked)
		{
			if(f.elements["state"].selectedIndex > 52)
				err += err_state2;
		}
		else if(f.elements["country"][1].checked)
		{
			if(f.elements["state"].selectedIndex < 54)
				err += err_state2;
		}
		
	}
	if(!f.elements["country"][0].checked && !f.elements["country"][1].checked)
		err += err_country;*/
	if(trim(f.elements["zip"]) == "")
		err += err_zip1;
	if(trim(f.elements["phone1"]) == "" && trim(f.elements["phone2"]) == "")
		err += err_phone1;
	else
	{
		var phone2 = trim(f.elements["phone2"]);
		
		if(phone2.length == 8)
			phone2 = phone2.substring(0, 3) + phone2.substring(4,8);
		
		if(trim(f.elements["phone1"]) == "")
			err += err_phone2;
		else if(trim(f.elements["phone1"]).length != 3)
			err += err_phone4;
		else if(!checkNumber(trim(f.elements["phone1"])) )
			err += err_phone4;
		if(phone2 == "")
			err += err_phone3;
		else if(phone2.length != 7)
			err += err_phone5;
		else if(!checkNumber(phone2))
			err += err_phone5;
	}
	if(trim(f.elements["email"]) == "")
		err += err_email1;
	else
	{
		if(checkEmail(trim(f.elements["email"])))
			err += err_email2;
		else
		{
			if(trim(f.elements["conf_email"]) == "")
				err += err_conf_email1;
			else if(trim(f.elements["conf_email"]) != trim(f.elements["email"]))
				err += err_conf_email2;			
		}
	}
	
	
	
	/*if(!f.elements["lit1"].checked && !f.elements["lit2"].checked && !f.elements["lit3"].checked && !f.elements["lit4"].checked && !f.elements["lit5"].checked)
		err += err_literature;
	if(!f.elements["user_type"][0].checked && !f.elements["user_type"][1].checked)
		err += err_utype1;
	else if(f.elements["user_type"][1].checked && !f.elements["showroom"][0].checked && !f.elements["showroom"][1].checked)
		err += err_utype2;*/
			
	if(err != "")
		alert(err_sorry+err);
	else
		f.submit();
}
	
function OkToSubmit_requestLiterature(formTitle)
{
	//var f = document.forms[0]; // original declaration
	var f = eval("document."+formTitle);
	var err = "";
	var intErr = 0;
	var bad = 0;
	var err_sorry = "Sorry, we were unable to process your request.\nPlease complete the following:\n\n";
	var err_fname = "Enter your First Name\n";
	var err_lname = "Enter your Last Name\n";
	var err_street = "Enter your Street Address\n";
	var err_city = "Enter your City\n";
	var err_state1 = "Select your State/Province\n";
	var err_state2 = "Select a valid State/Province\n";
	var err_country = "Indicate your Country\n";
	var err_zip1 = "Enter your Zip/Postal Code\n";
	var err_zip2 = "Enter a valid Zip/Postal Code\n";
	var err_phone1 = "Enter your Area Code and Phone Number\n";
	var err_phone2 = "Enter your Area Code\n";
	var err_phone3 = "Enter your Phone Number\n";
	var err_phone4 = "Enter a valid Area Code\n";
	var err_phone5 = "Enter a valid Phone Number\n";
	var err_email1 = "Enter your E-mail Address\n";
	var err_email2 = "Enter a valid E-mail Address\n";
	var err_utype1 = "Indicate if you are a Consumer or Trade Professional\n";
	var err_utype2 = "Indicate if you have a Trade Showroom\n";
	
	if(trim(f.elements["fname"]) == "")
		err += err_fname;
	if(trim(f.elements["lname"]) == "")
		err += err_lname;
	if(trim(f.elements["street"]) == "")
		err += err_street;
	if(trim(f.elements["city"]) == "")
		err += err_city;
	if(f.elements["state"].selectedIndex == 0)
		err += err_state1;
	else
	{
		if(f.elements["country"][0].checked)
		{
			if(f.elements["state"].selectedIndex > 52)
				err += err_state2;
		}
		else if(f.elements["country"][1].checked)
		{
			if(f.elements["state"].selectedIndex < 54)
				err += err_state2;
		}
		
	}
	if(!f.elements["country"][0].checked && !f.elements["country"][1].checked)
		err += err_country;
	if(trim(f.elements["zip"]) == "")
		err += err_zip1;
	else if(f.elements["country"][1].checked)
	{
		if(!checkPostalCode(f.elements["zip"]))
			err += err_zip2;
	}
	if(trim(f.elements["phone1"]) == "" && trim(f.elements["phone2"]) == "")
		err += err_phone1;
	else
	{
		if(trim(f.elements["phone1"]) == "")
			err += err_phone2;
		else if(trim(f.elements["phone1"]).length < 3 || !checkNumber(trim(f.elements["phone1"])))
			err += err_phone4;
		if(trim(f.elements["phone2"]) == "")
			err += err_phone3;
		else if(trim(f.elements["phone2"]).length < 7)
			err += err_phone5;
	}
	if(trim(f.elements["email"]) == "")
		err += err_email1;
	else
	{
		if(checkEmail(trim(f.elements["email"])))
			err += err_email2;
	}
	if(!f.elements["user_type"][0].checked && !f.elements["user_type"][1].checked)
		err += err_utype1;
	else if(f.elements["user_type"][1].checked && !f.elements["showroom"][0].checked && !f.elements["showroom"][1].checked)
		err += err_utype2;
			
	if(err != "")
		alert(err_sorry+err);
	else
		f.submit();
}	


function checkNumber(strVal)
{
	var str = ""+strVal;
	var blnNum = true;
	var x = 0;
	
	for(x=0;x<=str.length-1;x++)
	{
		if(str.charCodeAt(x) < 48 || str.charCodeAt(x) > 57)
			blnNum = false;
	}
	
	return blnNum;
}
	
function checkEmail(strVal)
{
	var blnErr = false;

	if(strVal.length < 6)
		blnErr = true;
	else if(strVal.indexOf("@") == 0 || strVal.lastIndexOf("@") == strVal.length-1)
		blnErr = true;
	else if(strVal.indexOf(".") == 0 || strVal.lastIndexOf(".") == strVal.length-1)
		blnErr = true;
	else if(strVal.lastIndexOf(".") < strVal.lastIndexOf("@"))
		blnErr = true;
	else if(strVal.indexOf("@") < strVal.lastIndexOf("@"))
		blnErr = true;
	else if((strVal.indexOf(".") - strVal.indexOf("@")) == 1)
		blnErr = true;
	else if(strVal.indexOf("@") < strVal.lastIndexOf("@"))
		blnErr = true;
	else if(strVal.indexOf("@") < 0 || strVal.indexOf(".") < 0)
		blnErr = true;
	else if(strVal.indexOf(" ") > 0 || strVal.indexOf(" ") == 0)
		blnErr = true;

	if(!blnErr)
		blnErr = checkEmailChars(strVal);

	return blnErr;
}

function checkEmailChars(theText)
{  
	var compareString1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-_.&";
	var compareString2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890.-";
	var pos = theText.indexOf("@");
	var found = false;
		
	/****Check front portion of email before @ sign*******/
	for(i = 0;i<pos;i++)
	{  
		if(compareString1.indexOf(theText.charAt(i)) < 0)
		{  
			found = true;
			break;
		}
	}
		
	if(!found)
	{			
		/****Check email address after @ sign*******/
		for(j = pos + 1 ;j<theText.length;j++)			
		{				
			if(compareString2.indexOf(theText.charAt(j)) < 0)
			{  
				found = true;
				break;
			}
		}
	}
		
		
	return(found);
}

function checkPostalCode(objField)
{
	var str1 = "";
	var str2 = "";
	var str3 = "";
	var intPos1 = 0;
	var intPos2 = 0;
	var intLen = 0;
	var intOkCounter = 0;

	if(objField.value != "")
	{
		intLen = objField.value.length;
		if(intLen > 7)
			return false;
		else if(intLen == 6)
		{
			intOkCounter = checkPostalCharOrder(objField.value);
			if(intOkCounter == 6)
				return true;
			else
				return false;
		}
		else
		{
			intPos1 = objField.value.indexOf("-");
			if(intPos1 > 0)
			{
				str1 = objField.value.substr(0, intPos1);
				str2 = objField.value.substr(intPos1+1, intLen);
				str3 = str1 + str2;
				intOkCounter = checkPostalCharOrder(str3);
			}
				
			intPos2 = objField.value.indexOf(" ");
			if(intPos2 > 0)
			{
				str1 = objField.value.substr(0, intPos2);
				str2 = objField.value.substr(intPos2+1, intLen);
				str3 = str1 + str2;
				intOkCounter = checkPostalCharOrder(str3);
			}
			if(intOkCounter == 6)
				return true;
			else
				return false;
		}
	}
	else
		return false;
}

function checkPostalCharOrder(strChars)
{
	var intOkCounter = 0;

	if((strChars.charCodeAt(0) >= 65 && strChars.charCodeAt(0) <= 90) ||
	   (strChars.charCodeAt(0) >= 97 && strChars.charCodeAt(0) <= 122))
	{
		intOkCounter++;
	}
	if((strChars.charCodeAt(1) >= 48 && strChars.charCodeAt(1) <= 57))
	{
		intOkCounter++;
	}
	if((strChars.charCodeAt(2) >= 65 && strChars.charCodeAt(2) <= 90) ||
	   (strChars.charCodeAt(2) >= 97 && strChars.charCodeAt(2) <= 122))
	{
		intOkCounter++;
	}
	if((strChars.charCodeAt(3) >= 48 && strChars.charCodeAt(3) <= 57))
	{
		intOkCounter++;
	}
	if((strChars.charCodeAt(4) >= 65 && strChars.charCodeAt(4) <= 90) ||
	   (strChars.charCodeAt(4) >= 97 && strChars.charCodeAt(4) <= 122))
	{
		intOkCounter++;
	}
	if((strChars.charCodeAt(5) >= 48 && strChars.charCodeAt(5) <= 57))
	{
		intOkCounter++;
	}

	return intOkCounter;
}	