////////////////////////////////
// Updated 1-9-2007
// Now includes a Fieldset
// check, so the script will
// no longer break on fieldsets
////////////////////////////////


var aryvalidate = new Array;
var regexZipCode = '^[0-9]{5}([- /]?[0-9]{4})?$';
var regexEmail = '^([0-9a-zA-Z]([-.\w_]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$';
var regexPhone = '^[\\(]{0,1}([0-9]){3}[\\)]{0,1}[ ||-]?([^0-1]){1}([0-9]){2}[ ]?[-]?[ ]?([0-9]){4}[ ]*((x){0,1}([0-9]){1,5}){0,1}$';
var regexCC  = '^3(?:[47]\\d([ -]?)\\d{4}(?:\\1\\d{4}){2}|0[0-5]\\d{11}|[68]\\d{12})$|^4(?:\\d\\d\\d)?([ -]?)\\d{4}(?:\\2\\d{4}){2}$|^6011([ -]?)\\d{4}(?:\\3\\d{4}){2}$|^5[1-5]\\d\\d([ -]?)\\d{4}(?:\\4\\d{4}){2}$|^2014\\d{11}$|^2149\\d{11}$|^2131\\d{11}$|^1800\\d{11}$|^3\\d{15}$'
var regexNumeric = '^([0-9]+\\.[0-9]*)$';

function validate(elem,regex) {
	/*
	Regular Expression parameters for various fields
	Zip Code:  ^[0-9]{5}([- /]?[0-9]{4})?$
	Email: ^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$
	Phone: ^[\\(]{0,1}([0-9]){3}[\\)]{0,1}[ ||-]?([^0-1]){1}([0-9]){2}[ ]?[-]?[ ]?([0-9]){4}[ ]*((x){0,1}([0-9]){1,5}){0,1}$
	Anything not starting with a special charachter (default) : ^[0-9a-zA-Z]
	*/
	bReturnValue=true;
	defaultregex="^[0-9a-zA-Z]";
			
	if (regex=="") {
		regex=defaultregex;
	}
	var re = new RegExp(regex);
	if (elem.type==undefined) { //Entire Form Validation
		var elemfocus=-1;
		var elemmissed=0;
		var strMsg="";
		for (var i=0;i<elem.length;i++) {  //Whole Form
			bFieldSet = checkFieldset(i, elem);
			while(bFieldSet){
				i++;
				bFieldSet = checkFieldset(i, elem);
			}
			var strrfv = "rfv"+elem.elements[i].id; //.substr(3);
			if (aryvalidate[elem.elements[i].name]) {
				var re = new RegExp(aryvalidate[elem.elements[i].name]);
			}
			else {
				var re = new RegExp(regex);
			}
			if ((!elem.elements[i].value.match(re)) && document.getElementById(strrfv)) {
				rfv = document.getElementById(strrfv);
				rfv.style.fontWeight = "bold";
				rfv.style.color = "#FF0000";
				bReturnValue=false;
				elemmissed++;
				if (elemfocus==-1) {
					elemfocus=i;
				}
			}
		}
		if (!bReturnValue && i>0) {
			alert("You have not filled in "+elemmissed+" of the required fields correctly. \n Please correct bolded items.");
			elem.elements[elemfocus].focus();
			return false;
		}
	}
	else { //Form Element Validation
		if (elem.type=="text" || elem.type=="select-one") {
			var strrfv = "rfv"+elem.name; //.substr(3);
			if (regex!=defaultregex) {
				aryvalidate[elem.name]=regex;
			}
			if ((!elem.value.match(re)) && document.getElementById(strrfv)) {
				rfv = document.getElementById(strrfv);
				rfv.style.fontWeight = "bold";
				rfv.style.color = "#FF0000";
				bReturnValue=false;
			}
			else {
				rfv = document.getElementById(strrfv);
				rfv.style.fontWeight = "";
				rfv.style.color = "";
				bReturnValue=true;
			}
		}
	}
	return bReturnValue;
}
function parseQueryString (str) {
		str = str ? str : location.search;
		var query = str.charAt(0) == '?' ? str.substring(1) : str;
		var args = new Object();
		if (query) {
			var fields = query.split('&');
			for (var f = 0; f < fields.length; f++) {
				var field = fields[f].split('=');
				args[unescape(field[0].replace(/\+/g, ' '))] = 
				unescape(field[1].replace(/\+/g, ' '));
			}
		}
		return args;
}
function setStatus()  {
	qstring = parseQueryString ();
	 if (qstring["status"]=="1") {
			document.getElementById("response").innerHTML="Thank you, your message was sent successfully.";
	}
	//alert(qstring["lost"]);
	 if (qstring["lost"]==1) {
			document.getElementById("response").innerHTML="Because things are constantly changing on our site, we apologize if you're seeking information on this page out of frustration. We are always working to make our site as functional and organized as we can for you, our visitors. If there is something you think we could do to make our site better, we welcome your suggestions and only ask that you quickly drop us a line through our <a href='/contactus.htm'>contact form</a>.";
	}
}

function Captcha() {
	var unixepoc = new Date(1970,0,1);
	var today = new Date();
	var oneday = 1000*60*60*24;
	var timestamp = new String((Math.ceil(today.getTime()-unixepoc.getTime()) / oneday)).replace(".","");
	document.write("<img src=\"/captcha.php?txt="+timestamp+"\" style=\"border:1px solid #999999; padding:0px 21px;\">\n");
	document.write("<br><br>Please enter the value you see above in the image.\n");
	document.write("<input type=\"text\" value=\"\" name=\"txtCaptcha\" size=8>\n");
	document.write("<input type=\"hidden\" value=\""+timestamp+"\" name=\"hidTextFile\">\n");

}

function checkFieldset(checkID, obj){
	if(obj.elements[checkID] == "[object HTMLFieldSetElement]"){
		return true;		
	} else {
		return false;
	}
}