// set some vars
window.defaultStatus = "";

// form handling functions
function clearMissing(fm) {
	fm.missing.value = "";
}
function trimFormField(fm, fieldname) {
	formfield = eval("fm." + fieldname);
	formfield.value = formfield.value.replace(/^ */g, '').replace(/ *$/g, '');
}
function requiredFormField(fm, fieldname, fielddesc) {
	formfield = eval("fm." + fieldname);
	if (formfield.value == "")
		addMissing(fm, fielddesc + " is a required field");
}
function emailField(fm, fieldname, fielddesc, reqd) {
	formfield = eval("fm." + fieldname);	
	if (formfield.value == "" && reqd)
		addMissing(fm, fielddesc + " is a required field");
	else if (formfield.value != "") {
		temp = formfield.value;
		found = temp.search(/^[\.\!\#\$\%\*\/\?\|\^\{\}\`\~\&\'+\-=_a-z0-9]+@[0-9a-z\._-]+\.[a-z]{2,4}$/i);
		if (found != 0)
			addMissing(fm, fielddesc + " must be in the form abc@def.com");
	}
}
function dateField(fm, fieldname, fielddesc, reqd) {
	formfield = eval("fm." + fieldname);
	if (formfield.value == "" && reqd)
		addMissing(fm, fielddesc + " is a required field");
	else if (formfield.value != "") {
		d = new Date(formfield.value);
		if (d.getFullYear() >= 1900 && d.getFullYear() <= 1969)
			d.setYear(d.getFullYear() + 100);
		if (isNaN(d) || d.getFullYear() < 1970)
			addMissing(fm, fielddesc + " must be in a valid date format.");
		else {
			month = d.getMonth() + 1;
			month_str = month < 10 ? "0" + month : month;
			date = d.getDate();
			date_str = date < 10 ? "0" + date : date;	
			formfield.value = month_str + "/" + date_str + "/" + d.getFullYear();
		}
	}
}
function regexpField(fm, regexp, fieldname, fielddesc, msg, reqd) {
	formfield = eval("fm." + fieldname);
	if (formfield.value != "") {
		temp = formfield.value + " ";
		found = temp.search(regexp);
		if (found != 0)
			addMissing(fm, fielddesc + msg);
	} else if (reqd) {
		addMissing(fm, fielddesc + " is a required field");
	}
}
function addMissing(fm, errmsg) {
	fm.missing.value += "," + errmsg;
}
function submitForm(fm, missingurl) {
	if (fm.missing.value != "") {
		fm.missing.value = fm.missing.value.substring(1);
		fm.action = missingurl;
	}
	//fm.submit();
}


function inforequestcheck(fm, missingurl) {
	clearMissing(fm);
	document.getElementById('error_items').innerHTML = '';
	document.getElementById('error_list').style.display = 'none';
	trimfields = new Array("Contact","Email","Phone1","Notes","Address1","City","State","Zip","Country");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);

	var errors = false;
	errors = !requiredFormField1(fm, 'Contact', 'Full Name') || errors;
	errors = !requiredFormField1(fm, 'Notes', 'Comments') || errors;
	errors = !regexpField1(fm, /^[\.\!\#\$\%\*\/\?\|\^\{\}\`\~\&\'+\-=_a-z0-9]+@[0-9a-z\._-]+\.[a-z]{2,4}$/i, 'Email', 'Email must be in the form abc@def.com') || errors;

	//if (fm.Phone1.value.match(/\d{10}/)) {
	//	fm.Phone1.value = fm.Phone1.value.substring(0, 3) + "-" + fm.Phone1.value.substring(3, 6) + "-" + fm.Phone1.value.substring(6);
	//}

	//errors = !regexpField1(fm, /\d{3}-\d{3}-\d{4}/, 'Phone1', 'Phone Number must be in the form 123-555-1212') || errors;


	if ((fm.Country.value == "United States" && "AB,BC,MB,NB,NF,NS,NT,ON,PE,PQ,QC,QU,SA,SK,YT".indexOf(fm.State.value) >= 0) ||
		(fm.Country.value == "Canada" && "AB,BC,MB,NB,NF,NS,NT,ON,PE,PQ,QC,QU,SA,SK,YT,NA".indexOf(fm.State.value) < 0) ||
		("United States,Canada".indexOf(fm.Country.value) < 0 && fm.State.value != "NA")) {
		_alert("State and Country are mismatched");
		errors = true;
	}

	if (fm.Country.value == "United States") {
		errors = (fm.Zip.value.length > 0 && !regexpField1(fm, /\d{5}(-\d{4}){0,1}/, "Zip", "Zip must be in the form 12345 or 12345-6789 for the United States", false)) || errors;
	} else if (fm.Country.value == "Canada") {
		errors = (fm.Zip.value.length > 0 && !regexpField1(fm, /[a-zA-Z]{1}\d{1}[a-zA-Z]{1}\s{0,1}\d{1}[a-zA-Z]{1}\d{1}/, "Zip", "Zip must be in the form A1A 1A1 for Canada", false)) || errors;
	}

	var checked = false;
	for (var i = 0; i < fm['UWIContBy[]'].length; i++) {
		checked = checked || fm['UWIContBy[]'][i].checked;
	}
	if (!checked) {
		_alert('Please select how we should contact you');
		errors = true;
	}

	return !errors;

}

function requiredFormField1(form, field, fieldname)
{
	if (!form[field].value) {
		_alert(fieldname + ' is required field');
		return false;
	}
	return true;
}

function regexpField1(form, regexp, field, err) 
{
	if (!form[field].value.match(regexp)) {
		_alert(err);
		return false;
	}
	return true;
}

function _alert(message)
{
	document.getElementById('error_items').innerHTML = document.getElementById('error_items').innerHTML + '&nbsp;&nbsp;&nbsp;- ' + message + '<br>';
	document.getElementById('error_list').style.display = 'block';
}


function checkoutbillingcheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("COMPANY_b","FNAME_b","LNAME_b","ADDR1_b","ADDR2_b","CITY_b","ZIP_b","EMAIL_b","PHONE_b","FAX_b");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);	
	reqdfields = new Array("FNAME_b","LNAME_b","ADDR1_b","CITY_b");
	reqddescs = new Array("First Name","Last Name","Address 1","City");
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	if ((fm.COUNTRY_b.value == "US" && "NA,AB,BC,MB,NB,NF,NS,NT,ON,PE,PQ,QC,QU,SA,SK,YT".indexOf(fm.STATE_b.value) >= 0) ||
		(fm.COUNTRY_b.value == "CA" && "AB,BC,MB,NB,NF,NS,NT,ON,PE,PQ,QC,QU,SA,SK,YT".indexOf(fm.STATE_b.value) < 0) ||
		("US,CA".indexOf(fm.COUNTRY_b.value) < 0 && fm.STATE_b.value != "NA"))
		addMissing(fm, "State and Country are mismatched");
	if (fm.COUNTRY_b.value == "US")
		regexpField(fm, /\d{5}(-\d{4}){0,1}\s{1}/, "ZIP_b", "Zip", " must be in the form 12345 or 12345-6789", true);
	else if (fm.COUNTRY_b.value == "CA")
		regexpField(fm, /[a-zA-Z]{1}\d{1}[a-zA-Z]{1}\s{0,1}\d{1}[a-zA-Z]{1}\d{1}\s{1}/, "ZIP_b", "Zip", " must be in the form A1A 1A1", true);
	else regexpField(fm, /[\-a-zA-Z0-9]{1,10}\s{1}/, "ZIP_b", "Zip", " must be letters, numbers and dashes", false);
	if (fm.COUNTRY_b.value == "US") {
		tmp = fm.PHONE_b.value + " ";
		if (tmp.search(/\d{10}\s{1}/) == 0)
			fm.PHONE_b.value = fm.PHONE_b.value.substring(0, 3) + "-" + fm.PHONE_b.value.substring(3, 6) + "-" + fm.PHONE_b.value.substring(6);
		regexpField(fm, /\d{3}-\d{3}-\d{4}\s{1}/, "PHONE_b", "Phone", " must be in the form 123-555-1212", true);
		tmp = fm.FAX_b.value + " ";
		if (tmp.search(/\d{10}\s{1}/) == 0)
			fm.FAX_b.value = fm.FAX_b.value.substring(0, 3) + "-" + fm.FAX_b.value.substring(3, 6) + "-" + fm.FAX_b.value.substring(6);
		regexpField(fm, /\d{3}-\d{3}-\d{4}\s{1}/, "FAX_b", "Fax", " must be in the form 123-555-1212", false);
	} else {
		regexpField(fm, /[\-\d]{1,12}\s{1}/, "PHONE_b", "Phone", " must be numbers and dashes", true);
		regexpField(fm, /[\-\d]{1,12}\s{1}/, "FAX_b", "Fax", " must be numbers and dashes", false);
	}
	emailField(fm, "EMAIL_b", "E-mail Address", true);
	submitForm(fm, missingurl);
}
function calc_info_check(fm, missingurl) {	
	trimfields = new Array("fullname","company","email","phone","address1","address2","city","state_prov","zip","country");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);
	requiredFormField(fm, "fullname", "Full Name");
	requiredFormField(fm, "address1", "Address Line 1");
	requiredFormField(fm, "city", "City");
	requiredFormField(fm, "zip", "Zip/Postal Code");
	requiredFormField(fm, "phone", "Phone Number");
	if (fm.country.value == "Select Country")
		addMissing(fm, "Country is a required field");	
	emailField(fm, "email", "Email", true);
	tmp = fm.phone.value + " ";	
	if (tmp.search(/\d{10}\s{1}/) == 0)
		fm.phone.value = fm.phone.value.substring(0, 3) + "-" + fm.phone.value.substring(3, 6) + "-" + fm.phone.value.substring(6);
	regexpField(fm, /\d{3}-\d{3}-\d{4}\s{1}/, "phone", "Phone Number", " must be in the form 123-555-1212", false);	
	if ((fm.country.value == "United States" && "AB,BC,MB,NB,NF,NS,NT,ON,PE,PQ,QC,QU,SA,SK,YT".indexOf(fm.state_prov.value) >= 0) ||
		(fm.country.value == "Canada" && "AB,BC,MB,NB,NF,NS,NT,ON,PE,PQ,QC,QU,SA,SK,YT".indexOf(fm.state_prov.value) < 0) ||
		("United States,Canada".indexOf(fm.country.value) < 0 && fm.state_prov.value != "NA"))
		addMissing(fm, "State and Country are mismatched");	
	if (fm.country.value == "United States")
		regexpField(fm, /\d{5}(-\d{4}){0,1}\s{1}/, "zip", "Zip", " must be in the form 12345 or 12345-6789 for the United States", false);
	else if (fm.country.value == "Canada")
		regexpField(fm, /[a-zA-Z]{1}\d{1}[a-zA-Z]{1}\s{0,1}\d{1}[a-zA-Z]{1}\d{1}\s{1}/, "zip", "Zip", " must be in the form A1A 1A1 for Canada", false);
	//if (fm.howcontact.value == "Please Select")
		//addMissing(fm, "Please select how we should contact you");
		
	fm.friendname.value = fm.friendname.value.replace(/^ */g, '').replace(/ *$/g, '');
	if (fm.friendname.value == "" && fm.friendemail.value != "")
		fm.missing.value += "," + "Both Email-a-Friend fields are required if any are filled out.";
	if (fm.friendname.value != "" && fm.friendemail.value == "")
		fm.missing.value += "," + "Both Email-a-Friend fields are required if any are filled out."
	fm.friendemail.value = fm.friendemail.value.replace(/^ */g, '').replace(/ *$/g, '');
	if (fm.friendemail.value != "")  {
			temp = fm.friendemail.value;
			found = temp.search(/^[\.\!\#\$\%\*\/\?\|\^\{\}\`\~\&\'+\-=_a-z0-9]+@[0-9a-z\._-]+\.[a-z]{2,4}$/i);
			if (found != 0)
				fm.missing.value += "," + "Your Friend's E-mail must be in the form username@domain.com"
	}	
	if (fm.missing.value != "") {
		fm.missing.value = fm.missing.value.substring(1);
		fm.action = missingurl;
	}
	fm.submit();	
}

function checkEmailFriend ( ) {
    var fm = document.emailFriend;
	fm.yourname.value = fm.yourname.value.replace(/^ */g, '').replace(/ *$/g, '');
	if (fm.yourname.value == "")
		fm.missing.value += "," + "Your Name is required."	
	fm.youremail.value = fm.youremail.value.replace(/^ */g, '').replace(/ *$/g, '');	
	if (fm.youremail.value == "")
		fm.missing.value += "," + "Your E-mail is required."
	else {
		temp = fm.youremail.value;
		found = temp.search(/^[\.\!\#\$\%\*\/\?\|\^\{\}\`\~\&\'+\-=_a-z0-9]+@[0-9a-z\._-]+\.[a-z]{2,4}$/i);
		if (found != 0)
			fm.missing.value += "," + "Your E-mail must be in the form username@domain.com"
	}
	
	
	if (fm.missing != "")
		fm.action = "calc_email_friend.cfm";
 	
}