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 _RESIZE_DURATION=0;
var _INITIAL_WIDTH=150;
var _INITIAL_HEIGHT=150;
var _CONTENTS_WIDTH=500;
var _CONTENTS_HEIGHT=180;
var _DEF_CONTENTS_WIDTH=500;
var _DEF_CONTENTS_HEIGHT=180;
var _ANIMATE_CAPTION=true;
var _EVAL_SCRIPTS=false;
var _EVAL_RESPONSE=false;
var MOOdalBox={init:function(_412){
this.options=Object.extend({resizeDuration:_RESIZE_DURATION,initialWidth:_INITIAL_WIDTH,initialHeight:_INITIAL_HEIGHT,contentsWidth:_CONTENTS_WIDTH,contentsHeight:_CONTENTS_HEIGHT,defContentsWidth:_DEF_CONTENTS_WIDTH,defContentsHeight:_DEF_CONTENTS_HEIGHT,animateCaption:_ANIMATE_CAPTION,evalScripts:_EVAL_SCRIPTS,evalResponse:_EVAL_RESPONSE},_412||{});
this.anchors=[];
$A($$("a")).each(function(el){
if(el.rel&&el.href&&el.rel.test("^moodalbox","i")){
el.onclick=this.click.pass(el,this);
this.anchors.push(el);
}
},this);
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.contents=new Element("div").setProperty("id","mb_contents").injectInside(this.center);
this.bottom=new Element("div").setProperty("id","mb_bottom").setStyle("display","none").injectInside(document.body);
this.closelink=new Element("a").setProperties({id:"mb_close_link",href:"#"}).injectInside(this.bottom);
this.caption=new Element("div").setProperty("id","mb_caption").injectInside(this.bottom);
new Element("div").setStyle("clear","both").injectInside(this.bottom);
this.error=new Element("div").setProperty("id","mb_error").setHTML(_ERROR_MESSAGE);
var _414=this.nextEffect.bind(this);
this.fx={overlay:this.overlay.effect("opacity",{duration:500}).hide(),resize:this.center.effects({duration:this.options.resizeDuration,onComplete:_414}),contents:this.contents.effect("opacity",{duration:500,onComplete:_414}),bottom:this.bottom.effects({duration:400,onComplete:_414})};
this.ajaxRequest=Class.empty;
},click:function(link){
return this.open(link.href,link.title,link.rel);
},open:function(_416,_417,_418){
this.href=_416;
this.title=_417;
this.rel=_418;
this.position();
this.setup(true);
this.top=Window.getScrollTop()+(Window.getHeight()/15);
this.center.setStyles({top:this.top+"px",display:""});
this.fx.overlay.custom(0.8);
return this.loadContents(_416);
},position:function(){
this.overlay.setStyles({top:Window.getScrollTop()+"px",height:Window.getHeight()+"px"});
},setup:function(open){
var _41a=$A($$("object"));
_41a.extend($$(window.ActiveXObject?"select":"embed"));
_41a.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.bottom.setStyles({opacity:"0",height:"0px",display:"none"});
this.center.className="mb_loading";
this.fx.contents.hide();
var _41e=this.nextEffect.bind(this);
var _41f=this.ajaxFailure.bind(this);
var _420={method:"get",update:this.contents,evalScripts:this.options.evalScripts,evalResponse:this.options.evalResponse,onComplete:_41e,onFailure:_41f};
this.ajaxRequest=new Ajax(this.href,_420).request();
return false;
},ajaxFailure:function(){
this.contents.setHTML("");
this.error.clone().injectInside(this.contents);
this.nextEffect();
this.center.setStyle("cursor","pointer");
this.bottom.setStyle("cursor","pointer");
this.center.onclick=this.bottom.onclick=this.close.bind(this);
},nextEffect:function(){
switch(this.step++){
case 1:
this.center.className="";
this.center.setStyle("cursor","default");
this.bottom.setStyle("cursor","default");
this.center.onclick=this.bottom.onclick="";
this.caption.setHTML(this.title);
this.contents.setStyles({width:this.options.contentsWidth+"px",height:this.options.contentsHeight+"px"});
if(this.center.clientHeight!=this.contents.offsetHeight){
this.fx.resize.custom({height:[this.center.clientHeight,this.contents.offsetHeight]});
break;
}
this.step++;
case 2:
if(this.center.clientWidth!=this.contents.offsetWidth){
this.fx.resize.custom({width:[this.center.clientWidth,this.contents.offsetWidth],marginLeft:[-this.center.clientWidth/2,-this.contents.offsetWidth/2]});
break;
}
this.step++;
case 3:
this.bottom.setStyles({top:(this.top+this.center.clientHeight)+"px",width:this.contents.style.width,marginLeft:this.center.style.marginLeft,display:""});
this.fx.contents.custom(0,1);
break;
case 4:
if(this.options.animateCaption){
this.fx.bottom.custom({opacity:[0,1],height:[0,this.bottom.scrollHeight]});
break;
}
this.bottom.setStyles({opacity:"1",height:this.bottom.scrollHeight+"px"});
case 5:
this.step=0;
}
},keyboardListener:function(_421){
},close:function(){
if(this.step<0){
return;
}
this.step=-1;
for(var f in this.fx){
this.fx[f].clearTimer();
}
this.center.style.display=this.bottom.style.display="none";
this.center.className="mb_loading";
this.fx.overlay.chain(this.setup.pass(false,this)).custom(0);
return false;
}};
Window.onDomReady(MOOdalBox.init.bind(MOOdalBox));
