var LoginFormController=function(){var _self=this;var _messages;this.setMessages=function(messages){_messages=messages;}
this.isFormOpened=function(){return!$("#divLoginForm").hasClass("hide");}
this.registerFormOpenEvent=function(){$("#linkLogin").bind("click",_openLoginForm);}
var _openLoginForm=function(){$("#divRegistrationForm").addClass("hide");if(_self.isFormOpened())return;_drawLoginForm();_registerSubmitEvent();_registerFormCloseEvent();}
var _drawLoginForm=function(){var width=145;$("#divLoginForm").removeClass("hide");$("#fieldLogin").focus();}
var _registerFormCloseEvent=function(){$("#linkCloseLoginForm").click(function(){$("#divLoginForm").addClass("hide");});}
var _registerSubmitEvent=function(){$("#divLoginForm form").bind("submit",_submitEvent);}
var _submitEvent=function(event){$("#divLoginForm p.error").remove();var errors=_validate();if(errors.length){_drawErrors(errors);return false;}
$("#divLoginForm input[type=submit]").attr("disabled",true);return true;}
var _validate=function(){var errors=[];if(!$("#divLoginForm input[name=login]").val()){errors.push("illegal_login");}
if(!$("#divLoginForm input[name=password]").val()){errors.push("illegal_password");}
return errors;}
var _drawErrors=function(errors){_translate(errors);$.each(errors,function(idx,error){$("#divLoginForm legend").after('<p class="error">'+error+'</p>');});}
var _translate=function(errors){for(var i=0;i<errors.length;i++){errors[i]=_messages.loginErrors[errors[i]];}}}
$(document).ready(function(){$("#linkLogin").attr("href","javascript:void(0);");var lfc=new LoginFormController();lfc.setMessages(messages);lfc.registerFormOpenEvent();});if(!Memori)var Memori={}
Memori.RegistrationFormController=function(item,div){var _self=this;var _messages;var _item=item;var _div=div;var _errors=[];var _err_login;var _err_password;var _err_rep_password;var _err_email;this.isFormOpened=function(){return!_div.hasClass("hide");}
this.registerFormOpenEvent=function(){_item.attr("href","javascript:void(0);");_item.bind("click",_openRegistrationForm);}
var _openRegistrationForm=function(){if(_self.isFormOpened())return;_drawRegistrationForm();_registerSubmitEvent();_registerFormCloseEvent();}
var _drawRegistrationForm=function(){_div.removeClass("hide");$("#divLoginForm").addClass("hide");_div.find("#userLogin").focus();}
var _registerFormCloseEvent=function(){$("#linkCloseRegistrationForm").click(function(){_div.addClass("hide");});}
var _registerSubmitEvent=function(){_div.find("#btnRegister").bind("click",_submitEvent);}
var _submitEvent=function(event){_errors=[];_err_login="";_err_password="";_err_rep_password="";_err_email="";_validate();if(_errors.length){_drawErrors();return false;}
return false;}
var _validate=function(){var login=_div.find("input[name=login]").val();var password=_div.find("input[name=password]").val();var confirm_password=_div.find("input[name=password_confirm]").val();var email=_div.find("input[name=email]").val();if(login&&password&&confirm_password&&email){var request='?login='+login+'&password='+password+'&confirm_password='+confirm_password+'&email='+email;_div.find("#btnRegister").attr('disabled',true);$.getJSON("/suggestedregformajax/"+request,_validateResponse);}else{if(!login)_checkLogin();if(!password)_checkPas();if(!email)_checkEmail();if(password&&!confirm_password)_checkPasConfirm();}}
var _validateResponse=function(response){_div.find("#btnRegister").attr('disabled','');if(response.login!=0){_err_login="Введите корректный логин<br />";_errors.push("illegal_login");}
if(response.password!=0){_err_password="Введите корректный пароль<br />";_errors.push("illegal_password");}else if(response.confirm_password!=0){_err_rep_password="Повтор Пароля и Пароль не совпадают<br /><br />";_errors.push("illegal_confirm_password");}
if(response.email!=0){_err_email="Введите корректный e-mail<br />";_errors.push("illegal_email");}
if(!_errors.length){_div.find("form").submit();}else{_drawErrors();}}
var _checkLogin=function(){var login=_div.find("input[name=login]").val();if(login==''){_err_login="Введите логин<br />";_errors.push("illegal_login");}}
var _checkPas=function(){var password=_div.find("input[name=password]").val();if(password==''){_err_password="Введите пароль<br />";_errors.push("illegal_password");}
else if(_div.find("input[name=password_confirm]").val()){_checkPasConfirm();}else{_err_rep_password="Повторите пароль<br />";_errors.push("illegal_password_confirm");}}
var _checkPasConfirm=function(){if(_div.find("input[name=password]").val()!=_div.find("input[name=password_confirm]").val()){_err_rep_password="Повтор Пароля и Пароль не совпадают<br />";_errors.push("illegal_password_confirm");}}
var _checkEmail=function(){var email=_div.find("input[name=email]").val();if(!email.match("^([a-zA-Z0-9_!\"\.\#\$\%\&\'\*\+\/\=\?\{\|\}\~\`-]+?)@([a-zA-Z0-9_-]+\.){1,3}([a-zA-Z]){2,4}$")){_err_email="Введите корректный e-mail<br />";_errors.push("illegal_email");}}
var _drawErrors=function(errors){_div.find("#loginError").html(_err_login);_div.find("#emailError").html(_err_email);_div.find("#pasError").html(_err_password);_div.find("#confirmPasError").html(_err_rep_password);}}
$(document).ready(function(){if($("div.reg").length==0){var regfc=new Memori.RegistrationFormController($("#linkRegistration"),$("#divRegistrationForm"));regfc.registerFormOpenEvent();}});
