var Authorization={keys:null,FB:null,VK:null,MR:null,TW:null,publishForm:null,aClick:null,afterSubmit:null,MR_events:[0,0,0],oiUrl:"/registration/openid",init:function(){if(typeof social_init.keys=="object"&&"vk"in social_init.keys&&"fb"in social_init.keys&&"mr"in social_init.keys&&"tw"in social_init.keys){social_init.init_fb(function(){Authorization.FB=social_init.FB;Authorization.initFB()});social_init.init_vk(function(){Authorization.VK=social_init.VK;Authorization.initVK()});social_init.init_tw(function(){social_init.TW=
social_init.TW;Authorization.initTwitter()});social_init.init_mailru(function(){Authorization.MR=mailru;Authorization.initMailru()});$(".vk_login, .fb_login, .mr_login, .tw_login, .oi_login").click(function(evt){var link=$(evt.currentTarget);var id=link.attr("class");var idParts=id.split("_");if(idParts.length>1)switch(idParts[0]){case "vk":case "fb":case "mr":case "tw":case "oi":Authorization[idParts[0]+"Login"]();break}evt.preventDefault()});var currentUrl=window.location.href;var patterErrBusy=
new RegExp("social_error=1");var patterErrAuth=new RegExp("social_error=2");if(patterErrBusy.test(currentUrl))alert("\u042d\u0442\u043e\u0442 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0443\u0436\u0435 \u0437\u0430\u043d\u044f\u0442");if(patterErrAuth.test(currentUrl))alert("\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438")}},initFB:function(){if(typeof FB==
"object"&&this.FB!=null&&this.aClick!=null&&this.aClick.is(".fb_login"))this.aClick.click()},initVK:function(){if(typeof VK=="object"&&this.VK!=null&&this.aClick!=null&&this.aClick.is(".vk_login"))this.aClick.click()},initMailru:function(){this.MR_events[1]=this.MR.events.listen(this.MR.connect.events.login,function(session){Authorization.mrLoginReceive(session)});if(typeof mailru=="object"){Authorization.MR=mailru;if(this.MR!=null&&this.aClick!=null&&this.aClick.is(".mr_login"))this.aClick.click()}},
initTwitter:function(){if(typeof twttr=="object"){var url="http://"+document.domain+"/registration/twitter-callback?";url+="request="+window.location.pathname;twttr.anywhere.config({callbackURL:url});if(twttr!=null&&this.aClick!=null&&this.aClick.is(".tw_login"))this.aClick.click();var currentUrl=window.location.href;var regExp=new RegExp("twitter_callback=true");if(regExp.test(currentUrl))Authorization.twLogin()}},fbLogin:function(){if(this.FB!=null)this.FB.login(function(response){Authorization.fbLoginReceive(response)},
{scope:"email,user_birthday,user_hometown, publish_stream"});else this.showMessage("\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435 \u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 facebook.com \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c")},fbLoginReceive:function(response){if(response.authResponse){var user=this.FB.Data.query("select uid, first_name, last_name, birthday_date, sex, interests, contact_email, hometown_location, languages, pic_big,pic_square "+
"from user "+"where uid = {0}",social_init.FB._userID);FB.Data.waitOn([user],function(data){if(typeof data=="object"&&data.length>0&&data[0].length>0)if(Authorization.publishForm)Authorization.checkPublish("fb",data[0][0].uid,data[0][0],"Facebook",data[0][0].contact_email);else Authorization.fbSetData(data[0][0])})}else;},fbSetData:function(response){var user_gender="";switch(response.sex){case "male":user_gender="m";break;case "female":user_gender="f";break}var birthday=new Date(response.birthday_date);
var fb_user={firstname:response.first_name,lastname:response.last_name,email:response.contact_email,birthdate:this.formatDate(birthday),sex:user_gender,address:response.hometown_location&&response.hometown_location.name?response.hometown_location.name:null,fb_userid:response.uid,languages:[],interests:[]};if(typeof response.interests=="string")fb_user.interests=response.interests.split(", ");if(typeof response.languages=="object"&&response.languages!=null)if(response.languages.length>0)for(var i=
0;i<response.languages.length;i++)fb_user.languages[i]=response.languages[i].name;fb_user.interests=fb_user.interests.join(" ");fb_user.languages=fb_user.languages.join(" ");this.formatOutput(fb_user,"Facebook")},fbPublishForm:function(response,user){var user_gender="";switch(response.sex){case "male":$("#sex-m").attr("checked","checked");user_gender="m";break;case "female":$("#sex-f").attr("checked","checked");user_gender="f";break}var birthday=new Date(response.birthday_date);var fb_user={firstname:response.first_name,
lastname:response.last_name,email:response.contact_email,birthdate:this.formatDate(birthday),sex:user_gender,address:response.hometown_location&&response.hometown_location.name?response.hometown_location.name:null,fb_userid:response.uid,languages:[],interests:[]};var birthdate=this.formatDate(birthday);if(birthdate)birthdate=birthdate.split("-");if(birthdate&&birthdate.length==3){$("#year").val(birthdate[0]);$("#month").val(Math.floor(birthdate[1]));$("#day").val(Math.floor(birthdate[2]))}$("#firstname").val(response.first_name);
$("#lastname").val(response.last_name);if($("#email").val()=="")$("#email").val(response.contact_email);$("#external_data,#external_data_login").val(JSON.stringify(fb_user));$("#social,.social_input").val("Facebook");$("#avatar").val(response.pic_big);$("input:radio[name=sex]").blur();$(".your_profile_alter .item-user").html('<img src="/img/i/social_icons_16/facebook.png" alt="">'+'<div class="item-text">'+response.first_name+" "+response.last_name+"</div>");$(".your_profile_alter .item-image").html('<img src="'+
response.pic_square+'">');if(typeof user!=null){$(".your_profile_happlink").removeClass("hidden");$(".your_profile_happlink .item-user").html('<img src="/img/i/hpuserpng.png"><div class="item-text">'+user["firstname"]+" "+user["lastname"]+"</div>");$(".your_profile_happlink .item-image").html('<img src="'+user["avatar"]+'">');if(Authorization.afterSubmit){this.changeShowElement("no",true);Authorization.afterSubmit=null}else this.changeShowElement("yes",true)}else this.changeShowElement("no");$(".your_profile_alter h2").html("\u0412\u0430\u0448 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0432 Facebook");
$(".register_form .info-bind").html("\u0418 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u043c\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0432 Happlink c \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u043c Facebook");$(".your_profile_alter").removeClass("hidden")},vkLogin:function(){if(this.VK!=null)if(this.VK._session==null)this.VK.Auth.login(function(response){Authorization.vkLoginReceive()},2049);else Authorization.vkLoginReceive()},vkLoginReceive:function(){if(this.VK._session!=null){var code=
"return {";code+='me: API.getProfiles({uids: API.getVariable({key: 1280}), fields: "uid, first_name, last_name, nickname, domain, sex, bdate, city, country, timezone, photo, photo_medium, photo_big, has_mobile, rate, contacts, education"})[0],';code+='city : API.places.getCityById({cids:API.getProfiles({"uids":API.getVariable({key: 1280}), fields: "city"})@.city})@.name';code+="};";this.VK.Api.call("execute",{"code":code},function(data){if(Authorization.publishForm)Authorization.checkPublish("vk",
data.response.me.uid,data,"\u0412\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435");else Authorization.vkSetData(data)})}else;},vkSetData:function(data){var ext_user={};if(data.response.me){var me=data.response.me;ext_user={vk_userid:me.uid,firstname:me.first_name,lastname:me.last_name,sex:me.sex?me.sex==1?"f":"m":me.sex,birthdate:this.covertToUnixTime(me.bdate),phone:this.parseMobilePhone(me.mobile_phone)};if(data.response.city&&data.response.city.length>0)ext_user.address=data.response.city[0];
this.formatOutput(ext_user,"VKontakte")}return ext_user},vkPublishForm:function(data){var me=data.response.me;var birthdate=this.covertToUnixTime(me.bdate);if(birthdate)birthdate=birthdate.split("-");var ext_user={vk_userid:me.uid,firstname:me.first_name,lastname:me.last_name,sex:me.sex?me.sex==1?"f":"m":me.sex,birthdate:this.covertToUnixTime(me.bdate),phone:this.parseMobilePhone(me.mobile_phone)};if(birthdate&&birthdate.length==3){$("#year").val(birthdate[0]);$("#month").val(Math.floor(birthdate[1]));
$("#day").val(Math.floor(birthdate[2]))}$("#firstname").val(me.first_name);$("#lastname").val(me.last_name);me.sex?me.sex==1?$("#sex-f").attr("checked","checked"):$("#sex-m").attr("checked","checked"):me.sex;$("#phone").val(this.parseMobilePhone(me.mobile_phone));$("#external_data,#external_data_login").val(JSON.stringify(ext_user));$("#social,.social_input").val("VKontakte");$("#avatar").val(me.photo_big);$("input:radio[name=sex]").blur();$(".your_profile_alter").removeClass("hidden");$(".your_profile_alter .item-user").html('<img src="/img/i/social_icons_16/vk.png" alt="">'+
'<div class="item-text">'+me.first_name+" "+me.last_name+"</div>");$(".your_profile_alter .item-image").html('<img src="'+me.photo+'">');$(".profile_question").removeClass("hidden");$(".register_form").removeClass("hidden");$(".yes").removeClass("hidden");$(".your_profile_happlink").addClass("hidden");$(".your_profile_alter h2").html("\u0412\u0430\u0448 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0432 \u0412\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435");$(".register_form .info-bind").html("\u0418 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u043c\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0432 Happlink c \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u043c \u0412\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435");
this.changeShowElement("no")},mrLogin:function(){if(this.MR!=null)this.MR.connect.getLoginStatus(function(session){if(session.is_app_user!=1)Authorization.MR.connect.login();else Authorization.mrLoginReceive(session)});else this.showMessage("\u0418\u0437\u0432\u0435\u043d\u0438\u0442\u0435 \u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 mail.ru \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c")},mailruData:function(){this.MR_events[2]=authorization.MR.events.listen(authorization.MR.connect.events.logout,
function(){window.location.reload()});Authorization.MR.connect.getLoginStatus(function(session){Authorization.mrLoginReceive(session)})},mrLoginReceive:function(session){if(session.is_app_user!=1)this.MR.connect.login();else this.MR.common.users.getInfo(function(result){if(Authorization.publishForm)Authorization.checkPublish("mr",result[0].uid,result,"Mailru",result[0].email);else Authorization.mrSetData(result)})},mrSetData:function(result){if(result&&result.length>0){var user_gender;if(result[0].sex==
"0")user_gender="m";else user_gender="f";var mailru_user={firstname:result[0].first_name,lastname:result[0].last_name,email:result[0].email,birthdate:this.covertToUnixTime(result[0].birthday),sex:user_gender,address:result[0].location&&result[0].location.city.name?result[0].location.city.name:null,mailru_userid:result[0].uid,link:result[0].link};this.formatOutput(mailru_user,"Mailru")}},mrPublishForm:function(result,user){if(result&&result.length>0){var user_gender;if(result[0].sex=="0"){$("#sex-m").attr("checked",
"checked");user_gender="m"}else{$("#sex-f").attr("checked","checked");user_gender="f"}var mailru_user={firstname:result[0].first_name,lastname:result[0].last_name,email:result[0].email,birthdate:this.covertToUnixTime(result[0].birthday),sex:user_gender,address:result[0].location&&result[0].location.city.name?result[0].location.city.name:null,mailru_userid:result[0].uid,link:result[0].link};var birthdate=this.covertToUnixTime(result[0].birthday);if(birthdate)birthdate=birthdate.split("-");if(birthdate&&
birthdate.length==3){$("#year").val(birthdate[0]);$("#month").val(Math.floor(birthdate[1]));$("#day").val(Math.floor(birthdate[2]))}$("#firstname").val(result[0].first_name);$("#lastname").val(result[0].last_name);if($("#email").val()=="")$("#email").val(result[0].email);$(".your_profile_alter").removeClass("hidden");$(".your_profile_alter .item-user").html('<img src="/img/i/social_icons_16/mailru.png" alt="">'+'<div class="item-text">'+result[0].first_name+" "+result[0].last_name+"</div>");$(".profile_question").removeClass("hidden");
$(".register_form").removeClass("hidden");$(".yes").removeClass("hidden");if(result[0].has_pic)$(".your_profile_alter .item-image").html('<img src="'+result[0].pic+'">');$("#external_data,#external_data_login").val(JSON.stringify(mailru_user));$("#social,.social_input").val("Mailru");$("#avatar").val(result[0].pic_big);$("input:radio[name=sex]").blur();if(typeof user!=null){$(".your_profile_happlink").removeClass("hidden");$(".your_profile_happlink .item-user").html('<img src="/img/i/hpuserpng.png"><div class="item-text">'+
user["firstname"]+" "+user["lastname"]+"</div>");$(".your_profile_happlink .item-image").html('<img src="'+user["avatar"]+'">');if(Authorization.afterSubmit){this.changeShowElement("no",true);Authorization.afterSubmit=null}else this.changeShowElement("yes",true)}else this.changeShowElement("no");$(".your_profile_alter h2").html("\u0412\u0430\u0448 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0432 \u041c\u043e\u0439\u041c\u0438\u0440");$(".register_form .info-bind").html("\u0418 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u043c\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0432 Happlink c \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u043c \u041c\u043e\u0439\u041c\u0438\u0440")}},
twLogin:function(){if(twttr!=null)twttr.anywhere(function(T){Authorization.twLoginReceive(T)});else;},twLoginReceive:function(T){var Name;var twtr_user={};if(T.isConnected())if(Authorization.publishForm)Authorization.checkPublish("tw",T.currentUser.data("id"),T.currentUser,"Twitter");else Authorization.twSetData(T.currentUser);else{T.signIn();T.bind("authComplete",function(e,user){if(Authorization.publishForm)Authorization.checkPublish("tw",T.currentUser.data("id"),T.currentUser,"Twitter");else Authorization.twSetData(user)})}},
twSetData:function(currentUser){var name=currentUser.data("name");var nameParts=name.split(" ");var twtr_user={twtr_userid:currentUser.data("id"),firstname:"",lastname:[],address:currentUser.location,nativeTwitterUser:currentUser.data("screen_name")};for(var i=0;i<nameParts.length;i++)if(nameParts[i]!="")if(twtr_user.firstname=="")twtr_user.firstname=nameParts[i];else twtr_user.lastname[twtr_user.lastname.length]=nameParts[i];twtr_user.lastname=twtr_user.lastname.join(" ");Authorization.formatOutput(twtr_user,
"Twitter")},twPublishForm:function(currentUser){var name=currentUser.data("name");var nameParts=name.split(" ");var twtr_user={twtr_userid:currentUser.data("id"),firstname:"",lastname:[],nativeTwitterUser:currentUser.data("screen_name")};for(var i=0;i<nameParts.length;i++)if(nameParts[i]!="")if(twtr_user.firstname=="")twtr_user.firstname=nameParts[i];else twtr_user.lastname[twtr_user.lastname.length]=nameParts[i];twtr_user.lastname=twtr_user.lastname.join(" ");$(".your_profile_alter").removeClass("hidden");
$(".your_profile_alter .item-user").html('<img src="/img/i/social_icons_16/twitter.png" alt="">'+'<div class="item-text">'+name+"</div>");$(".profile_question").removeClass("hidden");$(".register_form").removeClass("hidden");$(".yes").removeClass("hidden");$("#firstname").val(twtr_user.firstname);$("#lastname").val(twtr_user.lastname);$("#external_data").val(JSON.stringify(twtr_user));$("#social").val("Twitter");$(".your_profile_alter .item-image").html('<img src="'+currentUser.profileImageUrl+'">');
$(".your_profile_happlink").addClass("hidden");this.changeShowElement("no");$(".your_profile_alter h2").html("\u0412\u0430\u0448 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0432 Twitter");$(".register_form .info-bind").html("\u0418 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u043c\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0432 Happlink c \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u043c Twitter")},oiLogin:function(){window.open(this.oiUrl,"new","width=550,height=350")},oiPublishForm:function(data,
user){if(data.email)$("#email").val(data.email);if(data.firstname)$("#firstname").val(data.firstname);if(data.lastname)$("#lastname").val(data.lastname);$("#external_data,#external_data_login").val(JSON.stringify(data));$("#social,.social_input").val("OpenId");$("#lastname").blur();var item='<img src="/img/i/social_icons_16/openid.png" alt="">'+'<div class="item-text">';if(data.firstname!=undefined)item+=data.firstname+" ";if(data.lastname!=undefined)item+=data.lastname;item+="</div>";$(".your_profile_alter .item-user").html(item);
if(user!=undefined){$(".your_profile_happlink").removeClass("hidden");if(user["firstname"]!=undefined&&user["lastname"]!=undefined)$(".your_profile_happlink .item-user").html('<img src="/img/i/hpuserpng.png"><div class="item-text">'+user["firstname"]+" "+user["lastname"]+"</div>");else $(".your_profile_happlink .item-user").html('<img src="/img/i/hpuserpng.png">');$(".your_profile_happlink .item-image").html('<img src="'+user["avatar"]+'">');if(Authorization.afterSubmit){this.changeShowElement("no",
true);Authorization.afterSubmit=null}else this.changeShowElement("yes",true)}else this.changeShowElement("no");$(".your_profile_alter").removeClass("hidden");$(".your_profile_alter h2").html("\u0412\u0430\u0448 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0432 OpenId")},covertToUnixTime:function(birthDate){if(birthDate){var parts=birthDate.split(".");if(parts&&parts.length==3)return this.formatDate(new Date(parts[2],parts[1]-1,parts[0]))}},parseMobilePhone:function(phoneOrig){var template="+9 (999) 999-99-99";
var phone=$.trim(phoneOrig);var phoneClear=phone.replace(/[^0-9]+/g,"");var result="";if(phoneClear!=""){var length=11;while(phoneClear.length<length)phoneClear=phoneClear+"0";if(phoneClear>length)phoneClear=phoneClear.substr(0,length);var prevPosition=-1;var nextPosition=-1;var partLength=0;for(var i=0;i<length;i++){nextPosition=template.indexOf("9",prevPosition);partLength=nextPosition-prevPosition;if(partLength>0&&prevPosition>=0&&prevPosition+partLength<template.length)result=result+template.substr(prevPosition,
partLength);if(nextPosition>=0&&nextPosition<template.length)result=result+phoneClear.charAt(i);prevPosition=nextPosition+1}}return result},formatOutput:function(data,type){try{var context=window.document;var isPopup=type=="OpenId"&&"opener"in window&&typeof window.opener=="object";if(isPopup)try{if("document"in window.opener)context=window.opener.document}catch(e){context=document}$("#auth_service",context).val(type);$("#session_save_hidden",context).val($("#session_save:checked",context).length);
$("#external_data",context).val(JSON.stringify(data)).parent("form").submit()}catch(e){}},formatDate:function(date){return date.getFullYear()+"-"+this.printNumber(date.getMonth()+1,2)+"-"+this.printNumber(date.getDate(),2)},printNumber:function(number,length){var res=number.toString();while(length>res.length)res="0"+res;return res},showMessage:function(message){alert(message)},checkPublish:function(type,id,currentUser,social,email){var params={"type":type,"id":id};if(typeof email!=null)params.email=
email;$.get("/registration/check-account",params,function(data){if(typeof data["check"]==null||data["check"]==true)window.location.href="/";else if(typeof data["user"]!=null)Authorization[type+"PublishForm"](currentUser,data["user"]);else Authorization[type+"PublishForm"](currentUser)},"json")},changeShowElement:function(status,email){if(typeof status!=null){$(".profile_question").removeClass("hidden");if(status=="yes"){$(".yes").addClass("hidden");$(".no").removeClass("hidden");$(".register_form").addClass("hidden");
$(".login_form").removeClass("hidden");if(email!=undefined)$(".your_profile_happlink").removeClass("hidden")}else{$(".yes").removeClass("hidden");$(".no").addClass("hidden");$(".register_form").removeClass("hidden");$(".login_form").addClass("hidden")}}}};

