var gestionError=Class.create({initialize:function(){this.btn=null;this.div=null;this.msg=null;this.error=this.getError();this.regex=this.getRegex();this.validate_form=this.validateForm.bindAsEventListener(this);this.observeClicksDoc();this.observeForms();this.observeAlertesErreurs()},setBtn:function(a){this.btn=a},setDiv:function(a){this.div=a},setMsg:function(a){this.msg=a},getHtml:function(){var a='<div class="error_top"></div><div class="error_middle"><div class="msg">'+this.msg+'</div></div><div class="error_bottom"></div>';return a},getError:function(){var a={"required":_MSG_VALIDATOR_REQUIRED,"numeric":_MSG_VALIDATOR_NUMERIC,"year":_MSG_VALIDATOR_YEAR,"alpha":_MSG_VALIDATOR_ALPHA,"search":_MSG_VALIDATOR_SEARCH,"email":_MSG_VALIDATOR_EMAIL,"password":_MSG_VALIDATOR_PASSWORD,"CodePromo":_MSG_VALIDATOR_CODE};return a},getRegex:function(){var a={"required":/\w/,"numeric":/^\d\d*$/,"year":/^\d{4}$/,"alpha":/^[a-zA-Z][a-zA-Z]*$/,"search":/^[^>]*$/,"email":/^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/,"password":/^[.a-z_0-9-]{5,32}$/,"CodePromo":/^[a-zA-Z0-9]*$/};return a},observeAlertesErreurs:function(){var b=$A(d.getElementsByClassName('afficheErreur'));obj=this;var i=0;b.each(function(a){a.id="A_Alerte_"+i;Event.observe(a,"mouseover",obj.afficheAlerte.bind(obj));Event.observe(a,"mouseout",obj.cacheAlerte.bind(obj));i++})},afficheAlerte:function(e){if(Event.element(e).title!=""){this.btn=Event.element(e)}else{var a=Event.element(e).ancestors();this.btn=this.returnFirstParentId(a)}this.div="Div"+this.btn;this.msg=$(this.btn).title;$(this.btn).title="";this.displayMessage()},cacheAlerte:function(e){if(Event.element(e).title!=""){this.btn=Event.element(e)}else{var a=Event.element(e).ancestors();this.btn=this.returnFirstParentId(a)}$(this.btn).title=this.msg;this.div="Div"+this.btn;this.removeMessage()},observeClicksDoc:function(){Event.observe(d,"click",this.hideError.bind(this))},observeForms:function(){var a=d.forms;for(var i=0;i<a.length;i++){if($(a[i].id))Event.observe($(a[i].id),"submit",this.validate_form);if($(a[i].id+"Submit"))Event.observe($(a[i].id+"Submit"),"click",this.validate_form)}},returnFirstParentId:function(a){var i=0;var b="";while(b==""){b=$(a[i]).id;i++}return b},validateForm:function(e){var a=new RegExp("Submit");this.errorOnInput=false;if(Event.element(e).id!=""&&Event.element(e).id.match(a)==null){this.btn=Event.element(e).id+"Submit";form=$(Event.element(e).id)}else{if(Event.element(e).id){this.btn=Event.element(e).id;form=$(this.btn.replace("Submit",""))}else{var b=Event.element(e).ancestors();this.btn=this.returnFirstParentId(b);form=$(this.btn.replace("Submit",""))}}elements=$A(form.elements);btn=this.btn;div="Div"+btn;formEvent=e;elements.each(this.validateEachElt.bind(this));if(this.errorOnInput){this.msg=this.error[this.errorOnInput];this.div=div;this.btn=btn;this.hideError(formEvent);if(elements.length==1){this.btn=btn;this.displayMessage()}else{this.btn=this.errorElement;this.displayMessageMultiple()}Event.stop(formEvent)}else{if(form.hasClassName("submit")){form.submit()}else{var c=form.readAttribute('class');this.fonctionJS(c,btn,div);Event.stop(formEvent)}}},fonctionJS:function(a,b,c){w[a](b,c)},validateEachElt:function(b){if(this.errorOnInput)return;validate_class_array=b.title.split(" ");obj=this;error=false;validate_class_array.each(function(a){if(a.search(/^\s*$/)==-1){if(obj.validateRegex(a,b)){obj.removeMessage()}else{error=a;Event.observe(b,"keypress",function(){obj.removeMessage()})}}});this.errorOnInput=error;this.errorElement=b},validateRegex:function(a,b){var c=this.regex[a];if(a!="required"){if(c.exec(b.value)!=null)return true;else return false}else{if(b.value!="")return true;else return false}},displayMessage:function(){if(this.btn!=null&&this.div!=null&&this.msg!=null){$(this.btn).addClassName('linkLock');if($(this.div)==null){$A(d.getElementsByClassName('wrapper'))[0].insert({top:'<div id="'+this.div+'" class="error">'+this.getHtml()+'</div>'});var a=$(this.btn).getDimensions();var b=$(this.div).getDimensions();$(this.div).clonePosition($(this.btn),{setWidth:false,setHeight:false,offsetLeft:-b.width+a.width/2+48,offsetTop:a.height+4})}else{$(this.div).innerHTML=this.getHtml()}}},displayMessageMultiple:function(){if(this.btn!=null&&this.div!=null&&this.msg!=null){if($(this.div)==null){$A(d.getElementsByClassName('wrapper'))[0].insert({top:'<div id="'+this.div+'" class="error">'+this.getHtml()+'</div>'});var a=$(this.btn).getDimensions();var b=$(this.div).getDimensions();$(this.div).clonePosition($(this.btn),{setWidth:false,setHeight:false,offsetLeft:-b.width+a.width/2+48,offsetTop:a.height})}else{$(this.div).innerHTML=this.getHtml()}new Effect.ScrollTo(this.btn,{duration:0.2,offset:-32})}},removeMessage:function(){if($(this.div)!=null){$(this.div).remove()}if($(this.btn)!=null){$(this.btn).removeClassName('linkLock');this.btn=null}},hideError:function(e){var b=$A(d.getElementsByClassName('error'));b.each(function(a){if(a.id!=n&&a.id.replace("Div","")!=Event.element(e).id){a.remove()}})}});
