function validateCompleteForm(B,A){return _validateInternal(B,A,0)}function validateStandard(B,A){return _validateInternal(B,A,1)}function _validateInternal(F,H,B){var E="";var D=null;if(B==0){E=(F.err)?F.err:_getLanguageText("err_form")}var A=_GenerateFormFields(F);for(var C=0;C<A.length;++C){var G=A[C];if(!G.IsValid(A)){G.SetClass(H);if(B==1){_throwError(G);return false}else{if(D===null){D=G}E=_handleError(G,E);bError=true}}else{G.ResetClass()}}if(D!==null){alert(E);D.element.focus();return false}return true}function _getLanguageText(B){objTextsInternal=new _jsVal_Language();objTexts=null;try{objTexts=new jsVal_Language()}catch(A){}switch(B){case"err_form":strResult=(!objTexts||!objTexts.err_form)?objTextsInternal.err_form:objTexts.err_form;break;case"err_enter":strResult=(!objTexts||!objTexts.err_enter)?objTextsInternal.err_enter:objTexts.err_enter;break;case"err_select":strResult=(!objTexts||!objTexts.err_select)?objTextsInternal.err_select:objTexts.err_select;break}return strResult}function _GenerateFormFields(E){var A=[];for(var D=0;D<E.length;++D){var C=E.elements[D];var B=_getElementIndex(A,C);if(B==-1){A[A.length]=new Field(C,E)}else{A[B].Merge(C)}}return A}function _getElementIndex(B,D){if(D.name){var A=D.name.toLowerCase();for(var C=0;C<B.length;++C){if(B[C].element.name){if(B[C].element.name.toLowerCase()==A){return C}}}}return -1}function _jsVal_Language(){this.err_form="Please enter/select values for the following fields:\n\n";this.err_select='Please select a valid "%FIELDNAME%"';this.err_enter='Please enter a valid "%FIELDNAME%"'}function Field(B,C){this.type=B.type;this.element=B;this.exclude=B.exclude||B.getAttribute("exclude");this.err=B.err||B.getAttribute("err");this.required=_parseBoolean(B.required||B.getAttribute("required"));this.realname=B.realname||B.getAttribute("realname");this.elements=[];switch(this.type){case"textarea":case"password":case"text":case"file":this.value=B.value;this.minLength=B.minlength||B.getAttribute("minlength");this.maxLength=B.maxlength||B.getAttribute("maxlength");this.regexp=this._getRegEx(B);this.minValue=B.minvalue||B.getAttribute("minvalue");this.maxValue=B.maxvalue||B.getAttribute("maxvalue");this.equals=B.equals||B.getAttribute("equals");this.callback=B.callback||B.getAttribute("callback");break;case"select-one":case"select-multiple":this.values=[];for(var A=0;A<B.options.length;++A){if(B.options[A].selected&&(!this.exclude||B.options[A].value!=this.exclude)){this.values[this.values.length]=B.options[A].value}}this.min=B.min||B.getAttribute("min");this.max=B.max||B.getAttribute("max");this.equals=B.equals||B.getAttribute("equals");break;case"checkbox":this.min=B.min||B.getAttribute("min");this.max=B.max||B.getAttribute("max");case"radio":this.required=_parseBoolean(this.required||B.getAttribute("required"));this.values=[];if(B.checked){this.values[0]=B.value}this.elements[0]=B;break}}Field.prototype.Merge=function(A){var B=_parseBoolean(A.getAttribute("required"));if(B){this.required=true}if(!this.err){this.err=A.getAttribute("err")}if(!this.equals){this.equals=A.getAttribute("equals")}if(!this.callback){this.callback=A.getAttribute("callback")}if(!this.realname){this.realname=A.getAttribute("realname")}if(!this.max){this.max=A.getAttribute("max")}if(!this.min){this.min=A.getAttribute("min")}if(!this.regexp){this.regexp=this._getRegEx(A)}if(A.checked){this.values[this.values.length]=A.value}this.elements[this.elements.length]=A};Field.prototype.IsValid=function(A){switch(this.type){case"textarea":case"password":case"text":case"file":return this._ValidateText(A);case"select-one":case"select-multiple":case"radio":case"checkbox":return this._ValidateGroup(A);default:return true}};Field.prototype.SetClass=function(A){if((A)&&(A!=="")){if((this.elements)&&(this.elements.length>0)){for(var B=0;B<this.elements.length;++B){if(this.elements[B].className!=A){this.elements[B].oldClassName=this.elements[B].className;this.elements[B].className=A}}}else{if(this.element.className!=A){this.element.oldClassName=this.element.className;this.element.className=A}}}};Field.prototype.ResetClass=function(){if((this.type!="button")&&(this.type!="submit")&&(this.type!="reset")){if((this.elements)&&(this.elements.length>0)){for(var A=0;A<this.elements.length;++A){if(this.elements[A].oldClassName){this.elements[A].className=this.elements[A].oldClassName}else{this.element.className=""}}}else{if(this.elements.oldClassName){this.element.className=this.element.oldClassName}else{this.element.className=""}}}};Field.prototype._getRegEx=function(A){regex=A.regexp||A.getAttribute("regexp");if(regex===null){return null}retype=typeof (regex);if(retype.toUpperCase()=="FUNCTION"){return regex}else{if((retype.toUpperCase()=="STRING")&&!(regex=="JSVAL_RX_EMAIL")&&!(regex=="JSVAL_RX_TEL")&&!(regex=="JSVAL_RX_PC")&&!(regex=="JSVAL_RX_ZIP")&&!(regex=="JSVAL_RX_MONEY")&&!(regex=="JSVAL_RX_CREDITCARD")&&!(regex=="JSVAL_RX_POSTALZIP")){nBegin=0;nEnd=regex.length-1;if(regex.charAt(0)=="/"){nBegin=1}if(regex.charAt(regex.length-1)=="/"){nEnd=regex.length-2}return new RegExp(regex.slice(nBegin,nEnd))}else{return regex}}};Field.prototype._ValidateText=function(arrFields){if((this.required)&&(this.callback)){nCurId=this.element.id?this.element.id:"";nCurName=this.element.name?this.element.name:"";eval("bResult = "+this.callback+"('"+nCurId+"', '"+nCurName+"', '"+this.value+"');");if(bResult===false){return false}}else{if(this.required&&!this.value){return false}if(this.value&&(this.minLength&&this.value.length<this.minLength)){return false}if(this.value&&(this.maxLength&&this.value.length>this.maxLength)){return false}if(this.regexp){if(!_checkRegExp(this.regexp,this.value)){if(!this.required&&this.value){return false}if(this.required){return false}}else{return true}}if(this.equals){for(var i=0;i<arrFields.length;++i){var field=arrFields[i];if((field.element.name==this.equals)||(field.element.id==this.equals)){if(field.element.value!=this.value){return false}break}}}if(this.required){var fValue=parseFloat(this.value);if((this.minValue||this.maxValue)&&isNaN(fValue)){return false}if((this.minValue)&&(fValue<this.minValue)){return false}if((this.maxValue)&&(fValue>this.maxValue)){return false}}}return true};Field.prototype._ValidateGroup=function(A){if(this.required&&this.values.length==0){return false}if(this.required&&this.min&&this.min>this.values.length){return false}if(this.required&&this.max&&this.max<this.values.length){return false}return true};function _handleError(C,A){var B=C.element;strNewMessage=A+((C.realname)?C.realname:((B.id)?B.id:B.name))+"\n";return strNewMessage}function _throwError(B){var A=B.element;switch(B.type){case"text":case"password":case"textarea":case"file":alert(_getError(B,"err_enter"));try{A.focus()}catch(C){}break;case"select-one":case"select-multiple":case"radio":case"checkbox":alert(_getError(B,"err_select"));break}}function _getError(B,C){var A=B.element;strErrorTemp=(B.err)?B.err:_getLanguageText(C);idx=strErrorTemp.indexOf("\\n");while(idx>-1){strErrorTemp=strErrorTemp.replace("\\n","\n");idx=strErrorTemp.indexOf("\\n")}return strErrorTemp.replace("%FIELDNAME%",(B.realname)?B.realname:((A.id)?A.id:A.name))}function _parseBoolean(A){return !(!A||A==0||A=="0"||A=="false")}function _checkRegExp(B,A){switch(B){case"JSVAL_RX_EMAIL":return((/^\w+([\.\-]?\w+)*@\w+([\.\-]?\w+)*(\.\w{2,5})+$/).test(A));case"JSVAL_RX_TEL":return((/^1?[\- ]?\(?\d{3}\)?[\- ]?\d{3}[\- ]?\d{4}$/).test(A));case"JSVAL_RX_PC":return((/^[a-z]\d[a-z] ?\d[a-z]\d$/i).test(A));case"JSVAL_RX_ZIP":return((/^\d{5}$/).test(A));case"JSVAL_RX_MONEY":return((/^\d+([\.]\d\d)?$/).test(A));case"JSVAL_RX_CREDITCARD":return(!isNaN(A));case"JSVAL_RX_POSTALZIP":if(A.length==6||A.length==7){return((/^[a-zA-Z]\d[a-zA-Z] ?\d[a-zA-Z]\d$/).test(A))}if(A.length==5||A.length==10){return((/^\d{5}(\-\d{4})?$/).test(A))}break;default:return(B.test(A))}}