var aryvalidate = new Array;var regexAnything = '^[0-9a-zA-Z]';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]*)$';var regexDate='^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$';var regexTime='^\\d{1,2}:\\d{2}([ap]m)?$';Array.prototype.inArray = function (value) {	var i;	for (i=0; i < this.length; i++) {		if (this[i] === value) {			return true;		}	}	return false;};function IsStyleDisplay(elem) {	el=elem.parentNode; 	 do { 	   el=el.parentNode; 	   if (el.style.display=="none") {			return false;   	   }	 } while(el.nodeName.toLowerCase()!="body"); 	 return (elem.disabled ? false : true);	}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;			if (regex=="") {		regex=regexAnything;	}	var re = new RegExp(regex);	if (elem.type==undefined) { //Entire Form Validation		var elemfocus=-1;		var elemmissed=0;		var strElementSummary="";		var aryRadioButtonNames=new Array();				for (var i=0;i<elem.length;i++) {  //Whole Form			if (elem.elements[i].id!=undefined) {				var bElementIsDisplayed=IsStyleDisplay(elem.elements[i]);				if (bElementIsDisplayed) {					var strrfv = "rfv"+elem.elements[i].id; //.substr(3);					rfv = document.getElementById(strrfv);					if (aryvalidate[elem.elements[i].id]) {						var re = new RegExp(aryvalidate[elem.elements[i].id]);					}					else {						var re = new RegExp(regex);					}					if (elem.elements[i].type=="text" || elem.elements[i].type=="textarea" || elem.elements[i].type=="password" || elem.elements[i].type=="select-one") {						if ((!elem.elements[i].value.match(re)) && document.getElementById(strrfv) && (elem.elements[i].type!=undefined)) {									rfv.style.fontWeight = "bold";							elem.elements[i].style.backgroundColor="#FFCC99";							strElementSummary=strElementSummary+"<li>"+(elemmissed+1)+". ";							strInnerText=rfv.innerText;							if (rfv.innerText==undefined) {								strInnerText=rfv.textContent;								}							if (strrfv.indexOf('Billing')>0) {								strElementSummary=strElementSummary+"Billing "+strInnerText+"\n";							}							else if (strrfv.indexOf('Shipping')>0) {								strElementSummary=strElementSummary+"Shipping "+strInnerText+"\n";							}							else {								strElementSummary=strElementSummary+strInnerText+"\n";							}							strElementSummary+="</li>";							bReturnValue=false;							elemmissed++;							if (elemfocus==-1) {								elemfocus=i;							}						}					} else if (elem.elements[i].type=="radio" || elem.elements[i].type=="checkbox") {						try {							var ary=elem.elements[i].id.split("_");							var strrfv = "rfv"+ary[0]+'[]'; //.substr(3);							rfv = document.getElementById(strrfv);							if (rfv!=null) {								//aryRdBtn=eval("document."+elem.name+"."+elem.elements[i].name);								aryRdBtn=document.getElementsByName(ary[0]+'[]');								bChecked=false;								for (j = 0; j <aryRdBtn.length; j++) {									//if (eval("document."+elem.name+"."+elem.elements[i].name+"["+j+"].checked;")) {									tmpBtn=aryRdBtn[j];									if (tmpBtn.checked) {										bChecked=true;										break;									}								}								if (!bChecked && !aryRadioButtonNames.inArray(ary[0]+'[]')) {									strElementSummary=strElementSummary+"<li>"+(elemmissed+1)+". ";									strInnerText=rfv.innerText;									rfv.style.fontWeight = "bold";									if (rfv.innerText==undefined) {										strInnerText=rfv.textContent;																				}									if (strrfv.indexOf('Billing')>0) {										strElementSummary=strElementSummary+"Billing "+strInnerText+"\n";									}									else if (strrfv.indexOf('Shipping')>0) {										strElementSummary=strElementSummary+"Shipping "+strInnerText+"\n";									}									else {										strElementSummary=strElementSummary+strInnerText+"\n";									}									strElementSummary+="</li>";									bReturnValue=false;									elemmissed++;									if (elemfocus==-1) {										elemfocus=j;									}									aryRadioButtonNames.push(ary[0]+'[]');								}							}						} catch (e) {													}					}				}			}		}		if (!bReturnValue) {			var strMessage="We caught "+elemmissed+" incorrectly completed or missed field(s). Look for and correct the highlighted items, summarized below";			if (document.getElementById('alert')) {				document.getElementById('alert').innerHTML="<h2>"+strMessage+"</h2><ul>"+strElementSummary+"</ul>";				document.getElementById('alert').style.display="block";			}			else {				var strStrippedSummary = strElementSummary.replace(/(<([^>]+)>)/ig,""); 				alert(strMessage+"\n"+strStrippedSummary);			}			elem.elements[elemfocus].focus();			//return false;		}	}	else { //Form Element Validation		if (elem.type=="text" || elem.type=="textarea" || elem.type=="select-one" || elem.type=="password") {			var strrfv = "rfv"+elem.id; //.substr(3);			if (regex!=regexAnything) {				aryvalidate[elem.id]=regex;			}			if ((!elem.value.match(re)) && document.getElementById(strrfv)) {				rfv = document.getElementById(strrfv);				rfv.style.fontWeight = "bold";				elem.style.backgroundColor="#FFCC99";				bReturnValue=false;			}			else {				rfv = document.getElementById(strrfv);				if (rfv) {					rfv.style.fontWeight = "";					rfv.style.color = "";					elem.style.backgroundColor="";					bReturnValue=true;				}			}		}	}	return bReturnValue;}function doClear(theText) {	if (theText.value == theText.defaultValue) {		theText.value = ""	}}