var Popup_Data_Cache={},Popup_Data_Status={},_hasICoins=false;Event.observe(document,"dom:loaded",function(){var a=$$(".poppable");a.length>0&&a.each(function(d){make_poppable(d,750)})});function initializeGamePopup(){Event.observe(document,"click",popup_click_close);Event.observe(document,"iwin:auth:login:success",updatePopupForIcoins);Event.observe(document,"iwin:auth:logout:success",function(){updatePopupDisplayForIcoins(false)});iwin.Auth.getCurrentUsername()&&updatePopupForIcoins()}
function updatePopupForIcoins(){iwin.Util.getUserSubscription(function(a){a&&(a.name==="Club iWin Membership"||a.name==="All Access"&&a.iCoinsBalance>0)?updatePopupDisplayForIcoins(true):updatePopupDisplayForIcoins(false)})}
function updatePopupDisplayForIcoins(a){console.debug("updatePopupDisplayForIcoins with hasIcoins: %s",a);_hasICoins=a;bottomOptsObj=$("popup_bottom_opts");bottomIcoinsObj=$("popup_bottom_icoins");if(Object.isElement(bottomOptsObj)&&Object.isElement(bottomIcoinsObj))if(a){bottomOptsObj.hide();bottomIcoinsObj.show()}else{bottomOptsObj.show();bottomIcoinsObj.hide()}else console.debug("updatePopupDisplayForIcoins with invalid dom objs")}
function cache_dom_data(a){if(!(a==null||Popup_Data_Status[a])){Popup_Data_Status[a]="loading";new Ajax.Request(a+".xml",{method:"get",requestHeaders:{Accept:"application/xml"},onSuccess:function(d){var b=d.responseXML;setTimeout(function(){try{var c=b.getElementsByTagName("game")[0].getAttribute("id"),f=b.getElementsByTagName("title")[0].firstChild.data,g=b.getElementsByTagName("short-description")[0].firstChild.data,e=b.getElementsByTagName("long-description")[0].firstChild.data,h=b.getElementsByTagName("images-url")[0].firstChild.data,
i=b.getElementsByTagName("release-date")[0].firstChild.data,j=b.getElementsByTagName("reviews-url")[0].firstChild.data,t=b.getElementsByTagName("game")[0].getAttribute("self"),m=null;if(b.getElementsByTagName("download-url")[0])m=b.getElementsByTagName("download-url")[0].firstChild.data;var n=null;if(b.getElementsByTagName("download-cmd")[0])n=b.getElementsByTagName("download-cmd")[0].firstChild.data;var o=null;if(b.getElementsByTagName("cash-purchase-url")[0])o=b.getElementsByTagName("cash-purchase-url")[0].firstChild.data;
var p=null;if(b.getElementsByTagName("icoins-purchase-url")[0])p=b.getElementsByTagName("icoins-purchase-url")[0].firstChild.data;var q=null;if(b.getElementsByTagName("icoins-learnhow-url")[0])q=b.getElementsByTagName("icoins-learnhow-url")[0].firstChild.data;var u=b.getElementsByTagName("trial-duration")[0].firstChild.data,v=b.getElementsByTagName("money-price")[0].firstChild.data,w=b.getElementsByTagName("icoins-price")[0].firstChild.data,x=b.getElementsByTagName("icoins-best-dollar-value")[0].firstChild.data,
y=b.getElementsByTagName("access-price")[0].firstChild.data,r=null;if(b.getElementsByTagName("rating")[0])r=b.getElementsByTagName("rating")[0].firstChild.data;for(var l=b.getElementsByTagName("category"),s={},k=0;k<l.length;k++){var z=l[k].firstChild.data.escapeHTML();l[k].getAttribute("cname");var A=l[k].getAttribute("xlink:href");s[z]=A}Popup_Data_Cache[a]={canonicalName:c,title:f,sdesc:g,ldesc:e,img_path:h,release_date:i,reviews_url:j,self_url:t,download_url:m,download_cmd:n,cash_purchase_url:o,
icoins_purchase_url:p,icoins_learnhow_url:q,trial_duration:u,icoins_cash_price:x,rating:r,cash_price:v,icoins_price:w,access_price:y,categories:s};Popup_Data_Status[a]="success"}catch(B){Popup_Data_Status[a]="failure";console.error(B);console.error(b)}},0)},onFailure:function(d){Popup_Data_Status[a]="failure";console.error(d.status)}})}}
function determine_direction(a){var d=document.viewport.getDimensions(),b=a.getDimensions();a=a.viewportOffset();var c=d.width/2;try{if(window.external.IsInArcade())c+=90}catch(f){}var g=b.width/2+a.left;return b.height/2+a.top>d.height/2?g>c?"se":"sw":g>c?"ne":"nw"}function get_game_url(a){for(var d=0;a.tagName!="a"&&a.tagName!="A"&&d<5;){a=a.parentNode;d++}if(d==5){console.error("could not locate game url within 5 ancestor nodes");return null}else return a.href}
var pop_timer=null,delay_timer=null,game_popup_initialized=false;
function make_poppable(a,d){a=$(a);var b=$("popup");if(b){if(!game_popup_initialized){game_popup_initialized=true;initializeGamePopup()}Event.stopObserving(a,"mouseover");Event.stopObserving(a,"mouseout");Event.observe(a,"mouseover",function(){setTimeout(function(){cache_dom_data(get_game_url(a))},100);pop_timer=setTimeout(function(){show_popup(a)},d);delay_timer&&clearTimeout(delay_timer)});Event.observe(a,"mouseout",function(){pop_timer&&clearTimeout(pop_timer);delay_timer=setTimeout(function(){b.hide()},
2E3)})}}function init_game_popup(){var a=$("popup");if(a){Event.observe(a,"mouseover",function(){delay_timer&&clearTimeout(delay_timer)});Event.observe(a,"mouseout",function(){delay_timer=setTimeout(function(){a.hide()},2E3)})}}Event.observe(document,"dom:loaded",init_game_popup);
function populate_popup_data(a){a=Popup_Data_Cache[a];var d;d=iwin.Util.userSubscription?iwin.Util.userSubscription.name==="All Access"&&iwin.Util.userSubscription.iCoinsBalance===0?"access":iwin.Util.userSubscription.name==="Club iWin Membership"||iwin.Util.userSubscription.name==="All Access"&&iwin.Util.userSubscription.iCoinsBalance>0?"icoins":"unsub":"unsub";$("popup_game_title").update(a.title);try{$("popup_game_desc").update(a.sdesc)}catch(b){$("popup_game_desc").update("Could not render short description due to invalid XHTML")}iwin.tracking.trackPageEvent($J("#popup_ddp_link"),
"click",iwin.tracking.domain+"/gamepopup","clicked to game ddp",a.canonicalName);iwin.tracking.trackPageEvent($J("#popup_dl_button_a"),"click",iwin.tracking.domain+"/gamepopup","started download",a.canonicalName);$("popup_game_img").src=a.img_path+"/fea_3.jpg";$("popup_ddp_link").href=a.self_url;var c=a.trial_duration;if(c==0)$("popup_game_play").innerHTML="Free Play";else $("popup_game_play").innerHTML=c+" min. trial";var f=a.rating,g=$("popup_star_rating");if(a.rating==null){g.removeClassName("rated");
g.innerHTML="Not Rated";g.style.width="65px"}else{g.innerHTML="";g.addClassName("rated");g.style.width=parseInt(90*Math.round(f/10)/10,10)+"px"}f=[];for(var e in a.categories)f.push('<a href="'+a.categories[e]+'">'+e+"</a>");f.length>1?$("popup_category_label").update("Categories: "):$("popup_category_label").update("Category: ");$("popup_game_categories").innerHTML=f.join(", ");e=a.release_date;e=e.substring(5,7)+"/"+e.substring(8,10)+"/"+e.substring(0,4);$("popup_release_date").update(e);$("popup_dl_button_a").href=
a.download_url;e=false;try{e=window.external.IsGameInstalled(a.download_cmd.split("/")[2])}catch(h){e=false}$("popup_dl_button_a").removeClassName("download").removeClassName("play-free").removeClassName("play-now");if(e)$("popup_dl_button_a").addClassName("play-now");else c==0?$("popup_dl_button_a").addClassName("play-free"):$("popup_dl_button_a").addClassName("download");console.debug("built bottom contents");$("popup_icn_price").innerHTML=Util.addCommas(a.icoins_price)+" iCoins";if(a.icoins_purchase_url!=
null)$("popup_icn_link").href=a.icoins_purchase_url;else $("popup_icn_link").href="/";c=a.icoins_cash_price;if(c>=1)$("popup_icn_value").innerHTML="&#36;"+c;else $("popup_icn_value").innerHTML=c+"&#162;";if(a.icoins_learnhow_url!=null)$("popup_icn_learnhow_link").href=a.icoins_learnhow_url;else $("popup_icn_learnhow_link").href="/";c=a.access_price;if(c>=1)$("popup_access_price").innerHTML="&#36;"+c;else $("popup_access_price").innerHTML=c*100+"&#162;";c=a.cash_price;if(c>=1)$("popup_usd_price").innerHTML=
"&#36;"+c;else $("popup_usd_price").innerHTML=c*100+"&#162;";if(a.cash_purchase_url!=null){$("popup_usd_link").href=a.cash_purchase_url;$("popup_access_link").href=a.cash_purchase_url}else{$("popup_usd_link").href="/";$("popup_access_link").href="/"}if(a.cash_price*100<=0){$("popup_bottom_opts").hide();$("popup_bottom_icoins").hide();$("popup_bottom_access").hide()}else{console.log(d);if(d==="icoins"){$("popup_bottom_opts").hide();$("popup_bottom_access").hide();$("popup_bottom_icoins").show()}else if(d===
"access"){$("popup_bottom_access").show();$("popup_bottom_opts").hide();$("popup_bottom_icoins").hide()}else{$("popup_bottom_opts").show();$("popup_bottom_icoins").hide();$("popup_bottom_access").hide()}}}var popup_arrow_width=40;
function popup_click_close(a){var d=$("popup");if(d&&d.visible()){var b=d.cumulativeOffset(),c=d.getDimensions(),f=b.left,g=f+c.width;b=b.top;c=b+c.height;var e=a.pointerX();a=a.pointerY();if(d.hasClassName("popup_nw")||d.hasClassName("popup_sw"))f+=popup_arrow_width;else g-=popup_arrow_width;if(e<f||e>g||a<b||a>c)d.hide()}}function show_popup(a){console.debug("show_popup()");try_show_popup(a,5,get_game_url(a))}
function try_show_popup(a,d,b){console.debug("try_show_popup(%s, %s)",d,b);if(b!=null){var c=Popup_Data_Status[b];if(c==null)console.error("No popup data found for %s",b);else if(c=="failure")console.error("No popup data could be obtained for %s",b);else if(c=="loading")if(d>0){setTimeout(function(){try_show_popup(a,d-1,b)},100);console.debug("not ready")}else console.error("Popup data could be obtained in time for %s",b);else{populate_popup_data(b);c=determine_direction(a);var f=a.cumulativeOffset(),
g=a.getDimensions(),e=$("popup");e.className="";e.addClassName("popup_"+c);var h=e.getDimensions();e=h.width;h=h.height;var i,j;switch(c){case "ne":i=f.left-e;j=f.top+g.height/2-83;break;case "nw":i=f.left+g.width-40;j=f.top+g.height/2-83;break;case "se":i=f.left-e;j=f.top+g.height/2-h+83;break;case "sw":i=f.left+g.width-40;j=f.top+g.height/2-h+83;break}$("popup").style.left=i+"px";$("popup").style.top=j+"px";$("popup").style.display="block"}}};

