var Facebook={container:null,api:null,friendList:[],init:function(a,b){this.container=$(b)||null;this.api=new FB.ApiClient(a)},requireConnection:function(){FB.Connect.requireSession()},requireExtendedPermissions:function(a,b){FB.Connect.showPermissionDialog(a,b)},extendedPermissionsHandler:function(a){$("passwordField").hide();$("submitField").hide();$("emailError").hide();$("passwordConfField").hide();$("termsField").hide();$("connectBox").hide();if(a!=""&&a!=null){this.obtainEmail(FB.Connect.get_loggedInUser(),appendEmailHandler);showInputNewPassword();showImportedData();checkUncompleteUserName()}else{showErrorEmail()}},setFriendList:function(b){var a=this;$A(b).each(function(c){a.friendList.push(c.uid2)})},obtainFriendList:function(a,b){this.api.fql_query("SELECT uid2 FROM friend WHERE uid1="+a,b);if(this.container!=null){this.container.update(new LoaderLabeled(lang.obtainingFriendListFromFb,"loaderLabeled"))}},dataQuery:function(b,a){this.api.fql_query("SELECT uid,pic_square, pic_big, pic, pic_small, name, timezone, birthday_date, sex, current_location, locale, username FROM user WHERE uid IN ("+b.toString()+")",a);if(this.container!=null){this.container.update(new LoaderLabeled(lang.obtainingFriendListFromFb,"loaderLabeled"))}},obtainEmail:function(b,a){this.api.fql_query("SELECT email FROM user WHERE uid IN ("+b.toString()+")",a);if(this.container!=null){this.container.update(new LoaderLabeled(lang.obtainingFriendListFromFb,"loaderLabeled"))}},facebookFriends:function(c,b){var a=this;if(this.friendList.length<=0){this.container.update(drawNoUserFound())}else{new Ajax.Request(getMainHref()+c,{method:"post",parameters:{uids:a.friendList.toJSON(),fbuid:FB.Connect.get_loggedInUser()},onCreate:function(){a.container.update(new LoaderLabeled(lang.searchingFriends,"loaderLabeled"))},onFailure:function(){a.container.update(lang.error[0])},onSuccess:function(e){a.container.update("");var d=e.responseJSON;if(d.status=="true"){if($A(d.data).length>0){$A(d.data).each(function(f){a.container.insert(b(f))})}else{a.container.update(drawNoUserFound())}}else{a.container.update(drawError(d.error))}}})}},inviteListAll:function(b){if($A(b).length>0){var a=new Element("ul");$A(b).each(function(c){a.insert(drawInviteListElement(c))});this.container.update(a)}else{this.container.update(drawNoUserFound())}},showConfigs:function(a){a=a[0];if(a.username!=null){importForm.fillInfoOK(0,a.username)}else{importForm.fillInfoNULL(0)}if(a.birthday_date!=null){importForm.fillInfoOK(1,a.birthday_date)}else{importForm.fillInfoNULL(1)}if(a.sex!=null){importForm.fillInfoOK(2,a.sex)}else{importForm.fillInfoNULL(2)}if(a.pic_big!=""&&a.pic_big!=null){importForm.fillInfoOK(3,a.pic_big);$("profile_pic").src=a.pic_small}else{importForm.fillInfoNULL(3);$("profile_pic").remove();$("fb_nopic").show()}},breakRelation:function(){new Ajax.Request(getMainHref()+"settings/unset",{method:"post",parameters:{fbuid:FB.Connect.get_loggedInUser()},onCreate:function(){},onSuccess:function(b){var a=b.responseJSON;if(a.status=="success"){window.location=window.location}}})},showTinyBind:function(a){$("connectIframe").src=a;TopButtons.hideScreens();$("facebookConnect").show()}};function friendFinder(a){Facebook.setFriendList(a);Facebook.facebookFriends("friends/facebook/search-friends",drawFriendFound)}function alreadyFriends(a){Facebook.setFriendList(a);Facebook.facebookFriends("friends/facebook/my-friends",drawFriendUser)}function obtainDataFriends(a){Facebook.setFriendList(a);Facebook.dataQuery(Facebook.friendList,Facebook.inviteListAll.bind(Facebook))}function redirectionFBConnect(b){b=b||false;var a="";if(b){a="facebook/connect/verify"}else{a="FacebookConnect/verify"}new Ajax.Request(getMainHref()+a,{method:"post",parameters:{id:FB.Connect.get_loggedInUser()},onSuccess:function(e){var d=e.responseJSON;if(d.status=="importConfigs"){window.location=getMainHref()+"facebook/connect/friends"}if(d.status=="stablishRelation"){window.location=getMainHref()+"register/facebook"}if(d.status=="redirectToPanel"){var c=$("from")?$F("from"):"panel";window.location=getMainHref()+c}if(d.status=="accountTaken"){Lightbox.open("accountTaken")}}})}function linkAccountsAndGoInvite(){new Ajax.Request(getMainHref()+"facebook/connect/for-invite",{method:"post",parameters:{id:FB.Connect.get_loggedInUser()},onSuccess:function(b){var a=b.responseJSON;if(a.status=="invite"){window.location=getMainHref()+"invite/facebook"}if(a.status=="accountTaken"){Lightbox.open("accountTaken")}}})}function linkAccountsAndGoSearch(){new Ajax.Request(getMainHref()+"facebook/connect/for-search",{method:"post",parameters:{id:FB.Connect.get_loggedInUser()},onSuccess:function(b){var a=b.responseJSON;if(a.status=="search"){window.location=getMainHref()+"search-friends/facebook"}if(a.status=="accountTaken"){Lightbox.open("accountTaken")}}})}function flipLogin(){$("cretaeAccount").toggle();$("haveAccount").toggle()}function drawFriendUser(a){return'<div class="fullListItem" id="friend-'+a.id+'"><a class="avatar av57" href="'+a.profileURL+'">'+a.avatar+'</a><div class="column"><h3><a id="friend-'+a.id+'-name" href="'+a.profileURL+'" target="_blank">'+a.username+'</a></h3><div class="actions"><a onclick="FriendList.deleteFriend(\''+a.id+'\')" href="javascript:void(0);"><span class="ico_removeFriend">'+lang.deleteLang+'</span></a><a href="'+a.profileURL+'/friends"><span class="ico_viewOtherFriends">'+lang.showFriends+"</span></a><a onclick=\"FriendList.message.prepare('"+a.profileCode+"','"+a.username+'\')"><span class="ico_sendMessage">'+lang.sendMessage+"</span></a></div></div></div>"}function drawFriendFound(a){return'<div class="fullListItem" id="friend-'+a.id+'"><input type="hidden" id="friend-'+a.id+'-name" value="'+a.username+'" /><div class="avatar av57">'+a.avatar+'</div><div class="column"><h3><a href="'+a.profileURL+'" target="_blank">'+a.username+'</a></h3><div class="actions"><div class="buttons"><a href="javascript:void(0);" onclick="addFriend(\''+a.profileCode+'\',this)" class="addFriend"><span class="ico_addFriend">'+lang.addToFriends+"</span></a></div></div></div></div>"}function drawNoUserFound(){return'<div class="bannedList" id=""><div class="sign info" id="anonymous_element_1">'+lang.noUserWasFound+"</div></div>"}function drawError(a){return'<div class="bannedList" id=""><div class="sign info" id="anonymous_element_1">'+a+"</div></div>"}function drawInviteListElement(a){return'<li id="elem_'+a.uid+'" name="elem_'+a.uid+'"><img src="'+a.pic_square+'" />'+a.name+"</li>"}function addFriend(c,b){var a=b.up(".actions");new Ajax.Request(getMainHref()+"facebook/request-friendship",{method:"post",parameters:{profileCode:c},onCreate:function(){a.update($("loader").cloneNode(true).show())},onFailure:function(){a.update(new Element("span").update(lang.errorAtSentRequest))},onSuccess:function(e){var d=e.responseJSON;if(d.result){a.update(new Element("span").update(lang.requestFriendshipSent))}else{a.update(new Element("span").update(lang.errorAtSentRequest))}}})}function showConnect(){$("connect").show();$("configure").hide()}function showConfigForm(){$("configure").show();$("connect").hide()}function checkFBUid(a){return((a!=0||a!=null||a!=null)&&a>0)}ImportForm=function(c,a){var b=this;this.form=$(c);this.fields=[];this.action="facebook/connect/save_configs";this.next="panel";this.errorHandler=null;$A(a).each(function(d){b.fields.push(new FormImportElement(d))});this.loadingAll=function(){this.fields.each(function(d){d.label.showLoad()})};this.fillInfoOK=function(e,d){this.fields[e].label.showTextOnly();this.fields[e].value.DOM.value=d;this.fields[e].text.update(d);this.fields[e].check.check()};this.fillInfoNULL=function(d){this.fields[d].label.showTextOnly();this.fields[d].value.DOM.value="";this.fields[d].text.update("-");this.fields[d].check.uncheck()};this.submit=function(){var d=this;new Ajax.Request(getMainHref()+d.action,{parameters:d.form.serialize(),method:"post",onCreate:function(){},onSuccess:function(f){var e=f.responseJSON;if(e.result==0){d.errorHandler(e)}if(e.result==1){window.location=getMainHref()+d.next}if(e.result==2){d.form.submit()}if(e.result==3){alert("We already have an account registered with that e-mail address. Type in your MetroGames' account password to associate your accounts.")}}})};this.selectAll=function(){$A(this.fields).each(function(d){d.check.check()})};this.selectNone=function(){$A(this.fields).each(function(d){d.check.uncheck()})};this.setAction=function(d){this.action=d};this.setNext=function(d){this.next=d};this.setErrorHandler=function(d){this.errorHandler=d}};FormImportElement=function(a){this.value={DOM:$(a+"Value")};this.text=$(a+"Container");this.label={DOM:$(a+"Lbl"),showLoad:function(){this.DOM.update(new LoaderLabeled(lang.obtainingData,""))},showTextOnly:function(){this.DOM.update(lang.keep)}};this.check={self:this,DOM:$(a+"Check")?$(a+"Check"):null,check:function(){if(this.self.value!=""&&this.DOM){this.DOM.checked=true}},uncheck:function(){if(this.DOM){this.DOM.checked=false}}}};function checkFacebookAccount(a){new Ajax.Request(getMainHref()+"FacebookConnect/is_facebookuid_taken",{method:"post",parameters:{fb_uid:a},onCreate:function(){},onSuccess:function(b){avaiableAccount=b.responseJSON.status=="taken"?false:true}})}function showImportedData(){$("connectBox").hide();$("common_data_block").show();$("importForm").show()}function showInputNewPassword(){$("common_data_block").show();$("passwordField").show();$("passwordConfField").show();$("submitField").show()}function showErrorEmail(){$("common_data_block").hide();$("emailError").show()}function appendEmailHandler(a){a=a[0];if(a.email!=""&a.email!=null){$("emailValue").value=a.email;$("emailContainer").update(a.email);$("emailField").show();checkUncompleteUserName()}}function checkUncompleteUserName(){if($("usernameValue").value==""){$("usernameValue").remove();window.setTimeout(function(){$("usernameContainer").update(new Element("input",{type:"text",id:"usernameValue",name:"username",className:"fieldElement"}))},50);$("usernameField").show()}}function registerFromFacebokErrorHandler(a){alert("Some errors were found: \n-"+a.errors.join("\n-"));if(a.fields.username==$F("usernameValue")){$("usernameValue").value="";checkUncompleteUserName()}};