(function(){var a=RIGHTMOVE.namespace("RIGHTMOVE.VALIDATION");a.validator=function(){var e=function(F,G){return F[G]};var s=function(G){var H=$(G).attr("title");var F=$(G).val();if(F==H){return""}return jQuery.trim(F)};var f=function(K,M,J,I,G){var L=e(K,M);var H=true;for(var F in I){if(I.hasOwnProperty(F)){H=(L.type==I[F])||H}}return !(H&&!G(L))};var t=function(H,I,G,F){return f(H,I,G,["text","textarea"],function(J){return(!s(J))||F(J)})};var B=function(G){var F=s(G);return F.length>0};var r=function(G,H,F){return f(G,H,F,["text","textarea","file","select-one","radio","password"],function(J){var I=s(J);return I.length>0})};var n=function(){return true};var C=function(G,H,F){return t(G,H,F,function(J){var I=parseInt(F.minlength,10);return s(J).length>=I})};var z=function(G,H,F){return t(G,H,F,function(J){var I=parseInt(F.maxlength,10);return s(J).length<=I})};var j=function(G,F){return F.exec(G)};var A=function(G,H,F){return t(G,H,F,function(I){return j(s(I),F.mask)})};var l=function(G){G=G.toString();var F="0123456789";var H=0;if(G.substring(0,2)=="0x"){F="0123456789abcdefABCDEF";H=2}else{if(G.charAt(0)=="0"){F="01234567";H=1}else{if(G.charAt(0)=="-"){H=1}}}for(var I=H;I<G.length;I++){if(F.indexOf(G.substring(I,I+1))==-1){return false}}return true};var c=function(I,J,H,G,F){return f(I,J,H,["text","textarea","select-one","radio"],function(M){var L=true;var K=s(M);if(K.length>0){if(!l(K)){L=false}else{var N=parseInt(K,10);if(isNaN(N)||!(N>=G&&N<=F)){L=false}}}return L})};var E=function(G,H,F){return c(G,H,F,-128,127)};var g=function(G,H,F){return c(G,H,F,-32768,32767)};var i=function(G,H,F){return c(G,H,F,-2147483648,2147483647)};var D=function(G,H,F){return f(G,H,F,["text","textarea","select-one","radio"],function(M){var L=true;var J=s(M);if(J.length>0){var K=J.split(".");var I=K.join("");if(!l(I)){L=false}else{var N=parseFloat(J);if(isNaN(N)){L=false}}}return L})};var b=function(G,H,F){return t(G,H,F,function(K){var J=parseInt(F.min,10);var L=parseInt(F.max,10);var I=parseInt(s(K),10);return(J<=I&&I<=L)})};var q=function(G,H,F){return b(G,H,F)};var p=function(G,H,F){return t(G,H,F,function(K){var J=parseFloat(F.min);var L=parseFloat(F.max);var I=parseFloat(s(K));return(J<=I&&I<=L)})};var m=function(G,H,F){return t(G,H,F,function(L){var I=e(G,F.equalsfieldname);var K=s(L);var J=s(I);return K==J})};var h=function(G,H,F){return f(G,H,F,["text"],function(K){var J=e(G,F.dependentField);var I=F.dependentValue;if(J.value==I){return r(G,H,F)}return true})};var v=function(G,H,F){if(j(s(e(G,F.conditionField)),new RegExp(F.conditionMask))){return A(G,H,F)}else{return true}};var k=function(I,L,H){if(H.validateOnBlur){var G=H.requiredfieldsnames.split(",");var J=true;for(var K=0;K<G.length;K++){var F=jQuery.trim(G[K]);J=J&&r(I,F,H)}return J}return null};var y=function(G,H,F){return t(G,H,F,function(K){var I=F.mandatoryFieldValue;var J;if(K.type=="checkbox"){J=String(K.checked)}else{J=K.value}return J==I})};var d=function(G){if(!G){return true}var V=/^(.+)@(.+)$/;var T='\\(\\)<>@,;:\\\\\\"\\.\\[\\]';var O="[^\\s"+T+"]";var I='("[^"]*")';var U=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;var F=O+"+";var S="("+F+"|"+I+")";var P=new RegExp("^"+S+"(\\."+S+")*$");var K=new RegExp("^"+F+"(\\."+F+")*$");var H=G.match(V);if(!H){return false}var W=H[1];var X=H[2];if(!W.match(P)){return false}var N=X.match(U);if(N){for(var Q=1;Q<=4;Q++){if(N[Q]>255){return false}}return true}var L=X.match(K);if(!L){return false}var M=new RegExp(F,"g");var J=X.match(M);var R=J.length;if((J[J.length-1].length<2)||(J[J.length-1].length>4)){return false}if(R<2){return false}return true};var x=function(G,H,F){return t(G,H,F,function(I){return d(s(I))})};var o=function(G,F){if(G.value.length>F){G.value=G.value.substring(0,F)}};var w=function(J,F,K,H,G,I){this.loadingErrorMessages=J;this.initialValue=F;this.fieldName=K;this.formName=H;this.form=$("#"+H).get(0);this.field=e(this.form,this.fieldName);this.fieldValidators=G;this.isValid=null;this.showValidMessage=I};w.prototype={isPageLoadingWithErrorsFromServer:function(F){return F&&this.loadingErrorMessages.length>0},isCurrentFieldValueMatchingPreviouslyFailedValue:function(F){return(this.initialValue==encodeURIComponent(F).replace("%20","+")&&this.loadingErrorMessages.length>0)},isDisplayServerError:function(G,F){return this.isPageLoadingWithErrorsFromServer(G)||this.isCurrentFieldValueMatchingPreviouslyFailedValue(F)},validate:function(J){var I=s(this.field);if(this.isDisplayServerError(J,I)){this.displayFieldErrorMessage(false,false,this.loadingErrorMessages.join(", "),false);return false}for(var G=0;G<this.fieldValidators.length;G++){var F=this.fieldValidators[G];var H=F.validate(this.form,this.fieldName);this.displayFieldErrorMessage(H,J,F.errorMessage,this.showValidMessage);if(!H){if(!J){this.isValid=false}return false}}this.isValid=true;return true},displayErrorMessage:function(G,F){var H=$("#"+this.formName).find("#"+this.formName+this.fieldName+"errordiv");H.html(G);H.removeClass();H.addClass(F)},displayFieldErrorMessage:function(J,K,I,H){var G;var F;if(J){G="";F=(this.fieldNotBlank()&&H)?"validationcontainer passed":""}else{G=(K)?"":I;F=(K)?"":"validationcontainer failed"}this.displayErrorMessage(G,F)},fieldNotBlank:function(){return B(e(this.form,this.fieldName))}};var u=function(H,G,F){this.variables=H;this.errorMessage=G;this.validationFunction=F};u.prototype={validate:function(F,G){return this.validationFunction(F,G,this.variables)}};return{getFieldValue:s,validateRequired:r,validateValidWhen:n,validateMinLength:C,validateMaxLength:z,validateMask:A,validateRangeNumber:c,validateByte:E,validateShort:g,validateInteger:i,validateFloat:D,validateIntRange:b,validateRange:q,validateFloatRange:p,validateFieldEqual:m,validateFieldRequiredIfOtherFieldHasValue:h,validateMaskWhenMask:v,validateAllFieldsRequired:k,validateMandatoryParam:y,validateEmail:x,limitCharactersInField:o,FieldValidatorGroup:w,FieldValidator:u}}()})();