var regexp=new Object;regexp.url=new RegExp("^((ftp|http|https):\\/\\/)([\\w]+\\.)+([\\w]{2,4}){1,2}(\\/[\\/:#\\?]?[\\/\\w.#_\\-%=\\?\\&]*)?$");regexp.email=new RegExp("^[\\w\\.=-]+@[\\w\\.-]+\\.[\\w\\.-]{2,4}$");regexp.lettersonly=new RegExp("^[a-zA-Z]+$");regexp.alphanumeric=new RegExp("^\\w+$");regexp.integer=new RegExp("^-?\\d+$");regexp.positiveinteger=new RegExp("^\\d+$");regexp.number=new RegExp("^-?(\\d+(\\.|\\,)\\d*$)|(^-?\\d+$)|(^-?(\\.|\\,)\\d+$)");regexp.civicnumber=new RegExp("^\\d+(-([1,3]\\/[2,4]|[a-zA-Z]))?$");regexp.postalcode=new RegExp("^([a-zA-Z]\\d[a-zA-Z])\\s?(\\d[a-zA-Z]\\d)$");regexp.zipcode=new RegExp("^(\\d{5}(( |-)\\d{4})?)$");regexp.postalzipcode=new RegExp("(^([a-zA-Z]\\d[a-zA-Z])\\s?(\\d[a-zA-Z]\\d)$)|(^(\\d{5}(( |-)\\d{4})?)$)");regexp.phone7=new RegExp("^(\\d{3})( |-)?(\\d{4})$");regexp.phone8=new RegExp("^(((\\d){2})( |-)?){4}$");regexp.phone10=new RegExp("^(\\d{3})( |-)?(\\d{3})( |-)?(\\d{4})$");regexp.creditcard=new RegExp("^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}$");function parseForms(){oForms=document.getElementsByTagName("FORM");for(var i=0;i<oForms.length;i++){if(eval(oForms[i].getAttribute("js:validate"))){js.addEvent(oForms[i],"submit",validateForm)}}}function validateForm(e){validation=new Array;formNode=(e.type=="submit")?js.getTarget(e):e;formChilds=js.parseObj(formNode);labelNodes=getLabels(formNode);removeErrorClass(formChilds);try{if(formNode.getAttribute("js:display")){var errorFunction=formNode.getAttribute("js:display")}}catch(err){var errorFunction=false}for(var i=0,j=0;i<formChilds.length;i++){try{if(formChilds[i].nodeType==1&&(formChilds[i].name||formChilds[i].id)&&formChilds[i].nodeName.match(/(input)|(textarea)|(select)/i)&&eval(formChilds[i].getAttribute("js:required"))){try{if(!formChilds[i].getAttribute("type").match(/(submit)|(reset)|(image)/i)){try{if(formChilds[i].getAttribute("disabled").match(/(false)/i)){validation[j]=formChilds[i]}}catch(err){validation[j]=formChilds[i]}}}catch(err){validation[j]=formChilds[i]}j++}}catch(err){}}validationOk=true;errorsObj=new Array;for(var x=0,y=0;x<validation.length;x++){if(validation[x].value.length==0&&!eval(validation[x].getAttribute("js:required"))){validationOk=true}else{if(!validateField(validation[x])){if(errorFunction){errorsObj[y]=validation[x];y++}else{displayError(validation[x])}validationOk=false}}}if(!validationOk){if(e.preventDefault){e.preventDefault()}else{e.returnValue=false}if(errorsObj.length>0){eval(errorFunction)}return false}return true}function validateFormSubmit(a){if(validateForm(a)){a.submit()}}function removeErrorClass(a){for(var b=0;b<a.length;b++){try{if(a[b].getAttribute("js:errorclass")){js.removeClass(a[b],a[b].getAttribute("js:errorclass"));js.removeClass(labelNodes[getLabelIndex(a[b].id)],a[b].getAttribute("js:errorclass"));a[b].title=""}}catch(c){}}}function getLabels(d){try{if(labelNodes){for(var b=0;b<labelNodes.length;b++){labelNodes[b].innerHTML=labelNodes[b].ori}}}catch(c){}labelNodes=d.getElementsByTagName("label");for(var a=0;a<labelNodes.length;a++){labelNodes[a].ori=labelNodes[a].innerHTML}return labelNodes}function getLabelIndex(b){for(var a=0;a<labelNodes.length;a++){if(labelNodes[a].htmlFor==b){return a}}}function getInputIndex(b){for(var a=0;a<validation.length;a++){if((validation[a].name==b)||(validation[a].id==b)){return a}}}function radioChecked(b){for(var a=0;a<validation.length;a++){if((validation[a].name==b)||(validation[a].id==b)){if(validation[a].checked){return true}}}return false}function validateField(c){var b=true;try{if(c.getAttribute("js:pattern")){if(!regexp[c.getAttribute("js:pattern")].test(c.value)){b=false}}if(c.getAttribute("js:minlength")){if(c.value.length<c.getAttribute("js:minlength")){b=false}}if(c.getAttribute("js:maxlength")){if(c.value.length>c.getAttribute("js:maxlength")){b=false}}if(c.getAttribute("js:minnumber")){if((isNaN(c.value))||Number(c.value)<Number(c.getAttribute("js:minnumber"))){b=false}}if(c.getAttribute("js:maxnumber")){if((isNaN(c.value))||Number(c.value)>Number(c.getAttribute("js:maxnumber"))){b=false}}if(c.getAttribute("js:equalto")){if(c.value!==validation[getInputIndex(c.getAttribute("js:equalto"))].value){b=false}}if(c.getAttribute("js:lessthen")){if((isNaN(c.value))||Number(c.value)>=Number(validation[getInputIndex(c.getAttribute("js:lessthen"))].value)){b=false}}if(c.getAttribute("js:greaterthen")){if((isNaN(c.value))||Number(c.value)<=Number(validation[getInputIndex(c.getAttribute("js:greaterthen"))].value)){b=false}}if(c.getAttribute("js:equalorlessthen")){if((isNaN(c.value))||Number(c.value)>Number(validation[getInputIndex(c.getAttribute("js:equalorlessthen"))].value)){b=false}}if(c.getAttribute("js:equalorgreaterthen")){if((isNaN(c.value))||Number(c.value)<Number(validation[getInputIndex(c.getAttribute("js:equalorgreaterthen"))].value)){b=false}}if(c.getAttribute("js:datelessthen")){return(extractDate(c)<extractDate(validation[getInputIndex(c.getAttribute("js:dategreaterthen"))]))?true:false}if(c.getAttribute("js:dategreaterthen")){return(extractDate(c)>extractDate(validation[getInputIndex(c.getAttribute("js:dategreaterthen"))]))?true:false}if(c.getAttribute("js:dateequalorlessthen")){return(extractDate(c)<=extractDate(validation[getInputIndex(c.getAttribute("js:dategreaterthen"))]))?true:false}if(c.getAttribute("js:dateequalorgreaterthen")){return(extractDate(c)>=extractDate(validation[getInputIndex(c.getAttribute("js:dategreaterthen"))]))?true:false}if(c.getAttribute("js:dateformat")){b=validateDatePattern(c)}if(c.getAttribute("js:invalidindex")){return(c.selectedIndex==c.getAttribute("js:invalidindex"))?false:true}if(c.type=="checkbox"){if(!c.checked){b=false}}if(c.type=="radio"){b=radioChecked(c.name)}return b}catch(a){}}function displayError(b){try{if(b.getAttribute("js:message")){labelNodes[getLabelIndex(b.id)].innerHTML=b.getAttribute("js:message");b.title=b.getAttribute("js:message")}if(b.getAttribute("js:errorclass")){js.addClass(b,b.getAttribute("js:errorclass"));js.addClass(labelNodes[getLabelIndex(b.id)],b.getAttribute("js:errorclass"))}else{return true}}catch(a){}}function extractDate(e){var b=e.getAttribute("js:dateformat").toLowerCase();var c=new Date();var a=(b.match(/mm/)==null)?(c.getMonth()+1):Number(e.value.substr(b.indexOf("mm"),2));var f=(b.match(/dd/)==null)?c.getDate():e.value.substr(b.indexOf("dd"),2);var g=(b.match(/yyyy/)==null)?c.getFullYear():e.value.substr(b.indexOf("yyyy"),4);myDate=new Date(g,(a-1),f);if(myDate.getMonth()!=(a-1)){return false}else{if(myDate.getDate()!=f){return false}else{if(myDate.getFullYear()!=g){return false}else{return myDate}}}}function validateDatePattern(b){var a=b.getAttribute("js:dateformat").toLowerCase();a=a.replace(/[ymd]/g,"\\d");a=a.replace(/\./g,"\\.");a=a.replace(/\s/g,"\\s");a=a.replace(/\//g,"\\/");a=a.replace(/\*/g,"(\\s|\\.|\\-|\\/)");dateRegexp=new RegExp("^"+a+"$");if(dateRegexp.test(b.value)){return(extractDate(b))?true:false}else{return false}}js.addLoadEvent(parseForms);
