var StoutBox=new Class({Implements:[Options],imgWidth:null,imgHeight:null,pic_opener:null,imgSrc:null,titleTxt:null,theOverlay:null,theLoading:null,theClosebtn:null,theTitle:null,options:{transitionTime:1000,theBox:null,theImage:null,items:null,spacer:5,boxWidth:200,boxHeight:200,overlayOpacity:.8,overOpacity:.5},initialize:function(options){this.setOptions(options);if(this.options.theBox==null){var myBox=new Element('div',{'id':'stoutbox'});this.options.theBox=myBox;$(document.body).grab(myBox);}
var myCloseBtn=new Element('div',{'id':'closebtn','styles':{'opacity':0,'cursor':'pointer','z-index':10001}});this.theClosebtn=myCloseBtn;this.theClosebtn.set('tween',{duration:250,ease:'linear'});this.theClosebtn.addEvents({'mouseenter':function(){this.tween('opacity',.75);},'mouseleave':function(){this.tween('opacity',.6);}});var myTitle=new Element('h3',{'id':'box_title','styles':{'opacity':0,'z-index':10006}});this.theTitle=myTitle;this.options.theBox.grab(this.theTitle);this.options.theBox.grab(this.theClosebtn);var myImage=new Element('div',{'id':'boximage','styles':{'opacity':0,'z-index':9999,'position':'absolute','left':this.options.spacer,'top':this.options.spacer}});this.options.theImage=myImage;this.options.theBox.grab(myImage);this.options.theBox.setStyles({'opacity':0,'width':this.options.boxWidth,'height':this.options.boxHeight,'top':(window.getSize().y-this.options.boxHeight)/2,'left':(window.getSize().x-this.options.boxWidth)/2});this.options.theBox.set('morph',{duration:this.options.transitionTime,transition:'cubic:out',link:'ignore'});var myOverlay=new Element('div',{'id':'overlay','styles':{'opacity':0}});this.theOverlay=myOverlay;$(document.body).grab(myOverlay);this.theOverlay.setStyles({'top':-$(window).getScroll().y,'height':$(window).getScrollSize().y+$(window).getScroll().y});this.theOverlay.set('tween',{duration:500,transition:'quad:out',onComplete:function(){if(this.theOverlay.getStyle('opacity')==0){this.hidePic();}
else{this.showBox.delay(100,this,null);}}.bind(this)});if(this.options.items==null){this.options.items=$(document.body).getElements('a[rel=stoutbox]');}
this.options.items.each(function(v,k){v.set('tween',{duration:300,transition:'cubic:out'});var thisImg=$(v.getElement('img'));thisImg.set('tween',{duration:300,transition:'cubic:out'});var overOp=this.options.overOpacity;var self=this;v.addEvents({'click':function(event){if(event)event.stop();self.imgSrc=this.getAttribute('href');self.titleTxt=this.getElement('img').getAttribute('title');self.showOverlay();},'mouseenter':function(){this.tween('opacity',overOp);}.bind(thisImg),'mouseleave':function(){this.tween('opacity','1');}.bind(thisImg)});},this);},showOverlay:function(){this.theOverlay.tween('opacity',this.options.overlayOpacity);this.theOverlay.addEvents({'click':function(){this.hideOverlay();this.hideBox();this.theOverlay.removeEvent('click');this.theClosebtn.removeEvent('click');}.bind(this)});this.theClosebtn.addEvents({'click':function(){this.hideOverlay();this.hideBox();this.theOverlay.removeEvent('click');this.theClosebtn.removeEvent('click');}.bind(this)});},showBox:function(){var tempX=(window.getSize().x-this.options.theBox.getSize().x)/2;var tempY=(window.getSize().y-this.options.theBox.getSize().y)/2;this.options.theBox.setStyles({'top':tempY,'left':tempX});this.options.theBox.addClass('loading');this.options.theBox.set('morph',{onComplete:function(){this.loadPic();}.bind(this)});this.options.theBox.morph({'opacity':1});},loadPic:function(){var imageSrc=this.imgSrc;var tempImages=new Asset.images([imageSrc],{onComplete:function(){var tempImg=tempImages[0];this.options.theImage.empty();this.options.theImage.setStyles({'top':this.options.spacer,'left':this.options.spacer,'opacity':0});this.options.theImage.grab(tempImg);this.stretchBox();}.bind(this)});},stretchBox:function(){var tempW=this.options.theImage.getSize().x+(this.options.spacer*2);var tempH=this.options.theImage.getSize().y+(this.options.spacer*2);var tempX=((window.getSize().x-tempW)/2).toInt();var tempY=((window.getSize().y-tempH)/2).toInt();this.options.theBox.set('morph',{onComplete:function(){this.hideLoader();this.showPic();}.bind(this)});this.options.theBox.morph({'width':tempW,'height':tempH,'top':tempY,'left':tempX,'opacity':1});},showPic:function(){var theImg=$(this.options.theImage.getElement('img'));this.options.theImage.set('tween',{onComplete:function(){}});this.theTitle.set('text',this.titleTxt);this.theTitle.tween('opacity',1);this.theClosebtn.tween('opacity',.6);this.options.theImage.tween('opacity',1);},hidePic:function(){this.options.theImage.set('tween',{onComplete:function(){this.unloadPic();}.bind(this)});this.theTitle.tween('opacity',0);this.theClosebtn.tween('opacity',0);this.options.theImage.tween('opacity',0);},showLoader:function(){},hideLoader:function(){this.options.theBox.removeClass('loading');},unloadPic:function(){this.options.theImage.empty();},hideBox:function(){this.options.theBox.tween('opacity',0);},hideOverlay:function(){this.theOverlay.tween('opacity',0);},showIt:function(el){var fade_in=new Fx.Morph(el,{duration:1000,transition:Fx.Transitions.Cubic.easeOut,link:'ignore'});fade_in.start({'opacity':1});}});
