
var Popup_Data_Cache={};var Popup_Data_Status={};var _hasICoins=false;Event.observe(document,'dom:loaded',function(){$$('.poppable').each(function(elem){make_poppable(elem,750);});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);});updatePopupForIcoins();});function updatePopupForIcoins(){var resource='/icoins/account/summary.json';new Ajax.Request(resource,{method:'GET',requestHeaders:{'Accept':'application/json'},onException:function(req,e){console.error("updatePopupForIcoins caused an error: %s",e);updatePopupDisplayForIcoins(false);},onSuccess:function(req){updatePopupDisplayForIcoins(true);},onFailure:function(req){console.debug('updatePopupForIcoins determined no icoins user, with status: %s',req.status);updatePopupDisplayForIcoins(false);}});}
function updatePopupDisplayForIcoins(hasIcoins){console.debug('updatePopupDisplayForIcoins with hasIcoins: %s',hasIcoins);_hasICoins=hasIcoins;bottomOptsObj=$('popup_bottom_opts');bottomIcoinsObj=$('popup_bottom_icoins');if(Object.isElement(bottomOptsObj)&&Object.isElement(bottomIcoinsObj)){if(hasIcoins){bottomOptsObj.hide();bottomIcoinsObj.show();}else{bottomOptsObj.show();bottomIcoinsObj.hide();}}
else
{console.debug('updatePopupDisplayForIcoins with invalid dom objs');}}
function cache_dom_data(game_url){if(game_url==null||Popup_Data_Status[game_url])return;Popup_Data_Status[game_url]='loading';new Ajax.Request(game_url+'.xml',{method:'get',requestHeaders:{'Accept':'application/xml'},onSuccess:function(req){var gdata=req.responseXML;setTimeout(function(){try{var title=gdata.getElementsByTagName('title')[0].firstChild.data;var sdesc=gdata.getElementsByTagName('short-description')[0].firstChild.data;var ldesc=gdata.getElementsByTagName('long-description')[0].firstChild.data;var img_path=gdata.getElementsByTagName('images-url')[0].firstChild.data;var release_date=gdata.getElementsByTagName('release-date')[0].firstChild.data;var reviews_url=gdata.getElementsByTagName('reviews-url')[0].firstChild.data;var self_url=gdata.getElementsByTagName('game')[0].getAttribute('self');var download_url=null;if(gdata.getElementsByTagName('download-url')[0])
{download_url=gdata.getElementsByTagName('download-url')[0].firstChild.data;}
var download_cmd=null;if(gdata.getElementsByTagName('download-cmd')[0])
{download_cmd=gdata.getElementsByTagName('download-cmd')[0].firstChild.data;}
var cash_purchase_url=null;if(gdata.getElementsByTagName('cash-purchase-url')[0])
{cash_purchase_url=gdata.getElementsByTagName('cash-purchase-url')[0].firstChild.data;}
var icoins_purchase_url=null;if(gdata.getElementsByTagName('icoins-purchase-url')[0])
{icoins_purchase_url=gdata.getElementsByTagName('icoins-purchase-url')[0].firstChild.data;}
var icoins_learnhow_url=null;if(gdata.getElementsByTagName('icoins-learnhow-url')[0])
{icoins_learnhow_url=gdata.getElementsByTagName('icoins-learnhow-url')[0].firstChild.data;}
var trial_duration=gdata.getElementsByTagName('trial-duration')[0].firstChild.data;var cash_price=gdata.getElementsByTagName('money-price')[0].firstChild.data;var icoins_price=gdata.getElementsByTagName('icoins-price')[0].firstChild.data;var icoins_cash_price=gdata.getElementsByTagName('icoins-best-dollar-value')[0].firstChild.data;var rating=null;if(gdata.getElementsByTagName('rating')[0])
{rating=gdata.getElementsByTagName('rating')[0].firstChild.data;}
var categories=gdata.getElementsByTagName('category');var cats={};for(var i=0;i<categories.length;i++){var ctext=categories[i].firstChild.data.escapeHTML();var cname=categories[i].getAttribute('cname');var c_url=categories[i].getAttribute('xlink:href');cats[ctext]=c_url;}
Popup_Data_Cache[game_url]={"title":title,"sdesc":sdesc,"ldesc":ldesc,"img_path":img_path,"release_date":release_date,"reviews_url":reviews_url,"self_url":self_url,"download_url":download_url,"download_cmd":download_cmd,"cash_purchase_url":cash_purchase_url,"icoins_purchase_url":icoins_purchase_url,"icoins_learnhow_url":icoins_learnhow_url,"trial_duration":trial_duration,"icoins_cash_price":icoins_cash_price,"rating":rating,"cash_price":cash_price,"icoins_price":icoins_price,"categories":cats};Popup_Data_Status[game_url]='success';}
catch(err){Popup_Data_Status[game_url]='failure';console.error(err);console.error(gdata);}},0);},onFailure:function(req){Popup_Data_Status[game_url]='failure';console.error(req.status);}});}
function determine_direction(elem){var window_dimensions=document.viewport.getDimensions();var element_dimensions=elem.getDimensions();var element_position=elem.viewportOffset();var window_horz_center=window_dimensions.width/2;try{if(window.external.IsInArcade())window_horz_center+=90;}catch(err){}
var window_vert_center=window_dimensions.height/2;var elem_horz_center=(element_dimensions.width/2)+element_position.left;var elem_vert_center=(element_dimensions.height/2)+element_position.top;var dir;if(elem_vert_center>window_vert_center){if(elem_horz_center>window_horz_center){dir='se';}else{dir='sw';}}else{if(elem_horz_center>window_horz_center){dir='ne';}else{dir='nw';}}
return dir;}
function get_game_url(elem){var attempts=0;while(elem.tagName!='a'&&elem.tagName!='A'&&attempts<5){elem=elem.parentNode;attempts++;}
if(attempts==5){console.error('could not locate game url within 5 ancestor nodes');return null;}else{return elem.href;}}
var pop_timer=null;function make_poppable(elem,delay){elem=$(elem);Event.observe(elem,'mouseover',function(){setTimeout(function(){cache_dom_data(get_game_url(elem));},100);pop_timer=setTimeout(function(){show_popup(elem);},delay)});Event.observe(elem,'mouseout',function(){if(pop_timer)clearTimeout(pop_timer);});}
function populate_popup_data(game_url,tries){var game=Popup_Data_Cache[game_url];$('popup_game_title').update(game.title);try
{$('popup_game_desc').update(game.sdesc);}
catch(err)
{$('popup_game_desc').update('Could not render short description due to invalid XHTML');}
$('popup_game_img').src=game.img_path+'/fea_3.jpg';$('popup_ddp_link').href=game.self_url;var unformattedDuration=game.trial_duration;if(unformattedDuration==0){$('popup_game_play').innerHTML="Free Play";}else{$('popup_game_play').innerHTML=unformattedDuration+' min. trial';}
var rating=game.rating;var stars=$('popup_star_rating');stars.width=90;stars.height=16;if(game.rating==null){stars.src='/images/game_data_popup/stars_unknown.gif';}else{var suffix=Math.round(rating/20);stars.src='/images/game_data_popup/stars_'+suffix+'.gif';}
var cats=[];for(var cat in game.categories){cats.push("<a href=\""+game.categories[cat]+"\">"+cat+"</a>");}
if(cats.length>1){$('popup_category_label').update('Categories: ');}else{$('popup_category_label').update('Category: ');}
$('popup_game_categories').innerHTML=cats.join(', ');var unformattedDate=game.release_date;var formattedDate=unformattedDate.substring(5,7)+'\/'+unformattedDate.substring(8,10)+'\/'+unformattedDate.substring(0,4);$('popup_release_date').update(formattedDate);$('popup_dl_button_a').href=game.download_url;var game_install=false;try{game_install=window.external.IsGameInstalled(game.download_cmd.split('/')[2]);}
catch(e){game_install=false;}
$('popup_dl_button_a').removeClassName('download').removeClassName('play-free').removeClassName('play-now');if(game_install){$('popup_dl_button_a').addClassName('play-now');}else if(unformattedDuration==0){$('popup_dl_button_a').addClassName('play-free');}else{$('popup_dl_button_a').addClassName('download');}
console.debug('built bottom contents');$('popup_icn_price').innerHTML=Util.addCommas(game.icoins_price)+' iCoins';if(game.icoins_purchase_url!=null)
{$('popup_icn_link').href=game.icoins_purchase_url;}else{$('popup_icn_link').href='/';}
var icn_value=game.icoins_cash_price;if(icn_value>=1){$('popup_icn_value').innerHTML="&#36;"+icn_value;}else{$('popup_icn_value').innerHTML=icn_value+"&#162;";}
if(game.icoins_learnhow_url!=null)
{$('popup_icn_learnhow_link').href=game.icoins_learnhow_url;}else{$('popup_icn_learnhow_link').href='/';}
var usd_price=game.cash_price;if(usd_price>=1){$('popup_usd_price').innerHTML="&#36;"+usd_price;}else{$('popup_usd_price').innerHTML=(usd_price*100)+"&#162;";}
if(game.cash_purchase_url!=null)
{$('popup_usd_link').href=game.cash_purchase_url;}else{$('popup_usd_link').href='/';}
if(game.cash_price*100<=0)
{$('popup_bottom_opts').hide();$('popup_bottom_icoins').hide();}else{if(_hasICoins)
{$('popup_bottom_opts').hide();$('popup_bottom_icoins').show();}else{$('popup_bottom_opts').show();$('popup_bottom_icoins').hide();}}}
var popup_arrow_width=40;function popup_click_close(event){var popup=$('popup');if(popup&&popup.visible())
{var position=popup.cumulativeOffset();var dimensions=popup.getDimensions();var left=position.left;var right=left+dimensions.width;var top=position.top;var bottom=top+dimensions.height;var x=event.pointerX();var y=event.pointerY();if(popup.hasClassName('popup_nw')||popup.hasClassName('popup_sw'))
{left+=popup_arrow_width;}
else
{right-=popup_arrow_width;}
if(x<left||x>right||y<top||y>bottom)
{popup.hide();}}}
function show_popup(elem){console.debug('show_popup()');try_show_popup(elem,5,get_game_url(elem));}
function try_show_popup(elem,tries,game_url){console.debug('try_show_popup(%s, %s)',tries,game_url);if(game_url==null)return;var status=Popup_Data_Status[game_url];if(status==null)
{console.error('No popup data found for %s',game_url);return;}
else if(status=='failure')
{console.error('No popup data could be obtained for %s',game_url);return;}
else if(status=='loading')
{if(tries>0)
{setTimeout(function(){try_show_popup(elem,tries-1,game_url);},100);console.debug('not ready');}
else
{console.error('Popup data could be obtained in time for %s',game_url);}
return;}
populate_popup_data(game_url);var dir=determine_direction(elem);var element_position=elem.cumulativeOffset();var element_dimensions=elem.getDimensions();var popup=$('popup');popup.className='';popup.addClassName('popup_'+dir);var popup_dimensions=popup.getDimensions();var popup_fullwidth=popup_dimensions.width;var popup_fullheight=popup_dimensions.height;var adj_vert=83;var adj_horz=40;var popup_left,popup_top;switch(dir){case'ne':popup_left=(element_position.left-popup_fullwidth);popup_top=(element_position.top+(element_dimensions.height/2))-adj_vert;break;case'nw':popup_left=element_position.left+element_dimensions.width-adj_horz;popup_top=(element_position.top+(element_dimensions.height/2))-adj_vert;break;case'se':popup_left=(element_position.left-popup_fullwidth);popup_top=(element_position.top+(element_dimensions.height/2))-popup_fullheight+adj_vert;break;case'sw':popup_left=element_position.left+element_dimensions.width-adj_horz;popup_top=(element_position.top+(element_dimensions.height/2))-popup_fullheight+adj_vert;break;}
$('popup').style.left=popup_left+'px';$('popup').style.top=popup_top+'px';$('popup').style.display='block';return;}