/* Copyright (c) 2009 Spil Games; Includes also: jQuery by John Resig (jquery.com) and several jQuery plugins. */;;(function($){$.fn.nFormElements=function(options){options=$.extend({type:'radio',name:'rad',normal:'customNormal',checked:'customChecked'},options);return this.each(function(){var obj=$(this);$("input[name="+options.name+"][type=radio]").hide().click(function(){$("div#nform_"+options.name,obj).attr('class',options.normal);$(this).next().attr('class',options.checked);}).each(function(){var klass=$(this).attr('checked')?options.checked:options.normal;$(this).after('<div id="nform_'+options.name+'" class="'+klass+'"></div>');});$("div#nform_"+options.name,obj).click(function(){$(this).prev().click();});});};})(jQuery);;SPI.lastPlayedGames=(function(){var config={settings:{game_url:'/gamedata/%s.json',timeout:7000,li_id:'lastplayedgame'}};SPI.getAndUpdateConfig('lastPlayedGames',config);var cookieApi=new SPI.gamesCookieProxy({cookieName:config.settings.cookieName,maxGames:config.settings.maxGames});var that={};var clearGames=function(){cookieApi.resetGames();that.renderAtMyProfilePage();};var loadGame=function(gameId,ndx,template){SPI.gameCache.getGame(gameId,function(obj){if(obj!=null){var a=$(SPI.render(template,obj)).ntooltip({extraClass:'pretty',showBody:"| ",fancyImages:SPI._settings.tooltipFancyImagesArray}).spiIeh();$("#"+config.settings.lastplayedgame+"_"+ndx).empty().append(a);};});};that.hasGames=function(){return cookieApi.loadGames().length>0;};that.renderAtHomePage=function(){var games=cookieApi.loadGames();if(games.length==0){$('#last_box .moreIn').hide();return;}
$('li.no-last-text').remove();for(var i=0;i<config.settings.homePageCount&&i<games.length;i++){$('#last_box ol').append('<li id="'+config.settings.lastplayedgame+'_'+i+'">'+config.langStrings.loading+'</li>');loadGame(games[i],i,config.templates.home);}};that.renderMyLastPlayedGames=function(){var games=cookieApi.loadGames();if(games.length==0){$('#mylast_box_profile_page').empty();for(i=1;i<=10;i++){$('#mylast_box_profile_page').append('<li class="no-recently-empty"></li>');};return;}
$('li.no-last-text').remove();for(var i=0;i<config.settings.favesPageCount&&i<games.length;i++){$('ol#mylast_box').append('<li id="'+config.settings.lastplayedgame+'_'+i+'">'+config.langStrings.loading+'</li>');loadGame(games[i],i,config.templates.faves);}
$('a.clear-last-text').click(function(){clearGames();$('ol#mylast_box').empty().html('<li class="no-last-text">'+config.langStrings.noLastGames+'</li>');$('a.clear-last-text').remove();});};that.renderAtMyProfilePage=function(){var games=cookieApi.loadGames();if(games.length==0){$('#mylast_box_profile_page').empty();for(i=1;i<=5;i++){$('#mylast_box_profile_page').append('<li class="no-recently-empty"></li>');};$('a.myprofileRemoveRecently').add('div.myprofileRemoveRecentlyHolder').remove();return;}
$('li.no-last-text').remove();for(var i=0;i<5&&i<games.length;i++){$('ol#mylast_box_profile_page').append('<li id="'+config.settings.lastplayedgame+'_'+i+'">'+config.langStrings.loading+'</li>');loadGame(games[i],i,config.templates.myprofile);}
$('a.myprofileRemoveRecently').click(function(){clearGames();$('a.myprofileRemoveRecently').add('div.myprofileRemoveRecentlyHolder').remove();});};that.addGameAfterTimeframe=function(gameId,miliseconds){return setTimeout(function(){cookieApi.addGame(gameId);},miliseconds);};return that;})();;SPI.myGames=(function(){var config={settings:{game_url:'/gamedata/%s.json',timeout:7000,li_id:'mygame',splitter:'.',maxGames:100}};var localData={games:null,targetUser:null,currentRender:null,currentPage:null};var that={};var loadGames=function(data){try{if(data==null||data==''){data=[];}else{data=data.split(config.settings.splitter);for(var i=0;i<data.length;++i){data[i]=parseInt(data[i]);}}}catch(e){data=[];}
return data;};SPI.getAndUpdateConfig('myGames',config);var cookieApi=new SPI.gamesCookieProxy({cookieName:config.settings.cookieName});that.init=function(callback,params,targetuser){if(localData.targetuser||localData.games){callback.call(this,params);return;};localData.targetuser=targetuser;if(localData.targetuser==null){if($.profilar.loggedIn()){$.profilar.loadPref(function(){localData.games=loadGames($.profilar.getPref('mygames'));callback.call(this,params);},['mygames']);}else{callback.call(this,params);}}else{$.profilar.loadExternalPrefs([localData.targetuser],function(data,errors){targetUsertmpgames=data[0].mygames||'';localData.games=loadGames(targetUsertmpgames);callback.call(this,params);},['mygames']);};return;};var loadGame=function(gameId,ndx,currentpage){SPI.gameCache.getGame(gameId,function(obj){if(obj==null){if(currentpage!=-1){var html=SPI.render(config.templates.faves_error,{gameId:gameId});}else{var html=config.langStrings.notAvailable;}
$("#"+config.settings.li_id+"_"+ndx).html(html);}else{obj.new_one=obj['new'];obj.gameId=gameId;var a=$(SPI.render((currentpage==-1?config.templates.home:config.templates.faves),obj)).ntooltip({extraClass:'pretty',showBody:"| ",fancyImages:SPI._settings.tooltipFancyImagesArray}).spiIeh();$("#"+config.settings.li_id+"_"+ndx).empty().append(a);};});};var loadGameMyProfile=function(gameId,ndx,currentpage){SPI.gameCache.getGame(gameId,function(obj){if(obj==null){var html=$(SPI.render((config.templates.myprofile_error),{game_Id:gameId,error:config.langStrings.notAvailable}));$("#"+config.settings.li_id+"_"+ndx).html(html);}else{obj.new_one=obj['new'];obj.gameId=gameId;var a=$(SPI.render((config.templates.myprofile),obj)).ntooltip({extraClass:'pretty',showBody:"| ",fancyImages:SPI._settings.tooltipFancyImagesArray}).spiIeh();$("#"+config.settings.li_id+"_"+ndx).empty().append(a);};});};var loadGameUserProfile=function(gameId,ndx,currentpage){SPI.gameCache.getGame(gameId,function(obj){if(obj==null){var html=$(SPI.render((config.templates.userprofile_error),{game_Id:gameId,error:config.langStrings.notAvailable}));$("#"+config.settings.li_id+"_"+ndx).html(html);}else{obj.new_one=obj['new'];obj.gameId=gameId;var a=$(SPI.render((config.templates.userprofile),obj)).ntooltip({extraClass:'pretty',showBody:"| ",fancyImages:SPI._settings.tooltipFancyImagesArray}).spiIeh();$("#"+config.settings.li_id+"_"+ndx).empty().append(a);};});};that.hasGames=function(){return cookieApi.loadGames().length>0;};that.renderMyGames=function(page){if(games.length==0){return;}
$("ol#favorite-list").empty();var sitesQuantity=Math.ceil(games.length/config.settings.itemsPerPage);for(var i=(page*config.settings.itemsPerPage)-config.settings.itemsPerPage;i<(page*config.settings.itemsPerPage)&&i<games.length;i++){$('ol#favorite-list').append('<li id="'+config.settings.li_id+"_"+i+'">'+config.langStrings.loading+'</li>');loadGame(games[i],i,page);}
var paging=SPI.paginatorString(games.length,page,config.settings.itemsPerPage,config.settings.maxPages,that.renderMyGames,config.langStrings);$("#paging_center").empty();if(paging!=''){$("#paging_center").append(paging);}
return false;};that.convertGames=function(){var savedgames=$.cookie(config.settings.cookieName)||'';if(savedgames!=''){$.profilar.setPref('mygames',savedgames);$.profilar.submitPref(function(errors){if(errors){}else{$.cookie(config.settings.cookieName,null);}});};};that.renderAtHomePage=function(){if($.profilar.loggedIn()){localData.currentRender='renderAtHomePage';localData.currentPage=0;var games=localData.games;if(games.length==0){$('#favorite_box .moreIn').hide();return;};if(games.length<7){$('#favorite_box .moreIn').css('display','none');};$('.no-faves-text').remove();for(var i=0;i<config.settings.itemsAtHomePage&&i<games.length;i++){$('#favorite_box ol').append('<li id="'+config.settings.li_id+"_"+i+'">'+config.langStrings.loading+'</li>');loadGame(games[i],i,-1);};}else{$('.no-faves-text').text(config.langStrings.not_logged_in).show();};};that.renderAtMyprofilePage=function(){localData.currentRender='renderAtMyprofilePage';localData.currentPage=0;var games=localData.games;if(games.length==0){$('#favorite-list-myprofile').empty();for(i=1;i<=5;i++){$('#favorite-list-myprofile').append('<li class="no-myfaves-empty"></li>');};$('.myfavesmorelink').hide();return;};$('#favorite-list-myprofile').empty();$('.no-faves-text').remove();for(var i=0;i<5&&i<games.length;i++){$('#favorite-list-myprofile').append('<li id="'+config.settings.li_id+"_"+i+'">'+config.langStrings.loading+'</li>');loadGameMyProfile(games[i],i,-1);};if(games.length>5){$('.myfavesmorelink').show();}else{$('.myfavesmorelink').hide();};};that.renderAtUserprofilePage=function(){localData.currentRender='renderAtUserprofilePage';localData.currentPage=0;$('.myfavesmorelink').hide();var games=localData.games;if(games.length==0){$('#usersfaves').empty();for(i=1;i<=5;i++){$('#usersfaves').append('<li class="no-myfaves-empty"></li>');};$('.myfavesmorelink').hide();return;};$('#usersfaves').empty();$('.no-faves-text').remove();for(var i=0;i<5&&i<games.length;i++){$('#usersfaves').append('<li id="'+config.settings.li_id+"_"+i+'">'+config.langStrings.loading+'</li>');loadGameUserProfile(games[i],i,-1);};};that.renderAtMyfavesPage=function(page){localData.currentRender='renderAtMyfavesPage';localData.currentPage=page||1;var games=localData.games;if(games.length==0){$('#favorite-list-myprofile').empty();for(i=1;i<=5;i++){$('#favorite-list-myprofile').append('<li class="no-myfaves-empty"></li>');};$('.myfavesmorelink').hide();return;};pageGames=games.slice((parseInt(page)-1)*15,(parseInt(page)-1)*15+15);while(pageGames.length==0||page<=0){page--;pageGames=games.slice((parseInt(page)-1)*15,(parseInt(page)-1)*15+15);};localData.currentPage=page;$('#favorite-list-myprofile').empty();$('.no-faves-text').remove();for(var i=0;i<pageGames.length;i++){$('#favorite-list-myprofile').append('<li id="'+config.settings.li_id+"_"+i+'">'+config.langStrings.loading+'</li>');loadGameMyProfile(pageGames[i],i,-1);};var paging=SPI.paginatorString(games.length,page,15,config.settings.maxPages,that.renderAtMyfavesPage,config.langStrings);$("#paging_center").empty();if(paging!=''){$("#paging_center").append(paging);};};that.addToMyGames=function(title,gameid){var mygames=localData.games;if($.inArray(gameid,mygames)!=-1){alert(SPI.sprintf(config.langStrings.alreadyInMyGames,title));return;}else{mygames.unshift(gameid);if(mygames.length>config.settings.maxGames){mygames=mygames.slice(0,config.settings.maxGames);}
localData.games=mygames;mygames=mygames.join(config.settings.splitter);$.profilar.setPref('mygames',mygames);$.profilar.submitPref(function(errors){if(errors){alert(config.langStrings.error_html);return;}});alert(SPI.sprintf(config.langStrings.addedToMyGames,title));};};that.removeFromMyGames=function(gameid,gamename){if(localData.targetuser==null){var mygames=localData.games;if($.inArray(gameid,mygames)==-1){return;}else{mygames.splice($.inArray(gameid,mygames),1);localData.games=mygames;mygames=mygames.join(config.settings.splitter);$.profilar.setPref('mygames',mygames);$.profilar.submitPref(function(errors){if(errors){alert(config.langStrings.error_html);return;}});if(gamename){alert(SPI.sprintf(config.langStrings.removedFromMyGamesWithName,gamename));}else{alert(config.langStrings.removedFromMyGames);}
that[localData.currentRender].call(this,localData.currentPage);};};};return that;})();;SPI.poll=(function($){var config={settings:{url:'/phpQJr/poll.php',queryString:'',timeout:3000,optionCss_normal:'customPollNormal',optionCss_checked:'customPollChecked',formCss_class:'poll-form',errorHandler:null}};var that={};var target,success;var error=function(){target.hide();if(config.settings.errorHandler){config.settings.errorHandler.call(that,config);}};var showResults=function(data){var tds=data.parent().find('table:first td');var len=tds.length;var i=1;$('.title span',target).empty().text($(tds[0]).text());var html='<ul id="'+config.settings.ulId+'">';while(i<len){html+='<li><div class="text"><span>'+$(tds[i]).text()+'</span> <span class="votes">'+$(tds[i+1]).text()+'</span></div>';html+='<div class="bar_'+Math.ceil(i/5)+'" style="width: '+$(tds[i+3]).attr('width')+';"></div></li>';i+=5;}
html+='</ul>';html=html.replace('width: 0%','width: 0.5%');$('form, ul',target).remove();$('.title',target).after(html);};var showForm=function(data){var answers=[];var hiddens=[];$('table table table:eq(1) table',data).each(function(){var tmp=$(this).find('td');answers.push([$(tmp[0]).html(),$(tmp[1]).text()]);});data.find('input[type=hidden]').each(function(){hiddens.push('<input type="hidden" name="'+this.name+'" value="'+this.value+'">');});var html='<form class="'+config.settings.formCss_class+'" id="'+config.settings.formId+'" action="'+config.settings.url+'" method="post">';for(var a in answers){html+='<label>'+answers[a][0]+' '+answers[a][1]+'</label>';}
for(var h in hiddens){html+=hiddens[h];}
html+='<a id="poll-vote" href="#">'+config.langStrings.voteText+'</a></form>';html=$(html);var name=$("input:radio:first",html).attr('name');$('form, ul',target).remove();$('.title span',target).empty().text($('table table table:first td',data).text());$('.title',target).after(html);$("#"+config.settings.formId+"").nFormElements({name:name,normal:config.settings.optionCss_normal,checked:config.settings.optionCss_checked}).find('a#poll-vote').click(function(){if($('input:radio:checked',target).length){$.ajax({cache:false,url:config.settings.url,data:$("#"+config.settings.formId+"").serialize()+"&"+config.settings.voteName+"="+encodeURIComponent(config.langStrings.voteText)+"",dataType:'text',global:false,timeout:config.settings.timeout,type:'POST',error:error,success:success});}else{alert(config.langStrings.alert_selectOption);}
return false;});};success=function(data){data=data.replace('<script language="JavaScript" src="inc/poll.js"></script>','');data=data.split('images/invdot.gif').join('');data=$(data);if(data.parent().find('table table').length==0){error();}else if(data.parent().find('b').length!=0){showResults(data);}else{showForm(data);}};that.init=function(settings){SPI.getAndUpdateConfig('poll',config,settings);target=$(config.settings.target);$.ajax({cache:false,url:config.settings.url,data:config.settings.queryString,dataType:'text',global:false,timeout:config.settings.timeout,type:'GET',error:error,success:success});};return that;})(jQuery);;SPI.hotbox=(function(){var that={};var settings=SPI._settings.hotbox;that.selectOne=function(data){var hbc=jQuery.cookie(settings.cookie);try{if(hbc==null||hbc.indexOf('|')==-1){hbc=[];}else{hbc=hbc.split('|');for(var i=0;i<hbc.length;++i){hbc[i]=hbc[i].split('%');}}}catch(e){hbc=[];}
var toShow=-1;for(var i=0;i<data.length;++i){if(data[i].cap>0){var isInCookie=false;for(var j=0;i<hbc.length;++j){try{if(hbc[j][0]==data[i].id&&hbc[j][1]<data[i].cap){isInCookie=true;toShow=i;break;}else if(hbc[j][0]==data[i].id&&hbc[j][1]>=data[i].cap){isInCookie=true;break;}}catch(ex){break;}}
if(!isInCookie){toShow=i;break;}else if(isInCookie&&toShow!=-1){break;}}else if(data[i].cap==-1){toShow=i;break;}}
if(toShow==-1){toShow=0;hbc=new Array();}
var hbcp='';try{for(var i=0;i<data.length;++i){if(data[i].cap>0){var isInCookie=false;for(var j=0;i<hbc.length;++j){if(hbc[j][0]==data[i].id){if(toShow==i){hbc[j][1]=parseInt(hbc[j][1])+1;}
hbcp+='|'+hbc[j][0]+'%'+hbc[j][1];isInCookie=true;break;}}
if(!isInCookie){if(toShow==i){hbcp+='|'+data[i].id+'%1';}else{hbcp+='|'+data[i].id+'%0';}}}}}catch(ex){hbcp='';}
jQuery.cookie(settings.cookie,hbcp.substr(1),{expires:settings.cookieTTL});data[toShow].hispos=toShow+1;return data[toShow];};that.renderFromData=function(data){var nameToTracker=data.hispos+' - '+SPI.addslashes(data.alt.replace(/\s/ig,'_'));try{pageTracker._trackEvent('Hotbox','View',nameToTracker);}catch(e){}
var renderer=SPI._templates.hotbox;var tplData={data:data,settings:settings,nameToTracker:nameToTracker};return(typeof renderer=="function")?renderer(tplData):SPI.render(renderer,tplData);};that.render=function(data){try{document.write(that.renderFromData(that.selectOne(data)));}catch(e){};};return that;})();;$.profilar.addInitHandler(function(logged){if(!logged){$('#last_box .moreIn, #favorite_box .moreIn').hide();}});$(function(){$('#random-pick-button').click(function(){try{pageTracker._trackEvent('Lucky Pick','Click');}catch(e){}
var elems=$('#random-pick li a');var location=elems.eq(parseInt(Math.random()*elems.length));if(location.attr('onclick')){location.click();}else if(location.attr('target')&&location.attr('target')!='_self'){window.open(location.attr('href'),location.attr('target'));}else{window.location=location.attr('href');}});SPI.lastPlayedGames.renderAtHomePage();$('div#favorites ul').tabify();$.profilar.addInitHandler(function(logged){if(logged&&SPI.myGames.hasGames()){SPI.myGames.convertGames();}
SPI.myGames.init(function(){SPI.myGames.renderAtHomePage();});});if(SPI.lastPlayedGames.hasGames()){$('div#favorites ul li:eq(0) a').click();}
if(SPI.lastPlayedGames.hasGames()){$('div#favorites ul li:eq(0) a').click();}else if(SPI.myGames.hasGames()){$('div#favorites ul li:eq(1) a').click();}});
