var ModalBox=Class.create();ModalBox.prototype={initialize:function(){this.createGui();if(arguments[0]){this.theme=arguments[0]();}
else{this.theme=ModalBox.Themes.blackAndWhite();}},setCloseListener:function(listener){this.closeListener=listener;},createGui:function(){this.modalBack=$(Builder.node('div',{id:"modalBack",style:'position:absolute; z-index:998;'}));this.modalMain=$(Builder.node('div',{id:"modalMain",style:'position:absolute; z-index:999;'}));this.modalContent=Builder.node('div',{id:"modalContent",style:'position:relative; top:30px; left:13px;'});this.modalCloseBox=Builder.node('div',{id:"modalCloseBox",style:'position:absolute; top:0; left:0;'});this.modalMain.appendChild(this.modalContent);this.modalMain.appendChild(this.modalCloseBox);},setBackgroundPosition:function(){this.modalBack.setStyle({top:posTop()+'px',left:posLeft()+'px'});},setBackgroundSize:function(){this.modalBack.setStyle({height:pageHeight()+'px',width:pageWidth()+'px'});},installListener:function(){var current=this;window.onscroll=function(){current.setBackgroundPosition();};window.onresize=function(){current.setBackgroundSize();};this.modalCloseBox.onclick=function(){current.closeDialog();return false;};document.onkeyup=function(e){var key=e?e.which:event.keyCode;if(key==Event.KEY_ESC){current.closeDialog();return false;}
return true;};},showDialog:function(dialogContentElement,width,height){this.installListener();this.modalBack.setStyle({display:'none'});document.body.appendChild(this.modalBack);this.setBackgroundPosition();this.setBackgroundSize();this.addToBody(this.modalMain);var top=((pageHeight()-height)/2)+this.theme.getMainTopShift();var left=((pageWidth()-width)/2)+this.theme.getMainLeftShift();this.modalMain.setStyle({top:posTop()+(top<0?0:top)+'px',left:posLeft()+(left<0?0:left)+'px',height:height+'px',width:width+'px'});this.backupedNode=dialogContentElement;dialogContentElement.remove();var myClone=dialogContentElement.cloneNode(true);myClone.setStyle({display:'block'});this.modalContent.appendChild(myClone);this.theme.apply(this);Effect.Appear(this.modalBack,{duration:0.5,from:0,to:0.5});},closeDialog:function(){this.modalBack.remove();this.modalMain.remove();this.modalCloseBox.onclick=null;window.onscroll=null;window.onresize=null;document.onkeyup=null;this.addToBody(this.backupedNode);if(this.closeListener){this.closeListener();}},addToBody:function(anElement){var obody=document.getElementsByTagName('body')[0];obody.insertBefore(anElement,obody.firstChild);}};ModalBox.Themes={blackAndWhite:function(){return{getMainTopShift:function(){return-20;},getMainLeftShift:function(){return-12;},apply:function(modalBox){var settings={tl:false,tr:{radius:20},bl:{radius:20},br:{radius:20},antiAlias:true,autoPad:false};var curvy=new curvyCorners(settings,modalBox.modalContent);curvy.applyCornersToAll();}};},gray:function(){return{getMainTopShift:function(){return-20;},getMainLeftShift:function(){return 0;},apply:function(modalBox){$(modalBox.modalMain).addClassName('gray');$(modalBox.modalContent).addClassName('gray');$(modalBox.modalCloseBox).addClassName('gray');$(modalBox.modalContent).setStyle({top:'0',left:'0'});$(modalBox.modalCloseBox).setStyle({top:'4px',left:'5px'});var radius=10;var settings={tl:false,tr:false,bl:{radius:radius},br:{radius:radius},antiAlias:true,autoPad:false};var curvy=new curvyCorners(settings,modalBox.modalContent);curvy.applyCornersToAll();}};}};function pageWidth(){return window.innerWidth!=null?window.innerWidth:document.documentElement&&document.documentElement.clientWidth?document.documentElement.clientWidth:document.body!=null?document.body.clientWidth:null;}
function pageHeight(){return window.innerHeight!=null?window.innerHeight:document.documentElement&&document.documentElement.clientHeight?document.documentElement.clientHeight:document.body!=null?document.body.clientHeight:null;}
function posLeft(){return typeof window.pageXOffset!='undefined'?window.pageXOffset:document.documentElement&&document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft?document.body.scrollLeft:0;}
function posTop(){return typeof window.pageYOffset!='undefined'?window.pageYOffset:document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop?document.body.scrollTop:0;}

