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)?$';var regexAlphaNumeric='^[a-zA-Z0-9_\-]*$';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) {	var mooElem=$(elem);	var aryFormFields=mooElem.getElements('input').combine(mooElem.getElements('select').combine(mooElem.getElements('textarea'))).include(mooElem);	var olSummary=new Element("ol");	var aryTextInputs=["text","textarea","password"];	var arySelectInputs=["select-one"];	var aryBoxInputs=["radio","checkbox","select-multiple"];		aryFormFields.each(function(el) {		 if (el.id!="") {			 var rfv = $('rfv'+el.getProperty('id'));			 if (!rfv) {				 rfv=$('rfv'+el.getProperty('name'));			 }			 			 if (IsStyleDisplay(el) && rfv) {				 var bError=false;				 var re=new RegExp(regexAnything);				 if (el.getProperty('onblur')!=null) {				 	var strblur= new String(el.getProperty('onblur'));				 	var reBlur= strblur.match(/regex[A-Z,a-z,0-9]*/gi);				 	if (reBlur!=null) {						eval("re=new RegExp("+reBlur+");");					}				 }				 if (aryTextInputs.contains(el.type)) {					if (!el.get('value').match(re))  {						bError=true					}				 }				 else if(arySelectInputs.contains(el.type)) {				   	if (!el.getSelected()[0].value.match(re))  {						bError=true					}				 }				 else if(aryBoxInputs.contains(el.type)) {					 var bChecked=false;					 aryOptions=$$(document.getElementsByName(el.name));					 aryOptions.each(function(opt) {					 	if (opt.checked) {							bChecked=true;					 	}					 });					 bError=!bChecked;					 }				 				 if (bError) {				 	/*rfv.setStyle("fontWeight","bold");					el.setStyle("backgroundColor","#FFCC99");					*/					rfv.addClass("req")					el.addClass("req")					//strInnerText=rfv.get('text').replace(/^\*\s*|\s*\*$/g, "");					var rfvClone=rfv.clone();				    rfvClone.getChildren().each(function(elchild,i) {						elchild.destroy();					});                    strInnerText = rfvClone.get('text').replace(/^\*\s*|\s*\*$/g, "");					var li=new Element('li',{'html':strInnerText,'class':el.name});					var bHasClass=false;					olSummary.getElements("li").each(function(li) {				 		if(li.hasClass(el.name) && !bHasClass) {							bHasClass=true;				 		}					})					if (!bHasClass) {						olSummary.adopt(li);					}									 }				 else {					rfv.removeClass("req")					el.removeClass("req")				 }				 			 }		 }		 	});		if (olSummary.getChildren('li').length>0) {		if (mooElem.get('tag')=="form") {			var h2=new Element('h2',{'html':'We caught ' + olSummary.getChildren("li").length + ' incorrectly completed or missed field(s). Look for and correct the highlighted items, summarized below'});			if ($('alert')) {				$('alert').empty();				$('alert').adopt(h2).adopt(olSummary).setStyle('display','block');			}			else {				var msg="";				olSummary.getChildren().each(function(el,index) {					msg+=el.get('text')+"\n";									})				alert(h2.get('text')+'\n'+msg);			}		}		return false;	}	return true;}
