(function($){function CloudZoom(a,b){var c=$("img",a);var d;var e;var f=null;var g=null;var h=null;var i=null;var j=null;var k=null;var l;var m=0;var n,o;var p=0;var q=0;var r=0;var s=0;var t=0;var u,v;var w=this,x;setTimeout(function(){if(g===null){var b=a.width();a.parent().append(format('<div style="width:%0px;position:absolute;top:75%;left:%1px;text-align:center" class="cloud-zoom-loading" >Loading...</div>',b/3,b/2-b/6)).find(":last").css("opacity",.5)}},200);var y=function(){if(k!==null){k.remove();k=null}};this.removeBits=function(){if(h){h.remove();h=null}if(i){i.remove();i=null}if(j){j.remove();j=null}y();$(".cloud-zoom-loading",a.parent()).remove()};this.destroy=function(){a.data("zoom",null);if(g){g.unbind();g.remove();g=null}if(f){f.remove();f=null}this.removeBits()};this.fadedOut=function(){if(f){f.remove();f=null}this.removeBits()};this.controlLoop=function(){if(h){var a=u-c.offset().left-n*.5>>0;var d=v-c.offset().top-o*.5>>0;if(a<0){a=0}else if(a>c.outerWidth()-n){a=c.outerWidth()-n}if(d<0){d=0}else if(d>c.outerHeight()-o){d=c.outerHeight()-o}h.css({left:a,top:d});h.css("background-position",-a+"px "+ -d+"px");p=a/c.outerWidth()*l.width>>0;q=d/c.outerHeight()*l.height>>0;s+=(p-s)/b.smoothMove;r+=(q-r)/b.smoothMove;f.css("background-position",-(s>>0)+"px "+(-(r>>0)+"px"))}m=setTimeout(function(){w.controlLoop()},30)};this.init2=function(a,b){t++;if(b===1){l=a}if(t===2){this.init()}};this.init=function(){$(".cloud-zoom-loading",a.parent()).remove();g=a.parent().append(format("<div class='mousetrap' style='background-image:url(\".\");z-index:999;position:absolute;width:%0px;height:%1px;left:%2px;top:%3px;'></div>",c.outerWidth(),c.outerHeight(),0,0)).find(":last");g.bind("mousemove",this,function(a){u=a.pageX;v=a.pageY});g.bind("mouseleave",this,function(a){clearTimeout(m);if(h){h.fadeOut(299)}if(i){i.fadeOut(299)}if(j){j.fadeOut(299)}f.fadeOut(300,function(){w.fadedOut()});return!1});g.bind("mouseenter",this,function(d){u=d.pageX;v=d.pageY;x=d.data;if(f){f.stop(!0,!1);f.remove()}var e=b.adjustX,m=b.adjustY;var p=c.outerWidth();var q=c.outerHeight();var r=b.zoomWidth;var s=b.zoomHeight;if(b.zoomWidth=="auto"){r=p}if(b.zoomHeight=="auto"){s=q}var t=a.parent();switch(b.position){case"top":m-=s;break;case"right":e+=p;break;case"body":m=c.offset().top;e=p+c.offset().left+3;t=$(b.position);break;case"bottom":m+=q;break;case"left":e-=r;break;case"inside":r=p;s=q;break;default:t=$("#"+b.position);if(!t.length){t=a;e+=p;m+=q}else{r=t.innerWidth();s=t.innerHeight()}}f=t.append(format('<div id="cloud-zoom-big" class="cloud-zoom-big" style="display:none;position:absolute;left:%0px;top:%1px;width:%2px;height:%3px;background-image:url(\'%4\');z-index:999;"></div>',e,m,r,s,l.src)).find(":last");if(c.attr("title")&&b.showTitle){f.append(format('<div class="cloud-zoom-title">%0</div>',c.attr("title"))).find(":last").css("opacity",b.titleOpacity)}if($.browser.msie&&$.browser.version<7){k=$('<iframe frameborder="0" src="#"></iframe>').css({position:"absolute",left:e,top:m,zIndex:99,width:r,height:s}).insertBefore(f)}f.fadeIn(500);if(h){h.remove();h=null}n=c.outerWidth()/l.width*f.width();o=c.outerHeight()/l.height*f.height();h=a.append(format("<div class = 'cloud-zoom-lens' style='display:none;z-index:98;position:absolute;width:%0px;height:%1px;'></div>",n,o)).find(":last");g.css("cursor",h.css("cursor"));var w=!1;if(b.tint){h.css("background",'url("'+c.attr("src")+'")');i=a.append(format('<div style="display:none;position:absolute; left:0px; top:0px; width:%0px; height:%1px; background-color:%2;" />',c.outerWidth(),c.outerHeight(),b.tint)).find(":last");i.css("opacity",b.tintOpacity);w=!0;i.fadeIn(500)}if(b.softFocus){h.css("background",'url("'+c.attr("src")+'")');j=a.append(format('<div style="position:absolute;display:none;top:2px; left:2px; width:%0px; height:%1px;" />',c.outerWidth()-2,c.outerHeight()-2,b.tint)).find(":last");j.css("background",'url("'+c.attr("src")+'")');j.css("opacity",.5);w=!0;j.fadeIn(500)}if(!w){h.css("opacity",b.lensOpacity)}if(b.position!=="inside"){h.fadeIn(500)}x.controlLoop();return})};d=new Image;$(d).load(function(){w.init2(this,0)});d.src=c.attr("src");e=new Image;$(e).load(function(){w.init2(this,1)});e.src=a.attr("href")}function format(a){for(var b=1;b<arguments.length;b++){a=a.replace("%"+(b-1),arguments[b])}return a}$(document).ready(function(){$(".cloud-zoom, .cloud-zoom-gallery").CloudZoom()});$.fn.CloudZoom=function(options){try{document.execCommand("BackgroundImageCache",!1,!0)}catch(e){}this.each(function(){var relOpts,opts;eval("var\ta = {"+$(this).attr("rel")+"}");relOpts=a;if($(this).is(".cloud-zoom")){$(this).css({position:"relative",display:"block"});$("img",$(this)).css({display:"block"});if($(this).parent().attr("id")!="wrap"){$(this).wrap('<div id="wrap" style="top:0px;z-index:9999;position:relative;"></div>')}opts=$.extend({},$.fn.CloudZoom.defaults,options);opts=$.extend({},opts,relOpts);$(this).data("zoom",new CloudZoom($(this),opts))}else if($(this).is(".cloud-zoom-gallery")){opts=$.extend({},relOpts,options);$(this).data("relOpts",opts);$(this).bind("click",$(this),function(a){var b=a.data.data("relOpts");$("#"+b.useZoom).data("zoom").destroy();$("#"+b.useZoom).attr("href",a.data.attr("href"));$("#"+b.useZoom+" img").attr("src",a.data.data("relOpts").smallImage);$("#"+a.data.data("relOpts").useZoom).CloudZoom();return!1})}});return this};$.fn.CloudZoom.defaults={zoomWidth:"auto",zoomHeight:"auto",position:"right",tint:!1,tintOpacity:.5,lensOpacity:.5,softFocus:!1,smoothMove:3,showTitle:!0,titleOpacity:.5,adjustX:0,adjustY:0}})(jQuery);$(document).ready(function(){if(window.player){ws=new WebSocket(WS_URL+"site");ws.onopen=function(){$(window).bind("beforeunload",function(){trellis.connection_ok=!1});trellis.makeDock()};ws.onmessage=function(a){var b=$.parseJSON(a.data);if(!trellis.handleEvent(b)){switch(b.type){}}};ws.onclose=function(){};ws.onerror=function(){}}trellis.initServerTime();$.cookie("lang",lang,{path:"/"})});String.prototype.setCharAt=function(a,b){if(a>this.length-1)return str;return this.substr(0,a)+b+this.substr(a+1)};jQuery.fn.formToDict=function(){var a=this.serializeArray();var b={};for(var c=0;c<a.length;c++){b[a[c].name]=a[c].value}if(b.next)delete b.next;return b};jQuery.getCookie=function(a){var b=document.cookie.match("\\b"+a+"=([^;]*)\\b");return b?b[1]:undefined};jQuery.postJSON=function(a,b,c){b._xsrf=$.getCookie("_xsrf");$.ajax({url:a,data:$.param(b),dataType:"json",type:"POST",async:!1,success:function(a){if(c)c(a)},error:function(a){}})};(function(a){if(a.browser.mozilla){a.fn.disableTextSelect=function(){return this.each(function(){a(this).css({MozUserSelect:"none"})})};a.fn.enableTextSelect=function(){return this.each(function(){a(this).css({MozUserSelect:""})})}}else if(a.browser.msie){a.fn.disableTextSelect=function(){return this.each(function(){a(this).bind("selectstart.disableTextSelect",function(){return!1})})};a.fn.enableTextSelect=function(){return this.each(function(){a(this).unbind("selectstart.disableTextSelect")})}}else{a.fn.disableTextSelect=function(){return this.each(function(){a(this).bind("mousedown.disableTextSelect",function(){return!1})})};a.fn.enableTextSelect=function(){return this.each(function(){a(this).unbind("mousedown.disableTextSelect")})}}})(jQuery);(function(a){a.fn.delayChange=function(b,c){c=c||500;var d,e=a(this),f=e.val(),g=function(){clearTimeout(d)},h=function(){if(f==e.val()){return}f=e.val();b.apply(e)},i=function(){d=setTimeout(h,c)};e.keyup(function(){g();i()});return e}})(jQuery);jQuery.cookie=function(a,b,c){if(arguments.length>1&&String(b)!=="[object Object]"){c=jQuery.extend({},c);if(b===null||b===undefined){c.expires=-1}if(typeof c.expires==="number"){var d=c.expires,e=c.expires=new Date;e.setDate(e.getDate()+d)}b=String(b);return document.cookie=[encodeURIComponent(a),"=",c.raw?b:encodeURIComponent(b),c.expires?"; expires="+c.expires.toUTCString():"",c.path?"; path="+c.path:"",c.domain?"; domain="+c.domain:"",c.secure?"; secure":""].join("")}c=b||{};var f,g=c.raw?function(a){return a}:decodeURIComponent;return(f=(new RegExp("(?:^|; )"+encodeURIComponent(a)+"=([^;]*)")).exec(document.cookie))?g(f[1]):null};$(document).ready(function(){trellis.initDropDown()});var trellis={};trellis.TABLE_STATUS_FREE=0;trellis.TABLE_STATUS_CREATING=1;trellis.TABLE_STATUS_GAME=2;trellis.GAME_STATUS_WAITING=1;trellis.GAME_STATUS_GAME=2;trellis.TT_NOVICE=1;trellis.TT_RATING=2;trellis.TT_TOURNAMENT=3;trellis.TT_COMMERCE=4;trellis.connection_ok=!0;trellis.create_timeout_id=null;trellis.create_timeout=null;trellis.D_SEX={1:"Male",2:"Female"};trellis.create_table=function(a){trellis.sendMessage("core","create_table",{guid:a})};trellis.create_table_dialog=function(a,b,c,d){function e(){trellis.create_timeout-=1;$("#create_timeout").html(trellis.secondsLeftText(trellis.create_timeout));window.clearTimeout(trellis.create_timeout_id);trellis.create_timeout_id=window.setTimeout(e,1e3);if(trellis.create_timeout<=0){tdm.hide("create-dialog")}}trellis.create_timeout=b;var f={};f[$._("Cancel")]=function(){window.clearTimeout(trellis.create_timeout_id);tdm.hide("create-dialog");trellis.sendMessage("core","cancel_create_table",{guid:a})};f[$._("Create")]=function(){window.clearTimeout(trellis.create_timeout_id);tdm.hide("create-dialog");trellis.sendMessage("core","submit_create_table",{guid:a,opts:$("#create_game_form").formToDict()})};if(tdm.l["create-dialog"]){tdm.l["create-dialog"].set_content(d);create_timeout_id=window.setTimeout(e,1e3);tdm.l["create-dialog"].set_buttons(f);tdm.show(tdm.l["create-dialog"])}else{var g=new TDialog({id:"create-dialog",title:$._("Create")+' <span class="timeout">('+$._("Remained")+': <span id="create_timeout">'+trellis.secondsLeftText(trellis.create_timeout)+"</span>)</span>",closable:!1,width:c,content:d,buttons:f});trellis.create_timeout_id=window.setTimeout(e,1e3);tdm.show(g)}$("#create_game_form").bind("keypress",function(b){if(b.keyCode==13){window.clearTimeout(trellis.create_timeout_id);tdm.hide("create-dialog");trellis.sendMessage("core","submit_create_table",{guid:a,opts:$("#create_game_form").formToDict()});return!1}return!0})};trellis.connectionLost=function(){$("#iconnect").removeClass("icon-connect");$("#iconnect").addClass("icon-noconnect");if(trellis.connection_ok){if(confirm($._("Connection Lost. Press Ok to reconnect, or Cancel to Exit")))location.reload();else location.href="/"+lang+"/"}};trellis.sendMessage=function(a,b,c){c["app"]=a;c["type"]=b;try{ws.send($.toJSON(c))}catch(d){}};trellis.playSound=function(a){try{var b=document.getElementById("snd_"+a.sound);if(b)b.play()}catch(c){}};trellis.pluralDigit=function(a,b,c,d){if(a==0)return d;var e=a%10;if(a%100>=10&&a%100<=19)return d;if(e==1)return b;if(e>=2&&e<=4)return c;return d};trellis.secondsLeftText=function(a){var b=Math.floor(a/60);var c=a%60;var d=trellis.pluralDigit(c,$._("seconds1"),$._("seconds2"),$._("seconds3"));if(b==0)return c+" "+d;var e=trellis.pluralDigit(b,$._("minutes1"),$._("minutes2"),$._("minutes3"));if(c==0)return b+" "+e;return b+" "+e+" "+c+" "+d};trellis.server_timeout_id=null;trellis.showServerTime=function(){var a=server_time.getHours();var b=server_time.getMinutes();a=(a<10?"0":"")+a;b=(b<10?"0":"")+b;$("#server_time").html(a+":"+b)};trellis.serverTimeoutTick=function(){server_time.setSeconds(server_time.getSeconds()+1);trellis.showServerTime();window.clearTimeout(trellis.server_timeout_id);trellis.server_timeout_id=window.setTimeout(trellis.serverTimeoutTick,1e3)};trellis.initServerTime=function(){trellis.server_timeout_id=window.setTimeout(trellis.serverTimeoutTick,1e3)};trellis.showOnlinePlayers=function(){$.postJSON("/ajax/players/online/",{},function(a){var b="";b+='<div style="padding-left:10px;"><div class="search"><div class="left" /><input type="text" id="online_players_find" max_length="50" /><div class="right" /></div>';b+='<div class="clear" /></div><div style="height:400px; overflow:auto;">';b+='<table class="grid tsorter" id="online_players_table"><thead><tr><th class="ll">'+$._("Who")+"?</th><th>"+$._("Where")+"?</th></tr></thead><tbody>";for(var c in a.players){b+='<tr><td class="ll"><span class="lnk clk" onclick="trellis.showPlayerInfo('+c+')">'+a.players[c].name+"</span></td>";pp=[];pmap={};for(var d=0;d<a.players[c].places.length;d++){var e="/"+lang+"/"+a.players[c].places[d].uri;if(pmap[e]==undefined){pmap[e]=!0;pp.push('<a href="'+e+'">'+$.trim($._(a.players[c].places[d].name)+" "+a.players[c].places[d].subname)+"</a>")}}b+="<td>"+pp.join(", ")+"</td>";b+="</tr>"}b+="</tbody></table></div>";var f=$._("Online Players")+" <span>("+a.online+")</span>";if(tdm.l["online"]){tdm.l["online"].set_content(b);tdm.l["online"].set_title(f);tdm.show(tdm.l["online"])}else{var g=new TDialog({id:"online",style:"normal",title:f,closable:!0,width:600,height:500,content:b});tdm.show(g)}$("#online_players_table").tsorter();$("input#online_players_find").quicksearch("table#online_players_table tbody tr")})};trellis.showOnlineGames=function(){$.postJSON("/ajax/games/online/",{},function(a){var b='<div style="height:400px; overflow:auto;"><table class="grid"><thead><tr><th class="ll">'+$._("Type")+"</th><th>"+$._("Room")+"</th><th>"+$._("Table")+"</th><th>"+$._("Status")+"</th><th>"+$._("Created")+"</th></tr></thead><tbody>";for(var c=0;c<a.games.length;c++){b+="<tr>";b+='<td class="ll">'+$._(a.games[c].type)+"</td>";b+='<td><a href="/'+lang+"/"+a.games[c].room_uri+'">'+$._(a.games[c].room_name)+" "+a.games[c].room_subname+"</a></td>";b+="<td";if(a.games[c].is_lock)b+=' class="rlock"';b+='><a href="/'+lang+"/"+a.games[c].table_uri+'">'+$._(a.games[c].table_name)+" "+a.games[c].table_subname+"</a></td>";b+="<td>"+$._(a.games[c].status)+"</td>";b+="<td>"+a.games[c].created+"</td>";b+="</tr>"}b+="</tbody></table></div>";var d=$._("Online Games")+" <span>("+$._("Total")+":"+a.games.length+", "+$._("Opened")+":"+a.waiting+")</span>";if(tdm.l["online_games"]){tdm.l["online_games"].set_content(b);tdm.l["online_games"].set_title(d);tdm.show(tdm.l["online_games"])}else{var e=new TDialog({id:"online_games",style:"normal",title:d,closable:!0,width:600,height:500,content:b});tdm.show(e)}})};trellis.showTableObservers=function(a){$.postJSON("/ajax/table/"+a+"/observers/",{},function(a){var b='<div style="max-height:300px; overflow:auto; padding-bottom:5px;"><table class="grid"><tbody>';for(var c in a)b+='<tr><td class="ll"><span class="lnk clk" onclick="trellis.showPlayerInfo('+c+')">'+a[c]+"</span></td></tr>";b+="</tbody></table></div>";var d=$._("Observers");if(tdm.l["observers"]){tdm.l["observers"].set_content(b);tdm.l["observers"].set_title(d);tdm.show(tdm.l["observers"])}else{var e=new TDialog({id:"observers",style:"normal",title:d,closable:!0,width:250,content:b});tdm.show(e)}})};trellis._playerBlackHtml=function(a,b,c,d){var e="";e+='<div class="black-label">'+$._("Blacklisted")+"</div>";e+='<span onclick="return trellis.dropPrivateList('+a+","+b+', 1);" class="clk tdialog-button tdialog-button-black" style="float:right;">'+$._("Generous pardon")+"</span>";e+='<span style="clear:both;"></span><label class="comment">'+$._("Added at")+" "+$._dm(c)+" "+$._("with reason")+':</label><div class="description">'+d+"</div>";return e};trellis._playerFriendHtml=function(a,b,c,d){var e="";e+='<div class="friend-label">'+$._("my friend")+"</div>";e+='<span onclick="trellis.dropPrivateList('+a+","+b+', 2);" class="clk tdialog-button tdialog-button-brown" style="float:right;">'+$._("Send to a museum")+"</span>";e+='<span style="clear:both;"></span><label class="comment">'+$._("Added at")+" "+$._dm(c)+" "+$._("with reason")+':</label><div class="description">'+d+"</div>";return e};trellis._playerNormalHtml=function(a,b){var c="";c+='<span onclick="trellis.createPrivateList('+a+","+b+', 1);" class="clk tdialog-button tdialog-button-black">'+$._("Add to Blacklist")+"</span>";c+='<span onclick="trellis.createPrivateList('+a+","+b+', 2);" style="float:right;" class="clk tdialog-button tdialog-button-brown">'+$._("Add to Friends")+"</span>";c+='<span style="clear:both;"></span><label class="comment">'+$._("Comment (255 characters max)")+'</label><textarea class="comment" id="to_private_list_'+b+'"></textarea>';return c};trellis.showPlayerInfo=function(a){$.postJSON("/ajax/players/"+a+"/info/",{},function(a){var b=!0;var c="";if(a.places){for(var d=0;d<a.places.length;d++){if(d!=0)c+=", ";var e=$._(a.places[d].name);if(a.places[d].subname)e+=" "+a.places[d].subname;if(c.search(e)==-1)c+='<a href="/'+lang+"/"+a.places[d].uri+'">'+e+"</a>"}}if(c==""){c=$._("Offline");b=!1}var f='<div style="padding:10px 0; clear:both;"><table class="info">';if(a.premiums.length>0){var g="";for(var d=0;d<a.premiums.length;d++){if(g!="")g+=", ";g+=$._(a.premiums[d])}f+="<tr><th>"+$._("Premium Account")+":</th><td><strong>"+g+"</strong></td></tr>"}f+="<tr><th>"+$._("Currently Located")+":</th><td>"+c+"</td></tr>";f+="<tr><th>"+$._("In the Club")+":</th><td>"+a.with_us_days+" "+trellis.pluralDigit(a.with_us_days,$._("days1"),$._("days2"),$._("days3"))+" ("+$._("since")+" "+$._dm(a.with_us)+")</td></tr>";if(a.ratings.length>0){var g="";for(var d=0;d<a.ratings.length;d++){if(g!="")g+="<br />";g+=$._(a.ratings[d].game)+": "+trellis.wrapBadGood($._n(a.ratings[d].rating))}f+="<tr><th>"+$._("Rating")+":</th><td>"+g+"</td></tr>"}if(a.age||a.sex){if(!a.sex)f+="<tr><th>"+$._("Age")+":</th><td>"+a.age+" "+trellis.pluralDigit(a.age,$._("years1"),$._("years2"),$._("years3"))+"</td></tr>";else if(!a.age)f+="<tr><th>"+$._("Sex")+":</th><td>"+$._(trellis.D_SEX[a.sex])+"</td></tr>";else f+="<tr><th>"+$._("Age")+":</th><td>"+a.age+" "+trellis.pluralDigit(a.age,$._("years1"),$._("years2"),$._("years3"))+" ("+$._(trellis.D_SEX[a.sex])+")</td></tr>"}if(a.ufrom)f+="<tr><th>"+$._("From")+":</th><td>"+a.ufrom+"</td></tr>";f+='<tr><th><a href="/'+lang+"/player/"+a.player_id+'/">'+$._("Player Card")+"</a></th><td>";if(b&&player){if(player.id!=a.player_id){f+='<span class="clk lnk" onclick="trellis.inviteToChatDirect('+a.player_id+')">'+$._("Invite to chat")+"</span>"}}f+="</td></tr>";if(a.awards.length>0){f+='<tr><th colspan="2">';for(var d=0;d<a.awards.length;d++){f+='<div style="float:left;" class="award award_'+a.awards[d].code+'" title="'+$._(a.awards[d].name)+'"></div>'}f+="</th></tr>"}f+="</table></div>";var h="pi"+a.player_id;var i="normal";var j="";if(a.iam){if(a.iam["id"]!=a.player_id){j+='<div class="plblock">';if(a.black_list){i="black";j+=trellis._playerBlackHtml(a.iam.id,a.player_id,a.black_list.added,a.black_list.comment)}else if(a.friend_list){i="friend";j+=trellis._playerFriendHtml(a.iam.id,a.player_id,a.friend_list.added,a.friend_list.comment)}else{j+=trellis._playerNormalHtml(a.iam.id,a.player_id)}j+="</div>"}}if(tdm.l[h]){tdm.l[h].set_content(j+f);tdm.l[h].set_style(i);tdm.show(tdm.l[h])}else{var k={id:h,style:i,icon:STATIC_URL+"css/core/i/missing.png",title:a.player_name+" <span>&#8470;"+a.player_id+"</span>",closable:!0,width:312,content:j+f};if(a.avatar)k["icon"]=STORAGE_URL+a.avatar;var l=new TDialog(k);tdm.show(l)}})};trellis.createPrivateList=function(a,b,c){var d=$("#to_private_list_"+b).val();if(d==""){alert($._("Please enter a comment that in the future not to forget what you've added to this player"));$("#to_private_list_"+b).focus();return}if(d.length>255){alert($._("The comment should not exceed 255 characters"));$("#to_private_list_"+b).focus();return}$.postJSON("/ajax/players/"+b+"/private/create/",{list_type:c,comment:d},function(d){if(d.ok){if(tdm.l["pi"+b]){if(c==1){tdm.l["pi"+b].set_style("black");$("#tdialog-id-pi"+b+" .plblock").html(trellis._playerBlackHtml(a,b,d.added,d.comment))}else{tdm.l["pi"+b].set_style("friend");$("#tdialog-id-pi"+b+" .plblock").html(trellis._playerFriendHtml(a,b,d.added,d.comment))}}}else{alert($._("Internal Error"))}})};trellis.dropPrivateList=function(a,b,c){$.postJSON("/ajax/players/"+b+"/private/drop/",{list_type:c},function(c){if(c.ok){if(tdm.l["pi"+b]){tdm.l["pi"+b].set_style("normal");$("#tdialog-id-pi"+b+" .plblock").html(trellis._playerNormalHtml(a,b))}}else alert($._("Internal Error"))})};trellis.wrapBadGood=function(a){if(a<0)return'<span class="bad">'+a+"</span>";if(a>0)return'<span class="good">'+a+"</span>";return a};trellis.wrapBadGoodString=function(a,b){if(a<0)return'<span class="bad">'+b+"</span>";if(a>0)return'<span class="good">'+b+"</span>";return b};trellis.showConfirmDialog=function(a,b,c){var d={};d[$._("No")]=function(){tdm.hide(["confirm-dialog"])};d[$._("Yes")]=function(){tdm.hide("confirm-dialog");c()};if(tdm.l["confirm-dialog"]){tdm.l["confirm-dialog"].set_title(a);tdm.l["confirm-dialog"].set_content('<div style="padding:10px;">'+b+"</div>");tdm.l["confirm-dialog"].set_buttons(d);tdm.show(tdm.l["confirm-dialog"])}else{var e=new TDialog({id:"confirm-dialog",title:a,closable:!1,width:250,content:'<div style="padding:10px;">'+b+"</div>",buttons:d});tdm.show(e)}};trellis.closeUchat=function(a){$("#uchat-"+a).remove();trellis.sendMessage("core","uchat_close",{id:a});return!0};trellis.prepareUchat=function(a){if($("#uchat-"+a+" .nub-flyout").is(":visible")){$("#uchat-"+a+" input.input_message").focus();var b=$("#uchat-"+a+" .slider");b.scrollTop(b.prop("scrollHeight")>0?b.prop("scrollHeight"):b.height())}};trellis.addUchat=function(a,b,c,d){var e='<div id="uchat-'+a+'" class="nub-container nub-group clearfix">';e+='<div class="chat-popup"><div onclick="$(\'#uchat-'+a+" .nub-flyout').toggle(); trellis.prepareUchat("+a+')" class="clk nub-button"><div class="nub-name">'+b+'</div><div onclick="return trellis.closeUchat('+a+')" class="nub-close clk"></div></div>';e+='<div class="nub-flyout';if(!d)e+=" hidden";e+='"><div class="titlebar clk" onclick="$(\'#uchat-'+a+" .nub-flyout').toggle();\">"+b+"</div>";e+='<div class="content"><div class="slider">';for(var f in c){if(c[f].player_id==player.id)e+='<div class="line me lborder"><span class="time">'+c[f].time+"</span> "+c[f].body+"</div>";if(c[f].personal_id==player.id){e+='<div class="line hi lborder"><span class="time">'+c[f].time+"</span> "+c[f].body+"</div>"}}var g=$("#uchat-"+a+" .slider");g.scrollTop(g.prop("scrollHeight")>0?g.prop("scrollHeight"):g.height());e+='</div><div class="line"><input type="text" maxlength="100" class="input_message nameinput" /></div></div>';e+="</div></div>";$("#uchat-slider").append(e);$(".nub-button").disableTextSelect();$("#uchat-no-one").empty();$("#uchat-"+a+" .input_message").keypress(function(c){if(c.keyCode==13){var d=$("#uchat-"+a+" .input_message");var e=d.val();if(e!=""){trellis.sendMessage("core","uchat",{body:e,personal_id:a,personal_name:b});d.val("");d.focus()}}})};trellis.readContacts=function(){if($("#uchat-buddylist .nub-flyout").is(":visible"))return;var a=window["table_guid"];if(a==undefined)return;var b=$("#uchat-buddylist-contacts");b.empty().addClass("loading");trellis.sendMessage("core","dock_contacts",{guid:a})};trellis.dockContactsHandle=function(a){var b,c,d;var e=$("<div />");var f=$("#uchat-buddylist-contacts");if(a.ok){if(a.players.length){b=$('<ul class="players" />');for(c=0;c<a.players.length;++c){d=a.players[c];b.append('<li><div class="clk" onclick="trellis.inviteToChat({id:'+d.id+'})"><span>'+d.name+"</span></div></li>")}e.append("<h2>"+$._("Players")+"</h2>").append(b)}if(a.guests.length){b=$('<ul class="guests" />');for(c=0;c<a.guests.length;++c){d=a.guests[c];b.append('<li><div class="clk" onclick="trellis.inviteToChat({id:'+d.id+'})"><span>'+d.name+"</span></div></li>")}e.append("<h2>"+$._("Guests")+"</h2>").append(b)}}f.removeClass("loading").append(e)};trellis.inviteToChat=function(a){trellis.sendMessage("core","chat_invite",a)};trellis.chatInviteHandle=function(a){var b=$("#dock #uchat_add_name");if(a.ok){if($("#uchat-"+a.id+" .nub-flyout").length){$("#uchat-"+a.id+" .nub-flyout").show()}else trellis.addUchat(a.id,a.name,a.messages,!0);$("#uchat-"+a.id+" .input_message").focus();b.val("");$("#uchat_add_error").html("");$("#uchat-buddylist .nub-flyout").toggle()}else $("#uchat_add_error").html($._("Player not found or offline"))};trellis.inviteToChatDirect=function(a){trellis.sendMessage("core","chat_invite",{id:a})};trellis.makeDock=function(){trellis.sendMessage("core","dock",{})};trellis.dockHandle=function(a){if($("#dock").size())return;trellis.initAudio();if(a.ok){var b='<div id="dock" class="dock-wrapper"><div class="dock clearfix">';b+='<div id="uchat-slider" class="nub-group clearfix">';b+="</div>";b+='<div class="nub-container clearfix">';b+='<div id="uchat" class="nub-group clearfix">';b+='<div id="uchat-buddylist" class="buddylist-popup"><div onclick="trellis.readContacts(); $(\'#uchat-buddylist .nub-flyout\').toggle(); $(\'#uchat-buddylist .line input\').focus()" class="clk nub-button icon-online">'+$._("Private Conversation")+"</div>";b+='<div class="nub-flyout hidden">';b+='<div class="titlebar clk" onclick="$(\'#uchat-buddylist .nub-flyout\').toggle()">'+$._("Private Conversation")+"</div>";b+='<div class="content"><div id="uchat-buddylist-items"><div id="uchat-buddylist-contacts"></div>';b+='<div class="line error" id="uchat_add_error"></div>';b+='</div><div class="line">'+$._("Invite to chat")+':</div><div class="line"><input type="text" id="uchat_add_name" maxlength="100" class="nameinput" /></div></div>';b+="</div>";b+="</div>";b+="</div></div>";$("body").append(b);$(".nub-button").disableTextSelect();for(var c in a.talks){trellis.addUchat(a.talks[c].id,a.talks[c].name,a.talks[c].messages,!1)}$("#dock #uchat_add_name").keypress(function(a){if(a.keyCode==13){var b=$("#dock #uchat_add_name");var c=b.val();if(c!=""){trellis.inviteToChat({name:c})}}})}};trellis.uchatHandle=function(a){if(a.player_id==player.id){var b=$("#uchat-"+a.personal_id+" .slider");b.append($('<div class="line me lborder"><span class="time">'+a.time+"</span> "+a.body+"</div>"))}if(a.personal_id==player.id){if($("#uchat-"+a.player_id).length){$("#uchat-"+a.player_id+" .nub-flyout").show();var b=$("#uchat-"+a.player_id+" .slider");b.append($('<div class="line hi lborder"><span class="time">'+a.time+"</span> "+a.body+"</div>"));trellis.playSound({sound:"talk"})}else{trellis.addUchat(a.player_id,a.player_name,[{time:a.time,player_id:a.player_id,personal_id:a.personal_id,body:a.body}],!0);var b=$("#uchat-"+a.player_id+" .slider");trellis.playSound({sound:"invite"})}}b.scrollTop(b.prop("scrollHeight")>0?b.prop("scrollHeight"):b.height())};trellis.handleEvent=function(a){switch(a["type"]){case"uchat":trellis.uchatHandle(a);return!0;case"alert":alert($._(a.text));return!0;case"sound":trellis.playSound(a);return!0;case"redirect_room":window.location.href="/"+lang+"/room/"+a.guid+"/";return!0;case"redirect_table":window.location.href="/"+lang+"/table/"+a.guid+"/";return!0;case"online_change":$("#count_online_players").html(a.online);return!0;case"games_change":$("#count_online_games").html(a.games+"+"+a.waiting);return!0;case"dock":trellis.dockHandle(a);return!0;case"dock_contacts":trellis.dockContactsHandle(a);return!0;case"chat_invite":trellis.chatInviteHandle(a);return!0;case"latest_chat":trellis.latestChat(a);break}return!1};trellis.confirmDialog=function(a,b,c){var d={};d[$._("No")]=function(){tdm.hide(["confirm-dialog"])};d[$._("Yes")]=function(){tdm.hide("confirm-dialog");c()};if(tdm.l["confirm-dialog"]){tdm.l["confirm-dialog"].set_title(a);tdm.l["confirm-dialog"].set_content('<div style="padding:10px;">'+b+"</div>");tdm.l["confirm-dialog"].set_buttons(d);tdm.show(tdm.l["confirm-dialog"])}else{var e=new TDialog({id:"confirm-dialog",title:a,closable:!1,width:250,content:'<div style="padding:10px;">'+b+"</div>",buttons:d});tdm.show(e)}};trellis.initAudio=function(){var a=document.createElement("audio"),b=!!a.canPlayType;if(b){var c="no"!=a.canPlayType("audio/ogg")&&""!=a.canPlayType("audio/ogg");var d="no"!=a.canPlayType("audio/mpeg")&&""!=a.canPlayType("audio/mpeg");if(c){$("body").append('<audio id="snd_invite" src="'+STATIC_URL+'sound/core/ogg/invite.ogg" type="audio/ogg"></audio>');$("body").append('<audio id="snd_talk" src="'+STATIC_URL+'sound/core/ogg/talk.ogg" type="audio/ogg"></audio>');return}if(d){$("body").append('<audio id="snd_start_game" src="'+STATIC_URL+'sound/core/ogg/invite.mp3" type="audio/mpeg"></audio>');$("body").append('<audio id="snd_talk" src="'+STATIC_URL+'sound/core/mp3/talk.mp3" type="audio/mpeg"></audio>');return}}};trellis.iconConnectSetTitle=function(){$("#iconnect").attr("title",WebSocket.__flash?$._("Connected (WebSocket Flash Emulation)"):$._("Connected (WebSocket Native)"))};trellis.addTryingToConnect=function(a){a.append('<div id="trying_connect">'+$._("Trying to connect...")+' (<a href="/'+lang+'/">'+$._("Cancel")+"</a>)</div>")};trellis.latestChat=function(a){for(i in a.chat)workspace.chat.o_txt.append(workspace.chat.renderChat(a.chat[i]));workspace.chat.scrollChatDown()};trellis.titleBlink=function(){if(document.title==workspace.save_title)document.title=$._("Your turn");else document.title=workspace.save_title;workspace.title_timer=window.setTimeout("trellis.titleBlink()",500);$("#i_think").toggle()};trellis.startTitleBlink=function(){if(workspace.title_timer==null){workspace.title_timer=window.setTimeout("trellis.titleBlink()",0)}};trellis.stopTitleBlink=function(){document.title=workspace.save_title;window.clearTimeout(workspace.title_timer);workspace.title_timer=null;$("#i_think").hide()};trellis.initDropDown=function(){$(".dropdown").hoverIntent(function(){$("ul",$(this)).show()},function(){$("ul",$(this)).hide()});$(".dropdown").click(function(){$("ul",$(this)).toggle()})};trellis.postInit=function(){trellis.iconConnectSetTitle();trellis.initServerTime();trellis.initDropDown()};trellis.makePlayerMenu=function(){var a='<div class="sect vdl r"></div><div class="sect r"><div class="dropdown"><ul>';a+='<li><a href="/'+lang+'/profile/">'+$._("Profile")+"</a></li>";if(balance)a+='<li><a href="/'+lang+'/profile/bank/">'+$._("Balance")+"</a>&nbsp;&Psi;"+balance+"</li>";a+='<li><a href="/'+lang+'/shop/">'+$._("Shop")+"</a></li>";a+='<li><a href="/'+lang+'/auth/logout/">'+$._("Logout")+"</a></li>";a+='</ul><div class="current">'+player.name+"</div></div></div>";return a};trellis.makeLangMenu=function(){var a='<div class="sect"><div class="dropdown"><ul>';for(i=0;i<langswitcher.langs.length;i++)a+='<li class="icon_flags '+langswitcher.langs[i].locale+'"><a href="'+langswitcher.langs[i].url+'">'+langswitcher.langs[i].name+"</a></li>";a+='</ul><div class="current"><div class="icon_flags '+langswitcher.current.locale+'""><nobr>'+langswitcher.current.name+"</nobr></div></div></div></div>";return a};trellis.qe=function(a){return a.replace('"','"')};var forum={};forum.postDialogHtml=function(a,b){var c='<form method="post" id="forum_form" onsubmit="return false;">';c+='<label for="id_title">'+$._("Title")+":</label>";c+='<input id="id_title" name="title" style="width:670px" value="'+a+'" />';c+='<label for="id_body">'+$._("Message")+":</label>";c+='<textarea id="id_body" style="width:670px; height:400px;" name="body">'+b+"</textarea>";c+="</form>";return c};forum.commentDialogHtml=function(a){var b='<form method="post" id="forum_form" onsubmit="return false;">';b+='<label for="id_body">'+$._("Message")+":</label>";b+='<textarea id="id_body" style="width:670px; height:400px;" name="body">'+a+"</textarea>";b+="</form>";return b};forum.loadComments=function(a,b){$.postJSON("/"+lang+"/forum/"+a+"/"+b+"/comments/",{},function(a){$("#comments").html("");for(i=0;i<a.comments.length;i++){append_comment(a.comments[i])}$(".comment a.reply, #reply_post_id a").live("click",forum.replyClick)})};forum.removeComment=function(a,b,c){$.getJSON("/"+lang+"/forum/"+a+"/"+b+"/"+c+"/delete/",{},function(d){if(d.ok){trellis.showConfirmDialog($._("Question"),$._("Are you sure to remove this comment?"),function(){$.postJSON("/"+lang+"/forum/"+a+"/"+b+"/"+c+"/delete/",{},function(c){if(c.ok){tdm.hide(["confirm-dialog"]);forum.loadComments(a,b)}else alert($._(c.err))})})}else alert($._(d.err))});return!1};forum.removePost=function(a,b){$.getJSON("/"+lang+"/forum/"+a+"/"+b+"/delete/",{},function(c){if(c.ok){trellis.showConfirmDialog($._("Question"),$._("Are you sure to remove this post?"),function(){$.postJSON("/"+lang+"/forum/"+a+"/"+b+"/delete/",{},function(b){if(b.ok)location.href="/"+lang+"/forum/"+a+"/";else alert($._(b.err))})})}else alert($._(c.err))})};forum.changePost=function(a,b){$.getJSON("/"+lang+"/forum/"+a+"/"+b+"/edit/",{},function(c){if(c.ok){var d={};d[$._("Cancel")]=function(){tdm.hide(["forum-edit-dialog"])};d[$._("Save")]=function(){$.postJSON("/"+lang+"/forum/"+a+"/"+b+"/edit/",$("#forum_form").formToDict(),function(a){if(a.ok)window.location.reload();else alert($._(a.err))})};var e='<div style="padding:10px;">'+forum.postDialogHtml(c.title,c.body)+"</div>";var f=$._("Edit");if(tdm.l["forum-edit-dialog"]){tdm.l["forum-edit-dialog"].set_title(f);tdm.l["forum-edit-dialog"].set_content(e);tdm.l["forum-edit-dialog"].set_buttons(d);tdm.show(tdm.l["forum-edit-dialog"])}else{var g=new TDialog({id:"forum-edit-dialog",title:f,closable:!1,width:700,content:e,buttons:d});tdm.show(g)}}else alert($._(c.err))})};forum.changeComment=function(a,b,c){$.getJSON("/"+lang+"/forum/"+a+"/"+b+"/"+c+"/edit/",{},function(d){if(d.ok){var e={};e[$._("Cancel")]=function(){tdm.hide(["forum-edit-dialog"])};e[$._("Save")]=function(){$.postJSON("/"+lang+"/forum/"+a+"/"+b+"/"+c+"/edit/",$("#forum_form").formToDict(),function(a){if(a.ok){tdm.hide(["forum-edit-dialog"]);$("#c_"+c).html(a.html)}else alert($._(a.err))})};var f='<div style="padding:10px;">'+forum.commentDialogHtml(d.body)+"</div>";var g=$._("Edit");if(tdm.l["forum-edit-dialog"]){tdm.l["forum-edit-dialog"].set_title(g);tdm.l["forum-edit-dialog"].set_content(f);tdm.l["forum-edit-dialog"].set_buttons(e);tdm.show(tdm.l["forum-edit-dialog"])}else{var h=new TDialog({id:"forum-edit-dialog",title:g,closable:!1,width:700,content:f,buttons:e});tdm.show(h)}}else alert(d.err)})};forum.submitComment=function(a){var b=$("#comment_form");var c=b.find("[name=forum_slug]").val();var d=b.find("[name=post_id]").val();var e=b.find("[name=comment_id]").val();var f={body:b.find("[name=body]").val(),comment_id:e};if(a=="preview")f.preview=1;$.postJSON("/"+lang+"/forum/"+c+"/"+d+"/new/",f,function(a){if(a.status=="err"){$("#comment_err").html($._(a.err));$("#comment_err").show()}else if(a.status=="preview"){$("#comment_err").val("");$("#comment_err").hide();$("#comment_preview").html("<h3>"+$._("Preview")+"</h3>"+a.html);$("#comment_preview").show()}else if(a.status=="added"){$("#comment_err").val("");$("#comment_err").hide();$("#comment_body").val("");$("#comment_preview").val("");$("#comment_preview").hide();$("#markdown_help").hide();$("#current_comments span").html(a.current_comments);append_comment(a.data,e?$("#cc_"+e):null,!0);b.find("[name=body]").val("")}});return!1};forum.replyClick=function(){var a=$("#comment_form");var b=$(this).attr("rel");if(b){a.insertAfter($(this));a.css({"padding-left":"20px"})}else{a.insertAfter($("#reply_post_id"));a.css({"padding-left":0})}a.find("[name=comment_id]").val(b);a.toggle();return!1};$(function(){$(".comment a.reply, #reply_post_id a").live("click",forum.replyClick);$("#comments").on("click",".mark-comment",function(){var a=/(\d+)$/.exec($(this).attr("href")),b,c,d;if(!a)return;b=a[1];c=$(this).hasClass("plus")?1:-1;d=$(this).parents(".mark").find("span");$.postJSON("/ajax/vote/comment/",{comment_id:b,value:c},function(a){d.removeClass("good").removeClass("bad");if(parseInt(a.mark)>0)d.addClass("good");else if(parseInt(a.mark)<0)d.addClass("bad");d.text(a.mark)});return!1});$(document).on("click",".mark-post",function(){var a=/(\d+)$/.exec($(this).attr("href")),b,c,d;if(!a)return;b=a[1];c=$(this).hasClass("plus")?1:-1;d=$(this).parents(".mark").find("span");$.postJSON("/ajax/vote/post/",{post_id:b,value:c},function(a){d.removeClass("good").removeClass("bad");if(parseInt(a.mark)>0)d.addClass("good");else if(parseInt(a.mark)<0)d.addClass("bad");d.text(a.mark)});return!1})});var tournament={};tournament.TS_NEW=0;tournament.TS_OPEN=1;tournament.TS_PROCESS=2;tournament.TS_COMPLETE=3;tournament.TS_NAMES=[[tournament.TS_NEW,"Новый"],[tournament.TS_OPEN,"Открытый"],[tournament.TS_PROCESS,"В процессе"],[tournament.TS_COMPLETE,"Закончен"]];tournament.dialogHtml=function(a,b,c,d,e,f,g){console.log(g);var h='<form method="post" id="tournament_form"><input type="hidden" name="game_type" value="'+b+'" />';h+='<table class="grid">';h+='<tr><td><label for="id_name">Название:</label><td><input id="id_name" name="name" style="width:97%;" value="'+c+'" /></td></tr>';h+=dialog_radio_line({status:d},"Статус","status",tournament.TS_NAMES);if(a)h+=dialog_radio_line({game_type:b},"Игра","game_type",a);var i="",j="",k="";switch(g){case 1:i=" selected";break;case 2:j=" selected";break;case 3:k=" selected";break;default:break}h+='<tr><td><label for="id_start_at">Начало:</label><td><input id="id_start_at" name="start_at" value="'+e+'" /> <span class="sg">YYYY-MM-DD HH:MM</span>';h+='<label for="condition">Условие:</label><select name="condition">';h+='<option value="1"'+i+">Более 10 игр, рейтинг > 0</option>";h+='<option value="2"'+j+">Премиум аккаунты</option>";h+='<option value="3"'+k+">Платный турнир</option>";h+="</select>";h+="</td></tr>";h+='<tr><td colspan="2"><textarea style="width:98%; height:350px;" name="body">'+f+"</textarea></td></tr>";h+="</table>";h+="</form>";return h};tournament.create=function(a){var b="pref";var c="Создать турнир";var d=tournament.dialogHtml(a,"pref","",tournament.TS_NEW,"","");var e={"Отменить":function(){tdm.hide("tournament-dialog")},"Создать":function(){$.postJSON("/"+lang+"/tournament/create/",$("#tournament_form").formToDict(),function(a){if(a.ok)window.location.reload();else alert(a.message)})}};if(tdm.l["tournament-dialog"]){tdm.l["tournament-dialog"].set_title(c);tdm.l["tournament-dialog"].set_content('<div style="padding:10px;">'+d+"</div>");tdm.l["tournament-dialog"].set_buttons(e);tdm.show(tdm.l["tournament-dialog"])}else{var f=new TDialog({id:"tournament-dialog",title:c,closable:!1,width:700,content:'<div style="padding:10px;">'+d+"</div>",buttons:e});tdm.show(f)}return!1};tournament.edit=function(a,b){$.postJSON("/"+lang+"/tournament/"+a+"/"+b+"/get/",{},function(c){if(c.ok){var d="Редактировать турнир";var e=tournament.dialogHtml(null,a,c.tournament.name,c.tournament.status,c.tournament.start_at,c.tournament.markdown,c.tournament.condition);var f={"Отменить":function(){tdm.hide("tournament-dialog")},"Сохранить":function(){$.postJSON("/"+lang+"/tournament/"+a+"/"+b+"/",$("#tournament_form").formToDict(),function(a){if(a.ok)window.location.reload();else alert(a.message)})}};if(tdm.l["tournament-dialog"]){tdm.l["tournament-dialog"].set_title(d);tdm.l["tournament-dialog"].set_content('<div style="padding:10px;">'+e+"</div>");tdm.l["tournament-dialog"].set_buttons(f);tdm.show(tdm.l["tournament-dialog"])}else{var g=new TDialog({id:"tournament-dialog",title:d,closable:!1,width:700,content:'<div style="padding:10px;">'+e+"</div>",buttons:f});tdm.show(g)}}});return!1};tournament.createRound=function(a,b){var c=prompt("Название тура");if(c){$.postJSON("/"+lang+"/tournament/"+a+"/"+b+"/create/",{name:c},function(a){if(a.ok){window.location.reload()}})}return!1};tournament.renameRound=function(a,b,c,d){var d=prompt("Название тура",d);if(d){$.postJSON("/"+lang+"/tournament/"+a+"/"+b+"/"+c+"/rename/",{name:d},function(a){if(a.ok){window.location.reload()}})}return!1};tournament.deleteRound=function(a,b,c){if(confirm("Действительно удалить этот тур?")){$.postJSON("/"+lang+"/tournament/"+a+"/"+b+"/"+c+"/delete/",{},function(a){if(a.ok){window.location.reload()}})}return!1};tournament.addGame=function(a,b,c){var d=prompt("ID Игры");if(d){$.postJSON("/"+lang+"/tournament/"+a+"/"+b+"/"+c+"/add/",{id:d},function(a){if(a.ok){window.location.reload()}else alert("Ошибка добавления игры")})}return!1};tournament.deleteGame=function(a,b,c,d){if(confirm("Действительно удалить эту игру?")){$.postJSON("/"+lang+"/tournament/"+a+"/"+b+"/"+c+"/"+d+"/delete/",{},function(a){if(a.ok){window.location.reload()}else alert("Ошибка удаления игры")})}return!1};
