/*==================================================
 * AUTHOR: James Arvigo
 * DATE  : Revised 10-01-2011
 * USE   : 
 * -- Loads country & state select lists
 * -- Changes state lists based on country
 * -- Validates email and phone      
 *================================================*/
/* State Lists */
var statesUS = '<option selected value="--">Select Your State</option><option value="AL">Alabama (AL)</option><option value="AK">Alaska (AK)</option><option value="AZ">Arizona (AZ)</option><option value="AR">Arkansas (AR)</option><option value="CA">California (CA)</option><option value="CO">Colorado (CO)</option><option value="CT">Connecticut (CT)</option><option value="DE">Delaware (DE)</option><option value="DC">District of Columbia (DC)</option><option value="FL">Florida (FL)</option><option value="GA">Georgia (GA)</option><option value="GU">Guam (GU)</option><option value="HI">Hawaii (HI)</option><option value="ID">Idaho (ID)</option><option value="IL">Illinois (IL)</option><option value="IN">Indiana (IN)</option><option value="IA">Iowa (IA)</option><option value="KS">Kansas (KS)</option><option value="KY">Kentucky (KY)</option><option value="LA">Louisiana (LA)</option><option value="ME">Maine (ME)</option><option value="MD">Maryland (MD)</option><option value="MA">Massachusetts (MA)</option><option value="MI">Michigan (MI)</option><option value="MN">Minnesota (MN)</option><option value="MS">Mississippi (MS)</option><option value="MO">Missouri (MO)</option><option value="MT">Montana (MT)</option><option value="NE">Nebraska (NE)</option><option value="NV">Nevada (NV)</option><option value="NH">New Hampshire (NH)</option><option value="NJ">New Jersey (NJ)</option><option value="NM">New Mexico (NM)</option><option value="NY">New York (NY)</option><option value="NC">North Carolina (NC)</option><option value="ND">North Dakota (ND)</option><option value="OH">Ohio (OH)</option><option value="OK">Oklahoma (OK)</option><option value="OR">Oregon (OR)</option><option value="PA">Pennyslvania (PA)</option><option value="PR">Puerto Rico (PR)</option><option value="RI">Rhode Island (RI)</option><option value="SC">South Carolina (SC)</option><option value="SD">South Dakota (SD)</option><option value="TN">Tennessee (TN)</option><option value="TX">Texas (TX)</option><option value="UT">Utah (UT)</option><option value="VT">Vermont (VT)</option><option value="VA">Virginia (VA)</option><option value="VI">Virgin Islands (VI)</option><option value="WA">Washington (WA)</option><option value="WV">West Virginia (WV)</option><option value="WI">Wisconsin (WI)</option><option value="WY">Wyoming (WY)</option>';

var statesCA = '<option selected value="--">Select Your Province</option><option value="AB">Alberta (AB)</option><option value="BC">British Columbia (BC)</option><option value="MB">Manitoba (MB)</option><option value="NB">New Brunswick (NB)</option><option value="NL">Newfoundland and Labrador (NL)</option><option value="NT">Northwest Territories (NT)</option><option value="NS">Nova Scotia (NS)</option><option value="NU">Nunavut (NU)</option><option value="PE">Prince Edward Island (PE)</option><option value="SK">Saskatchewan (SK)</option><option value="ON">Ontario (ON)</option><option value="QC">Quebec (QC)</option><option value="YT">Yukon (YT)</option>';

var statesMX = '<option selected value="--">Seleccione su Estado</option><option value="AGS">Aguascalientes (AGS)</option><option value="BCN">Baja California Norte (BCN)</option><option value="BCS">Baja California Sur (BCS)</option><option value="CAM">Campeche (CAM)</option><option value="CHIS">Chiapas (CHIS)</option><option value="CHIH">Chihuahua (CHIH)</option><option value="COAH">Coahuila (COAH)</option><option value="COL">Colima (COL)</option><option value="DF">Distrito Federal (DF)</option><option value="DGO">Durango (DGO)</option><option value="GTO">Guanajuato (GTO)</option><option value="GRO">Guerrero (GRO)</option><option value="HGO">Hidalgo (HGO)</option><option value="JAL">Jalisco (JAL)</option><option value="EDM">México - Estado de (EDM)</option><option value="MICH">Michoacán (MICH)</option><option value="MOR">Morelos (MOR)</option><option value="NAY">Nayarit (NAY)</option><option value="NL">Nuevo León (NL)</option><option value="OAX">Oaxaca (OAX)</option><option value="PUE">Puebla (PUE)</option><option value="QRO">Querétaro (QRO)</option><option value="QROO">Quintana Roo (QROO)</option><option value="SLP">San Luis Potosí (SLP)</option><option value="SIN">Sinaloa (SIN)</option><option value="SON">Sonora (SON)</option><option value="TAB">Tabasco (TAB)</option><option value="TAMPS">Tamaulipas (TAMPS)</option><option value="TLAX">Tlaxcala (TLAX)</option><option value="VER">Veracruz (VER)</option><option value="YUC">Yucatán (YUC)</option><option value="ZAC">Zacatecas (ZAC)</option>';

/* jQuery form handling */
$(document).ready(function() {
	// Handle Country changes
	$('#country').change(function() {
		var selCountry = $('#country').val();
		if (selCountry == "US")
		{
			$("#state").show();
			$("#state").html(statesUS);
		}
		else if (selCountry == "CA")
		{
			$("#state").show();
			$("#state").html(statesCA);
		}
		else if (selCountry == "MX")
		{
			$("#state").show();
			$("#state").html(statesMX);
		}
		else
		{
			 $("#state").hide();
		}
	});

	// Add form validation
	$("#frmRequest").validate({
		submitHandler: function(form) {
			var hidcaptcha = $("#captcha").val();
			var txtcaptcha = $("#txtcaptcha").val();
			var country = $("#country").val();
			var zipcode = trim($("#zipcode").val());
			var state = $("#state").val();
			
			// Verify zip code
			if (country=="US" || country=="CA")
			{
				if (zipcode == "")
				{
					alert('Please enter a zip or postal code.');
					$("#zipcode").css("border","1px solid red");
					$("#zipcode").focus();
					return(false);
				}
			}

			// Verify selection of a state
			if (country=="US" || country=="CA" || country=="MX")
			{
				if (state == "--")
				{
					alert('Please indicate what ' + country + ' state you are in.');
					$("#state").css("border","1px solid red");
					$("#state").focus();
					return(false);
				}
			}

			// Verify the captcha
			if (hidcaptcha == txtcaptcha)
			{
				form.submit();
			}
			else
			{
				alert('Please enter the correct verification code.\n\n( Small blue field at bottom of the form. )');
				$("#txtcaptcha").css("border","1px solid red");
				$("#txtcaptcha").focus();
				return(false);
			}
			
			
		}
	});	
});


/* Function to open popup window */
function open_window(url,title,l, t, w, h)
{
	var windowprops = "location=no,scrollbars=no,menubars=no,toolbars=no,resizable=no" + ",left=" + l + ",top=" + t + ",width=" + w + ",height=" + h;
	popup = window.open(url,title,windowprops);
}

/* Add "trim" method to String data type */
function trim(str) { return str.replace(/^\s+|\s+$/g,""); }
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); }	

/* Form Validation */
function frmrequest()
{	
	var msg="";
	var bval = true;
	
	if(bval)
	{
		bval=emailCheck();
	}
	
	if(bval){
		var checkboxval=document.frmCheck.txtAddress.length;
		for(i=0; i<checkboxval; i++){
			if(document.frmCheck.txtAddress[i].checked){
				var checkvalue=i;
				break;
			}
		}
		if(checkvalue==0){
			//alert ("Hi");
			if(bval){
				for(i=0; i<3; i++)
				{
					if(Field1[i]=="" || Field1[i]==null)
					{
						//alert("Please fill " + FieldName[i] + " field.");
						msg = msg + "Please Fill:"
						msg = msg + "\n" + ">> " + FieldName1[i] + "Field";
						alert(msg);
						bval = false;
						break;
			
					}
				}
			}
		}
	}
	
	if(bval && document.frmCheck.txtcaptcha.value != document.frmCheck.captcha.value)
	{
		alert("Invalid Captcha Number");
		return false;
	}
	return bval;
}

/* Valid Email */
function emailCheck() 
{
	var emailPat=/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/
	var matchArray;	
	var emailStr1 =document.frmCheck.email.value;	
	
	matchArray = emailStr1.match(emailPat);
	if (matchArray == null) 
	
	{
		alert("Please Enter Valid Email Address"); 
		document.frmCheck.email.focus;
		return false;
	}	
	else 
	return true;
}

