
if(!window.Header){var Header={};}
else{console.error('Header object already exists.');}
Header.init=function(){if(window.AuthUI&&window.Auth){Header.auth.checkLogin();Event.observe(document,'iwin:auth:login:success',function(event){Header.auth.loggedIn(event.memo.username);});Event.observe(document,'iwin:auth:logout:success',function(event){Header.auth.loggedOut();});Header.populatePlayerCounter();Event.observe('sign_in_link','click',function(event){AuthUI.Login.show(event.element())
Event.stop(event);});Event.observe('sign_up_link','click',function(event){AuthUI.Register.show(event.element())
Event.stop(event);});Event.observe('sign_out_link','click',function(event){Auth.logout();Event.stop(event);});}else{console.error('User authentication functions not available.');}
Event.observe(document,'click',Header.navMenu.close);Event.observe(document,'click',Header.userMenu.close);Event.observe(window,'resize',Header.navMenu.reposition);Event.observe(window,'resize',Header.userMenu.reposition);Event.observe('user_nav','click',Header.userMenu.toggle);Event.observe('user_nav_dropdown_arrow','click',Header.userMenu.toggle);Event.observe('nav_browser','click',Header.navMenu.toggle);Event.observe('game_search','focus',Header.search.focusHandler);Event.observe('game_search','blur',Header.search.blurHandler);Event.observe('search_form','submit',Header.search.cleanInput);}
Event.observe(document,'dom:loaded',Header.init);Header.search={};Header.search.blurHandler=function(){if(i$('game_search').value===''){i$('game_search').addClassName('greyed');i$('game_search').value='Search iWin.com';}}
Header.search.focusHandler=function(){i$('game_search').removeClassName('greyed');if(i$('game_search').value==='Search iWin.com'){i$('game_search').value='';}}
Header.search.cleanInput=function(){i$('game_search').value=i$('game_search').value.replace(/[|<>()'"]/g,'');}
Header.auth={checkLogin:function(){if(!this.isSuppressed){var username=Auth.getCurrentUsername();if(username)
this.loggedIn(username);else
this.loggedOut();}},loggedIn:function(username){if(!this.isSuppressed){i$('user_logged_out').style.display='none';i$('user_logged_in').style.display='inline';i$('user_nav').innerHTML=username+'&#160;&#160;';i$('greeting_word').innerHTML=Header.selectGreeting();Header.cart.populate();}},loggedOut:function(){if(!this.isSuppressed){i$('user_logged_out').style.display='inline';i$('user_logged_in').style.display='none';i$('user_nav_drop_down').style.display='none';Header.cart.hide();}},isSuppressed:false,suppress:function(){this.isSuppressed=true;i$('user_logged_out').style.display='none';i$('user_logged_in').style.display='none';i$('user_nav_drop_down').style.display='none';}};Header.cart={hide:function(){i$('cart_logged_in_not_empty').style.display='none';},show:function(){if(!this.isSuppressed)
i$('cart_logged_in_not_empty').style.display='inline';},isSuppressed:false,suppress:function(){this.isSuppressed=true;this.hide();},populate:function(){if(!this.isSuppressed){new Ajax.Request('/orders/current/summary',{method:'GET',requestHeaders:{'Accept':'application/json'},onException:function(req,e){console.error(e);},onSuccess:function(req){console.debug(req.status);console.debug('start handling order summary');var order=req.responseJSON;if(order.count>0){i$('cart_num_items').innerHTML=order.count;if(order.count==1){i$('cart_items_plural').innerHTML='';}else{i$('cart_items_plural').innerHTML='s';}
Header.cart.show();}else{Header.cart.hide();}
console.debug('done handling order success');},onFailure:function(req){console.error(req.status);}});}}};function testEnableUser(event){console.debug('testEnableUser() with event: %s',event);i$('user_nav').innerHTML='Destroyer of all';if(Event.element(event).id=='testEnableNormal'){i$('user_nav').innerHTML='Normal?';}
if(Event.element(event).id=='testEnableNarrow'){i$('user_nav').innerHTML='iii';}
if(Event.element(event).id=='testEnableWide'){i$('user_nav').innerHTML='MMMMMMMMMMMM';}
i$('user_logged_out').style.display='none';i$('user_logged_in').style.display='inline';i$('greeting_word').innerHTML=Header.selectGreeting();}
function testDisableUser(){console.debug('testDisableUser()');i$('user_logged_out').style.display='inline';i$('user_logged_in').style.display='none';i$('user_nav_drop_down').style.display='none';}
Header.selectGreeting=function(){var greetings=['Hello','Hi there',"G'day",'Yo','Howdy','Whazzup','Aloha','Hola','Greetings','Heya','Ellohay','Pree-vyet','Dobriy ranok','Sai','Bonjour','Hi'];return greetings[Math.floor(Math.random()*greetings.length)];}
Header.populatePlayerCounter=function(){new Ajax.Request('/user/population',{method:'GET',onException:function(req,e){console.error(e);setTimeout(function(){i$('player_counter').innerHTML="???";},0);},onSuccess:function(req){var num=req.responseText;setTimeout(function(){i$('player_counter').innerHTML=Util.addCommas(num);},0);},onFailure:function(req){console.error(req.status);setTimeout(function(){i$('player_counter').innerHTML="???";},0);}});}
function widenHeader(newWidth){console.debug('widenHeader');if(typeof(newWidth)!="number"){console.error("widenHeader called with invalid width: %s",newWidth);return;}
if(newWidth<=970){return;}
var deltaWidth=newWidth-970;i$("site_header").setStyle({width:newWidth+'px'});tophalfDomObj=i$("top_half");tophalfDomObj.setStyle({backgroundPosition:deltaWidth+'px 0px'});var elementStr='<div id="spacer" style="width:'+deltaWidth+'px; float:left;">&nbsp;</div>';tophalfDomObj.insert({top:elementStr});}
function widenFooter(newWidth){if(typeof(newWidth)!="number"){console.error("widenFooter called with invalid width: %s",newWidth);return;}
if(newWidth<=970){return;}
var newWidthStr=newWidth.toString()+'px';i$("global_footer").setStyle({width:newWidthStr});}
Header.userMenu={};Header.userMenu.reposition=function(){console.debug("user_nav reposition");if(i$('user_nav_drop_down').style.display=='block')
{Header.userMenu.position();}}
Header.userMenu.close=function(event){var menu=i$('user_nav_drop_down');if(menu.visible())
{if(!event)
menu.hide();else{var header=i$('user_nav');var headerArrow=i$('user_nav_dropdown_arrow');var x=event.pointerX();var y=event.pointerY();if(!Util.isOverElement(x,y,menu)&&!Util.isOverElement(x,y,header)&&!Util.isOverElement(x,y,headerArrow))
{menu.hide();}}}}
Header.userMenu.toggle=function(){console.debug("Header.userMenu.toggle");if(i$('user_nav_drop_down').style.display=='block')
{i$('user_nav_drop_down').style.display='none';}
else
{Header.userMenu.position();i$('user_nav_drop_down').style.display='block';}}
Header.userMenu.position=function(){console.debug("Header.userMenu.position");var adj_x=-18;var adj_y=-11;var item=i$('user_nav_drop_down');var target=i$('user_nav');var t_width=target.getWidth();var t_pos=target.cumulativeOffset();var t_left=t_pos.left;var t_top=t_pos.top;var t_height=target.getHeight();console.debug("user target x=%d, y=%d, height=%d",t_left,t_top,t_height);var pos_x=(t_left+adj_x)+'px';var pos_y=(t_top+adj_y+t_height)+'px';console.debug("user source dx=%d, dy=%d, x=%d, y=%d",adj_x,adj_y,pos_x,pos_y);if(t_width<70){t_width=70;}
new_width=(t_width)+'px';item.style.width=new_width;item.style.left=(t_left+adj_x)+'px';item.style.top=(t_top+adj_y+t_height)+'px';}
Header.navMenu={};Header.navMenu.reposition=function(){if(i$('nav_drop_down').style.display=='block')
{Header.navMenu.position();}}
Header.navMenu.close=function(event){var menu=i$('nav_drop_down');if(menu.visible())
{if(!event)
menu.hide();else{var x=event.pointerX();var y=event.pointerY();var header=i$('nav_browser');if(!Util.isOverElement(x,y,menu)&&!Util.isOverElement(x,y,header))
{menu.hide();}}}}
Header.navMenu.toggle=function(){if(i$('nav_drop_down').style.display=='block')
{i$('nav_drop_down').style.display='none';}
else
{Header.navMenu.position();i$('nav_drop_down').style.display='block';}}
Header.navMenu.position=function(){var adj_x=-18;var adj_y=-14;var item=i$('nav_drop_down');var target=i$('nav_browser');var t_pos=target.cumulativeOffset();var t_left=t_pos.left;var t_top=t_pos.top;var t_height=target.getHeight();console.debug("target x=%d, y=%d, height=%d",t_left,t_top,t_height);var pos_x=(t_left+adj_x)+'px';var pos_y=(t_top+adj_y+t_height)+'px';console.debug("source dx=%d, dy=%d, x=%d, y=%d",adj_x,adj_y,pos_x,pos_y);item.style.left=(t_left+adj_x)+'px';item.style.top=(t_top+adj_y+t_height)+'px';}