(function(A){A.chess.registerWidget({name:"gamelist",$interface:IList},{},true);A.widget("ui.gamelist",A.implement(IList,{$:null,$$:{},setPosition:function(B){A.sharedInterface.setPosition.apply(this,[B])},getPosition:function(){return A.sharedInterface.getPosition.apply(this,[])},setSize:function(B){A.sharedInterface.setSize.apply(this,[B])},getSize:function(){return A.sharedInterface.getSize.apply(this)
},addItem:function(B){this.$$.list.addItem(B)},addItems:function(B){this.$$.list.addItems(B)},removeItem:function(B){this.$$.list.removeItem(arguments)},clear:function(){this.$$.stopTicking();this.$$.list.clear()},getItem:function(B){return this.$$.list.getItem(B)},setItem:function(B,C){this.$$.list.setItem(B,C)},getCount:function(){return this.$$.list.getCount()},setSelectedIndex:function(B,C){this.$$.list.setSelectedIndex(B,C)
},getSelectedIndex:function(){return this.$$.list.getSelectedIndex()},scrollIntoView:function(B){this.$$.list.scrollIntoView()},enable:function(){this.$$.list.enable()},disable:function(){this.$$.list.disable()},onSkinChange:function(){this.$$.list.onSkinChange()},init:function(){this.$=this.element;this.$$=this.element[0]._$$={};var C=this.$[0]._ui=this;var D=function(F,G){var E;if(!G.A.avatar.length){G.A.avatar=App.defaults.thumb_url
}else{if(!G.A.avatar.match(/-thumb\.png$/i)){G.A.avatar=G.A.avatar.substr(0,G.A.avatar.length-4)+"-thumb.png"}}if(!G.B.avatar.length){G.B.avatar=App.defaults.thumb_url}else{if(!G.B.avatar.match(/-thumb\.png$/i)){G.B.avatar=G.B.avatar.substr(0,G.B.avatar.length-4)+"-thumb.png"}}F.find(".avatarA").css("background-image","url("+G.A.avatar+")");F.find(".avatarB").css("background-image","url("+G.B.avatar+")");
F.find(".nameA").html(G.A.name.length>13?G.A.name.substr(0,13)+"...":G.A.name).end().find(".nameB").html(G.B.name.length>13?G.B.name.substr(0,13)+"...":G.B.name).end().attr("gameid",E=G.gameid).attr("timestamp",G.timestamp).find(".spectate").click(function(){C.$.triggerHandler("gamelist-spectate",[E],C.options.spectate)})};var B=function(F,E){return E(A.chess.timestamp()-F)};this.$$.timer=null;this.$$.startTicking=function(H,G,E){C.$$.stopTicking();
if(!(H&&G)){return}var F=function(){G.text(B(H,function(L){var K=function(M){return("00"+M).substr((M+"").length)};L=Math.max(L,0);var J=Math.floor(L/60);var I=Math.floor(J/60);L-=J*60;J-=I*60;if(I>0){return K(I)+":"+K(J)+":"+K(L)}return K(J)+":"+K(L)}))};C.$$.timer=setInterval(F,E||300);F()};this.$$.stopTicking=function(){if(C.$$.timer){clearInterval(C.$$.timer);C.$$.timer=null}};this.$$.list=A.chess.list(A.extend({},this.options,{left:0,top:0,name:this.options.name?this.options.name+".$$.list":this.options.name,adapter:{selectable:false,itemHeight:40,baseHTML:'<div class="chess-gamelist-item"><div class="bg"/><div class="content"><div class="avatarA"/><div class="avatarB"/><div class="nameA"/><div class="nameB"/><div class="vs">VS</div><div class="hover"><div class="bg"/><div class="spectate">Spectate</div><div class="time">00:00</div></div></div></div>',insert:D,update:D},resize:function(E){C.$.width(E.size.width).height(E.size.height);
C.$.triggerHandler("gamelist-resize",[{size:E.size}],C.options.resize)},click:function(F,E){C.$.triggerHandler("gamelist-click",[F,E],C.options.click)},mouseenter:function(E){C.$.triggerHandler("gamelist-mouseenter",[E],C.options.mouseenter)},mouseleave:function(E){C.$.triggerHandler("gamelist-mouseleave",[E],C.options.mouseleave)},itemmouseenter:function(E){C.$.triggerHandler("gamelist-itemmouseenter",[E],C.options.itemmouseenter)
},itemmouseleave:function(E){var F=C.$.find(".chess-gamelist-item:eq("+E+")");F.find(".content").removeClass("hovered").find(".hover").hide();C.$$.stopTicking();C.$.triggerHandler("gamelist-itemmouseleave",[E],C.options.itemmouseleave)},itemclick:function(E){C.$.triggerHandler("gamelist-spectate",[E],C.options.spectate)}})).appendTo(this.$.addClass("chess-control chess-game-list").css({left:this.options.left,top:this.options.top})).show()
},update:function(B){var D=B||{};var C=D.newsize||this.getSize();if(C.width<=0||C.height<=0){return}}}));A.ui.gamelist.getter="getPosition getSize getItem getCount getSelectedIndex";A.ui.gamelist.defaults={left:0,top:0,width:84,height:24,enabled:true,visible:true,items:[],resize:function(){},click:function(){},mouseenter:function(){},mouseleave:function(){},itemmouseenter:function(){},itemmouseleave:function(){},spectate:function(){}}
})(jQuery);Global.Gamelist={create:function(A){if(!("Gamelist" in App.windows)){var B=$.extend({left:305,top:50},A||{});App.windows.Gamelist=$.chess.window({width:380,height:300,left:B.left,top:B.top,caption:LANG.GAMES_IN_PROGRESS,widgets:[$.chess.gamelist({name:"games-in-progress",width:356,height:248,spectate:function(C){}})]}).hide();setInterval(function(){App.request({page:"game_status.php",success:function(C){if(C.status=="OK"){$get("games-in-progress").clear().addItems(C.data)
}}})},30*1000)}}};Global.SiteNews={create:function(A){if(!("SiteNews" in App.windows)){var B=$.extend({left:0,top:50},A||{});App.windows.SiteNews=$.chess.window({width:290,height:300,left:B.left,top:B.top,caption:LANG.SITE_NEWS,widgets:[$.chess.textbox({left:0,top:0,width:266,height:248,name:"sitenews.text"})]})}}};Global.Login={create:function(A){if(!("Login" in App.windows)){var E=$.extend({left:700,top:50},A||{});
App.params.wndLogin={timer:false};var B=function(){if(App.params.wndLogin.timer){clearTimeout(App.params.wndLogin.timer);App.params.wndLogin.timer=false}};var D=function(){$get("login.submit")[$get("login.email").getText().match(/^[\w\-.\+]+@[\w.\-]+\.[a-z]{2,6}$/i)&&$get("login.pass").getText().length>=6?"enable":"disable"]()};App.windows.Login=$.chess.window({width:280,height:300,left:E.left,top:E.top,caption:LANG.WND_LOGIN_TITLE,resize:function(F){$get("login.frame").setSize({width:F.client.width,height:F.client.height-80})
},widgets:[$.chess.frame({name:"login.frame",resize:function(F){$get("login.email").setSize({width:F.client.width-80});$get("login.pass").setSize({width:F.client.width-80})},widgets:[$.chess.label({text:LANG.WND_LOGIN_EMAIL,left:4,top:11,width:70}),$.chess.editbox({name:"login.email",top:7,left:75,keydown:function(){B()},keyup:function(){B();App.params.wndLogin.timer=setTimeout(D,200)}}),$.chess.label({text:LANG.WND_LOGIN_PASSWORD,left:4,top:46,width:70}),$.chess.editbox({name:"login.pass",type:"password",top:42,left:75,keydown:function(){B()
},keyup:function(){B();App.params.wndLogin.timer=setTimeout(D,100)},keypress:function(F){if(F.which==13){$get("login.submit").click()}}}),$.chess.checkbox({name:"login.remember",left:75,top:77,text:LANG.WND_LOGIN_REMEMBER}),$.chess.layer({left:5,top:130,width:150,height:25,css:{"font-size":"11px"},nomousetrap:true,html:"<a href=\"javascript:$.historyLoad('forgotten-password')\">"+LANG.WND_LOGIN_FORGOT_PASS+"</a>"}),$.chess.button({name:"login.submit",left:157,top:106,caption:LANG.WND_LOGIN_BTN_LOGIN,enabled:false,click:function(){$.chess.showOverlay();
$.chess.showAnimation();App.request({page:"user/login.php",data:{email:$get("login.email").getText(),pass:$get("login.pass").getText(),remember:$get("login.remember").isChecked()},success:function(F){if(F.status=="OK"){$("#page").hide();location.href="/dashboard.php"}else{if(F.data.constructor==String){alert(App.handleError(F.data))}else{alert(App.handleError(F.data.email,"email"));alert(App.handleError(F.data.pass,"password"))
}}$.chess.hideOverlay()}})}})]}),$.chess.layer({left:0,top:175,width:256,height:73,css:{cursor:"pointer"},html:$.chess.transPNG("img/createacc.png",256,73),click:function(){$.historyLoad("register")}})]}).hide();var C={prev:"",timer:null};App.windows.ForgotPass=$.chess.window({parent:"#ontop-container",left:325,top:125,width:330,height:206,ontop:true,caption:LANG.WND_FORGOTTEN_PASS_TITLE,draggable:true,resize:function(F){$get("forgotpass.frame").setSize(F.client)
},widgets:[$.chess.frame({name:"forgotpass.frame",left:0,top:0,widgets:[$.chess.label({left:10,top:5,width:284,height:65,color:"#fff",fontSize:"14px",lineHeight:"18px",text:LANG.WND_FORGOTTEN_PASS_TEXT}),$.chess.label({left:15,top:72,text:"Email:",target:"forgotpass.email"}),$.chess.editbox({name:"forgotpass.email",left:67,top:67,width:213,keydown:function(){if(C.timer){clearInterval(C.timer);C.timer=false
}},keyup:function(F){C.timer=setInterval(function(){$get("forgotpass.send")[$get("forgotpass.email").getText().match(/^[\w\-.\+]+@[\w.\-]+\.[a-z]{2,6}$/i)?"enable":"disable"]()},200);if(F.which==13){$get("forgotpass.send").click()}}}),$.chess.button({name:"forgotpass.send",right:18,bottom:15,width:70,caption:LANG.SEND,enabled:false,click:function(){$get("forgotpass.send").disable();$get("forgotpass.email").disable();
App.request({page:"user/forgot_pass.php",data:{email:$get("forgotpass.email").getText()},success:function(F){if(F.status=="OK"){$.historyLoad(C.prev)}else{alert(App.handleError(F.data,"email"))}},complete:function(){$get("forgotpass.send").enable();$get("forgotpass.email").enable()}})}}),$.chess.button({right:100,bottom:15,width:70,caption:LANG.CANCEL,click:function(){$.historyLoad(C.prev)}})]})]}).hide();
$("body").bind("history",function(G,F,H){if(H){if(F=="register"){App.windows.Login.hide();App.windows.Register.show()}else{if(F=="forgotten-password"){$.chess.showOverlay();App.windows.ForgotPass.show()}}}else{if(F=="register"){$.chess.hideOverlay();App.windows.ForgotPass.hide();App.windows.Login.disappear(function(){App.windows.Register.appear()});C.prev="register"}else{if(F=="forgotten-password"){$.chess.showOverlay();
App.windows.ForgotPass.show()}else{if(F==""){$.chess.hideOverlay();App.windows.ForgotPass.hide();if(App.windows.Register.is(":visible")){App.windows.Register.disappear(function(){App.windows.Login.appear()})}C.prev=""}}}}})}}};Global.Register={create:function(E){if(!("Register" in App.windows)){var H=$.extend({left:700,top:50},E||{});App.params.wndRegister={name:{valid:false,error:""},email:{valid:false,error:""},pass:{valid:false,error:""},pass2:{valid:false,error:""},timer:false};
var C=function(){var J=App.params.wndRegister;$get("register.submit")[J.name.valid&&J.email.valid&&J.pass.valid&&J.pass2.valid&&$get("register.agree").isChecked()?"enable":"disable"]()};var B=function(M,J){J=J||"";var L=App.params.wndRegister,K=0;L[M].error=J;L[M].valid=J.length==0;$.each(["name","email","pass","pass2"],function(){if(L[this].error.length>0){$get("register.label").setText(L[this].error).css({color:"#d01d1d","font-size":"13px"});
return false}K++});if(K==4){$get("register.label").setText(LANG.WND_REGISTRATION_CREATE_CE_PROFILE).css({color:"#fff","font-size":"14px"})}C()};var I=function(J){if(J.getText().length){$get("register.name.glow").fadeOut();B("name")}else{$get("register.name.glow").fadeIn();B("name",LANG.WND_REGISTRATION_NAME_MISSING)}};var A=function(J){var K=true;if(J.getText().length){if(J.getText().match(/^[\w\-.\+]+@[\w.\-]+\.[a-z]{2,6}$/i)){$get("register.email.glow").fadeOut();
B("email")}else{$get("register.email.glow").fadeIn();B("email",LANG.WND_REGISTRATION_EMAIL_INVALID)}}else{$get("register.email.glow").fadeIn();B("email",LANG.WND_REGISTRATION_EMAIL_MISSING)}};var F=function(J){if(J.getText().length>=6){$get("register.pass.glow").fadeOut();B("pass")}else{$get("register.pass.glow").fadeIn();B("pass",J.getText().length>0?LANG.WND_REGISTRATION_PASSWORD_SHORT:LANG.WND_REGISTRATION_PASSWORD_MISSING)
}};var D=function(J){if(J.getText().length){if(J.getText()==$get("register.pass").getText()){$get("register.pass2.glow").fadeOut();B("pass2")}else{$get("register.pass2.glow").fadeIn();B("pass2",LANG.WND_REGISTRATION_PASSWORDS_NOT_MATCH)}}else{$get("register.pass2.glow").fadeIn();B("pass2",LANG.WND_REGISTRATION_PASSWORD_MUST_REPEAT)}};var G=function(){if(App.params.wndRegister.timer){clearTimeout(App.params.wndRegister.timer);
App.params.wndRegister.timer=false}};App.windows.Register=$.chess.window({width:280,height:300,left:H.left,top:H.top,caption:LANG.WND_REGISTRATION_TITLE,resize:function(J){$.chess.get("register.frame").setSize(J.client)},widgets:[$.chess.frame({name:"register.frame",resize:function(J){$.chess.get("register.label").setSize({width:J.client.width-20});$.chess.get("register.name").setSize({width:J.client.width-123});
$.chess.get("register.name.glow").setSize({width:J.client.width-114});$.chess.get("register.email").setSize({width:J.client.width-123});$.chess.get("register.email.glow").setSize({width:J.client.width-114});$.chess.get("register.pass").setSize({width:J.client.width-123});$.chess.get("register.pass.glow").setSize({width:J.client.width-114});$.chess.get("register.pass2").setSize({width:J.client.width-123});
$.chess.get("register.pass2.glow").setSize({width:J.client.width-114});$.chess.get("register.submit").css("left",J.client.width-130)},widgets:[$.chess.label({name:"register.label",text:LANG.WND_REGISTRATION_CREATE_CE_PROFILE,left:10,top:8,height:30,lineHeight:"20px",fontSize:14,color:"#fff"}),$.chess.glow({name:"register.name.glow",left:109,top:36,height:32,visible:false}),$.chess.label({text:LANG.WND_REGISTRATION_NAME,target:"register.name",left:10,top:45,width:100}),$.chess.editbox({name:"register.name",top:40,left:113,focus:function(){$get("register.name.glow").fadeOut()
},blur:function(J){I(J)},keydown:function(){G()},keyup:function(K,J){G();if(J.element.getText().length>0){App.params.wndRegister.timer=setTimeout(function(){I($get("register.name"))},600)}else{$get("register.submit").disable()}}}),$.chess.glow({name:"register.email.glow",left:109,top:70,height:32,visible:false}),$.chess.label({text:LANG.WND_REGISTRATION_EMAIL,target:"register.email",left:10,top:79,width:100}),$.chess.editbox({name:"register.email",top:74,left:113,text:App.readCookie("invited",""),focus:function(){$get("register.email.glow").fadeOut()
},blur:function(J){A(J);var K=J.getText();if(K.match(/^[\w\-.\+]+@[\w.\-]+\.[a-z]{2,6}$/i)){App.request({page:"user/email_check.php",data:{email:K},repeat:0,success:function(L){if(L.status=="ERR"){B("email",LANG.WND_REGISTRATION_EMAIL_TAKEN)}}})}},keydown:function(){G()},keyup:function(K,J){G();if(J.element.getText().length>0){App.params.wndRegister.timer=setTimeout(function(){A($get("register.email"))
},800)}else{$get("register.submit").disable()}}}),$.chess.glow({name:"register.pass.glow",left:109,top:104,height:32,visible:false}),$.chess.label({text:LANG.WND_REGISTRATION_PASSWORD,target:"register.pass",left:10,top:113,width:100}),$.chess.editbox({name:"register.pass",top:108,left:113,type:"password",focus:function(){$get("register.pass.glow").fadeOut()},blur:function(J){F(J)},keydown:function(){G()
},keyup:function(K,J){G();if(J.element.getText().length>0){App.params.wndRegister.timer=setTimeout(function(){F($get("register.pass"))},600)}else{$get("register.submit").disable()}}}),$.chess.glow({name:"register.pass2.glow",left:109,top:138,height:32,visible:false}),$.chess.label({text:LANG.WND_REGISTRATION_REPEAT_PASSWORD,target:"register.pass2",left:10,top:147,width:100}),$.chess.editbox({name:"register.pass2",top:142,left:113,type:"password",focus:function(){$get("register.pass2.glow").fadeOut()
},blur:function(J){D(J)},keydown:function(){G()},keyup:function(K,J){G();if(J.element.getText().length>0){App.params.wndRegister.timer=setTimeout(function(){D($get("register.pass2"))},200)}else{$get("register.submit").disable()}}}),$.chess.checkbox({name:"register.agree",left:10,top:174,width:230,text:LANG.WND_REGISTRATION_I_ACCEPT.replace("%a%",'<a href="/terms.php" style="color:#fff">').replace("%/a%","</a>"),change:C}),$.chess.button({name:"register.submit",top:205,width:120,caption:LANG.WND_REGISTRATION_BTN_CREATE_PROFILE,enabled:false,click:function(){$.chess.showOverlay();
$.chess.showAnimation();App.request({page:"user/register.php",data:{name:$get("register.name").getText(),email:$get("register.email").getText(),pass1:$get("register.pass").getText(),pass2:$get("register.pass2").getText(),agree:$get("register.agree").isChecked()},success:function(J){if(J.status=="OK"){location.href="/user/profile.php?ft#edit"}else{if(J.data.constructor==String){alert(App.handleError(J.data));
$get("register.submit").enable()}else{B("name",App.handleError(J.data.name,"name",{required:LANG.WND_REGISTRATION_YOUR_NAME}));B("email",App.handleError(J.data.email,"email",{required:LANG.WND_REGISTRATION_EMAIL_ADDRESS}));B("pass",App.handleError(J.data.pass1,"password"))}}},complete:function(){$.chess.hideOverlay()}})}}),$.chess.button({top:205,width:95,left:10,caption:LANG.CANCEL,click:function(){$.historyLoad("")
}})]})]}).hide()}}};