// set some vars
window.defaultStatus = "";
var linenos = new Array();

// 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 == "")
		fm.missing.value = fm.missing.value + "," + fielddesc + " is a required field";
}
function emailField(fm, fieldname, fielddesc, reqd) {
	formfield = eval("fm." + fieldname);	
	if (formfield.value == "" && reqd)
		fm.missing.value = fm.missing.value + "," + fielddesc + " is a required field";
	else if (formfield.value != "") {
		temp = formfield.value + " ";
		found = temp.search(/[\w\.-]+@([\w-]+\.){1,3}[a-zA-Z]{2,}\s{1}/);
		if (found != 0)
			fm.missing.value = fm.missing.value + "," + fielddesc + " must be in the form abc@def.com";
	}
}
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)
			fm.missing.value = fm.missing.value + "," + fielddesc + msg;
	} else if (reqd) {
		fm.missing.value = fm.missing.value + "," + fielddesc + " is a required field";
	}
}
function submitForm(fm, missingurl) {
	if (fm.missing.value != "") {
		fm.missing.value = fm.missing.value.substring(1);
		fm.action = missingurl;
	}
	fm.submit();
}
function addtocart(fm, missingurl) {
	clearMissing(fm);
	trimFormField(fm, "qty");
	tmp = parseInt(fm.qty.value);
	if (isNaN(tmp))
		fm.qty.value = 0;
	else fm.qty.value = tmp;
	if (fm.qty.value <= 0)
		fm.missing.value += ",Quantity must be a valid number";
	if (fm.inv.value != "" && fm.qty.value > fm.inv.value)
		fm.missing.value += ",There are only " + fm.inv.value + " of these available";
	submitForm(fm, missingurl);
}
function checkcart(fm, missingurl, checkout) {
	clearMissing(fm);
	for (i = 0; i < linenos.length; i++) {
		trimFormField(fm, "qty_" + linenos[i]);
		regexpField(fm, /\d{1,}\s{1}/, "qty_" + linenos[i], "Line " + (i+1) + " Quantity", " must be a valid number", false);
	}
	if (checkout)
		fm.chkout.value = "1";
	else fm.chkout.value = "0";
	submitForm(fm, missingurl);
}
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]);
	regexpField(fm, /\d{5}(-\d{4}){0,1}\s{1}/, "ZIP_b", "Zip", " must be in the form 12345 or 12345-6789", true);
//	if (fm.PHONE_b.value == "" && fm.INTL_b.value == "")
//		fm.missing.value = fm.missing.value + ",Phone or Int'l Phone is a required field";
	emailField(fm, "EMAIL_b", "E-mail Address", true);
	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);
//	regexpField(fm, /[\d-]+\s{1}/, "INTL_b", "Int'l Phone", " must be digits and dashes only", false);
	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);
	submitForm(fm, missingurl);
}
function checkoutshippingcheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("SHIPTO","ADDR1_s","ADDR2_s","CITY_s","ZIP_s","EMAIL_s","PHONE_s","FAX_s");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);	
	reqdfields = new Array("SHIPTO","ADDR1_s","CITY_s");
	reqddescs = new Array("Ship To","Address 1","City");
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	regexpField(fm, /\d{5}(-\d{4}){0,1}\s{1}/, "ZIP_s", "Zip", " must be in the form 12345 or 12345-6789", true);
//	if (fm.PHONE_s.value == "" && fm.INTL_s.value == "")
//		fm.missing.value = fm.missing.value + ",Phone or Int'l Phone is a required field";
	emailField(fm, "EMAIL_s", "E-mail Address", true);
	tmp = fm.PHONE_s.value + " ";
	if (tmp.search(/\d{10}\s{1}/) == 0)
		fm.PHONE_s.value = fm.PHONE_s.value.substring(0, 3) + "-" + fm.PHONE_s.value.substring(3, 6) + "-" + fm.PHONE_s.value.substring(6);
	regexpField(fm, /\d{3}-\d{3}-\d{4}\s{1}/, "PHONE_s", "Phone", " must be in the form 123-555-1212", true);
//	regexpField(fm, /[\d-]+\s{1}/, "INTL_s", "Int'l Phone", " must be digits and dashes only", false);
	tmp = fm.FAX_s.value + " ";
	if (tmp.search(/\d{10}\s{1}/) == 0)
		fm.FAX_s.value = fm.FAX_s.value.substring(0, 3) + "-" + fm.FAX_s.value.substring(3, 6) + "-" + fm.FAX_s.value.substring(6);
	regexpField(fm, /\d{3}-\d{3}-\d{4}\s{1}/, "FAX_s", "Fax", " must be in the form 123-555-1212", false);
	submitForm(fm, missingurl);
}
function copyaddress(fm) {
	fm.SHIPTO.value = fm.FNAME_b.value + " " + fm.LNAME_b.value;
	fm.ADDR1_s.value = fm.ADDR1_b.value;
	fm.ADDR2_s.value = fm.ADDR2_b.value;
	fm.CITY_s.value = fm.CITY_b.value;
	for (i = 0; i < fm.STATE_s.options.length; i++)
		if (fm.STATE_s.options[i].value == fm.STATE_b.value)
			fm.STATE_s.options[i].selected = true;
	fm.ZIP_s.value = fm.ZIP_b.value;
//	for (i = 0; i < fm.COUNTRY_s.options.length; i++)
//		if (fm.COUNTRY_s.options[i].value == fm.COUNTRY_b.value)
//			fm.COUNTRY_s.options[i].selected = true;
	fm.COUNTRY_s.value = fm.COUNTRY_b.value;
	fm.PHONE_s.value = fm.PHONE_b.value;
//	fm.INTL_s.value = fm.INTL_b.value;
	fm.FAX_s.value = fm.FAX_b.value;
	fm.EMAIL_s.value = fm.EMAIL_b.value;
}
function checkoutshipmethodcheck(fm, missingurl) {
	clearMissing(fm);
	submitForm(fm, missingurl);
}
function checkoutpaymentcheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("CCNAME","CCNUMBER");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);
	requiredFormField(fm, "CCNAME", "Name on Card");
	regexpField(fm, /\d{15,16}\s{1}/, "CCNUMBER", "Card Number", " must be 15 or 16 digits", true);	
	thismonth = (new Date()).getMonth() + 1;
	thisyear = (new Date()).getFullYear();
	if (fm.CCYEAR.value == thisyear && fm.CCMONTH.value <= thismonth)
		fm.missing.value += ",Card Expiration must not be an expired month/year";
	submitForm(fm, missingurl);
}
function contactcheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("firstname","lastname","address1","address2","city","zipcode","email","phone","fax","other_heard","additional_comments");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);
	reqdfields = new Array("firstname","lastname","address1","city");
	reqddescs = new Array("First Name","Last Name","Address 1","City");
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	regexpField(fm, /\d{5}(-\d{4}){0,1}\s{1}/, "zipcode", "Zip", " must be in the form 12345 or 12345-6789", true);
	emailField(fm, "email", "E-mail Address", 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", " must be in the form 123-555-1212", true);
	tmp = fm.fax.value + " ";
	if (tmp.search(/\d{10}\s{1}/) == 0)
		fm.fax.value = fm.fax.value.substring(0, 3) + "-" + fm.fax.value.substring(3, 6) + "-" + fm.fax.value.substring(6);
	regexpField(fm, /\d{3}-\d{3}-\d{4}\s{1}/, "fax", "Fax", " must be in the form 123-555-1212", false);
	submitForm(fm, missingurl);
}
function emailfriendcheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("semail","remail","subject","message");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);
	emailField(fm, "semail", "Your E-mail Address", true);
	emailField(fm, "remail", "Their E-mail Address", true);
	requiredFormField(fm, "subject", "Message Subject");
	requiredFormField(fm, "message", "Your Message");
	submitForm(fm, missingurl);
}
function searchcheck(fm) {
	trimFormField(fm, "terms")
	if(fm.terms.value != '')
		fm.submit();
}