﻿var mPrefix = "You did not enter a value into the "
var mSuffix = " field. This is a required field. Please enter it now."
var mInvalidEmail = "This field must be a valid email address(like foo@bar.com).Please reenter it now."
var arrUSStates = new Array(59);
arrUSStates[0]=		"ALABAMA"
arrUSStates[1]=		"ALASKA"
arrUSStates[2]=		"AMERICAN SAMOA"
arrUSStates[3]=		"ARIZONA"
arrUSStates[4]=		"ARKANSAS"
arrUSStates[5]=		"CALIFORNIA"
arrUSStates[6]=		"COLORADO"
arrUSStates[7]=		"CONNECTICUT"
arrUSStates[8]=		"DELAWARE"
arrUSStates[9]=		"DISTRICT OF COLUMBIA"
arrUSStates[10]=	"FEDERATED STATES OF MICRONESIA"
arrUSStates[11]=	"FLORIDA"
arrUSStates[12]=	"GEORGIA"
arrUSStates[13]=	"GUAM"
arrUSStates[14]=	"HAWAII"
arrUSStates[15]=	"IDAHO"
arrUSStates[16]=	"ILLINOIS"
arrUSStates[17]=	"INDIANA"
arrUSStates[18]=	"IOWA"
arrUSStates[19]=	"KANSAS"
arrUSStates[20]=	"KENTUCKY"
arrUSStates[21]=	"LOUISIANA"
arrUSStates[22]=	"MAINE"
arrUSStates[23]=	"MARSHALL ISLANDS"
arrUSStates[24]=	"MARYLAND"
arrUSStates[25]=	"MASSACHUSETTS"
arrUSStates[26]=	"MICHIGAN"
arrUSStates[27]=	"MINNESOTA"
arrUSStates[28]=	"MISSISSIPPI"
arrUSStates[29]=	"MISSOURI"
arrUSStates[30]=	"MONTANA"
arrUSStates[31]=	"NEBRASKA"
arrUSStates[32]=	"NEVADA"
arrUSStates[33]=	"NEW HAMPSHIRE"
arrUSStates[34]=	"NEW JERSEY"
arrUSStates[35]=	"NEW MEXICO"
arrUSStates[36]=	"NEW YORK"
arrUSStates[37]=	"NORTH CAROLINA"
arrUSStates[38]=	"NORTH DAKOTA"
arrUSStates[39]=	"NORTHERN MARIANA ISLANDS"
arrUSStates[40]=	"OHIO"
arrUSStates[41]=	"OKLAHOMA"
arrUSStates[42]=	"OREGON"
arrUSStates[43]=	"PALAU"
arrUSStates[44]=	"PENNSYLVANIA"
arrUSStates[45]=	"PUERTO RICO"
arrUSStates[46]=	"RHODE ISLAND"
arrUSStates[47]=	"SOUTH CAROLINA"
arrUSStates[48]=	"SOUTH DAKOTA"
arrUSStates[49]=	"TENNESSEE"
arrUSStates[50]=	"TEXAS"
arrUSStates[51]=	"UTAH"
arrUSStates[52]=	"VERMONT"
arrUSStates[53]=	"VIRGIN ISLANDS"
arrUSStates[54]=	"VIRGINIA"
arrUSStates[55]=	"WASHINGTON"
arrUSStates[56]=	"WEST VIRGINIA "
arrUSStates[57]=	"WISCONSIN"
arrUSStates[58]=	"WYOMING"
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// U.S. phone numbers have 10 digits.
// They are formatted as 123 456 7890 or (123) 456-7890.
var digitsInUSPhoneNumber = 10;

var iUSPhone = "This field must be a 10 digit U.S. phone number (like 415 555 1212). Please reenter it now."

//Function to validate the form
function validate(frm)
{
    form_errors = 0; 
    //iterate through all the elements of the form and validate each field
    for (var i = 0; i < frm.elements.length; i++) 
    {
        if (trim(frm.elements[i].style.display) != "none")
        {
            if(CheckMandatory(frm.elements[i]))
                ValidateEmail(frm.elements[i],false);
            else
                ValidateEmail(frm.elements[i],true);
        }
        //if a field failed validation, set focus, and do not check other fields
        if (form_errors > 0)
        {
	        frm.elements[i].focus();
	        frm.elements[i].select();
	        return false;
        }
    }
    return true;
}

//Function to validate the form
function validateControls(controls)
{
    var arrControls = new Array();
    arrControls = controls.split(",");
    
    form_errors = 0; 
    //iterate through all the elements of the form and validate each field
    for (var i = 0; i < arrControls.length; i++) 
    {
        var curControl = document.getElementById(arrControls[i]);
        if(trim(curControl.style.display) !="none")
        {
            if(CheckMandatoryField(curControl))
            {
//                ValidateEmail(curControl,false);
//            }
//            else
//            {
                ValidateEmail(curControl,true);
            }
        }
        //if a field failed validation, set focus, and do not check other fields
        if (form_errors > 0)
        {
	        curControl.focus();
	        curControl.select();
	        return false;
        }
    }
    return true;
}

//Checks for the mandatory field for the control prefixed with Req
function CheckMandatory(field)
{
    var fieldname = new String(field.name);
	var fieldvalue = new String(field.value);
	var isBlankOK = false;
	
    //check if required fields have values
	if (trim(fieldname).indexOf("Req") != -1)
	{
		isBlankOK = false;
		if (!checkString(field, "", isBlankOK)) //is it blank?
		{
			//if it's blank, don't bother checking anything else
			form_errors++;
			return false;
		}
	}
	return true;
}

//Checks for the mandatory field
function CheckMandatoryField(field)
{
    var fieldname = new String(trim(field.name));
	var fieldvalue = new String(trim(field.value));
	var isBlankOK = false;
	
    //check if required fields have values	
	if (!checkString(field, "", isBlankOK)) //is it blank?
	{
		//if it's blank, don't bother checking anything else
		form_errors++;		
		return false;
	}	
	return true;
}


//Check the string value, for mandatory and whitespace
function checkString (theField, s, emptyOK)
{   // Next line is needed on NN3 to avoid "undefined is not a number" error
    // in equality comparison below.
    if (checkString.arguments.length == 2) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(trim(theField.value)))) return true;
    if (isWhitespace(trim(theField.value))) 
       return warnEmpty (theField, s);
    else return true;
}

//Empty string warning alert
function warnEmpty (theField, s)
{   
    //theField.focus(); -- Method not supprted in IE8Beta and Mozilla 2.0
    alert(mPrefix + s + mSuffix)
    return false
}
function ValidateEmail(field,isBlankOk)
{
    var fieldname = new String(trim(field.name));
	var fieldvalue = new String(trim(field.value));
	
	if(isBlankOk && trim(fieldvalue) != "")
	{
	    if(fieldname.indexOf("Email") != -1)
	    {
	        if(!isEmail(fieldvalue))
	        {	            
	            alert(mInvalidEmail);
	            form_errors++;
	            return false;
	        }	        
	    }
	    else if(fieldname.indexOf("Phone") != -1)
	    {
	        if(!checkUSPhone(fieldvalue,false))
	        {
	            alert(iUSPhone);
	            form_errors++;
	            return false;
	        }
	    }
	}
	else if (trim(fieldvalue) == "")
	{
	    return false;
	}
	return true;
}

function trim(myString) {
    while (myString.substring(0, 1) == ' ') {
        myString = myString.substring(1, myString.length);
    }

    while (myString.substring(myString.length - 1, myString.length) == ' ') {
        myString = myString.substring(0, myString.length - 1);
    }
    return myString;
}