var HUDManager={initialize:function(){var d=this;this.active=false;this.huds=new Array();var g=new Element("table",{id:"hud"});var i=new Element("tr");var e=new Element("td",{id:"hud_topleft","class":"hud_corner"});var obj = this;this.close=new Element("img",{id:"hud_close",src:"images/hud/hud_close.png"}).observe("click",function(){d.hideHUD()}).observe('mouseover',function(){obj.close.writeAttribute('src','images/hud/hud_closeover.png');}).observe('mouseout',function(){obj.close.writeAttribute('src','images/hud/hud_close.png');});e.update(this.close);this.title=new Element("td",{id:"hud_topcenter"});var h=new Element("td",{id:"hud_topright","class":"hud_corner"});i.insert(e).insert(this.title).insert(h);var f=new Element("tr");var a=new Element("td",{id:"hud_middleleft"});var l=new Element("td",{id:"hud_middlecenter"});this.body=new Element("div",{id:"hud_body"});this.button_bar=new Element("div",{id:"hud_buttons"});l.insert(this.body).insert(this.button_bar);var c=new Element("td",{id:"hud_middleright"});f.insert(a).insert(l).insert(c);var m=new Element("tr");var b=new Element("td",{id:"hud_bottomleft","class":"hud_corner"});var k=new Element("td",{id:"hud_bottomcenter"});var j=new Element("td",{id:"hud_bottomright","class":"hud_corner"});m.insert(b).insert(k).insert(j);g.insert(i).insert(f).insert(m);this.hud=g;Event.observe(window,"resize",function(){d.updateHUDPosition()});$$(".huds_enabled").first().insert(g);this.hideHUD()},addHUDToQueue:function(a,b){if(!this.init){this.initialize();this.init=true}if(b){this.huds.unshift($H(a))}else{this.huds.push($H(a))}if(!this.isHUDActive()){this.showNextHUD()}},showNextHUD:function(){if(this.hasNextHUD()){var d=this.huds.pop();this.title.update(d.get("title"));this.body.update(d.get("body"));var b=this;var a=new Element("table",{id:"hud_button_table"});var c=new Element("tr");a.update(c);$H(d.get("buttons")).each(function(f){var e=new Element("td");e.update(b.getHUDButton(f.key,f.value));c.insert(e)});this.button_bar.update(a);if(d.get("close")){document.observe("keydown",this.processKeydown);this.close.show()}else{this.close.hide()}this.showHUD()}},getHUDButton:function(a,c){var b=(new Element("table")).addClassName("hud_button");var e=new Element("tr");b.update(e);e.insert((new Element("td")).addClassName("ButtonLeft"));e.insert((new Element("td")).addClassName("ButtonLabel").update(a));e.insert((new Element("td")).addClassName("ButtonRight"));var d=this;b.observe("click",function(){d.processHUDAction(c)});return b},processHUDAction:function(a){a();this.hideHUD()},showHUD:function(){this.active=true;this.hud.show();this.updateHUDPosition()},processKeydown:function(d){document.stopObserving("keydown",this.processKeydown);var a=d.keyCode;var b;if(d.DOM_VK_ESCAPE){b=d.DOM_VK_ESCAPE}else{b=27}var c=String.fromCharCode(a).toLowerCase();if(c.match(/x|o|c/)||(a==b)){HUDManager.hideHUD()}},hideHUD:function(){this.active=false;this.hud.hide();this.showNextHUD()},hasNextHUD:function(){return this.huds.size()>0},isHUDActive:function(){return this.active},updateHUDPosition:function(){if(this.isHUDActive()){var a=document.viewport;var c=a.getWidth()/2-(this.hud.getWidth()/2)+a.getScrollOffsets().left;var b=Math.min((window.innerHeight||document.documentElement.clientHeight)/2-(this.hud.getHeight()/2)+(window.pageYOffset||document.documentElement.scrollTop),275);this.hud.setStyle({top:b+"px",left:c+"px",})}}};
