/* Copyright (c) 2007-2010 SPIL GAMES.  */
;;(function(){jQuery.nSearch=function(settings){var langstrings=$.extend({prev:'&lt; Prev',next:'Next &gt;',game_rating:'Game rating: ',shown_total:'Shown ',no_results:'No results',image_next_off:'<img src="/img/raquo_0.gif" border="0" />',image_next_on:'<img src="/img/raquo_1.gif" border="0" />',image_prev_off:'<img src="/img/laquo_0.gif" border="0" />',image_prev_on:'<img src="/img/laquo_1.gif" border="0" />'},settings.strings);var settings=$.extend({author:"nez",version:"1.2",startpage:1,pagesize:15,outputtype:'xml',method:'GET',pagination:'top',timeout:2000,itemtype:1,debug:false,paginationItems:10},settings);settings.strings=langstrings;var defaultmatches={total_found:0,returned_matches:0,matches:[],first:1,last:1};var matches=defaultmatches;var pagination={actualPage:settings.startpage,pagesCount:1,total:0,limit:parseInt(settings.pagesize)>0?parseInt(settings.pagesize):15,showPagination:false,paginationString:'',navigatorItems:parseInt(settings.paginationItems)};var games=[];if(!settings.siteid||!settings.phrase||!settings.target||!settings.languagecode||!settings.channel){if(settings.debug===true){$.log("Error: Parameters missing!\n");}
return false;}
if(!settings.drawgamecallback){if(settings.debug===true){$.log("Error: drawGame callback not defined!\n");}
return false;}
var phrase=encodeURIComponent(settings.phrase);var variable=settings.datavariable;var handleResponse=function(data,mesg){resetMatches();var target=settings.target;var errorcode=$("errorcode",data).text();if(errorcode!=''&&errorcode!=0){var errormesg=$("message",data).text();if(settings.debug===true){$.log('Error: Requet error [code '+errorcode+'] '+errormesg);}}
matches.returned_matches=$("returned",data).text();matches.total_found=$("total",data).text();matches.first=parseInt($("match:first matchnumber",data).text())+1;matches.last=parseInt($("match:last matchnumber",data).text())+1;if(matches.returned_matches>0&&matches.total_found>0){$("match",data).each(function(){var match={id:$("id",this),matchnumber:$("matchnumber",this),weight:$("weight",this)};matches.matches.push(match);});if(matches.total_found>settings.pagesize){pagination.paginationString=preparePagination();pagination.showPagination=true;}
if(pagination.showPagination&&(settings.pagination=='top'||settings.pagination=='both')){insertPagination('top');}
prepareResults();if(pagination.showPagination&&(settings.pagination=='bottom'||settings.pagination=='both')){insertPagination('bottom');}
if(pagination.showPagination){attachPaginationScripts();}}else{$(settings.target).append('<div class="nsearch_noresults">'+settings.strings.no_results+'</div>');}};var handleError=function(data,mesg,error){var matchno=this.matchno;$(settings.target+" ul li[id=item_"+matchno+"]").remove();if(settings.debug===true){$.log("Error: request failed "+mesg+" / "+error,data);}};var resetMatches=function(){matches.matches=[];matches=defaultmatches;};var clearTarget=function(){$(settings.target).empty();resetMatches();};var prepareResults=function(){if(matches.matches.length>0){$(settings.target).append('<ul class="nsearch_results"></ul>');$(matches.matches).each(function(){var match_id=$(this.id).text();var matchno=$(this.matchnumber).text();getItem(match_id,matchno);});}};var findGameById=function(game_id){for(var i=0;i<games.length;i++){if((games[i].id==game_id)&&(game_id!=0))return games[i];}
return false;};var drawGameItem=function(id,matchno){var game=findGameById(id);if(game!==false){var callback=eval(settings.drawgamecallback);var gameitem=callback(game,settings.strings);if(gameitem!==false){$(settings.target+" ul li[id=item_"+matchno+"]").empty().append(''+gameitem);}else{$(settings.target+" ul li[id=item_"+matchno+"]").remove();}
if(settings.doPngFix===true){try{$(settings.target+" ul li[id=item_"+matchno+"]").pngFix();}catch(e){}}}};var handleGameResponse=function(data,mesg){var id=$("id",data).text();var matchno=this.matchno;games.push({'id':id,title:$("title",data).text(),description:$("description",data).text(),thumbnail:$("thumbnail",data).text(),rating:$("rating",data).text(),url:$("url",data).text()});drawGameItem(id,matchno);};var handleCachedGame=function(game_id,matchno){drawGameItem(game_id,matchno);};var checkIfGameExists=function(game_id){for(var i=0;i<games.length;i++){if(games[i].id==game_id)return true;}
return false;};var getItem=function(item_id,matchno){$(settings.target+" ul").append('<li id="item_'+matchno+'"></li>');switch(settings.itemtype){default:case 1:if(checkIfGameExists(item_id)===false){$.ajax({global:false,type:'GET',cache:true,dataType:'xml',success:handleGameResponse,error:handleError,timeout:10000,url:'gamesxml/game_'+item_id+'.xml',matchno:matchno});}else{handleCachedGame(item_id,matchno);}
break;};};var preparePagination=function(){pagination.total=matches.total_found;pagination.pagesCount=Math.ceil(pagination.total/pagination.limit);if(pagination.pagesCount>1){var actualpage=pagination.actualPage;var output='',strtotal='';var pagenavigator='',add_number=1,pagenumber=pagination.actualPage-add_number,navigatoritems=pagination.navigatorItems,numberofgames=pagination.total,gamesperpage=pagination.limit;var navistart=Math.min(pagenumber-Math.floor(navigatoritems/2),Math.ceil(numberofgames/gamesperpage-navigatoritems));var navistart=Math.max(navistart,0);if(numberofgames>gamesperpage){if(pagenumber>0){pagenavigator+=settings.strings.image_prev_on+'<span><a href="#'+(Math.max(0,pagenumber-1)+add_number)+'">'+settings.strings.prev+'</a></span>';}else{pagenavigator+=settings.strings.image_prev_off+'<span>'+settings.strings.prev+'</span>';}
for(var i=navistart;i<Math.ceil(numberofgames/gamesperpage)&&i<navigatoritems+navistart;i++){if(i==pagenumber){pagenavigator+='<span class="active">'+(i+1)+'</span>';}else{pagenavigator+='<span><a href="#'+(i+add_number)+'">'+(i+1)+'</a></span>';}}
if(pagenumber<Math.ceil(numberofgames/gamesperpage)-1){pagenavigator+='<span><a href="#'+(Math.min(pagenumber+1,Math.ceil(numberofgames/gamesperpage-1))+add_number)+'">'+settings.strings.next+'</a></span>'+settings.strings.image_next_on;}else{pagenavigator+='<span>'+settings.strings.next+'</span>'+settings.strings.image_next_off;}
if(pagenavigator.length>0&&pagenavigator!=''){output='<div class="pages">'+pagenavigator+'</div>';}
var strtotal=sprintf(settings.strings.shown_total,''+matches.first,''+matches.last,''+matches.total_found,'');if(strtotal.length>0&&strtotal!=''){strtotal='<div class="shown_total_games">'+strtotal+'</div>';}
return strtotal+''+output;}}
return'';};var insertPagination=function(extraclass){var eclass=extraclass||'';var ec='';if(eclass.length>0){ec=' '+eclass;}else{ec='';}
$(settings.target).append('<div class="nsearch_pagination'+ec+'">'+pagination.paginationString+'</div>');$("div.nsearch_pagination div.pages a[href$=#"+pagination.actualPage+"]").addClass('actualpage');};var attachPaginationScripts=function(){$("div.nsearch_pagination a").click(function(){var pageno=$(this).attr('href').replace(/[^\#]*#/,'');if(pageno==pagination.actualPage)return false;pagination.actualPage=pageno;getResults();return false;});};$.ajaxSetup({url:'/sr/pr/1/get/'+settings.siteid+'/'+settings.itemtype,global:false,type:settings.method,cache:true,dataType:settings.outputtype,success:handleResponse,error:handleError,timeout:settings.timeout});var getResults=function(){clearTarget();$.ajax({data:{phrase:settings.phrase,languagecode:settings.languagecode,channel:settings.channel,pagesize:settings.pagesize,pagenr:pagination.actualPage,outputtype:settings.outputtype}});};getResults();};})(jQuery);jQuery.log=function(message){if(window.console){console.log(message);}else{alert(message);}};function str_repeat(i,m){for(var o=[];m>0;o[--m]=i);return(o.join(''));};function sprintf(){var i=0,a,f=arguments[i++],o=[],m,p,c,x;while(f){if(m=/^[^\x25]+/.exec(f))
o.push(m[0]);else if(m=/^\x25{2}/.exec(f))
o.push('%');else if(m=/^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f)){if(((a=arguments[m[1]||i++])==null)||(a==undefined))
throw("Too few arguments.");if(/[^s]/.test(m[7])&&(typeof(a)!='number'))
throw("Expecting number but found "+typeof(a));switch(m[7]){case'b':a=a.toString(2);break;case'c':a=String.fromCharCode(a);break;case'd':a=parseInt(a);break;case'e':a=m[6]?a.toExponential(m[6]):a.toExponential();break;case'f':a=m[6]?parseFloat(a).toFixed(m[6]):parseFloat(a);break;case'o':a=a.toString(8);break;case's':a=((a=String(a))&&m[6]?a.substring(0,m[6]):a);break;case'u':a=Math.abs(a);break;case'x':a=a.toString(16);break;case'X':a=a.toString(16).toUpperCase();break;}
a=(/[def]/.test(m[7])&&m[2]&&a>0?'+'+a:a);c=m[3]?m[3]=='0'?'0':m[3].charAt(1):' ';x=m[5]-String(a).length;p=m[5]?str_repeat(c,x):'';o.push(m[4]?a+p:p+a);}else
throw("Huh ?!");f=f.substring(m[0].length);}
return o.join('');};function gup(name){name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(window.location.href);return(results==null)?'':results[1];};;paginatorString=function(totalRes,curPage,elemPerPage,surround,handler,prev,next){curPage=curPage||1;elemPerPage=elemPerPage||20;surround=surround||9;var totalPages=Math.ceil(totalRes/elemPerPage);if(totalPages<=1){return'';}
var ret='';var naviStart=Math.min(curPage-Math.floor(surround/2),Math.ceil(totalRes/elemPerPage-surround));var naviStart=Math.max(naviStart,1);if(curPage>1){ret+=buildButtonHtml(prev,'#'+(Math.max(1,curPage-1)),{aClass:'previouspage-button'});}
for(var i=naviStart;i<=totalPages&&i<=surround+naviStart;i++){if(i==curPage){ret+=buildButtonHtml(i,false,{disabled:true,small:true});}else{ret+=buildButtonHtml(i,'#'+i,{small:true});}}
if(curPage<totalPages){ret+=buildButtonHtml(next,'#'+(Math.min(curPage+1,totalPages)),{aClass:'nextpage-button'});}
if(handler){ret=$(ret);$('a',ret.parent()).bind('click',function(){handler.call(this,parseInt($(this).attr('href').replace(/[^\#]*#/,'')));return false;});}
return ret;};cutStringPlease=function(string,limit,specialchars,ending){limit=limit||0;specialchars=specialchars||false;ending=ending||'...';if(limit==0){return string;}
if(specialchars==true){string=this.escape(string);}
if(string.length>limit){string=string.substring(0,limit-1)+''+ending;}
return string;};;var familySearch=(function($){var config={search_url:'/sr/pr/2/get/%s/%s/1',order:2,gamedata_url:'/ajax/gamebox/%s',timeout:7000,channel_id:1,target:'div#nsearch_results_container',targetId:'nsearch_results_container',input_box:"input#searchpage_ss",targetYSF:".searchtext",targetPaginer:'.pagination',targetShowing:'.pagination-showing',targetPaginerBar:'err.paginer',targetPages:'#pagination_pages',gridButton:'#gridButton',detailButton:'#detailButton',switcherSelector:'.switcher',list_func:'render_list',grid_func:'render_grid',detail_no_items:7,grid_no_items:15,itemsPerPageControl:'#howMany',pagesize:15,search:{sortby:'weight',order:2,matchmode:'or',filterfield:'',minvalue:0,maxvalue:1000}};var that={};var currentPhrase='',oldPhrase='';var currentSuggestion='';var resultsVersion=0;var searchAjaxManagerGame=$.manageAjax({manageType:'queue',maxReq:2,global:false});var searchAjaxManagerMain=$.manageAjax({manageType:'abortOld',maxReq:1,global:false,blockSameRequest:true});var actualPage=1,totalResults=0,matches=[];var gamesCache=[];var drawGameItem;var suggestionUsed=false;var getGameFromCache=function(game_id){for(var i=0;i<gamesCache.length;i++){if(gamesCache[i].gid==game_id)return gamesCache[i];}
return false;};var handleGameResponse=function(data,mesg){drawGameItem(data,this.matchno,this.target);};var handleGameError=function(xml,mesg,error){};var prepareResults=function(target){target.append('<ul id="gl" class="gameList smaller"></ul>');var i=0;$(matches).each(function(){i++;var extraclass='';var matchno=new String(this.matchnumber);if(i%2==0&&config.drawGameTpl==config.list_func){extraclass+=' alternate';}
$("#gl").append('<li class="'+extraclass+' smaller '+config.drawGameTpl+'" id="item_'+matchno+'">'
+config.langStrings.loading
+'</li>');var game=getGameFromCache(this.id);if(game!==false){drawGameItem(game,matchno,target);}else{searchAjaxManagerGame.add({global:false,type:'GET',cache:true,dataType:'html',success:handleGameResponse,error:handleGameError,timeout:config.timeout,url:sprintf(config.gamedata_url,this.id),matchno:matchno,target:target});}});target.append('</ul>');};drawGameItem=function(game,matchno,target){var itemno=matches.length-(matches.length-parseInt(matchno))-((actualPage-1)*config.pagesize);var gameElement=$(game);if(game!='')
target.append(gameElement);if(matches.length<=3){gameElement.addClass('no-border');}
else if(itemno==matches.length-1){var gameitems=$('.expanded-game-item');var howManyToCut=gameitems.length%3?gameitems.length%3:3;gameitems.each(function(i){if(i>=gameitems.length-howManyToCut){$(this).addClass('no-border');}})}
return;};var insertMatchingText=function(target){target.empty().append(sprintf(config.langStrings.you_searched_for,escape(oldPhrase)));};var insertPagination=function(target,targetShowing,targetPaginer,targetPaginerBar,targetPages){var paging=paginatorString(totalResults,actualPage,config.pagesize,config.paginationItems,function(page){actualPage=page;getResults();return false;},config.langStrings.prev,config.langStrings.next);var strtotal=sprintf(config.langStrings.shown_total,actualPage*config.pagesize-config.pagesize+1,actualPage*config.pagesize-config.pagesize+matches.length,totalResults);targetShowing.empty().append(strtotal);var strpages=sprintf(config.langStrings.search_pages,actualPage,Math.ceil(totalResults/config.pagesize));targetPages.empty().append(strpages);if(paging!=''){target.filter(':eq(0)').empty().append(paging);target.filter(':eq(1)').empty().append(paging.clone(true));targetPaginerBar.show();targetPaginer.show();}else{targetPaginer.hide();targetPaginerBar.hide();}};var attachSorting=function(){$("#sort_by_1").unbind().click(function(){config.search.sortby='rating';actualPage=1;getResults();$("#sort_by_3").removeClass("common-button_disabled").addClass('common-button');$("#sort_by_2").removeClass("common-button_disabled").addClass('common-button');$("#sort_by_1").addClass("common-button_disabled").removeClass('common-button');});$("#sort_by_2").unbind().click(function(){config.search.sortby='publicationdate';actualPage=1;getResults();$("#sort_by_1").removeClass("common-button_disabled").addClass('common-button');$("#sort_by_3").removeClass("common-button_disabled").addClass('common-button');$("#sort_by_2").addClass("common-button_disabled").removeClass('common-button');});$("#sort_by_3").unbind().click(function(){config.search.sortby='hits';actualPage=1;getResults();$("#sort_by_1").removeClass("common-button_disabled").addClass('common-button');$("#sort_by_2").removeClass("common-button_disabled").addClass('common-button');$("#sort_by_3").addClass("common-button_disabled").removeClass('common-button');});};var attachSwitcherScripts=function(){$(config.gridButton).unbind('click').click(function(){$(config.gridButton).addClass('selected');$(config.detailButton).removeClass('selected');$(config.gridButton).unbind('mouseout').unbind('hover');config.drawGameTpl=config.grid_func;config.pagesize=config.grid_no_items;actualPage=1;getResults();});$(config.detailButton).unbind('click').click(function(){$(config.detailButton).addClass('selected');$(config.gridButton).removeClass('selected');$(config.detailButton).unbind('mouseout').unbind('hover');config.drawGameTpl=config.list_func;config.pagesize=config.detail_no_items;actualPage=1;getResults();});};var attachSwitcherHovers=function(){$(config.switcherSelector).hover(function(){if(!$(this).hasClass('selected')){$(this).addClass('selected');$(this).mouseout(function(){$(this).removeClass('selected');})}});};var showLimitSelector=function(){if(!$(config.itemsPerPageControl).size()){return;}
if(totalResults>parseInt($(config.itemsPerPageControl).find('option:first').val())){$(config.itemsPerPageControl).css('visibility','visible');}};var limiterChange=function(){actualPage=1;var newLimit=$(this).val();getResults();};var clearTarget=function(){searchAjaxManagerMain.abort();searchAjaxManagerGame.abort();$(config.target+'_'+resultsVersion).hide().after('<div id="'+config.targetId+'_'+(resultsVersion+1)+'" class="items nsearch-results"></div>').remove();resultsVersion+=1;totalResults=0;matches=[];return resultsVersion;};var handleResponse=function(data,mesg){var target=$(config.target+'_'+this.resultsVersion);if(data.searchar.errorcode!==undefined){data={"searchar":{"matches":[],"total":"0","returned":0}};}
totalResults=parseInt(data.searchar.total);matches=data.searchar.matches;if(matches.length>0){insertMatchingText($(config.targetYSF));prepareResults(target);insertPagination($(config.targetPaginer),$(config.targetShowing),$(config.targetPaginer),$(config.targetPaginerBar),$(config.targetPages));attachSorting();attachSwitcherHovers();attachSwitcherScripts();showLimitSelector();}else{if(suggestionUsed==false&&data.suggestion&&data.suggestion+''!=''){suggestionUsed=true;currentPhrase=data.suggestion+'';setTimeout(getResults,100);}else{insertMatchingText($(config.targetYSF));target.empty().append(config.render_no_matches.call(this,oldPhrase));$(config.targetPaginerBar).hide();$('div.sorting').hide();$('input#searchtext2').focus(function(){if(this.defaultValue==this.value)this.value="";$('input#searchtext').val($(this).val());}).keyup(function(){$('input#searchtext').val($(this).val());});$('input#searchtext').keyup(function(){$('input#searchtext2').val($(this).val());}).focus(function(){$('input#searchtext2').val($(this).val());});$('div.search2 span').click(function(){$('form#search3').submit();return false;});$('form#search3').submit(function(){return checkSFValid(this,'search',2);});attachTooltips('.gameList li');}}};var attachTooltips=function(selector){$(selector+'.ttR').dTooltip({eventHandler:'a',displayDiv:'tltright',content:'.tltcontent',track:true,position:'right',x:-216,y:5,drawItemCallback:'drawNeboxItem'});$(selector+'.ttL').dTooltip({eventHandler:'a',displayDiv:'tltleft',content:'.tltcontent',track:true,position:'left',x:10,y:5,drawItemCallback:'drawNeboxItem'});$(selector+' img').attr('alt','').attr('title','');$(selector+' a').attr('alt','').attr('title','');};var handleError=function(xml,mesg,error){handleResponse.call(this,{"searchar":{"matches":[],"total":"0","returned":0}},'');};var getResults=function(){var currentResultsVersion=clearTarget();searchAjaxManagerMain.add({global:false,cache:true,timeout:config.timeout,url:sprintf(config.search_url,config.channel_id,config.site_id),type:'GET',dataType:'json',success:handleResponse,error:handleError,resultsVersion:currentResultsVersion,data:{phrase:currentPhrase,locale:config.lang_id,pagesize:config.pagesize,pagenr:actualPage,sortby:config.search.sortby,order:config.search.order,matchmode:config.search.matchmode,filterfield:config.search.filterfield,minvalue:config.search.minvalue,maxvalue:config.search.maxvalue,outputtype:'json'}});};that.init=function(phrase,settings){config=$.extend(true,config,settings);currentPhrase=phrase;oldPhrase=phrase;$(config.target).attr('id',config.targetId+'_'+resultsVersion);if(config.itemsPerPageControl){$(config.itemsPerPageControl).change(function(evn){config.pagesize=$(this).val();actualPage=1;getResults();});config.pagesize=$(config.itemsPerPageControl).val();}
getResults();};return that;})(jQuery);;$(function(){$("#new-games li, #try-new-games li").dEllipsis({overflowElement:'a.caption',textElement:'span.titleHolder',shortSteps:true,wrapInWidth:true});});
