var _aFormField=new Array();function _fnFormCheck(D,B){var A=false;var C=new FormChecker(D);C.Synchronize();if(C.Check()){if(B){C.FieldsSubmitFriendly()}A=true}return A}function FormField(G,E,D,B,F,A,C){this.FormName=G;this.InternalName=E;this.PublicName=D;this.Element=null;this.IsCompulsory=B;this.MaxLength=F;this.Format=A;this.Help=C}function FormChecker(A){this.FormName=A;this.Element=null;this.Elements=null;this.Synchronize=FormChecker_Synchronize;this.Check=FormChecker_Check;this.CheckField=FormChecker_CheckField;this.CheckValue=FormChecker_CheckValue;this.CheckGroupValue=FormChecker_CheckGroupValue;this.Alert=FormChecker_Alert;this.IsStringLonger=FormChecker_IsStringLonger;this.IsStringFitFormat=FormChecker_IsStringFitFormat;this.IsStringEmpty=FormChecker_IsStringEmpty;this.FieldsSubmitFriendly=FormChecker_FieldsSubmitFriendly}function FormChecker_Synchronize(E){var C=false;var F=this.FormName;if(F!=null){var D=document.forms[F];if(D){this.Element=D;if(!E||E.length==0){if(typeof(_aFormField)!="undefined"){E=_aFormField}}if(E&&E.length>0){var A=new Array();var G=0;for(var B=0;B<E.length;B++){if(E[B].FormName==F&&D.elements[E[B].InternalName]){A[G]=E[B];G++}}if(A.length>0){this.Elements=A}}C=true}}return C}function FormChecker_Check(){result=false;if(this.Element){var E=this.Elements;var A=this.Element.elements;if(E){for(var B=0;B<E.length;B++){var C=E[B];var D=A[C.InternalName];if(D){if(!this.CheckField(D,C)){break}}}}else{result=true}}return result}function FormChecker_CheckField(D,A){result=true;var E=D.type;var C=(D.length>0&&typeof(D.options)=="undefined");if(C){if(D[0].type=="checkbox"||D[0].type=="radio"){if(!this.CheckGroupValue(D,A)){this.Alert(D[0],A);result=false}}else{for(var B=0;B<D.length;B++){if(!this.CheckValue(D[B],A)){this.Alert(D[B],A);result=false;break}}}}else{if(!this.CheckValue(D,A)){this.Alert(D,A);result=false}}return result}function FormChecker_CheckValue(D,B){result=true;var E=D.type;if(E=="select"||E=="select-one"||E=="select-multiple"){if(B.IsCompulsory){result=false;var F=D.selectedIndex;result=(F>0||(F==0&&D.options[F].value!=""));if(E=="select-multiple"&&!result){for(var C=0;C<D.options.length;C++){if(D.options[C].selected){result=true;break}}}}}else{if(E=="text"||E=="password"||E=="textarea"){var A=D.value;if((B.IsCompulsory&&this.IsStringEmpty(A))||(B.MaxLength&&this.IsStringLonger(A,B.MaxLength))||(B.Format&&!this.IsStringFitFormat(A,B.Format))){result=false}}}return result}function FormChecker_CheckGroupValue(C,A){result=true;if(C.length>0){if(A.IsCompulsory){result=false;for(var B=0;B<C.length;B++){if(C[B].checked){result=true;break}}}}return result}function FormChecker_Alert(C,A){var B="(!) The value is invalid.\r\n\r\n";if(A.Help){B+=A.Help}else{B+=(A.PublicName?'"'+A.PublicName+'" field':"The field")+(A.IsCompulsory?" is compulsory.":"")+(A.MaxLength?(A.IsCompulsory?" The":"")+" maximum length is "+A.MaxLength+".":"")+(A.Format&&!A.IsCompulsory&&!A.MaxLength?" format is incorrect.":"")}alert(B);if(C&&C.type!="hidden"&&!C.disabled){C.focus()}return false}function FormChecker_IsStringEmpty(D){var C=true;var A=" \t\n\r";for(var B=0;B<D.length;B++){if(A.indexOf(D.charAt(B))<0){C=false;break}}return C}function FormChecker_IsStringFitFormat(C,D){var A=true;if(C&&C.length>0){if(D.indexOf("@")==0){}else{if(typeof(new RegExp())!="undefined"){var B=new RegExp(D);A=B.test(C)}}}return A}function FormChecker_IsStringLonger(A,B){return(A.length>B)}function FormChecker_FieldsSubmitFriendly(){var A=this.Element.elements};
