checkPattern=function(b,c){return c.test($(b).value)};checkPatternTxt=function(b,c){return c.test(b)};isNumericField=function(e,d,b){var f;if(d==-1){f="+"}else{f="{"+d+"}"}var g=checkPattern(e,new RegExp("^\\d"+f+"$"));if(!g&&b){var c="Veuillez saisir un nombre ";if(d>0){c+="("+d+" chiffre(s))"}e._error&&$(e._error).setHTML(c)}return g};isFixedNumericField=function(c,b){var d=c.getProperty("maxlength");return isNumericField(c,parseInt(d,10),b)};isTextField=function(f,e,b,d){var g;if(e==-1){g="+"}else{g="{"+e+"}"}test=checkPattern(f,new RegExp("^[A-Za-z]"+g+"$"));if(!test&&b){var c="Veuillez saisir uniquement du texte ";if(e>0){c+="("+e+" lettre(s))"}f._error&&$(f._error).setHTML(c)}return test};isTextFieldWithSpace=function(f,e,b,d){var g="";if(e==-1){g="+"}else{g="{"+e+"}"}test=checkPattern(f,new RegExp("^[A-Za-z\\s\\-]"+g+"$"));if(!test&&b){var c="Veuillez saisir uniquement du texte ";if(e>0){c+="("+e+" lettre(s))"}f._error&&$(f._error).setHTML(c)}return test};isTextFieldWithSpaceAndSpecialChar=function(f,e,b,d){var g="";if(e==-1){g="+"}else{g="{"+e+"}"}if($(f).value.length==0){return true}test=checkPattern(f,new RegExp("^[A-Za-z\\u00C0-\\u00CF\\u00D1-\\u00D6\\u00D9-\\u00DC\\u008C\\u00E0-\\u00EF\\u00F1-\\u00F6\\u00F9-\\u00FC\\u009C\\u0027\\u0152\\u0153\\s\\-]"+g+"$"));if(!test&&b){var c="Veuillez saisir uniquement du texte ";if(e>0){c+="("+e+" lettre(s))"}f._error&&$(f._error).setHTML(c)}return test};isAddressField=function(f,e,b,d){var g="";if(e==-1){g="+"}else{g="{"+e+"}"}if($(f).value.length==0){return true}test=checkPattern(f,new RegExp("^[A-Za-z0-9\\u00C0-\\u00CF\\u00D1-\\u00D6\\u00D9-\\u00DC\\u008C\\u00E0-\\u00EF\\u00F1-\\u00F6\\u00F9-\\u00FC\\u009C\\u0027\\u0152\\u0153\\s\\-\\u005C\\u002F\\u00B0\\u002E\\u002C]"+g+"$"));if(!test&&b){var c="Veuillez saisir uniquement du texte ";if(e>0){c+="("+e+" lettre(s))"}f._error&&$(f._error).setHTML(c)}return test};isTextFieldWithSpaceAndSpecialCharAndNumbers=function(f,e,b,d){var g="";if(e==-1){g="+"}else{g="{"+e+"}"}test=checkPattern(f,new RegExp("^[A-Za-z0-9\\u00C0-\\u00FD\\u0027\\s\\-]"+g+"$"));if(!test&&b){var c="Veuillez saisir uniquement des caract\u00E8res alphab\u00E9tiques et/ou num\u00E9riques ";if(e>0){c+="("+e+" lettre(s))"}f._error&&$(f._error).setHTML(c)}return test};isAlphaNumericField=function(f,e,b,d){var g;if(e==-1){g="+"}else{g="{"+e+"}"}test=checkPattern(f,new RegExp("^[A-Za-z0-9]"+g+"$"));if(!test&&b){var c="Veuillez saisir uniquement du texte et des chiffres ";if(e>0){c+="("+e+" caract\u00e8re(s))"}else{if(($(f).getProperty("maxlength"))&&($(f).getProperty("maxlength")>0)){c+="("+$(f).getProperty("maxlength")+" caract\u00e8re(s))"}}f._error&&$(f._error).setHTML(c)}return test};isPostalCodeField=function(c,b){var d=checkPattern(c,new RegExp("^(?:0[1-9]|[13-9][0-9]|2[0-9aAbB])\\d{3}$"));if(c.value==""){c._error&&$(c._error).setHTML("Veuillez bien compl\u00E9ter le champ ci-dessus");return d}else{if(!d&&b){c._error&&$(c._error).setHTML("Veuillez saisir un format de code postal correct (5 chiffres)")}}return d};isPlateNumber=function(c,b,d){var e=true;if(c.value==""){return true}e=checkPattern(c,new RegExp("^(([1-9][0-9]{0,2}-?[a-z])|([1-9][0-9]{0,3}-?[a-z]{2})|([1-9][0-9]{1,2}-?[a-z]{3}))-?(2(a|b)|[0-9]{2})|([a-z]{2}-?[0-9]{3}-?[a-z]{2})$","i"));if(!e&&b){c._error&&$(c._error).setHTML("Veuillez saisir un format de plaque d'immatriculation")}return e};function isNumberOfKmField(d,b,e){var g=$(d).value;var f=true;if(g.length==0){return true}f=checkPattern(d,new RegExp("^[0-9]{1,3}|[0-9]{1,3}.[0-9]{3}|[0-9]{1,3}.[0-9]{3}.[0-9]{3}|([0-9]*[^.])$"));if(!f&&b){var c="Veuillez saisir un format de Kilom\u00E9trage correct: ex 20.000";d._error&&$(d._error).setHTML("Veuillez saisir un format de Kilom\u00E9trage correct: ex 20.000")}return f}isDateField=function(e,f,h,g,n){if($(e).value.length==0||($(e).hasClass("hasDefaultText")&&!$(e)._error)){return isNotBlankField($(e),h)}var j=false;var i=n||"";var d;if(f){d=checkPattern(e,new RegExp("^\\d\\d[/]\\d\\d[/]\\d\\d\\d\\d$"))}else{d=checkPattern(e,new RegExp("^\\d\\d[/]\\d\\d\\d\\d$"))}if(d){var c;if(f){var b=/^((((0?[1-9]|[12]\d|3[01])[\/](0?[13578]|1[02])[\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\/](0?[13456789]|1[012])[\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\/]0?2[\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\/]0?2[\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;c=$(e).value.test(b)}else{c=checkPattern(e,new RegExp("^(?:0[1-9]|1[012])[/](?:19|20)\\d\\d$"))}var m=true;if(c){if(g){var l=$(e).value.split("/");var k;if(f){k=new Date(l[2],parseInt(l[1],10)-1,l[0])}else{k=new Date(l[1],parseInt(l[0],10)-1,1)}if(g.min){if(k<g.min){m=false}}if(g.max){if(k>=g.max){m=false}}}if((!g)||(m==true)){j=true}}if(((!c)||(!m))&&(h)){i=i.length!=0?i:"La date entr\u00E9e ne semble pas correcte";e._error&&$(e._error).setHTML(i)}}else{if(h){i="Veuillez saisir un format de date correct : ";if(f){i+="JJ/MM/AAAA"}else{i+="MM/AAAA"}e._error&&$(e._error).setHTML(i)}}return j};isDateThreeField=function(element,displayError,age,compare,textError){if(element.id.indexOf("_year")!=-1){var day=$(element.id.replace("_year","_day"));var month=$(element.id.replace("_year","_month"));var year=element;if(!window.validator){window.validator={}}if(eval("typeof(window.validator."+element.id+")")=="undefined"){eval("window.validator."+element.id+" = true");day.addEvent("blur",function(){isDateThreeField(this,displayError,age,compare,textError)});month.addEvent("blur",function(){isDateThreeField(this,displayError,age,compare,textError)})}}else{if(element.id.indexOf("_month")!=-1){var day=$(element.id.replace("_month","_day"));var month=element;var year=$(element.id.replace("_month","_year"))}else{var day=element;var month=$(element.id.replace("_day","_month"));var year=$(element.id.replace("_day","_year"))}}var inputDate=day.value+"/"+month.value+"/"+year.value;var isDateOK=false;if(checkPatternTxt(inputDate,new RegExp("^\\d\\d[/]\\d\\d[/]\\d\\d\\d\\d$"))){var RegExPattern=/^((((0?[1-9]|[12]\d|3[01])[\/](0?[13578]|1[02])[\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\/](0?[13456789]|1[012])[\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\/]0?2[\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\/]0?2[\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;if(inputDate.match(RegExPattern)){var d=new Date(year.value,month.value-1,day.value);var today=new Date();if((today.getFullYear()-d.getFullYear()>age)||((today.getFullYear()-d.getFullYear()==age)&&(today.getMonth()>d.getMonth()))||((today.getFullYear()-d.getFullYear()==age)&&(today.getMonth()==d.getMonth())&&(today.getDate()>=d.getDate()))){if(compare==">"){isDateOK=true;if($("validationErrorMessageSpan_"+year.id)){$("validationErrorMessageSpan_"+year.id).remove()}}else{if(displayError){year._error&&$(year._error).setHTML(textError)}}}else{if(compare==">"){if(displayError){year._error&&$(year._error).setHTML(textError)}}else{isDateOK=true;if($("validationErrorMessageSpan_"+year.id)){$("validationErrorMessageSpan_"+year.id).remove()}}}}else{var errorMessage="La date entr\u00E9e ne semble pas correcte";if(displayError){year._error&&$(year._error).setHTML(errorMessage)}}}else{if(displayError){var errorMessage="Veuillez saisir un format de date correct : JJ/MM/AAAA";year._error&&$(year._error).setHTML(errorMessage)}}return isDateOK};isINSEEValid=function(e,b){var h,d;if(e.id.indexOf("_key")!=-1){h=$(e.id.replace("_key","_insee"));d=e;h._error=d._error}else{if(e.id.indexOf("_insee")!=-1){h=e;d=$(e.id.replace("_insee","_key"));d._error=h._error}}if(h.value.length>0||d.value.length>0){var g=h.value.toUpperCase();var f=g.substr(5,2);if(f=="2A"){g=parseInt(g.replace("2A","20"))-1000000}else{if(f=="2B"){g=parseInt(g.replace("2B","20"))-2000000}else{g=parseInt(g)}}var c=97-(g%97);if(c==d.value){return true}else{if(b){e._error&&$(e._error).setHTML("Num\u00e9ro de s\u00E9curit\u00E9 sociale invalide")}return false}}else{if(h.value.length==0&&d.value.length==0){return true}}};isCheckPasswordValid=function(d,b){var f;var c;$ES(".firstPassword").each(function(g){f=$(g)});$ES(".confirmPassword").each(function(g){c=$(g)});if((f.value.length==0&&c.value.length==0)||d.value.length==0){return false}else{var e=checkPattern(d,new RegExp("^[0-9A-Za-z]{5,9}$"));if(e){if(b){d._error&&$(d._error).setHTML("")}if(f.value!=c.value){if(f.value.length!=0&&c.value.length!=0){if(b){d._error&&$(d._error).setHTML("Mot de passe incoh\u00E9rents")}}return false}}else{if(b){d._error&&$(d._error).setHTML("Veuilliez saisir un mot de passe contenant entre 5 et 9 carat\u00E8res")}return false}}return true};isCheckEmailValid=function(e,b){if(e.value.length>0){if(isEmailField(e,false)){var c;var d;$ES(".firstEmail").each(function(f){c=$(f)});$ES(".confirmEmail").each(function(f){d=$(f)});if(c.value!=d.value){if(c.value.length!=0&&d.value.length!=0){if(b){e._error&&$(e._error).setHTML("Les identifiant ne sont pas identiques")}}return false}}}return true};isCheckTelephoneValid=function(d,b){var e=true;if(d.value.length>0){if(d.hasClass("phoneNumberValidator")){e=isPhoneNumber(d,b)}else{if(d.hasClass("mobileNumberValidator")){e=isMobilePhoneNumber(d,b)}}}else{var c;var f;$ES(".phoneNumberValidator").each(function(g){c=$(g)});$ES(".mobileNumberValidator").each(function(g){f=$(g)});if(c.value.length==0&&f.value.length==0){d._error&&$(d._error).setHTML("Ins\u00E9rer au moins un contact t\u00E9l\u00E9phonique");e=false}}return e};isBonusMalusField=function(f,c,d,b){var h=isNaN(parseFloat($(f).value.replace(",",".")))?0:parseFloat($(f).value.replace(",","."));if(isNaN(parseFloat($(f).value.replace(",",".")))||($(f).hasClass("hasDefaultText")&&!$(f)._error)){return isNotBlankField(f,c)}var i=false;if((/^(?:\d+|\d+\.\d+)$/.test(h))&&(h<=3.5)&&(h>=0.5)){i=true}if(!i&&c){f._error&&$(f._error).setHTML("Le bonus/malus doit \u00EAtre compris entre 0,5 et 3,5")}else{if(i&&$chk(c)){if($(f+"_bonusMalusMessage")){if(h==0.5){$(f+"_bonusMalusMessage").setStyle("display","block");if($("mainBMYearsErrorMessages")){$("mainBMYearsErrorMessages").setStyle("display","block")}if(d&&$(f).value.length==4){try{$(d).focus()}catch(g){}}}else{$(f+"_bonusMalusMessage").setStyle("display","none");if($("mainBMYearsErrorMessages")){$("mainBMYearsErrorMessages").setStyle("display","none")}if(b&&$(f).value.length==4){try{$(b).focus()}catch(g){}}}}}}return i};isEmailField=function(c,b){var d=checkPattern(c,new RegExp("^.+@.+[.].+"));if(!d&&b){c._error&&$(c._error).setHTML("Veuillez saisir un email correct")}else{if((d)&&$chk(b)){}}return d};isNotBlankField=function(e,c,b){var g=false;b=b?b:"";var f=$(e).value;if(((f.length>0&&b!=f)||$(e).hasClass("hasDefaultText"))){g=true}if(!g&&c){var d="Veuillez bien compl\u00E9ter le champ ci-dessus";e._error&&$(e._error).setHTML(d)}else{if(g&&$chk(c)){}}return g};checkConfirmPassword=function(c,d,b){var f=c.value;var e=d.value;if(f!=e){if(b){d._error&&$(d._error).setHTML("Les mots de passe ne sont pas identiques.")}return false}else{if(/^.*\s$/.test(f)){if(b){d._error&&$(d._error).setHTML("Les mots de passe ne peuvent pas se terminer avec un espace.")}return false}else{if(/^.{0,4}$/.test(f)){if(b){c._error&&$(c._error).setHTML("Votre mot de passe doit \u00EAtre compris entre 5 et 9 caract\u00E8res.")}return false}else{}}}return true};checkConfirmEmail=function(c,f,b){var e=c.value;var d=f.value;if(e!=d){if(b){f._error&&$(f._error).setHTML("Les identifiant ne sont pas identiques.")}return false}else{if(/^.*\s$/.test(d)){if(b){f._error&&$(f._error).setHTML("Les identifiant ne peuvent pas se terminer avec un espace.")}return false}else{}}return true};isEmptyField=function(c,b){if($(c)){if($(c).value==""){if(b){c._error&&$(c._error).setHTML("Ce champ est obligatoire.")}return true}else{if($chk(b)){}}return false}return true};isPhoneNumber=function(d,b,e){var f=checkPattern(d,new RegExp("^0[1-58-9][0-9]{8}$"));if(!f&&b){var c="Veuillez saisir un format de num\u00E9ro de t\u00E9l\u00E9phone correct: ex 0987654321 ";d._error&&$(d._error).setHTML(c)}else{if((f)&&$chk(b)){}}return f};isMobilePhoneNumber=function(d,b,e){var f=checkPattern(d,new RegExp("^0[6-7][0-9]{8}$"));if(!f&&b){var c="Veuillez saisir un format de num\u00E9ro de t\u00E9l\u00E9phone correct: ex 0698765432 ";d._error&&$(d._error).setHTML("Veuillez saisir un format de num\u00E9ro de t\u00E9l\u00E9phone correct: ex 0698765432 ")}else{if((f)&&$chk(b)){}}return f};isCivicNumber=function(c,b,d){if($(c).value.length>0){return isTextFieldWithSpaceAndSpecialCharAndNumbers(c,-1,b)}else{return true}};isBlankOrTextFieldWithSpaceAndSpecialChar=function(c,b,d){if($(c).value.length>0){return isTextFieldWithSpaceAndSpecialChar(c,-1,b)}else{return true}};function clearElementErrors(b){b=$(b);if(b._error&&$(b._error)){if(!b._error.hasClass("errorServerClass")){b._error.addClass("hidden")}}}displayValidatorError=function(d,c,e){d=$(d);c=c||"Veuillez bien compl\u00E9ter le champ ci-dessus";if(!d._error){var b="";_elementId=d.name.replace(new RegExp("\\.","gi"),"_").replace(new RegExp("\\[","gi"),"_").replace(new RegExp("\\]","gi"),"");_elementId=_elementId.replace(new RegExp("\\(","gi"),"_");_elementId=_elementId.replace(new RegExp("\\)","gi"),"");d._error=$("error_"+_elementId)}if(!d._error){return}d._error.empty();d._error.appendText(c)};displayValidatorError.type="original";function ie6_error_validation_bug_fix(c,b){c._error.setHTML(b)}isCreditCardNumber=function(f,h){var d=checkPattern(f,new RegExp("^\\d{16}$"));if(d){var k=0;var c=false;var e=$(f).value;for(var g=e.length-1;g>=0;g--){var b=parseInt(e.substring(g,g+1),10);if(c){b*=2;if(b>9){b=(b%10)+1}}k+=b;c=!c}}var l=(k%10==0);if((!l&&h)||(!d)){var j="Veuillez saisir un format de num\u00E9ro de carte correct";f._error&&$(f._error).setHTML(j)}else{if((l)&&$chk(h)){}}return l};isRibField=function(b,f,k,c,i,g){return true;var m=b.value;var d=f.value;var h=k.value.toUpperCase();var o=c.value;if((m.length!=5)||(d.length!=5)||(h.length!=11)||(o.length!=2)){return false}var e="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";var l="123456789123456789234567890123456789".split("");while(h.match(/\D/)!=null){h=h.replace(/\D/,l[e.indexOf(h.match(/\D/))])}var n=parseInt(h,10);a=m%97;a=a*100000+parseInt(d,10);a=a%97;a=a*Math.pow(10,11)+n;a=a%97;a=a*100;a=a%97;a=97-a;if(o!=a){if(i){var j="Le R.I.B. n'est pas valide";element._error&&$(element._error).setHTML(j)}return false}else{if($chk(i)){return true}}};isCBValid=function(f,h,e){return true;var k=0;var d=$(f).value;var c=false;for(var g=d.length-1;g>=0;g--){var b=parseInt(d.substring(g,g+1),10);if(c){b*=2;if(b>9){b=(b%10)+1}}k+=b;c=!c}var l=(k%10==0);if(!l&&h){var j="Num\u00E9ro de carte de cr\u00E9dit invalide";f._error&&$(f._error).setHTML(j)}else{if((l)&&$chk(h)){}}return l};(function(){var b=function(f,d){var e=d&&d.length?d.slice(0):null;return function(i,g){var h=Array.prototype.slice.call(arguments,0);e&&e.length&&(h=h.concat(e));return f.apply(null,h)}},c={notBlankField:b(isNotBlankField),numericValidator:function(e,d){return isNumericField(e,-1,d)},fixedNumericValidator:b(isFixedNumericField),textValidator:function(e,d){return isTextField(e,-1,d)},realTextValidator:function(e,d){return isRealTextField(e,-1,d)},dateFutureValidator:b(isDateThreeField,[0,"<","La date doit \u00eatre post\u00e9rieure \u00e0 celle d'aujourd'hui"]),"18YearValidator":b(isDateThreeField,[18,">","L'\u00e2ge du souscripteur ne doit pas \u00eatre sup\u00E9rieur \u00e0 18 ans"]),"18YearValidatorConjoint":b(isDateThreeField,[18,">","L'\u00e2ge du conjoint doit \u00eatre sup\u00E9rieur \u00e0 18 ans"]),"26YearValidator":b(isDateThreeField,[26,"<","L'\u00e2ge des enfants doit \u00eatre inf\u00E9rieur \u00e0 26 ans"]),alphaNumericValidator:function(e,d){return isAlphaNumericField(e,-1,d)},fixedAlphaNumericValidator:function(e,d){return isAlphaNumericField(e,e.getProperty("maxlength"),d)},zipCode:b(isPostalCodeField),emailValidator:b(isEmailField),localityCode:b(isNotBlankField,[" "]),CBValidator:b(isCBValid),inseeValidator:b(isINSEEValid),textFieldWithSpaceAndSpecialChar:function(e,d){return isTextFieldWithSpaceAndSpecialChar(e,-1,d)},plateNumberValidator:b(isPlateNumber),numberOfKmField:b(isNumberOfKmField),checkEmail:b(isCheckEmailValid),checkPassword:b(isCheckPasswordValid),telephoneValidator:b(isCheckTelephoneValid),civicNumberValidator:b(isCivicNumber),addressField:function(e,d){return isAddressField(e,-1,d)},blankOrTextFieldWithSpaceAndSpecialChar:b(isBlankOrTextFieldWithSpaceAndSpecialChar)};window.Validator={scan:function(d){$ES("input.validator,select.validator",d).removeEvents().each(function(i,f){var g=i.getTag()=="input",k=g&&i.getProperty("type")=="text",e=g&&i.getProperty("type")=="checkbox",h=g&&i.getProperty("type")=="radio",j=!g&&i.getTag()=="select";k&&i.addEvent("focus",function(l){if(this.hasClass("hasDefaultText")){this.removeClass("hasDefaultText");this.value=""}});j&&i.addEvent("blur",function(l){this._validation(true)});i.validation=function(m,l){for(var n in c){if(c.hasOwnProperty(n)&&this.hasClass(n)){if(!c[n](this,!l)){return false}}}if(this.customValidation&&this.customValidation.apply){return !!this.customValidation.call(this,l)}return true}})}}})();
