function trimAll(sString) {
	while (sString.substring(0,1) == ' '){
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' '){
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}
//-----------------------------------------------------------------------------
function max_length(Object, MaxLen){
  return (Object.value.length < MaxLen);
}
//-----------------------------------------------------------------------------
function checkPromoReferField(field_array, field_names)
{
	for (i = 0; i < field_array.length; i++)
	{
		// text box 
		if (eval("document.contact." + field_array[i] + ".type") == "text")
		{
			if (eval("document.contact." + field_array[i] + ".value") != "M2M0109")  
			{
				promo_msg += "- " + field_names[i] + "\n";
			}
		}
	}
	
	return promo_msg;
}
//-----------------------------------------------------------------------------
function checkFields(field_array, field_names)
{
	for (i = 0; i < field_array.length; i++)
	{
		// text box and text area
		if (eval("document.contact." + field_array[i] + ".type") == "text" || eval("document.contact." + field_array[i] + ".type") == "textarea")
		{
			if (!checkText(field_array[i]))
			{
				err_msg += "- " + field_names[i] + "\n";
			}
		}
		// select boxes (single and multiple)
		else if (eval("document.contact." + field_array[i] + ".type") == "select-one" || eval("document.contact." + field_array[i] + ".type") == "select-multiple")
		{
			if (!checkSelect(field_array[i]))
			{
				err_msg += "- " + field_names[i] + "\n";
			}
		}
		// radio buttons
		else if (eval("document.contact." + field_array[i] + ".length") >= 0 && eval("document.contact." + field_array[i] + "[0].type") == "radio")
		{
			if (!checkRadio(field_array[i]))
			{
				err_msg += "- " + field_names[i] + "\n";
			}
		}
	}
	
	return err_msg;
}
//-----------------------------------------------------------------------------
function checkFieldLen(field_array, field_names, field_lens)
{
	for (i = 0; i < field_array.length; i++)
	{
		size1 = eval("document.contact." + field_array[i] + ".value.length")
		size2 = field_lens[i]
		if(size1 > size2){ 
			len_msg += "- " + field_names[i] + " can only have " + field_lens[i] + " characters.\n";
		}
	}
	
	return len_msg;
}
//-----------------------------------------------------------------------------
function checkText(field_name)
{

	if (eval("document.contact." + field_name + ".value").search(/\w+/g) != -1)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}


//-----------------------------------------------------------------------------
function checkRadio(field_name)
{
	rtn_val = 0;

	for (f = 0; f < eval("document.contact." + field_name + ".length"); f++)
	{
		if (eval("document.contact." + field_name + "[" + f + "].checked") == 1)
		{
			rtn_val = 1;
		}
	}
	
	return rtn_val;
}


//-----------------------------------------------------------------------------
function checkSelect(field_name)
{
	rtn_val = 0;
	
	for (f = 0; f < eval("document.contact." + field_name + ".options.length"); f++)
	{
		if (eval("document.contact." + field_name + ".options[" + f + "].selected") == 1 && eval("document.contact." + field_name + ".options[" + f + "].value") != "")
		{
			rtn_val = 1;
		}
	}
	
	return rtn_val;
}


//-----------------------------------------------------------------------------
function checkZip(zip_code)
{
	if (zip_code.search(/\d\d\d\d\d/) == -1)
	{
		return 0;
	}
	else
	{
		return 1;
	}
}


//-----------------------------------------------------------------------------
function checkEmail(email_address)
{
	//if (email_address.search(/\w+\@\w+\.\w+/g) == -1)
	if (email_address.search(/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/) == -1)
	{
		return 0;
	}
	else
	{
		return 1;
	}
}

//-----------------------------------------------------------------------------
function checkPhone(phone_1, phone_2, phone_3)
{
	rtn_val = 1;
	
	if (phone_1.search(/\d\d\d/) == -1)
	{
		rtn_val = 0;
	}
	
	if (phone_2.search(/\d\d\d/) == -1)
	{
		rtn_val = 0;
	}
	
	if (phone_3.search(/\d\d\d\d/) == -1)
	{
		rtn_val = 0;
	}
	
	return rtn_val;
}


//-----------------------------------------------------------------------------
function getFieldValue(field)
{
	// text box and text area
	if (eval("document.contact." + field + ".type") == "text" || eval("document.contact." + field + ".type") == "textarea" || eval("document.contact." + field + ".type") == "hidden")
	{
		rtn_val = eval("document.contact." + field + ".value");
		// mod to remove offensive tags
		var re = /[<%>]/g;
		rtn_val = rtn_val.replace(re, "");
		// end mod
	}
	// select boxes (single and multiple)
	else if (eval("document.contact." + field + ".type") == "select-one" || eval("document.contact." + field + ".type") == "select-multiple")
	{
		for (f = 0; f < eval("document.contact." + field + ".length"); f++)
		{
			if (eval("document.contact." + field + ".options[" + f + "].selected") == 1)
			{
				rtn_val = eval("document.contact." + field + ".options[" + f + "].value");
			}
		}
	}
	// radio buttons
	else if (eval("document.contact." + field + ".length") >= 0 && eval("document.contact." + field + "[0].type") == "radio")
	{
		for (f = 0; f < eval("document.contact." + field + ".length"); f++)
		{
			if (eval("document.contact." + field + "[" + f + "].checked") == 1)
			{
				rtn_val = eval("document.contact." + field + "[" + f + "].value");
			}
		}
	}	

	return rtn_val;
}


//-----------------------------------------------------------------------------
// returns true if the string only contains characters A-Z or a-z
function isAlpha(str){
  var re = /[^a-zA-Z]/g
  if (re.test(str)) return false;
  return true;
}
// returns true if the string only contains characters 0-9
function isNumeric(str){
  var re = /[\D]/g
  if (re.test(str)) return false;
  return true;
}
// returns true if the string only contains characters A-Z, a-z or 0-9
function isAlphaNumeric(str){
  var re = /[^a-zA-Z0-9]/g
  if (re.test(str)) return false;
  return true;
}
//-----------------------------------------------------------------------------
function isNumeric(field_array, field_names) {
	for (i = 0; i < field_array.length; i++) {
		var field = eval("document.contact."+field_array[i]+".value");
		var re = new RegExp(/[^0-9-\s\.\/\-\(\)]/g);
		var notvalid = false;
		if(field != "")
			notvalid = re.test(field);
		
		if(notvalid){
			num_msg += "- " + field_names[i] + "\n";
		} 
	}
	return num_msg;
}
//-----------------------------------------------------------------------------
function isCharacter(field_array, field_names) {
	for (i = 0; i < field_array.length; i++) {
		var field = eval("document.contact."+field_array[i]+".value");
		var re = new RegExp(/[^a-zA-Z\s\.\']/g);
		var notvalid = false;
		if(field != "")
			notvalid = re.test(field);
			
		if(notvalid){
			char_msg += "- " + field_names[i] + "\n";
		} 
	}
	return char_msg;
}
//-----------------------------------------------------------------------------
function isCharacterHypenAllow(field_array, field_names) {
	for (i = 0; i < field_array.length; i++) {
		var field = eval("document.contact."+field_array[i]+".value");
		var re = new RegExp(/[^a-zA-Z\s\.\-]/g);
		var notvalid = false;
		if(field != "")
			notvalid = re.test(field);
			
		if(notvalid){
			char_msg += "- " + field_names[i] + "\n";
		} 
	}
	return char_msg;
}
//-----------------------------------------------------------------------------
function isNumChar(field_array, field_names) {
	for (i = 0; i < field_array.length; i++) {
		var field = eval("document.contact."+field_array[i]+".value");
		//var re = new RegExp(/[\s+\W+\s+_]/);
		var re = new RegExp(/[^0-9a-zA-Z\s\.\#]/g); 

		var notvalid = false;
		if(field != "")
			notvalid = re.test(field);
		
		if(notvalid){
			num_char_msg += "- " + field_names[i] + "\n";
		} 
	}
	return num_char_msg;
}

//-----------------------------------------------------------------------------
function getDateObject(dateString,dateSeperator)
{
	//This function return a date object after accepting 
	//a date string ans dateseparator as arguments
	var curValue=dateString;
	var sepChar=dateSeperator;
	var curPos=0;
	var cDate,cMonth,cYear;

	//extract day portion
	curPos=dateString.indexOf(sepChar);
	cDate=dateString.substring(0,curPos);
	
	//extract month portion				
	endPos=dateString.indexOf(sepChar,curPos+1);		
	cMonth=dateString.substring(curPos+1,endPos);

	//extract year portion				
	curPos=endPos;
	endPos=curPos+5;			
	cYear=curValue.substring(curPos+1,endPos);
	
	//Create Date Object
	dtObject=new Date(cYear,cMonth,cDate);	
	return dtObject;
}

//-----------------------------------------------------------------------------
function isDateBeforeToday(dateStr){
	var today = new Date;
	dt2=getDateObject(dateStr,"/");

	if (dt2 > today) 
		return false;
	else
		return true;
}

//-----------------------------------------------------------------------------
function isValidDate(dateStr) {
// Checks for the following valid date formats:
// MM/DD/YY     Also separates date into month, day, and year variables
//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
// MM/DD/YYYY   To require a 4 digit year entry, use this line instead:
var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;

var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
//alert("Date is not in a valid format.")
return false;
}
month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
//alert("Month must be between 1 and 12.");
return false;
}
if (day < 1 || day > 31) {
//alert("Day must be between 1 and 31.");
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
//alert("Month "+month+" doesn't have 31 days!")
return false
}
if(year < 1800){
	
return false
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
//alert("February " + year + " doesn't have " + day + " days!");
return false;
   }
}
return true;  // date is valid
}
//-------------------------------------------------------------------

function countryChange(countryField_name, stateField_name){
	if (eval("document.contact." + countryField_name + ".options[document.contact." + countryField_name + "selectedIndex].text") == "USA" ||
		eval("document.contact." + countryField_name + ".options[document.contact." + countryField_name + "selectedIndex].text") == "Canada") {

			eval("document.contact." + stateField_name + ".disabled") = false;
//	if (document.contact.country.options[document.contact.country.selectedIndex].text == "USA" || document.contact.country.options[document.contact.country.selectedIndex].text == "Canada"){
//		document.contact.state.disabled = false;
//		document.contact.zipcode.disabled = false;
	}
//	if ((document.contact.country.options[document.contact.country.selectedIndex].text != "Canada") && (document.contact.country.options[document.contact.country.selectedIndex].text != "USA")) {
	if (eval("document.contact." + countryField_name + ".options[document.contact." + countryField_name + "selectedIndex].text") != "USA" ||
		eval("document.contact." + countryField_name + ".options[document.contact." + countryField_name + "selectedIndex].text") != "Canada") {
			eval("document.contact." + stateField_name + ".disabled") = true;

//		document.contact.state.selectedIndex = 0;
//		document.contact.state.disabled = true;
//		document.contact.zipcode.value = "";
//		document.contact.zipcode.disabled = true;		
	}
}
//-------------------------------------------------------------------
