var RegisterModule=function(a,b){this.form=Ext.get("regmod-"+a+"-form");this.firstname=Ext.get("regmod-"+a+"-firstname");this.lastname=Ext.get("regmod-"+a+"-lastname");this.email=Ext.get("regmod-"+a+"-email");this.email2=Ext.get("regmod-"+a+"-email2");this.password=Ext.get("regmod-"+a+"-password");this.password2=Ext.get("regmod-"+a+"-password2");this.submit=Ext.get("regmod-"+a+"-submit");this.texts=b;this.form.on("submit",this.onSubmit,this);this.firstname.on("blur",this.firstnameOnBlur,this);this.firstname.validator=this.firstnameOnBlur;this.firstname.on("focus",this.removeAllClasses);this.lastname.on("blur",this.lastnameOnBlur,this);this.lastname.validator=this.lastnameOnBlur;this.lastname.on("focus",this.removeAllClasses);this.email.on("blur",this.emailOnBlur,this);this.email.validator=this.emailOnBlur;this.email.on("focus",this.removeAllClasses);this.email2.on("blur",this.confEmailOnBlur,this);this.email2.validator=this.confEmailOnBlur;this.email2.on("focus",this.removeAllClasses);this.password.on("blur",this.passwordOnBlur,this);this.password.validator=this.passwordOnBlur;this.password.on("focus",this.removeAllClasses);this.password2.on("blur",this.confPasswordOnBlur,this);this.password2.validator=this.confPasswordOnBlur;this.password2.on("focus",this.removeAllClasses);this.allfields=[this.firstname,this.lastname,this.email,this.email2,this.password,this.password2]};RegisterModule.prototype={checkAll:function(){var c,b=true;for(var a=0;a<this.allfields.length;a++){c=this.allfields[a];if(typeof c.isValid=="undefined"||!c.isValid){c.validator.call(this)}b=b&&c.isValid}return b},removeAllClasses:function(){this.removeClass("t-invalid-field");this.removeClass("t-valid-field")},isValid:function(a,b){a.removeClass("t-invalid-field");a.addClass("t-valid-field");a.dom.title=b;a.isValid=true},isInvalid:function(a,b){a.removeClass("t-valid-field");a.addClass("t-invalid-field");a.dom.title=b;a.isValid=false},tt:function(a){return this.texts[a]},onSubmit:function(a){a.stopEvent();if(this.form.loading){return false}if(!this.checkAll()){this.addInvalid();return false}Ext.Ajax.request({form:this.form,scope:this,success:function(c,d){var b=Ext.util.JSON.decode(c.responseText);if(b.success){window.location.href="/profile"}else{this.resetSubmitBtn();alert(b.errorInfo)}}});this.form.loading=true;this.addLoading()},emailOnBlur:function(){if(this.email.dom.value.length>5){Ext.Ajax.request({url:"/profile/checkUser",scope:this,success:function(b,c){var a=Ext.util.JSON.decode(b.responseText);if(a.success){this.isValid(this.email,this.tt("email_available"))}else{this.isInvalid(this.email,this.tt("email_already_taken"))}},params:{username:this.email.dom.value}})}else{if(this.email.dom.value.length>0){this.isInvalid(this.email,this.tt("invalid_field_value"))}else{this.isInvalid(this.email,this.tt("field_is_required"))}}},confEmailOnBlur:function(){if(this.email2.dom.value.length>0){if(this.email2.dom.value==this.email.dom.value){this.isValid(this.email2,"")}else{this.isInvalid(this.email2,this.tt("email_doesnt_match"))}}else{this.isInvalid(this.email2,this.tt("field_is_required"))}},passwordOnBlur:function(){if(this.password.dom.value.length>3){this.isValid(this.password,"")}else{if(this.password.dom.value.length>0){this.isInvalid(this.password,this.tt("password_at_least_chars"))}else{this.isInvalid(this.password,this.tt("field_is_required"))}}},confPasswordOnBlur:function(){if(this.password2.dom.value.length>0){if(this.password2.dom.value==this.password.dom.value){this.isValid(this.password2,"")}else{this.isInvalid(this.password2,this.tt("password_doesnt_match"))}}else{this.isInvalid(this.password2,this.tt("field_is_required"))}},firstnameOnBlur:function(){if(this.firstname.dom.value.length>0){this.isValid(this.firstname,"")}else{this.isInvalid(this.firstname,this.tt("field_is_required"))}},lastnameOnBlur:function(){if(this.lastname.dom.value.length>0){this.isValid(this.lastname,"")}else{this.isInvalid(this.lastname,this.tt("field_is_required"))}},addLoading:function(){this.submit.removeClass("t-invalid-data");this.submit.addClass("t-loading");this.submit.dom.value=this.tt("please_wait")},addInvalid:function(){if(this.form.loading){return}this.submit.removeClass("t-loading");this.submit.addClass("t-invalid-data");this.submit.dom.value=this.tt("invalid_data");this.resetSubmitBtn.defer(2000,this)},resetSubmitBtn:function(){if(this.form.loading){return}this.submit.removeClass("t-loading");this.submit.removeClass("t-invalid-data");this.submit.dom.value=this.tt("submit_button")}};
