if(!applesearch)var applesearch={};applesearch.onChange=function(fldID,btnID)
{var fld=document.getElementById(fldID);var btn=document.getElementById(btnID);if(fld.value.length>0&&!this.clearBtn)
{btn.style.background="white url('http://static.apptrackr.org/web_en/img/search/srch_r_f2.gif') no-repeat top left";btn.fldID=fldID;btn.onclick=this.clearBtnClick;this.clearBtn=true;}else if(fld.value.length==0&&this.clearBtn)
{btn.style.background="white url('http://static.apptrackr.org/web_en/img/search/srch_r.gif') no-repeat top left";btn.onclick=null;this.clearBtn=false;}}
applesearch.clearFld=function(fldID,btnID)
{var fld=document.getElementById(fldID);fld.value="";this.onChange(fldID,btnID);apptrackr.syncSearch(false);}
applesearch.clearBtnClick=function()
{applesearch.clearFld(this.fldID,this.id);};var apptrackr={applistShowing:false,activeAjax:false,searchLastEdit:"",categories:{cats:[],active:-1},jsonRequest:function(url,opts,ajaxCallback){if(this.activeAjax!=false){this.activeAjax.abort();}
this.activeAjax=$.ajax({type:"POST",url:url,data:opts,dataType:"json",success:function(data){ajaxCallback(true,data);},error:function(){ajaxCallback(false);}});},submitFormToPage:function(pagename,formid){opts={};$('#'+formid+" input[name], #"+formid+" textarea[name], #"+formid+" input[name]:hidden, #"+formid+" select[name]").each(function(){var child=$(this);opts[child.attr("name")]=child.attr("value");});apptrackr.getPage(pagename,opts);return false;},submitAjaxToURL:function(url,opts,ajaxCallback){if(this.activeAjax!=false){this.activeAjax.abort();}
this.activeAjax=$.ajax({type:"POST",url:url,data:opts,dataType:"json",success:function(data){ajaxCallback(true,data);},error:function(){ajaxCallback(false);}});},moderatorCracker:function(linkid,act){switch(act){case 1:cname=$("#crackerSpan"+linkid).html();replacement='<div id="fullCfield'+linkid+'" style="display:inline"><input id="crackerField'+linkid+'" type="text" style="width:128px" value="'+cname+'"/><img style="vertical-align: middle; padding-left: 10px; opacity: 0" id="cImg'+linkid+'" src="http://static.apptrackr.org/web_en/img/miniload.gif" width=16 height=16 /></div>';$("#crackerSpan"+linkid).replaceWith(replacement);$("#crackerField"+linkid).keydown(function(event){if(event.keyCode==13){apptrackr.moderatorCracker(linkid,2);}});break;case 2:$("#cImg"+linkid).attr("src","http://static.apptrackr.org/web_en/img/miniload.gif");$("#cImg"+linkid).animate({opacity:1},0);crackername=$("#crackerField"+linkid).val();if(crackername==""){crackername="Unknown";}
apptrackr.submitAjaxToURL("/util.php?act=changecracker",{crackername:crackername,linkid:linkid},function(status,data){if(status&&(data.changed==1)){$("#fullCfield"+linkid).replaceWith('<span onclick="apptrackr.moderatorCracker('+linkid+', 1)" id="crackerSpan'+linkid+'">'+crackername+'</span>');}else{$("#cImg"+linkid).attr("src","http://static.apptrackr.org/web_en/img/deletedlink.png");}});break;}
return false;},moderatorHideLink:function(linkid){$("#link"+linkid).attr("src","http://static.apptrackr.org/web_en/img/miniload.gif");apptrackr.submitAjaxToURL("/util.php?act=hidelink",{linkid:linkid},function(status,data){if(status&&(data.deleted==1)){$("#link"+linkid).attr("src","http://static.apptrackr.org/web_en/img/deletedlink.png");$("#link"+linkid).removeAttr("onclick");$("#linktxt"+linkid).wrap("<s></s>");}else{$("#link"+linkid).attr("src","http://static.apptrackr.org/web_en/img/deletelink.png");}});},submitAjaxToPage:function(pagename,opts,ajaxCallback){if(this.activeAjax!=false){this.activeAjax.abort();}
this.activeAjax=$.ajax({type:"POST",url:"/ajax.php?act="+pagename,data:opts,dataType:"json",success:function(data){ajaxCallback(true,data);},error:function(){ajaxCallback(false);}});},getPage:function(pagename,opts){opts=(opts?opts:{});this.applistShowing=false;this.setLoadingPage();if(this.activeAjax!=false){this.activeAjax.abort();}
this.activeAjax=$.ajax({type:"POST",url:"/ajax.php?act="+pagename,data:opts,success:function(data){apptrackr.activeAjax=false;apptrackr.changeAppPage(data,"slide");},error:function(){apptrackr.setFailPage();}});},applistReset:function(){$(".nav3act").removeClass("nav3act");$("#sort"+2).addClass("nav3act");$(".nav2act").removeClass("nav2act");$("#cat"+0).addClass("nav2act");apptrackr.applist.sortBy=2;apptrackr.applist.category=0;apptrackr.applist.currentPage=1;apptrackr.clearSearchFieldNoPopulate();apptrackr.applistSwishPopulate(true);},clearSearchFieldNoPopulate:function(){apptrackr.applist.search="";$("#srch_fld").val("");applesearch.onChange('srch_fld','srch_clear');},applistChangeCurrentPage:function(){var currentPage;$("#pageSelectList option:selected").each(function(){currentPage=parseInt($(this).text());});apptrackr.applist.currentPage=currentPage;apptrackr.applistSwishPopulate(false);},applistSwishPopulate:function(full){if(apptrackr.applist.search==''){if(apptrackr.applist.sortBy==4){apptrackr.applistChangeSort(2,false);$("#relevanceSort").hide();}else{$("#relevanceSort").hide();}}else{$("#relevanceSort").show();}
if(apptrackr.showAppList()){apptrackr.applist.setLoading();apptrackr.applist.populate(full,{success:function(){apptrackr.applist.rehashPageBar();apptrackr.applist.swish("fadein");apptrackr.applist.unsetLoading();},fail:function(){apptrackr.applist.rehashPageBar();apptrackr.applist.swish("fadein");apptrackr.applist.unsetLoading();}});}},applistChangeSort:function(sortid,doswish){if(typeof(doswish)=='undefined'){doswish=true;}
$(".nav3act").removeClass("nav3act");$("#sort"+sortid).addClass("nav3act");apptrackr.applist.sortBy=sortid;apptrackr.applist.currentPage=1;if(doswish)
apptrackr.applistSwishPopulate(false);return false;},applistChangeCategory:function(id,set){$(".nav2act").removeClass("nav2act");$("#cat"+set).addClass("nav2act");apptrackr.applist.category=id;apptrackr.categories.active=id;apptrackr.applist.currentPage=1;apptrackr.applistSwishPopulate(true);return false;},applistChangePerPage:function(){var appsPerPage;$("#pageBarAppsPerPage option:selected").each(function(){appsPerPage=parseInt($(this).text());});apptrackr.applist.appsPerPage=appsPerPage;apptrackr.applist.currentPage=1;apptrackr.applistSwishPopulate(true);},applistRewindPages:function(){apptrackr.applist.currentPage=1;apptrackr.applistSwishPopulate(false);},applistForwardPages:function(){apptrackr.applist.currentPage=apptrackr.applist.maxPages;apptrackr.applistSwishPopulate(false);},applistNextPage:function(){apptrackr.applist.currentPage++;apptrackr.applistSwishPopulate(false);},applistPrevPage:function(){apptrackr.applist.currentPage--;apptrackr.applistSwishPopulate(false);},changeAppPage:function(content,type,find,callback){switch(type){case"slide":$("#appPage").animate({opacity:0},"fast","swing",function(){$("#appPage").html(content);$("#appPage").animate({opacity:1},"fast","swing");});break;case"slideFind":$("#appPage").animate({opacity:0},"fast","swing",function(){$("#appPage").empty().append($(content).find(find).click(callback).end());$("#appPage").animate({opacity:1},"fast","swing");});break;}},syncSearch:function(populate){apptrackr.applist.search=$("#srch_fld").val();if(populate!==false){if(apptrackr.applist.search!=''){apptrackr.applistChangeSort(4,false);$("#relevanceSort").show();}
apptrackr.applist.currentPage=1;apptrackr.applistSwishPopulate(true);}},showAppList:function(){if(this.activeAjax!=false){this.activeAjax.abort();}
if(!this.applistShowing){document.title='apptrackr \u00BB home';this.applist.restoreState();this.applistShowing=true;return false;}
return true;},setFailPage:function(){apptrackr.changeAppPage('<div class="postit_alert"><div class="left" style="padding-left: 39px;">There was an error getting the data from the server.</div></div>',"slide");},setLoadingPage:function(){apptrackr.changeAppPage('<br /><br /><br /><div class="loadingCircle"></div>',"slide");},applist:{activeAjax:false,currentPage:1,appsPerPage:15,category:0,search:"",sortBy:2,maxPages:1,appData:[],swish:function(type){$("#appList").animate({opacity:0},"fast","swing",function(){$("#appList").html(apptrackr.applist.makeAppList());$("#appList").animate({opacity:1},"fast","swing");});},populate:function(full,callbacks){var request={getMaxPages:false,page:apptrackr.applist.currentPage,category:apptrackr.applist.category,appsPerPage:apptrackr.applist.appsPerPage,sort:apptrackr.applist.sortBy,search:apptrackr.applist.search};if(full){request.getMaxPages=true;}
apptrackr.jsonRequest("/json.php",{request:$.toJSON(request)},function(status,result){if(status&&result.status=="OK"){if(result.numpages)
apptrackr.applist.maxPages=result.numpages;apptrackr.applist.appData=result.pagedata;callbacks.success();}else{apptrackr.applist.appData=[];apptrackr.applist.maxPages=1;callbacks.fail();}});},rehashPageBar:function(){$("#pageBar").html(this.makePageBar());},makePageBar:function(){var pagebar='<div id="applistLoading" style="display: none; margin-top: 9px; margin-right: 2px;" class="right rsslink"><img src="http://static.apptrackr.org/web_en/img/header/navmenu/loadingcircle.gif" style="vertical-align: middle" /></div><div class="left rsslink"><select id="pageBarAppsPerPage">';if(this.appsPerPage==15){pagebar+='<option selected>15</option><option>30</option><option>60</option>';}else if(this.appsPerPage==30){pagebar+='<option>15</option><option selected>30</option><option>60</option>';}else if(this.appsPerPage==60){pagebar+='<option>15</option><option>30</option><option selected>60</option>';}
if(this.currentPage==1){pagebar+='</select><b>  apps per page</b></div><div class="pagebarout"><div class="pagebarin"><div class="left pagebutton"><img src="http://static.apptrackr.org/web_en/img/header/navmenu/rewindb.png" /></div><div class="left pagebutton"><img src="http://static.apptrackr.org/web_en/img/header/navmenu/prevb.png" /></div><div class="left" style="width: 60px;"><select id="pageSelectList" style="width:60px;">';}else{pagebar+='</select><b>  apps per page</b></div><div class="pagebarout"><div class="pagebarin"><div class="left pagebutton"><a href="#" id="pageButtonRewind"><img src="http://static.apptrackr.org/web_en/img/header/navmenu/rewind.png" /></a></div><div class="left pagebutton"><a href="#" id="pageButtonPrev"><img src="http://static.apptrackr.org/web_en/img/header/navmenu/prev.png"></a></div><div class="left" style="width: 60px;"><select id="pageSelectList" style="width:60px;">';}
for(var i=1;i<=this.maxPages;i++){if(i==this.currentPage){pagebar+='<option selected>'+i+'</option>';}else{pagebar+='<option>'+i+'</option>';}}
if(this.currentPage==this.maxPages){pagebar+='</select></div><div class="left pagebutton"><img src="http://static.apptrackr.org/web_en/img/header/navmenu/nextb.png" /></div><div class="left pagebutton"><img src="http://static.apptrackr.org/web_en/img/header/navmenu/forwardb.png" /></a></div></div></div>';}else{pagebar+='</select></div><div class="left pagebutton"><a href="#" id="pageButtonNext"><img src="http://static.apptrackr.org/web_en/img/header/navmenu/next.png" /></a></div><div class="left pagebutton"><a href="#" id="pageButtonForward"><img src="http://static.apptrackr.org/web_en/img/header/navmenu/forward.png" /></a></div></div></div>';}
pagebar+='<script type="text/javascript">$("#pageBarAppsPerPage").change(apptrackr.applistChangePerPage); $("#pageSelectList").change(apptrackr.applistChangeCurrentPage);';if(this.currentPage!=this.maxPages){pagebar+=' $("#pageButtonForward").click(function() {apptrackr.applistForwardPages(); return false;}); ';pagebar+=' $("#pageButtonNext").click(function() {apptrackr.applistNextPage(); return false;}); ';}else{pagebar+=' $("#pageButtonForward").click(function() {return false;}); ';pagebar+=' $("#pageButtonNext").click(function() {return false;}); ';}
if(this.currentPage!=1){pagebar+=' $("#pageButtonRewind").click(function() {apptrackr.applistRewindPages(); return false;}); ';pagebar+=' $("#pageButtonPrev").click(function() {apptrackr.applistPrevPage(); return false;}); ';}else{pagebar+=' $("#pageButtonRewind").click(function() {return false;}); ';pagebar+=' $("#pageButtonPrev").click(function() {return false;}); ';}
pagebar+='</script>';return pagebar;},noAppsShown:function(){return'<div class="postit_alert"><div class="left" style="padding-left: 39px;">No apps matched your query.</div></div>';},makeAppList:function(){var applistData="";if(apptrackr.applist.appData.length>=1){applistData='<div class="listbox"><ul class="applist">';for(var i in this.appData){if(/WebKit/.test(navigator.userAgent)){var listiconbox='<div class="listiconbox"><img src="'+this.appData[i].icon75+'" style="-webkit-border-radius:10px;" /></div>';}else{var listiconbox='<div class="listiconbox" style="background: url('+this.appData[i].icon75+') no-repeat;"><div class="overlay appclick"></div></div>';}
applistData+='<li><div class="linkhack"><a name="'+this.appData[i].id+'" href="/?act=viewapp&appid='+this.appData[i].id+'" class="appclick"></a></div>'+listiconbox+'<div class="listdescbox"><div class="fadeout"></div><div class="appname">'+this.appData[i].name+'</div><div class="listco">'+this.appData[i].seller+'</div><div class="listdets">Category: '+apptrackr.categories.cats[this.appData[i].category]+'<br />Version: '+this.appData[i].latest_version+'</div></div></li>';}
applistData+='</ul></div>';}else{applistData=apptrackr.applist.noAppsShown();}
return applistData;},generateAppList:function(){var pagebar='<div id="pageBar" class="pagebar">'+this.makePageBar()+'</div>';var applist='<div id="appList"><div>'+this.makeAppList()+'</div></div>';return pagebar+applist;},setLoading:function(){$("#applistLoading").css("display","block");},unsetLoading:function(){$("#applistLoading").css("display","none");},restoreState:function(){apptrackr.setLoadingPage();apptrackr.applist.populate(true,{fail:function(){apptrackr.changeAppPage(apptrackr.applist.generateAppList(),"slide");},success:function(){apptrackr.changeAppPage(apptrackr.applist.generateAppList(),"slideFind",'li',function(){apptrackr.getPage('viewapp',{appid:$(this).attr("name")});});}});}}};(function($){$.toJSON=function(o)
{if(typeof(JSON)=='object'&&JSON.stringify)
return JSON.stringify(o);var type=typeof(o);if(o===null)
return"null";if(type=="undefined")
return undefined;if(type=="number"||type=="boolean")
return o+"";if(type=="string")
return $.quoteString(o);if(type=='object')
{if(typeof o.toJSON=="function")
return $.toJSON(o.toJSON());if(o.constructor===Date)
{var month=o.getUTCMonth()+1;if(month<10)month='0'+month;var day=o.getUTCDate();if(day<10)day='0'+day;var year=o.getUTCFullYear();var hours=o.getUTCHours();if(hours<10)hours='0'+hours;var minutes=o.getUTCMinutes();if(minutes<10)minutes='0'+minutes;var seconds=o.getUTCSeconds();if(seconds<10)seconds='0'+seconds;var milli=o.getUTCMilliseconds();if(milli<100)milli='0'+milli;if(milli<10)milli='0'+milli;return'"'+year+'-'+month+'-'+day+'T'+
hours+':'+minutes+':'+seconds+'.'+milli+'Z"';}
if(o.constructor===Array)
{var ret=[];for(var i=0;i<o.length;i++)
ret.push($.toJSON(o[i])||"null");return"["+ret.join(",")+"]";}
var pairs=[];for(var k in o){var name;var type=typeof k;if(type=="number")
name='"'+k+'"';else if(type=="string")
name=$.quoteString(k);else
continue;if(typeof o[k]=="function")
continue;var val=$.toJSON(o[k]);pairs.push(name+":"+val);}
return"{"+pairs.join(", ")+"}";}};$.evalJSON=function(src)
{if(typeof(JSON)=='object'&&JSON.parse)
return JSON.parse(src);return eval("("+src+")");};$.secureEvalJSON=function(src)
{if(typeof(JSON)=='object'&&JSON.parse)
return JSON.parse(src);var filtered=src;filtered=filtered.replace(/\\["\\\/bfnrtu]/g,'@');filtered=filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']');filtered=filtered.replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered))
return eval("("+src+")");else
throw new SyntaxError("Error parsing JSON, source is not valid.");};$.quoteString=function(string)
{if(string.match(_escapeable))
{return'"'+string.replace(_escapeable,function(a)
{var c=_meta[a];if(typeof c==='string')return c;c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"';}
return'"'+string+'"';};var _escapeable=/["\\\x00-\x1f\x7f-\x9f]/g;var _meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};})(jQuery);