var registrationWindow=Class.create(Window,{showCenter:function($super){if(Windows.getWindow("flashGameWin")){gw.close()}if(!$("captchaImg")){$("captchaDiv").insert('<img src="'+$("captchaPath").innerHTML+'" class="captcha" id="captchaImg"/>')}var a=new validation("registrationUsername","username",0);var b=new validation("registrationPassword","password",0);var c=new validation("registrationEmail","email",0);var d=new validation("registrationCaptcha","captcha",0);$$("div.flashObject").each(Element.hide);$super(true)},close:function($super){$$("div.flashObject").each(Element.show);this.height=null;$super()}});var validation=Class.create({initialize:function(b,c,a){this.element=$(b);this.type=c;this.delay=a;this.err=0;this.element.observe("keyup",this.onKeypress.bindAsEventListener(this));$("registrationForm").observe("submit",this.onSubmit.bindAsEventListener(this));if(c=="captcha"){$("captchaImg").observe("click",function(){$("captchaImg").src+="&z='+Math.random()"})}},onKeypress:function(b){if(b.keyCode!=Event.KEY_TAB){if(this.validated!=this.element.getValue()){if(this.msgTarget&&this.msgOn){this.err=0;this.element.removeClassName("x");this.element.removeClassName("ok");this.msgTarget.update("");this.msgTarget=false;this.msgOn=false}else{if(this.msgOn){this.err=0;this.element.removeClassName("x");this.element.removeClassName("ok");this.element.next().remove();this.msgOn=false}}clearTimeout(this.timer);var a=this;switch(this.type){case ("email"):this.timer=setTimeout(function(){a.emailValidation()},1000+this.delay);break;case ("username"):this.timer=setTimeout(function(){a.usernameValidation()},1000+this.delay);break;case ("password"):this.timer=setTimeout(function(){a.passwordValidation()},1000+this.delay);break;case ("captcha"):this.timer=setTimeout(function(){a.captchaValidation()},1000+this.delay);break}}}},onSubmit:function(a){switch(this.type){case ("email"):this.emailValidation();break;case ("username"):this.usernameValidation();break;case ("password"):this.passwordValidation();break;case ("captcha"):if(this.validated!=this.element.getValue()){this.err++;this.captchaValidation()}break}if(this.err){a.stop()}},emailValidation:function(){var a=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;if(this.element.getValue()==""){this.err+=1;this.writeMsg("Entrez votre adresse email","x")}else{if(!a.test(this.element.getValue())){this.err+=1;this.writeMsg("Email invalide, v&eacute;rifiez qu'il ne contient pas d'erreurs","x")}else{this.emailAjax(this.element.getValue())}}this.validated=this.element.getValue()},passwordValidation:function(){var a=/^([a-zA-Z0-9])+$/;if(this.element.getValue()==""||this.element.getValue().length<5){this.err+=1;this.writeMsg("Entrez un mot de passe de 5 charact&egrave;res et plus","x")}else{if(!a.test(this.element.getValue())){this.err+=1;this.writeMsg("Seuls les lettres et les chiffres sont accept&eacute;s","x")}else{if(this.err<1){this.writeMsg("Mot de passe valide","ok")}}}this.validated=this.element.getValue()},usernameValidation:function(){var a=/^([a-zA-Z0-9])+$/;if(this.element.getValue()==""){this.err+=1;this.writeMsg("Entrez votre nom d'utilisateur unique","x")}else{if(!a.test(this.element.getValue())){this.err+=1;this.writeMsg("Seuls les lettres et les chiffres sont accept&eacute;s","x")}else{if(this.element.getValue().length>13){this.err+=1;this.writeMsg("Votre nom doit &ecirc;tre compos&eacute; de 13 charact&egrave;res et moins","x")}else{this.usernameAjax(this.element.getValue())}}}this.validated=this.element.getValue()},captchaValidation:function(){if(this.element.getValue()==""){this.err+=1;this.writeMsg("Entrez les 6 charact&egrave;res de l'image de droite","x","captchaMsg")}else{this.captchaAjax(this.element.getValue())}this.validated=this.element.getValue()},usernameAjax:function(b){var a={asynchronous:true,method:"post",postBody:"username="+b,onSuccess:this.usernameOnSuccess.bindAsEventListener(this)};new Ajax.Request("ajax/usernameExist",a)},usernameOnFailure:function(){this.err++;this.writeMsg("Nom d&eacute;j&agrave; utilis&eacute;, veuillez en choisir un autre","x")},usernameOnSuccess:function(a){a.responseText!="TRUE"?this.writeMsg("Nom d'utilisateur valide","ok"):this.usernameOnFailure()},emailAjax:function(a){var b={asynchronous:true,method:"post",postBody:"email="+a,onSuccess:this.emailOnSuccess.bindAsEventListener(this)};new Ajax.Request("ajax/emailExist",b)},emailOnFailure:function(){this.err++;this.writeMsg("Email d&eacute;j&agrave; utilis&eacute;, veuillez en choisir un autre","x")},emailOnSuccess:function(a){a.responseText!="TRUE"?this.writeMsg("Email valide","ok"):this.emailOnFailure()},captchaAjax:function(a){var b={asynchronous:true,method:"post",postBody:"key="+$("captchaKey").getValue()+"&captcha="+this.element.getValue(),onSuccess:this.captchaOnSuccess.bindAsEventListener(this)};new Ajax.Request("ajax/captchaValid",b)},captchaOnFailure:function(){this.err++;this.writeMsg("Captcha non-valide, cliquer sur l'image pour la recharger","x","captchaMsg")},captchaOnSuccess:function(a){if(a.responseText=="TRUE"){this.err=0;this.writeMsg("Captcha valide","ok","captchaMsg")}else{this.captchaOnFailure()}},writeMsg:function(c,a,b){if(b){this.element.addClassName(a);$(b).update(c);$(b).className=a;this.msgTarget=$(b)}else{if(!this.element.next()){this.element.addClassName(a);this.element.insert({after:'<span class="'+a+'">'+c+"</span>"})}}this.msgOn=true;rw.updateHeight()}});