function attachFormHandlers(){if(document.getElementsByTagName){var b=document.getElementsByTagName("form");for(var a=0;a<b.length;a++){b[a].onsubmit=function(){return checkForm(this)}}}}function addFormValidationRule(f,b,c,a,e){var d=document.getElementsByName(f);if(d.length==1){d[0].setAttribute("caption",b);d[0].setAttribute("validate",c);if(a!=undefined){d[0].setAttribute("required",a)}if(e){d[0].setAttribute("captioniscustom",e)}}else{if(d.length>1){alert("addFormValidationRule failed: too many choices.")}else{alert("addFormValidationRule failed: not found.")}}}function removeFormValidationRule(b){var a=document.getElementsByName(b);if(a.length==1){a[0].removeAttribute("validate");a[0].removeAttribute("required");a[0].removeAttribute("caption");a[0].removeAttribute("captioniscustom")}else{if(a.length>1){alert("removeFormValidationRule failed: too many choices.")}else{alert("removeFormValidationRule failed: not found.")}}}function checkForm(objForm,pPromptEach){var bValid;var arClass;var objTag=objForm.getElementsByTagName("*");var bDeferPrompt=(pPromptEach?pPromptEach:false);var sDeferredMsg="";for(var iFieldCounter=0;iFieldCounter<objTag.length;iFieldCounter++){if(!objTag[iFieldCounter].name){continue}var valRules=getAttributeByName(objTag[iFieldCounter],"validate");if(valRules){var required=getAttributeByName(objTag[iFieldCounter],"required");required=(required==null)?true:eval(required);var captionIsCustom=getAttributeByName(objTag[iFieldCounter],"captioniscustom");captionIsCustom=(captionIsCustom==null)?false:eval(captionIsCustom);arClass=valRules.split(" ");for(var iClassCounter=0;iClassCounter<arClass.length;iClassCounter++){var value=objTag[iFieldCounter].value.replace(/^\s+|\s+$/g,"");switch(arClass[iClassCounter]){case"required":required=true;bValid=true;break;case"notrequired":required=false;bValid=true;break;case"number":bValid=isNumber(value);break;case"string":bValid=isString(value);break;case"alpha":bValid=isAlpha(value);break;case"alphanumeric":bValid=isAlphaNumeric(value);break;case"password":bValid=isPassword(value);break;case"username":bValid=isUsername(value);break;case"date":bValid=isDate(value);break;case"time":bValid=isTime(value);break;case"timehundredth":bValid=isTimeHundredth(value);break;case"timetenth":bValid=isTimeTenth(value);break;case"distancehundredth":bValid=isDistanceHundredth(value);break;case"year":bValid=isYear(value);break;case"email":bValid=isEmail(value);break;case"emaillist":bValid=isEmailList(value);break;case"phone":bValid=isPhone(value);break;case"checked":bValid=isCheckboxChecked(objTag[iFieldCounter]);break;case"selected":bValid=isRadioSelected(objTag[iFieldCounter]);break;default:bValid=true}if((required&&(value.length==0||!bValid))||(value.length>0&&!bValid)){var caption=getAttributeByName(objTag[iFieldCounter],"caption");if(!caption){caption=objTag[iFieldCounter].name}objTag[iFieldCounter].style.borderColor="red";if(!bDeferPrompt){var undefined;if(captionIsCustom){alert(caption)}else{alert("Please review "+(required?"required ":"")+'field "'+caption+'"')}if(objTag[iFieldCounter].select!=undefined){objTag[iFieldCounter].select()}return false}else{sDeferredMsg+=(caption+(required?" (required)":"")+"\n")}}else{objTag[iFieldCounter].style.borderColor=""}}}}if(sDeferredMsg!=""){alert("Please review the value(s) you provided for the following fields:\n"+sDeferredMsg);return false}else{return true}}function getAttributeByName(b,a){if(typeof NamedNodeMap!="undefined"){if(b.attributes.getNamedItem(a)){return b.attributes.getNamedItem(a).value}}else{return b.getAttribute(a)}}function isNumber(a){return(a!=""&&!isNaN(a))}function isString(a){return(a!=""&&typeof a=="string")}function isAlpha(b){var a=/^[a-zA-Z]+$/;return(b!=""&&a.test(b))}function isAlphaNumeric(b){var a=/^[a-zA-Z0-9]+$/;return(b!=""&&a.test(b))}function isPassword(b){var a=/^[^\s;\\]{6,}$/;return(b!=""&&a.test(b)&&(b.indexOf("--")==-1))}function isUsername(b){var a=/^[0-9A-Za-z]{6,}$/;return(b!=""&&a.test(b))}function isEmail(b){var a=/^[\w\.\-\_]*@[\w\.\-\_]*\.[a-zA-Z]{2,3}$/;return(b!=""&&a.test(b))}function isEmailList(c){var b=c.replace(/,/g,";").split(";");for(var a=0;a<b.length;a++){if(!isEmail(b[a])){return false}}return(c!="")}function isDistanceHundredth(b){var a=/^([1-9]{1,})(\.\d{1,2})?$/;return(b!=""&&a.test(b))}function isDate(g){var d=g.split("/");if(d.length!=3){return false}var f=parseInt(d[0],10)-1;var b=parseInt(d[1],10);var c=parseInt(d[2],10);var e=new Date(g);var a=e.getFullYear();return(f==e.getMonth())&&(b==e.getDate())&&(c==a)&&(a>1800)&&(a<2200)}function isTime(b){var a=/^([1-9]|1[0-2]):[0-5]\d(:[0-5]\d(\.\d{1,3})?)?$/;return(b!=""&&a.test(b))}function isTimeHundredth(b){var a=/^([0-9]{1,2})?:?[0-5]?\d:[0-5]\d(?:\.\d{1,2})?$/;return(b!=""&&a.test(b))}function isTimeTenth(b){var a=/^[0-9]{1,2}?:?[0-5]?\d:[0-5]\d(?:\.(\d{1}))?$/;return(b!=""&&a.test(b))}function isYear(b){var a=new Date("1/1/"+b);return(b!=""&&(b==a.getFullYear())&&(b>1800))}function isPhone(b){if(b!=""){var a=b.replace(/[\(\)\.\-\ ]/g,"");return(!isNaN(parseInt(a))&&a.length==10)}else{return false}}function isCheckboxChecked(a){return(a&&a.checked)}function isRadioSelected(c){var a=document.getElementsByName(c.name);for(var b=0;b<a.length;b++){if(a[b].checked){return true}}return false};
