var globalErrorsId="global_errors";var fieldErrorIdSuffix="_error";if(!Array.prototype.push){Array.prototype.push=function(){var B=this.length;for(var A=0;A<arguments.length;A++){this[B+A]=arguments[A]}return this.length}}if(!Function.prototype.apply){Function.prototype.apply=function(object,parameters){var parameterStrings=new Array();if(!object){object=window}if(!parameters){parameters=new Array()}for(var i=0;i<parameters.length;i++){parameterStrings[i]="parameters["+i+"]"}object.__apply__=this;var result=eval("object.__apply__("+parameterStrings.join(", ")+")");object.__apply__=null;return result}}var ValangValidator=function(A,C,D,B){this.name=A;this.gerrorboxId=B;this.rules=D;this.form=this._findForm(A);if(C){this._installSelfWithForm()}};ValangValidator.prototype={validate:function(){return this._validateAndReturnFailedRules().length>0},validateAndShowFeedback:function(){var A=this._validateAndReturnFailedRules();if(A.length>0){this.showValidationFeedback(A)}return A.length===0},showValidationFeedback:function(E){var B=new Array();for(var D=0;D<E.length;D++){var A=E[D].field+fieldErrorIdSuffix;var H=document.getElementById(A);if(H!=null){H.innerHTML=E[D].getErrorMessage()}else{B.push(E[D])}}var C=document.getElementById(this.gerrorboxId);if(C!=null){var G=document.createElement("ol");for(var D=0;D<B.length;D++){var J=document.createElement("li");J.innerHTML=B[D].getErrorMessage();G.appendChild(J)}C.appendChild(G)}else{var I="";for(var D=0;D<B.length;D++){I=I+B[D].getErrorMessage()+"\n"}alert(I)}var F=null;for(var D=0;D<B.length;D++){F=this.form.getFieldsWithName(B[D].field);if(F.length>0){F[0].markError()}}F=this.form.getFieldsWithName(E[0].field);if(F.length>0){F[0].activate()}},_findForm:function(A){var C=document.getElementById(A);if(!C||C.tagName.toLowerCase()!="form"){C=document.getElementById(A+"ValangValidator")}var B=C;if(!C){throw"unable to find FORM element enclosing element with ID '"+B.id+"'"}return new ValangValidator.Form(C)},_installSelfWithForm:function(){var C=window.onload;var B=this.form.formElement.onsubmit;var A=this;window.onload=function(){ValangValidator.Logger.log("Installing ValangValidator '"+A.name+"' as onsubmit handler");try{if(C){C()}}finally{A.form.formElement.onsubmit=function(){if(!B||B()){return A.validateAndShowFeedback()}}}}},_validateAndReturnFailedRules:function(){this._clearGlobalErrors();ValangValidator.Logger.push("Starting validation");var A=new Array();for(var B=0;B<this.rules.length;B++){var C=this.rules[B];this._clearErrorIfExists(C.field);ValangValidator.Logger.push("Evaluating rule for field ["+C.field+"]");C.form=this.form;if(!C.validate()){ValangValidator.Logger.pop("Failed");A.push(C)}else{ValangValidator.Logger.pop("Passed")}}ValangValidator.Logger.pop("Finshed - "+A.length+" failed rules");return this._giveRulesSameOrderAsFormFields(A)},_clearErrorIfExists:function(C){var B=document.getElementById(C+fieldErrorIdSuffix);if(B!=null){B.innerHTML=""}var A=this.form.getFieldsWithName(C);if(A.length>0){A[0].clearError()}},_clearGlobalErrors:function(){var A=document.getElementById(this.gerrorboxId);if(A!=null){A.innerHTML=""}},_giveRulesSameOrderAsFormFields:function(C){var E=new Array();var A=this.form.getFields();for(var D=0;D<A.length;D++){var F=A[D].name;for(var B=0;B<C.length;B++){if(C[B]&&C[B].field==F){E.push(C[B]);C[B]=null}}}for(var D=0;D<C.length;D++){if(C[D]){E.push(C[D])}}return E}};ValangValidator.Logger={log:function(C){var A=document.getElementById("valangLogDiv");if(A){var B=A.innerHTML;A.innerHTML=this._indentString("&nbsp;")+C+(B.length>0?"<br>"+B:"")}},push:function(A){this.log(A);this._indent++},pop:function(A){this._indent--;this.log(A)},logFunctionCalls:function(B){for(var A in B){var C=B[A];if(typeof C=="function"){B[A]=this._wrapFunctionCallWithLog(A,C)}}},_indent:0,_indentString:function(C){var A="";for(var B=0;B<this._indent*5;B++){A+=C}return A},_wrapFunctionCallWithLog:function(A,B){return function(){ValangValidator.Logger.push("calling "+A+"("+arguments[0]+", "+arguments[1]+")");try{var C=B.apply(this,arguments)}catch(D){ValangValidator.Logger.pop("threw "+D);throw D}ValangValidator.Logger.pop("result = "+C);return C}}};ValangValidator.Form=function(A){this.formElement=A};ValangValidator.Form.prototype={getValue:function(D){var A=this.getFieldsWithName(D);var C=new Array();for(var B=0;B<A.length;B++){if(!A[B].isDisabled()){if(A[B].getValue()){C.push(A[B].getValue())}}}if(C.length==1){return C[0]}else{if(C.length>1){return C}}},getFieldsWithName:function(E){var D=new Array();var A=this.getFields();for(var B=0;B<A.length;B++){var C=A[B];if(C.name==E){D.push(C)}}return D},getFields:function(){var A=new Array();var C=this.formElement.elements;for(var B=0;B<C.length;B++){if(C[B].tagName.toLowerCase()!="fieldset"&&C[B].tagName.toLowerCase()!="legend"){A.push(new ValangValidator.Field(C[B]))}}return A},disable:function(){var A=this.getFields();for(var B=0;B<A.length;B++){A[B].disable()}},enable:function(){var A=this.getFields();for(var B=0;B<A.length;B++){A[B].enable()}},focusFirstElement:function(C){var A=this.getFields();for(var B=0;B<A.length;B++){var D=A[B];if(D.type!="hidden"&&!D.isDisabled()){D.activate();break}}}};ValangValidator.Field=function(A){this.id=A.id;this.name=A.name;this.type=A.type.toLowerCase();this.tagName=A.tagName.toLowerCase();this.fieldElement=A;if(ValangValidator.Field.ValueGetters[this.tagName]){this.getValue=ValangValidator.Field.ValueGetters[this.tagName]}else{if(this.tagName=="input"){switch(this.type){case"button":case"submit":case"hidden":case"password":case"text":this.getValue=ValangValidator.Field.ValueGetters["textarea"];break;case"checkbox":case"radio":this.getValue=ValangValidator.Field.ValueGetters["inputSelector"];break;default:throw"unexpected input field type '"+this.type+"'"}}else{throw"unexpected form field tag name '"+this.tagName+"'"}}};ValangValidator.Field.prototype={clear:function(){this.fieldElement.value=""},focus:function(){this.fieldElement.focus()},select:function(){if(this.fieldElement.select){this.fieldElement.select()}},activate:function(){this.focus();this.select()},isDisabled:function(){return this.fieldElement.disabled},disable:function(){this.fieldElement.blur();this.fieldElement.disabled="true"},enable:function(){this.fieldElement.disabled=""},markError:function(){this.fieldElement.className=this.fieldElement.className+" error"},clearError:function(){var A=this.fieldElement.className.indexOf(" error");if(A!=-1){this.fieldElement.className=this.fieldElement.className.substring(0,A)+this.fieldElement.className.substring(A+6,this.fieldElement.className.length)}}};ValangValidator.Field.ValueGetters={inputSelector:function(){if(this.fieldElement.checked){return this.fieldElement.value}},textarea:function(){return this.fieldElement.value},select:function(){var D="";if(this.fieldElement.type=="select-one"){var A=this.fieldElement.selectedIndex;if(A>=0){D=this.fieldElement.options[A].value}}else{D=new Array();for(var B=0;B<element.length;B++){var C=this.fieldElement.options[B];if(C.selected){D.push(C.value)}}}return D}};ValangValidator.Rule=function(C,B,A){this.field=C;this.errorMessage=B;this.validate=A};ValangValidator.Rule.prototype={getErrorMessage:function(){return this.errorMessage},getField:function(){return this.field},getPropertyValue:function(A,B){return this.form.getValue(A)},_assertHasLength:function(A){if(!A.length){throw"value '"+A+"' does not have length"}},_assertLength:function(B,A){this._assertHasLength(B);if(B.length!=A){throw"value's length != '"+A+"'"}},_throwError:function(A){throw A},_makeCompatible:function(A,E){try{this._forceNumber(E);return this._forceNumber(A)}catch(B){}var C=typeof A;var D=typeof E;if(C==D){return A}else{if(C=="number"||D=="number"){return this._forceNumber(A)}else{throw"unable to convert ["+A+"] and ["+E+"] to compatible types"}}},_forceNumber:function(value){if(typeof value!="number"){try{var newValue=eval(value.toString())}catch(ex){}if((newValue||newValue==0)&&typeof newValue=="number"){return newValue}throw"unable to convert value ["+value+"] to number"}return value},lengthOf:function(A){return(A!=null)?A.length:0},lowerCase:function(A){return(A!=null)?A.toLowerCase():null},upperCase:function(A){return(A!=null)?A.toUpperCase():null},equals:function(A,B){if((A==null&&B!=null)||(B==null&&A!=null)){return false}if(A==B){return true}A=this._makeCompatible(A,B);B=this._makeCompatible(B,A);return A===B},lessThan:function(A,B){A=this._makeCompatible(A,B);B=this._makeCompatible(B,A);return A<B},lessThanOrEquals:function(A,B){A=this._makeCompatible(A,B);B=this._makeCompatible(B,A);return A<=B},moreThan:function(A,B){A=this._makeCompatible(A,B);B=this._makeCompatible(B,A);return A>B},moreThanOrEquals:function(A,B){A=this._makeCompatible(A,B);B=this._makeCompatible(B,A);return A>=B},inFunc:function(A,D){for(var B=0;B<D.length;B++){var C=D[B];if(A==C){return true}}return false},between:function(A,B){this._assertLength(B,2);A=this._makeCompatible(A,B[0]);B[0]=this._makeCompatible(B[0],A);B[1]=this._makeCompatible(B[1],A);return A>=B[0]&&A<=B[1]},nullFunc:function(A,B){return A===null||typeof A=="undefined"},hasText:function(A,B){return A&&A.replace(/\s/g,"").length>0},hasLength:function(A,B){return A&&A.length>0},isBlank:function(A,B){A=trim(A);return !A||A.length==0},isWord:function(A,B){return A&&A.replace(/\s/g,"")==A},isUpper:function(A,B){return A&&A.toUpperCase()==A},isLower:function(A,B){return A&&A.toLowerCase()==A},add:function(A,B){return this._forceNumber(A)+this._forceNumber(B)},divide:function(A,B){return this._forceNumber(A)/this._forceNumber(B)},modulo:function(A,B){return this._forceNumber(A)%this._forceNumber(B)},multiply:function(A,B){return this._forceNumber(A)*this._forceNumber(B)},subtract:function(A,B){return this._forceNumber(A)-this._forceNumber(B)},RegExFunction:function(B,A){if(!A.match){throw"don't know how to apply regexp to value '"+A+"'"}return A.match(B)[0]==A},EmailFunction:function(B){var A=/^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/;return A.test(B)},DateFunction:function(A){return Date.parseDate(A,"d/m/Y")},compareDates:function(B,A){if(B==undefined||B==null||A==undefined||A==null){return true}if(B.length!=10||B.length!=10){return true}var D=Date.parseDate(B,"d/m/Y");var C=Date.parseDate(A,"d/m/Y");if((C-D)<0){return false}else{return true}},isTaxNumber:function(A){if(A==undefined||A==null){return true}if(A.length!=0&&CheckVergiNo(A)==false){return false}if(A.length==0){return false}else{return true}},isIdentityNumber:function(A){if(A==undefined||A==null){return true}if(A.length==0){return false}if(A.length!=0&&CheckTcKimlikNo(A)==false){return false}else{return true}},isValid:function(D,A){if(D==undefined||D==null){return true}var C=true;var B;for(i=0;i<D.length&&C==true;i++){B=D.charAt(i);if(A.indexOf(B)==-1){C=false}}return C},isNumber:function(C){if(C==undefined||C==null){return true}var D="0123456789.";var B=true;var A;for(i=0;i<C.length&&B==true;i++){A=C.charAt(i);if(D.indexOf(A)==-1){B=false}}return B},numberCount:function(B){if(B==undefined||B==null){return 0}var C="0123456789";var A=0;for(i=0;i<B.length;i++){Char=B.charAt(i);if(C.indexOf(Char)!=-1){A++}}return A},containsText:function(B,A){if(B==undefined||B==null){return true}if(B.indexOf(A)!=-1){return true}return false},moneyValue:function(B){if(B==undefined||B==null){return -1}var A=B.replace(/\./g,"");A=A.replace(/,/g,".");return A*1}};function CheckTcKimlikNo(K){var C=false;if(isNumeric(K)==false){return C}if(K==""||K==null){return C}if(K.length!=11){return C}var F;var G;var E;var A;var J;var D;var B;var I=new Array();var H=parseInt(K);if(H>0){G=Math.floor(H/100);F=Math.floor(H/100);for(n=9;n>=1;n--){I[n]=F%10;F=Math.floor(F/10)}E=I[9]+I[7]+I[5]+I[3]+I[1];A=I[8]+I[6]+I[4]+I[2];J=E*3+A;D=(10-J%10)%10;E=D+I[8]+I[6]+I[4]+I[2];A=I[9]+I[7]+I[5]+I[3]+I[1];J=E*3+A;B=(10-J%10)%10;G=G*100+D*10+B;if(G!=H){return C}else{C=true;return C}}else{return C}}function CheckVergiNo(A){var B=false;if(isNumeric(A)==false){return B}if(A==""||A==null){return B}if (A == "" || A == null )return B;if (A.length!=0){A="0000000000"+A;A=A.substring(A.length-10,A.length);}var I=new Array(0,0,0,0,0,0,0,0,0,0);var D=new Array(0,0,0,0,0,0,0,0,0,0);var H=0;var J=0;var G=0;var E=0;for(var C=0;C<9;C++){I[C]=parseInt(A.substring(C,C+1))-C+9;if(I[C]>9){I[C]=I[C]-10}}for(var C=0;C<9;C++){D[C]=I[C]*(Math.pow(2,9-C));if(D[C]==0){G=0}else{J=Math.floor(D[C]/9);G=D[C]-(9*J);if(G==0){G=9}}H=H+G}J=Math.floor(H/10)*10;if(J==H){E=0}else{E=J+10-H}if(parseInt(A.substring(9,10))!=E){B=false}else{B=true}return B}function trim(B){if(B==null||B==undefined){return B}var A=B.match(/^\s*(\S+(\s+\S+)*)\s*$/);return(A==null)?"":A[1]}function isNumeric(D){var E="0123456789";var C;var A=0;for(var B=0;B<D.length;B++){C=D.substring(B,B+1);if(E.indexOf(C)!=-1){A++}}if(A==D.length){return true}else{return false}}
