var myForm;

function validForm(frm)
{
	var fieldArray = new Array("1-First Name - ", "3-Street Address - ", "4-City - ", "5-State - ", "6-Zip Code - ", "7-Phone Number - ", "8-Message - ");
	var labelArray = new Array("First Name", "Street Address", "City", "State", "Zip Code", "Phone Number", "Other Information or Request");
	var telephonefield, emailfield;
	
	myForm = frm;

	if ( !checkEmptyFields(fieldArray, labelArray) )
		return false;

	telephonefield = myForm(fieldArray[5]);
	if (telephonefield)
	{
		var re_TelNum = /^[0-9-()\s]+$/;
		if ( !re_TelNum.test(telephonefield.value) )
		{
			alert("The telephone number must be:  0-9, (), or -");
			telephonefield.focus();
			return false;
		}
	}
	
	emailfield = myForm("XX-email");
	if(emailfield)
	{
		if(emptyField(emailfield))
		{
			alert("Please enter the email address field.");
			emailfield.focus();
			return false;
		}
		
		if(!checkEmail(emailfield) )
			return false;
	}
	
	return true;
}

function checkEmptyFields(farray, narray)
{
	var field;
	for (i=0; i< farray.length; i++)
	{
		field = myForm(farray[i]);

		if (field && emptyField(field))
		{
			alert("Please enter the " +narray[i]+ " field.");
			field.focus();
			return false;
		}
	}
	return true;
}

function emptyField(field)
{
	return (field.value.length == 0);
}

function warnEmptySelectField(field, label, bWarn)
{
	if (field.options[field.selectedIndex].value == "")
	{
		if (bWarn)
		{
			field.focus();
			alert("Please enter a value for the " + label + " field.");
		}
		return false;
	}
	return true;
}

function checkEmail(field)
{
	// Advanced Email Check -- JavaScript Kit (http://www.javascriptkit.com)
	var str = field.value;
	var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str))
		return true;
	
	alert("Please enter a valid email address.");
	field.focus();
	return false;
}

function checkDate(mofield, yrfield)
{
	var time = new Date();
	var iMo = mofield.selectedIndex;
	var iYr = yrfield.selectedIndex;
	var currYr = time.getFullYear();
	var inputYr = parseInt(yrfield.options[iYr].value, 10);
	var inputMo = parseInt(mofield.options[iMo].value, 10);

	if  (inputYr < currYr)
	{		
		yrfield.focus();
		alert("Please select a later expiration date.");
		return false;
	}
	if ( inputYr == currYr && inputMo < time.getMonth() )
	{		
		alert("Please select a later expiration date.");
		mofield.focus();
		return false;
	}
	return true;
}

function checkCardNo(cardnofield)
{
	var re_Num = /^[0-9]+$/;
	if (!re_Num.test(cardnofield.value))
	{
		alert("Please enter a valid credit card number.");
		cardnofield.focus();
		return false;
	}
	return true;
}

function getDate()
{
	var time = new Date();
	var year = time.getFullYear();
	
	return time.getMonth() +"/"+ time.getDate() +"/"+ year.substring(0, 2);
}

function setPMethod(i)
{
	document.form1.pmethod.value = i;
}

function setState(abbrev)
{
	for (i = 0; i < document.form1.state.length; i++)
	{
		if (abbrev == document.form1.state[i].value)
		{
			document.form1.state[i].checked = true;
			break;
		}
	}
}

function setPaymentFields(ccard, expmo, expyr)
{
	for (i = 0; i < document.form1.ccard.length; i++)
	{
		if (ccard == document.form1.ccard[i].value)
		{
			document.form1.ccard[i].checked = true;
			break;
		}
	}
	document.form1.exp_mo.selectedIndex = expmo;
	for (i = 0; i < document.form1.exp_yr.length; i++)
	{
		if (expyr == document.form1.exp_yr.options[i].value)
		{
			document.form1.exp_yr.selectedIndex = i;
			break;
		}
	}
}

function showBlock(i)
{
	// i = 0, default
	// i = 1, control panel review
	if (i == 0) 		{ styleOrig = "block"; stylePanel = "none"; }
	else if (i == 1)	{ styleOrig = "none"; stylePanel  = "block"; }
				
	document.getElementById("original").style.display = styleOrig;
	document.getElementById("cpanel").style.display = stylePanel;
}
