<!-- //

function trim(s)
{
	return s.replace(/^\s+|\s+$/, '');
}

function validateAddress(fld) {
	var error = "";
	var stripped = fld.value.replace(/[\ ]/g, '');

	if (stripped.length == 0) {
		error = "- Please enter an address.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else {
		fld.style.border = '1px solid #7F9DB9';
	}
	return error;
}

function validateCode(fld) {
	var error = "";

	if (fld.value.length == 0) {
		error = "- Please enter the code.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else if (!(fld.value.length == 5)) {
		error = "- The code is the wrong length.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else {
		fld.style.border = '1px solid #7F9DB9';
	}
	return error;
}

function validateEmail(fld) {
	var error="";
	// value of field with whitespace trimmed off
	var tfld = trim(fld.value);
	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/;

	if (fld.value.length == 0) {
		error = "- Please enter an email address.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	//test email for illegal characters
	} else if (!emailFilter.test(tfld)) {
		error = "- Please enter a valid email address.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else if (fld.value.match(illegalChars)) {
		error = "- The email address contains invalid characters.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else {
		fld.style.border = '1px solid #7F9DB9';
	}
	return error;
}

function validateEmpty(fld) {
	var error = "";
	var stripped = fld.value.replace(/[\ ]/g, '');

	if (stripped.length == 0) {
		error = "- Please enter the required field.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else {
		fld.style.border = '1px solid #7F9DB9';
	}
	return error;
}

function validateMessage(fld) {
	var error = "";
	var stripped = fld.value.replace(/[\ ]/g, '');

	if (stripped.length == 0) {
		error = "- Please enter a message.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else {
		fld.style.border = '1px solid #7F9DB9';
	}
	return error;
}

function validateName(fld) {
	var error = "";
	var stripped = fld.value.replace(/[\ ]/g, '');

	if (stripped.length == 0) {
		error = "- Please enter a name.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else {
		fld.style.border = '1px solid #7F9DB9';
	}
	return error;
}

function validatePhone(fld) {
	var error = "";
	var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');

	if (fld.value.length == 0) {
		error = "- Please enter a phone number.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else if (isNaN(parseInt(stripped))) {
		error = "- The phone number contains invalid characters.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else if (!(stripped.length == 11)) {
		error = "- The phone number is the wrong length. Make sure you included an area code.\n";
		fld.focus();
		fld.style.border = '1px solid #FF0000';
	} else {
		fld.style.border = '1px solid #7F9DB9';
	}
	return error;
}

function validateRadioButton(fld, fldname, fldclass)
{
	var error = "";
	// set var radio_choice to false
	var radio_choice = false;

	// Loop from zero to the one minus the number of radio button selections
	for (var counter = 0; counter < fld.length; counter++)
	{
		// If a radio button has been selected it will return true
		// (If not it will return false)
		if (fld[counter].checked) {
			radio_choice = true;
		} else {
			fld[counter].focus();
		}
	}

	if (!radio_choice) {
		error = "- Please select one of the " + fldname + " radio buttons.\n";
		changeCSS("." + fldclass, 'border', '1px solid #FF0000');
	} else {
		changeCSS("." + fldclass, 'border', '1px solid #7F9DB9');
	}
	return error;
}

function changeCSS(theClass, element, value) {
	//Last Updated on June 23, 2009
	//documentation for this script at
	//http://www.shawnolson.net/a/503/altering-css-class-attributes-with-javascript.html
	var cssRules;

	var added = false;
	for (var S = 0; S < document.styleSheets.length; S++) {
		if (document.styleSheets[S]['rules']) {
			cssRules = 'rules';
		} else if (document.styleSheets[S]['cssRules']) {
			cssRules = 'cssRules';
		} else {
			//no rules found... browser unknown
		}
	
		for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
			if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
				if(document.styleSheets[S][cssRules][R].style[element]) {
					document.styleSheets[S][cssRules][R].style[element] = value;
					added=true;
					break;
				}
			}
		}

		if(!added){
			if(document.styleSheets[S].insertRule) {
				document.styleSheets[S].insertRule(theClass+' { '+element+': '+value+'; }',document.styleSheets[S][cssRules].length);
			} else if (document.styleSheets[S].addRule) {
				document.styleSheets[S].addRule(theClass,element+': '+value+';');
			}
		}
	}
}



//-->
