var states= new Array("AA", "AE", "AL", "AK", "AP", "AS", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FM", "FL", "GA", "GU", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MH", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "MP", "OH", "OK", "OR", "PW", "PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VI", "VA", "WA", "WV", "WI", "WY");
var provinces = new Array("AB", "BC", "MB", "NB", "NL", "NS", "NT", "NU", "ON", "PE", "QC", "SK", "YT");

var displayNames = new Object();
displayNames["firstname"] = "First Name";
displayNames["lastname"] = "Last Name";
displayNames["company_school"] = "Company - School";
displayNames["country"] = "Country";
displayNames["address1"] = "Address 1";
displayNames["address2"] = "Address 2";
displayNames["city"] = "City";
displayNames["state"] = "State";
displayNames["zip"] = "Zip";
displayNames["email"] = "Your email address";
displayNames["email_confirmation"] = "Confirm email address";
displayNames["catalog"] = "Catalogs Requested";
displayNames["category"] = "Category";
displayNames["grade"] = "Grade Level";
displayNames["subject"] = "Subject";
displayNames["interests"] = "Interests";
displayNames["title"] = "Title";
displayNames["optemail"] = "Optemail";

var error = '';
var error1 = '';
var required_msg = "The following fields are required:\n";
var msg = '';
var preamble = "We're sorry. There were some errors with your submission. Please note the following:\n";

function check_zip(zip_element) {
      var first_pattern = /^\d{5}$/;
      var second_pattern = /^\d{5}-\d{4}$/;

  if (zip_element) {
  if (zip_element.value.match(first_pattern)) {
  return true;
              }

       if (zip_element.value.match(second_pattern)) {

        return true;
              }

       alert("We're sorry, the zip code you entered is not valid for a U.S. address.  Please check the form and enter your zip code again. If you are entering a zip+4 code, be sure to include the dash. Also, please note that printed catalogs can only be sent to addresses within the United States.");

                        return false;
          }

}

function display_states() {
	for (var i = 0; i < states.length; i++) {
		document.write('<option value="' + states[i] + '">' + states[i]);
	}
}


function set_listing(arg_country, arg_state_provinces) {
	var select_country = arg_country;
	var select_states_provinces = arg_state_provinces;
	var selected_country = select_country.options[select_country.selectedIndex].value;
	select_states_provinces.options.length=0;
	if (selected_country == "USA"){
   		select_states_provinces.options[select_states_provinces.options.length] = new Option("Select a State", '');	
		for(var i=0; i<states.length; i++)  
   			select_states_provinces.options[select_states_provinces.options.length] = new Option(states[i], states[i]);
   			select_states_provinces.style.visibility = "visible";
 	}
	else if (selected_country == "Canada"){
		select_states_provinces.options[select_states_provinces.options.length] = new Option("Select a Province", '');	
   		for(var i=0; i<provinces.length; i++)
    	 	select_states_provinces.options[select_states_provinces.options.length] = new Option(provinces[i], provinces[i]);
    	 	select_states_provinces.style.visibility = "visible";
 	}else{
	 	select_states_provinces.options[select_states_provinces.options.length] = new Option("N/A", ' ');
	}
}

function check_noemail(){
	check_required_fields();
	if(error.length !=0) {
		msg += error;	 
	}	
	if(error1.length > 0) {
		msg += error1;	 
	}	
	if(msg.length > 0){
		alert(preamble + msg);
		msg='';
	 	error='';
	 	error1='';
		return false;	
	}
	return true;
	
}
function check(arg_email){
	check_required_fields();
	check_email(arg_email[0], arg_email[1]);
		
	if(error.length !=0) {
		msg += error;	 
	}	
	if(error1.length > 0) {
		msg += error1;	 
	}	
	if(msg.length > 0){
		alert(preamble + msg);
		msg='';
	 	error='';
	 	error1='';
		return false;	
	}
	return true;
}

function check_noconfirmation(arg_email){
	check_required_fields();
	check_email_noconfirmation(arg_email[0]);
		
	if(error.length !=0) {
		msg += error;	 
	}	
	if(error1.length > 0) {
		msg += error1;	 
	}	
	if(msg.length > 0){
		alert(preamble + msg);
		msg='';
	 	error='';
	 	error1='';
		return false;	
	}
	return true;
}

function check_email(arg_email, arg_email_confirm){
	var emailStr = arg_email.value;
		var emailPat= /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/;
		var matchArray = emailStr.match(emailPat);
		if (matchArray == null) {
			error = "Invalid Email Address\n\n";
  		}
  		if (arg_email.value != arg_email_confirm.value){
	  		error += "Email Addresses Do Not Match\n\n";
  		}
}

function check_email_noconfirmation(arg_email){
	var emailStr = arg_email.value;
		var emailPat = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/;
		var matchArray = emailStr.match(emailPat);
		if (matchArray == null) {
			error = "Invalid Email Address\n\n";
  		}
}

function check_required_fields(){  	
	var wasError = false;
	var alreadyDid = new Object();
	for (i=0;i<document.requestform.length;i++){
		var tempobj=document.requestform.elements[i];
		if (tempobj.name.substring(0,1)=="R"){
			if ((tempobj.type == 'radio' || tempobj.type == 'checkbox'))
			{
				if(alreadyDid[tempobj.name] == undefined || alreadyDid[tempobj.name] == false){
						alreadyDid[tempobj.name] = false;
						if(tempobj.checked){
							alreadyDid[tempobj.name] = true;
						}
					}
			}			
			
			if((tempobj.value=='') && !(tempobj.type == "hidden")){
				var underscore = tempobj.name.indexOf('_');
				if(wasError == false){
					error1 += required_msg;
					wasError = true;
				}
				error1 += displayNames[tempobj.name.substring(underscore+ 1)] + "\n"; 
				
			}
		}
	}
	for(var t in alreadyDid){
		if(alreadyDid[t] == false){
			if(wasError == false){
					error1 += required_msg;
					wasError = true;
			}
			var underscore = t.indexOf('_');
			error1 += displayNames[t.substring(underscore+ 1)] + "\n"; 
		}	
	}
}

function getQuery(arg_email){
	
	var query = window.location.search.substring(1);
	var elements = query.split("&");
	for(var i = 0; i < elements.length; i++){
		var pair = elements[i].split("=");
		if(pair[0] == "email"){
			for (i=0;i<arg_email.length;i++){
			arg_email[i].value = pair[1];
			}
		}	
	}
}


function getQueryPlusID(arg_email){
	
	var query = window.location.search.substring(1);
	var elements = query.split("&");
	for(var i = 0; i < elements.length; i++){
		var pair = elements[i].split("=");
		if(pair[0] == "email"){
			for (i=0;i<arg_email.length-1;i++){
			arg_email[i].value = pair[1];
			}
		}
		if(pair[0] == "id"){
			arg_email[arg_email.length-1].value = pair[1];
		}	
	}
}

