function validateCompleteForm(objForm,strErrorClass){return _validateInternal(objForm,strErrorClass,0);}function validateStandard(objForm,strErrorClass){return _validateInternal(objForm,strErrorClass,1);}function _validateInternal(form,strErrorClass,nErrorThrowType){var strErrorMessage="";var extraLogText="";var errorLogText="";var objFirstError=null;var strErrorUL=document.createElement("ul");if(nErrorThrowType==0){errorDATA=(form.err)?form.err:_getLanguageText("err_form");strErrorMessage=errorDATA;appendErrorLI(strErrorUL,errorDATA);}var fields=_GenerateFormFields(form);for(var i=0;i<fields.length;++i){var field=fields[i];extraLogText+=" id_name["+field.element.id+","+field.element.name+"] value["+field.value+"], ";if(!field.IsValid(fields)){field.SetClass(strErrorClass);if(nErrorThrowType==1){_throwError(field);return false;}else{if(objFirstError==null){objFirstError=field;}errorDATA=(field.err)?field.err:_getLanguageText(str);strErrorMessage+=errorDATA+"\n";appendErrorLI(strErrorUL,errorDATA);if(field){errorLogText+=errorDATA;}bError=true;}}else{field.ResetClass();}}if(objFirstError!=null){log(errorLogText+extraLogText);errorDIV(strErrorMessage,strErrorUL);objFirstError.element.focus();return false;}return true;}function _getLanguageText(id){objTextsInternal=new _jsVal_Language();objTexts=null;try{objTexts=new jsVal_Language();}catch(ignored){}switch(id){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(form){var arr=new Array();for(var i=0;i<form.length;++i){var element=form.elements[i];var index=_getElementIndex(arr,element);if(index==-1){arr[arr.length]=new Field(element,form);}else{arr[index].Merge(element);}}return arr;}function _getElementIndex(arr,element){if(element.name){var elementName=element.name.toLowerCase();for(var i=0;i<arr.length;++i){if(arr[i].element.name){if(arr[i].element.name.toLowerCase()==elementName){return i;}}}}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(element,form){this.type=element.type;this.element=element;this.exclude=element.exclude||element.getAttribute("exclude");this.err=element.err||element.getAttribute("err");this.required=_parseBoolean(element.required||element.getAttribute("required"));this.realname=element.realname||element.getAttribute("realname");this.elements=new Array();switch(this.type){case"textarea":case"password":case"text":case"file":this.value=element.value;this.minLength=element.minlength||element.getAttribute("minlength");this.maxLength=element.maxlength||element.getAttribute("maxlength");this.regexp=this._getRegEx(element);this.minValue=element.minvalue||element.getAttribute("minvalue");this.maxValue=element.maxvalue||element.getAttribute("maxvalue");this.equals=element.equals||element.getAttribute("equals");this.callback=element.callback||element.getAttribute("callback");break;case"select-one":case"select-multiple":this.values=new Array();for(var i=0;i<element.options.length;++i){if(element.options[i].selected&&(!this.exclude||element.options[i].value!=this.exclude)){this.values[this.values.length]=element.options[i].value;}}this.min=element.min||element.getAttribute("min");this.max=element.max||element.getAttribute("max");this.regexp=this._getRegEx(element);this.equals=element.equals||element.getAttribute("equals");break;case"checkbox":this.min=element.min||element.getAttribute("min");this.max=element.max||element.getAttribute("max");case"radio":this.required=_parseBoolean(this.required||element.getAttribute("required"));this.values=new Array();if(element.checked){this.values[0]=element.value;}this.elements[0]=element;break;}}Field.prototype.Merge=function(element){var required=_parseBoolean(element.getAttribute("required"));if(required){this.required=true;}if(!this.err){this.err=element.getAttribute("err");}if(!this.equals){this.equals=element.getAttribute("equals");}if(!this.callback){this.callback=element.getAttribute("callback");}if(!this.realname){this.realname=element.getAttribute("realname");}if(!this.max){this.max=element.getAttribute("max");}if(!this.min){this.min=element.getAttribute("min");}if(!this.regexp){this.regexp=this._getRegEx(element);}if(element.checked){this.values[this.values.length]=element.value;}this.elements[this.elements.length]=element;};Field.prototype.IsValid=function(arrFields){switch(this.type){case"textarea":case"password":case"text":case"file":return this._ValidateText(arrFields);case"select-one":case"select-multiple":case"radio":case"checkbox":return this._ValidateGroup(arrFields);default:return true;}};Field.prototype.SetClass=function(newClassName){if((newClassName)&&(newClassName!="")){if((this.elements)&&(this.elements.length>0)){for(var i=0;i<this.elements.length;++i){if(this.elements[i].className!=newClassName){this.elements[i].oldClassName=this.elements[i].className;this.elements[i].className=newClassName;}}}else{switch(this.type){case"select-one":case"select-multiple":var elementInst=document.getElementById(this.element.id);if(elementInst.className!=newClassName){elementInst.oldClassName=elementInst.className;elementInst.className=newClassName;}for(var i=0;i<elementInst.options.length;++i){if(elementInst.options[i].selected&&(!this.exclude||elementInst.options[i].value!=this.exclude)){if(elementInst.options[i].className!=newClassName){elementInst.options[i].oldClassName=elementInst.options[i].className;elementInst.options[i].className=newClassName;}}}break;default:if(this.element.className!=newClassName){this.element.oldClassName=this.element.className;this.element.className=newClassName;}}}}};Field.prototype.ResetClass=function(){if((this.type!="button")&&(this.type!="submit")&&(this.type!="reset")){if((this.elements)&&(this.elements.length>0)){for(var i=0;i<this.elements.length;++i){if(this.elements[i].oldClassName){this.elements[i].className=this.elements[i].oldClassName;}else{this.element.className="";}}}else{if(this.elements.oldClassName){this.element.className=this.element.oldClassName;}else{this.element.className="";}}}};Field.prototype._getRegEx=function(element){regex=element.regexp||element.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")&&!(regex=="JSVAL_RX_DATE")&&!(regex=="JSVAL_DIGITS")){nBegin=0;nEnd=0;if(regex.charAt(0)=="/"){nBegin=1;}var spliceTxt=regex.slice(nBegin,nEnd);if(regex.charAt(regex.length-1)=="/"){nEnd=regex.length-1;}var reginst=new RegExp(regex.slice(spliceTxt));return reginst;}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){var checkRegExp=_checkRegExp(this.regexp,this.value,this);if(!checkRegExp){if(!this.required&&this.value){return false;}if(this.required){return false;}}}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(arrFields){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;}if(this.regexp){var fialedAny=false;for(var i=0;i<this.values.length&&!fialedAny;++i){var checkRegExp=_checkRegExp(this.regexp,this.values[i],this);if(!checkRegExp){if(!this.required&&this.value){return false;}if(this.required){return false;}}}}return true;};function _handleError(field,strErrorMessage){var obj=field.element;strNewMessage=strErrorMessage+((field.realname)?field.realname:((obj.id)?obj.id:obj.name))+"\n";return strNewMessage;}function _throwError(field){var obj=field.element;switch(field.type){case"text":case"password":case"textarea":case"file":alert(_getError(field,"err_enter"));try{obj.focus();}catch(ignore){}break;case"select-one":case"select-multiple":case"radio":case"checkbox":alert(_getError(field,"err_select"));try{obj.focus();}catch(ignore){}break;}}function _getError(field,str){var obj=field.element;strErrorTemp=(field.err)?field.err:_getLanguageText(str);idx=strErrorTemp.indexOf("\\n");while(idx>-1){strErrorTemp=strErrorTemp.replace("\\n","\n");idx=strErrorTemp.indexOf("\\n");}return strErrorTemp.replace("%FIELDNAME%",(field.realname)?field.realname:((obj.id)?obj.id:obj.name));}function _parseBoolean(value){return !(!value||value==0||value=="0"||value=="false");}function _checkRegExp(regexpVal,valueVal,objInst){switch(regexpVal){case"JSVAL_RX_EMAIL":return((/^[a-zA-Z0-9_\.\-]+([\.-]?[a-zA-Z0-9_\.\-]+)*@[a-zA-Z0-9_\.\-]+([\.-]?[a-zA-Z0-9_\.\-]+)*(\.\w{2,5})+$/).test(valueVal));case"JSVAL_RX_TEL":return((/^(([\+-\._\(\) ]?\d{0,6}([-\._\(\) ])?\(?\d{0,6}\)?([-\._\(\) ])?\d{0,6})|(\(?\d{0,6}\)?))([-\._\(\) ])?(\d{0,6})([-\._\(\) ])?(\d{0,6})(( x| ext)\d{0,6}){0,1}$/).test(valueVal));case"JSVAL_RX_PC":return((/^[a-z]\d[a-z]?\d[a-z]\d$/i).test(valueVal));case"JSVAL_DIGITS":return((/^\d$/).test(valueVal));case"JSVAL_RX_ZIP":return((/^\d{5}$/).test(valueVal));case"JSVAL_RX_DATE":return((/^(19|20)\d\d[- \/.](0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])*$/).test(valueVal));case"JSVAL_RX_MONEY":return((/^\d+([\.]\d\d)?$/).test(valueVal));case"JSVAL_RX_CREDITCARD":return(!isNaN(value));case"JSVAL_RX_POSTALZIP":if(valueVal.length==6||valueVal.length==7){return((/^[a-zA-Z]\d[a-zA-Z] ?\d[a-zA-Z]\d$/).test(valueVal));}if(valueVal.length==5||valueVal.length==10){return((/^\d{5}(\-\d{4})?$/).test(valueVal));}break;default:return regexpVal.test(valueVal);}}function logged(){}function handleErr(varOne,varTwo){}function log(values){try{var nameValue=new Array();nameValue["logtext"]=values;if(HTTP&&(typeof HTTP!="object"||HTTP.NAME)){HTTP.post("/logErrors.php",nameValue,logged,handleErr);}}catch(e){}}function errorDIV(msg,msgUL){errDIVCont=document.getElementById("ErrorDIVContainer");errDIV=document.getElementById("ErrorDIV");try{if(errDIV&&errDIVCont){errDIVCont.style.display="block";if(errDIV.lastChild.nodeName=="DIV"){errDIV.removeChild(errDIV.lastChild);}childEle=document.createElement("div");if(childEle&&msgUL){childEle.setAttribute("class","small errortext");childEle.appendChild(msgUL);errDIV.appendChild(childEle);}}else{alert(msg);}}catch(e){}}function appendErrorLI(strErrorUL,errorDATA){if(strErrorUL){errorLI=document.createElement("li");errorLIText=document.createTextNode(errorDATA);if(errorLI&&errorLIText){errorLI.appendChild(errorLIText);strErrorUL.appendChild(errorLI);}}}