/* File: js/modalbox.js, Ratio: 22.3% */

var ModalBox=Class.create(_CustomEvents_,{initialize:function(content,options){this.options=options||{};this._createPopup();this._createOverlay();if(content){this.update(content);this.show();}
this.ce_declareEventIds(['onClose']);},update:function(content){this.container.innerHTML=content;this._centerPopup();},show:function(){this._showOverlay();this._centerPopup();this.dom.show();},hide:function(event){if(event){event.stop();}
this._hideOverlay();this.dom.hide();this.ce_triggerEvent('onClose',this);},setTitle:function(title){this.title.innerHTML=title;},_createPopup:function(){this.dom=$(document.createElement('div'));this.dom.className='_modal_box';if(typeof this.options.className!='undefined'){this.dom.addClassName(this.options.className);}
this.dom.setStyle({display:'none',position:'absolute',top:0,left:0,zIndex:81});document.body.appendChild(this.dom);this.head=document.createElement('div');this.head.className='header';this.dom.appendChild(this.head);this.closeButton=$(document.createElement('a'));this.closeButton.href='#';this.closeButton.innerHTML='close';this.closeButton.className='close_button';this.closeButton.setStyle({display:'block',cssFloat:'right'});this.closeButton.observe('click',this.hide.bindAsEventListener(this));this.head.appendChild(this.closeButton);this.title=document.createElement('h3');this.head.appendChild(this.title);this.container=$(document.createElement('div'));this.dom.appendChild(this.container);},_createOverlay:function(){this.overlay=$(document.createElement('div'));this.overlay.className='_modal_box_overlay';var pageSize=this._getPageSize();this.overlay.setStyle({display:'none',position:'absolute',top:0,left:0,backgroundColor:'black',opacity:this.options.opacity||0.5,width:pageSize[0]+'px',height:pageSize[1]+'px',zIndex:80});document.body.appendChild(this.overlay);this.overlay.observe('click',this.hide.bindAsEventListener(this));},_centerPopup:function(){var boxDims=this.dom.getDimensions();var viewportDims=document.viewport.getDimensions();var scrollOffset=document.viewport.getScrollOffsets();var posX=Math.round((viewportDims.width-boxDims.width)/2);var posY=Math.round((viewportDims.height-boxDims.height)/2)+scrollOffset.top;this.dom.setStyle({left:posX+'px',top:posY+'px'});},_showOverlay:function(){this.overlay.show();},_hideOverlay:function(){this.overlay.hide();},_getPageSize:function(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=window.innerWidth+window.scrollMaxX;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;}else{windowWidth=self.innerWidth;}
windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=xScroll;}else{pageWidth=windowWidth;}
return[pageWidth,pageHeight];}});
