
var _ERROR_MESSAGE="Oops.. there was a problem with your request.<br /><br />"+"Please try again.<br /><br />"+"<em>Click anywhere to close.</em>";var AMMOOdalBox={init:function(opt){this.options=opt;if(!$chk(this.options)){this.options={};}
if(!$chk(this.options.contentsWidth)){this.options.contentsWidth=500;}
if(!$chk(this.options.contentsHeight)){this.options.contentsHeight=400;}
if(!$chk(this.options.evalScripts)){this.options.evalScripts=false;}
if(!$chk(this.options.evalResponse)){this.options.evalResponse=false;}
this.options.defContentsWidth=this.options.contentsWidth;this.options.initialWidth=this.options.contentsWidth;this.options.initialHeight=this.options.contentsHeight;this.options.defContentsHeight=this.options.contentsHeight;this.eventKeyDown=this.keyboardListener.bindWithEvent(this);this.eventPosition=this.position.bind(this);this.overlay=new Element('div').setProperty('id','mb_overlay').injectInside(document.body);this.center=new Element('div').setProperty('id','mb_center').setStyles({width:this.options.initialWidth+'px',height:this.options.initialHeight+'px',marginLeft:'-'+(this.options.initialWidth/2)+'px',display:'none'}).injectInside(document.body);this.wframe=new Element('div').setProperty('id','mb_wframe').injectInside(this.center);this.closelink=new Element('a').setProperties({id:'mb_close_link',href:'#'}).injectInside(this.wframe);this.closelink.onclick=this.overlay.onclick=this.close.bind(this);this.contents=new Element('div').setProperty('id','mb_contents').injectInside(this.wframe);this.error=new Element('div').setProperty('id','mb_error').set('html',_ERROR_MESSAGE);var nextEffect=this.nextEffect.bind(this);this.fx={overlay:new Fx.Tween(this.overlay,{property:"opacity",duration:400}).set(0),contents:new Fx.Tween(this.contents,{property:"opacity",duration:0,onComplete:nextEffect})};this.ajaxRequest=Class.empty;},click:function(link){return this.open(link.href,link.title,link.rel);},open:function(sLinkHref,sLinkTitle,sLinkRel){this.href=sLinkHref;this.title=sLinkTitle;this.rel=sLinkRel;this.position();this.setup(true);this.top=Window.getScrollTop()+(Window.getHeight()/15);this.center.setStyles({top:this.top+'px',display:''});this.fx.overlay.start(0.7);return this.loadContents(sLinkHref);},position:function(){this.overlay.setStyles({top:Window.getScrollTop()+'px',height:Window.getHeight()+'px'});},setup:function(open){var elements=$A($$('object'));elements.extend($$(window.ActiveXObject?'select':'embed'));elements.each(function(el){el.style.visibility=open?'hidden':'';});var fn=open?'addEvent':'removeEvent';window[fn]('scroll',this.eventPosition)[fn]('resize',this.eventPosition);document[fn]('keydown',this.eventKeyDown);this.step=0;},loadContents:function(){if(this.step)return false;this.step=1;var aDim=this.rel.match(/[0-9]+/g);this.options.contentsWidth=(aDim&&(aDim[0]>0))?aDim[0]:this.options.defContentsWidth;this.options.contentsHeight=(aDim&&(aDim[1]>0))?aDim[1]:this.options.defContentsHeight;this.center.className='mb_loading';this.fx.contents.set(0);var nextEffect=this.nextEffect.bind(this);var ajaxFailure=this.ajaxFailure.bind(this);var ajaxOptions={method:'get',url:this.href,update:this.contents,evalScripts:this.options.evalScripts,evalResponse:this.options.evalResponse,onComplete:nextEffect,onFailure:ajaxFailure};this.ajaxRequest=new Request.HTML(ajaxOptions).send();return false;},ajaxFailure:function(){this.contents.set('html','');this.error.clone().injectInside(this.contents);this.nextEffect();this.center.setStyle('cursor','pointer');},nextEffect:function(){switch(this.step++){case 1:this.center.className='';this.center.setStyle('cursor','default');this.center.onclick='';this.contents.setStyles({width:this.options.contentsWidth+"px",height:this.options.contentsHeight+"px"});this.step++;case 2:this.center.clientWidth==this.contents.offsetWidth
this.step++;case 3:this.fx.contents.start(1);break;case 4:case 5:this.step=0;}},keyboardListener:function(event){if((event.control&&event.key=='w')||(event.control&&event.key=='x')||(event.key=='esc')){this.close();event.stop();}},close:function(){if(this.step<0)return false;this.step=-1;for(var f in this.fx)this.fx[f].cancel();this.center.style.display='none';this.center.className='mb_loading';this.fx.overlay.chain(this.setup.pass(false,this)).start(0);return false;}};
