var loginTimer;var emailTimer;var formTimer;var loginExists=false;var badLogin=false;var emailExists=false;var badCode=false;function register(){var f=document.getElementById("login").value;var d=document.getElementById("email").value;var g=document.getElementById("password").value;var a=document.getElementById("password1").value;var b=document.getElementById("noPasswordPlease").checked;var e=false;if(document.getElementById("captcha")){e=document.getElementById("captcha").value}var h={login:f,email:d,password:g,password1:a,captcha:e,noPass:b};var c="all";var i=registerCheckIn(c,h);if(i){checkDataHandler.server.sendData("","register")}}function checkCode(){var b=document.getElementById("code").value;var a=registerCheckIn("code",{code:b});if(a){$("registerCode").value=b;checkDataHandler.server.sendData(b,"checkCode")}}function registerCheckIn(c,a,b){var d=Array();formReset(Array({msg:"commonMessage"}),"&nbsp;");if(c=="all"||c=="login"){if(!loginExists&&!badLogin){formReset(Array({msg:"loginMessage",inp:"login"}))}badLogin=0;if(!a.login){badLogin=true;d.push({msgItem:"loginMessage",inpItem:"login",message:"Пожалуйста, укажите имя"})}else{if(a.login.match(/[^a-z0-9\-]+/i)){badLogin=true;d.push({msgItem:"loginMessage",inpItem:"login",message:"Недопустимые символы в имени учётной записи"})}if(a.login.length<2||a.login.length>20){badLogin=true;d.push({msgItem:"loginMessage",inpItem:"login",message:"Недопустимая длина названия учётной записи"})}}}if(c=="all"||c=="email"){if(c=="email"&&trueEmail){if(!a.email||trueEmail!=a.email){$("passwordHolder").removeClass("hidden");$("password1Holder").removeClass("hidden");if(passIsRandom){$("password").value="";$("password1").value=""}}else{$("noPasswordHolder").removeClass("hidden");if($("noPasswordPlease").checked==true){$("passwordHolder").addClass("hidden");$("password1Holder").addClass("hidden")}}}if(!emailExists){formReset(Array({msg:"emailMessage",inp:"email"}))}if(!a.email){d.push({msgItem:"emailMessage",inpItem:"email",message:"Пожалуйста, укажите адрес электронной почты"})}else{if(!a.email.match(/^[a-z0-9][a-z0-9_.-]*@[a-z0-9_.-]+\.[a-z]{2,7}$/i)){d.push({msgItem:"emailMessage",inpItem:"email",message:"Указан недопустимый адрес электронной почты"})}}}if(c=="emailChars"&&!a.email.match(/[^a-z0-9\_\.\-\@]+/i)){formReset(Array({msg:"emailMessage",inp:"email"}));d.push({msgItem:"emailMessage",inpItem:"email",message:"Недопустимый символ в адресе электронной почты"})}if(c=="code"){formReset(Array({msg:"codeMessage",inp:"code"}));if(!a.code){d.push({msgItem:"codeMessage",inpItem:"code",message:"Пожалуйста, укажите код"})}else{if(!a.code.match(/^[a-z0-9]{5,10}$/i)){d.push({msgItem:"codeMessage",inpItem:"code",message:"Указан недопустимый код приглашения"})}}}if(c=="all"||c=="password"){formReset(Array({msg:"passwordMessage",inp:"password"},{msg:"password1Message",inp:"password1"}));if(!a.password||!a.password1){if(!a.password){d.push({msgItem:"passwordMessage",inpItem:"password",message:"Пожалуйста, введите пароль"})}if(a.password&&!a.password1){d.push({msgItem:"password1Message",inpItem:"password1",message:"Пожалуйста, подтвердите пароль"})}}else{if(a.password.length<6||a.password1.length<6){if(a.password.length<6){d.push({msgItem:"passwordMessage",inpItem:"password",message:"Минимальная длина пароля&nbsp;&mdash 6 символов"})}if(a.password1.length<6){d.push({msgItem:"password1Message",inpItem:"password1",message:"Минимальная длина пароля&nbsp;&mdash 6 символов"})}}else{if(a.password!=a.password1){d.push({msgItem:"passwordMessage",inpItem:"password",message:"Пароли не совпадают"});d.push({msgItem:"passwordMessage",inpItem:"password1",message:"Пароли не совпадают"})}}}}if(document.getElementById("captcha")&&(c=="all"||c=="captcha")){formReset(Array({msg:"captchaMessage",inp:"captcha"}));if(!a.captcha){d.push({msgItem:"captchaMessage",inpItem:"captcha",message:"Пожалуйста, введите код с картинки"})}else{if(a.captcha.length<6){d.push({msgItem:"captchaMessage",inpItem:"captcha",message:"Введён неверный код"})}}}if(d.length){if(!b){markErrors(d)}return false}else{return true}}var checkDataHandler={url:"/ajax/register/",mode:"",xml:{responseNodes:{error:"error",action:"action",message:"message",result:"message",redirect:"redirect",login:"login",email:"email"},parse:function(a){var c={};for(var b in checkDataHandler.xml.responseNodes){c[b]=a.getElementsByTagName(checkDataHandler.xml.responseNodes[b])}return c}},showResult:function(c,b){if(!c.error.length){document.forms.registerForm.submitButton.disabled=false;if(c.login.length){var a=c.login[0].firstChild.data;$("myProfileLink").href="http://"+a+".sharpness.ru/profile/edit/";$("writePostLink").href="http://"+a+".sharpness.ru/write/";$("registrationMagic").removeClass("hidden");$("registrationFormHolder").addClass("hidden");$("noPasswordPlease").checked=false}else{if(checkDataHandler.mode=="register"){$("registrationSuccess").removeClass("hidden");$("registrationFormHolder").addClass("hidden");$("noPasswordPlease").checked=false}else{if(checkDataHandler.mode=="checkCode"){$("codeFormHolder").addClass("hidden");$("registrationFormHolder").removeClass("hidden");if(c.email){$("email").value=c.email[0].firstChild.data;trueEmail=c.email[0].firstChild.data}if($("captchaImage")){$("captchaImage").src="/core/captcha/"}$("login").focus()}}}}},showError:function(c){if(c.error.length){errors=Array();if(checkDataHandler.mode=="login"){errors.push({msgItem:"loginMessage",inpItem:"login",message:"Такое имя, к сожалению, занято"});loginExists=true}else{if(checkDataHandler.mode=="email"){errors.push({msgItem:"emailMessage",inpItem:"email",message:"Указанный адрес электронной почты уже зарегистрирован"});emailExists=true}else{if(checkDataHandler.mode=="checkCode"){errors.push({msgItem:"codeMessage",inpItem:"code",message:"Введённый код недействителен"});badCode=true}else{if(checkDataHandler.mode=="register"){document.forms.registerForm.submitButton.disabled=false;for(var a=0,b=c.error.length;a<b;a++){if(c.error[a].firstChild&&c.error[a].firstChild.nodeType==3){message=c.error[a].firstChild.data;target=c.error[a].getAttribute("field");if(target!="common"){errors.push({msgItem:target+"Message",inpItem:target,message:message})}else{errors.push({msgItem:target+"Message",message:message})}}}}}}}markErrors(errors)}},server:{sendData:function(b,c){checkDataHandler.mode=c;if(c=="login"){var a="action=checkLogin&login="+b}else{if(c=="email"){var a="action=checkEmail&email="+b}else{if(c=="checkCode"){var a="action=checkCode&code="+b}else{if(c=="register"){formData=$("registerForm").toQueryString();var a="action=register&"+formData;document.forms.registerForm.submitButton.disabled=true;formTimer=setTimeout(function(){alert("Время ожидания ответа с сервера истекло. Попробуйте повторить попытку через некоторое время.");document.forms.registerForm.submitButton.disabled=false},10000)}}}}ajaxLoadPost(checkDataHandler.url,a,checkDataHandler.server.sendDataOnLoad,window,{})},sendDataOnLoad:function(a,c){clearTimeout(formTimer);if(a&&a.responseXML){var b=a.responseXML;var d=checkDataHandler.xml.parse(b);if(d.error&&d.error.length){checkDataHandler.showError(d)}else{if(checkDataHandler.mode=="login"){loginExists=false}if(checkDataHandler.mode=="email"){emailExists=false}if(checkDataHandler.mode=="checkCode"){badCode=false}}if(d.result&&d.result.length){checkDataHandler.showResult(d,c)}}}}};function checkDataTimer(a){if(a=="login"){if(loginTimer){clearTimeout(loginTimer)}loginTimer=setTimeout("checkData('login')",1500)}else{if(a=="email"){if(emailTimer){clearTimeout(emailTimer)}emailTimer=setTimeout("checkData('email')",1500)}}}function checkData(a){if(a=="login"){if(badLogin){return false}msg="loginMessage";inp="login"}else{if(a=="email"){msg="emailMessage";inp="email"}}formReset(Array({msg:msg,inp:inp}));value=document.getElementById(inp).value;if(a=="login"&&!registerCheckIn(inp,{login:value},true)){return false}if(a=="email"&&!registerCheckIn(inp,{email:value},true)){return false}checkDataHandler.server.sendData(value,inp)}function noPass(b){if(b){var a=randomString(6);passIsRandom=true;$("password").value=a;$("password1").value=a;formReset(Array({msg:"passwordMessage",inp:"password"},{msg:"password1Message",inp:"password1"}));$("passwordHolder").addClass("hidden");$("password1Holder").addClass("hidden")}else{$("password").value="";$("password1").value="";$("passwordHolder").removeClass("hidden");$("password1Holder").removeClass("hidden")}};