/*
	Milkbox v1.3.1 - required: mootools.js v1.2 core + more: Assets

	by Luca Reghellin (http://www.reghellin.com) July 2008, MIT-style license.
	Inspiration from Slimbox by Christophe Beyls (http://www.digitalia.be)
	and from THE VERY FIRST MAN ON THE MOON: Lokesh Dhakar (http://www.lokeshdhakar.com/projects/lightbox2/)
	AND OF COURSE, SPECIAL THANKS TO THE MOOTOOLS DEVELOPERS
*/
var Milkbox=new Class({Implements:Options,options:{overlayOpacity:0.7,topPosition:40,initialWidth:250,initialHeight:250,resizeDuration:500,resizeTransition:"sine:in:out",hoverBackgroundPosition:"0 -23px",autoPlay:false,autoPlayDelay:7,removeTitle:false},initialize:function(A){this.setOptions(A);this.galleries=[];this.currentImage=null;this.currentIndex=null;this.currentGallery=null;this.specialDescription=null;this.activated=false;this.mode=null;this.closed=true;this.busy=true;this.intObj=null;this.formtags=null;this.loadedImages=[];this.prepareGalleries();if(this.galleries.length==0){return }this.initMilkbox()},initMilkbox:function(){this.prepareHTML();this.prepareEffects();this.prepareEvents();this.activated=true;this.formtags=$$("select","textarea")},openMilkbox:function(B,D){if(this.formtags.length!=0){this.formtags.setStyle("display","none")}this.overlay.setStyles({top:-$(window).getScroll().y,height:$(window).getScrollSize().y+$(window).getScroll().y});this.center.addClass("mbLoading");this.center.setStyle("top",$(window).getScroll().y+this.options.topPosition);this.currentGallery=B;this.currentIndex=D;this.overlay.tween("opacity",this.options.overlayOpacity);if(B.length==1){this.mode="singleImage";this.loadImages(B[D].href)}else{this.mode="imageGallery";var A=B.map(function(I){return I.href});$$(this.prev,this.next,this.count).setStyles({display:"block"});var C=this.center.getStyle("border-right-width").toInt();var H=this.prev.getSize().x+this.next.getSize().x+this.close.getSize().x+C;this.navigation.setStyle("width",H);this.description.setStyle("margin-right",H);var F=(D!=A.length-1)?A[D+1]:A[0];var G=(D!=0)?A[D-1]:A[A.length-1];var E=(G==F)?[G]:[G,F];this.loadImages(A[D],E)}this.closed=false},showThisImage:function(B,A){if(!this.activated){this.initMilkbox()}this.mode="showThisImage";this.specialDescription=A;this.overlay.setStyles({top:-$(window).getScroll().y,height:$(window).getScrollSize().y+$(window).getScroll().y});this.center.addClass("mbLoading");this.center.setStyle("top",$(window).getScroll().y+this.options.topPosition);this.overlay.tween("opacity",this.options.overlayOpacity);this.loadImages(B);this.closed=false},showImage:function(F){if(this.closed){return }var B=this.image.getSize();this.image.setStyles({opacity:0,width:"",height:""});var E=new Hash(F.getProperties("width","height")).map(function(I,H){return I.toInt()});var C=new Hash(this.center.getStyles("width","height")).map(function(I,H){return I.toInt()});var D={};if(E.width!=C.width){D.width=E.width;D.marginLeft=-(E.width/2).round()}var G=(B.y>0)?C.height-B.y:0;var A=E.height+G;D.height=A;this.image.setStyles({width:E.width,height:E.height});this.center.removeClass("mbLoading");this.center.morph(D)},loadImages:function(C,B){var D=new Asset.image(C,{onload:function(E){this.currentImage=E;if(!this.loadedImages.contains(C)){this.loadedImages.push(C)}$$(this.description,this.navigation).setStyle("visibility","hidden");this.navigation.setStyle("height","");$$(this.next,this.prev,this.close).setStyle("backgroundPosition","0 0");this.showImage(this.currentImage)}.bindWithEvent(this)});if(B&&!this.loadedImages.contains(B)){var A=new Asset.images(B,{onComplete:function(E){B.each(function(F){if(!(this.loadedImages.contains(F))){this.loadedImages.push(F)}}.bind(this))}.bindWithEvent(this)})}},prepareEvents:function(){this.galleries.each(function(A){$$(A).addEvent("click",function(C){var B=($(C.target).match("a"))?$(C.target):$(C.target).getParent("a");C.preventDefault();if(this.options.autoPlay){this.autoPlay({gallery:A,index:A.indexOf(B)})}else{this.openMilkbox(A,A.indexOf(B))}}.bindWithEvent(this))},this);this.next.addEvent("click",this.next_prev_aux.bindWithEvent(this,"next"));this.prev.addEvent("click",this.next_prev_aux.bindWithEvent(this,"prev"));$(window.document).addEvent("keydown",function(A){if(this.mode!="imageGallery"||this.busy==true){return }if(A.key=="right"||A.key=="space"){this.next_prev_aux(A,"next")}else{if(A.key=="left"){this.next_prev_aux(A,"prev")}else{if(A.key=="esc"){this.closeMilkbox()}}}}.bindWithEvent(this));$$(this.next,this.prev,this.close).addEvents({mouseover:function(B){var A=($(B.target).match("a"))?$(B.target):$(B.target).getParent("a");A.setStyle("backgroundPosition",this.options.hoverBackgroundPosition)}.bindWithEvent(this),mouseout:function(){this.setStyle("backgroundPosition","0 0")}});this.overlay.get("tween").addEvent("onComplete",function(){if(this.overlay.getStyle("opacity")==this.options.overlayOpacity){this.center.tween("opacity",1)}else{if(this.overlay.getStyle("opacity")==0){this.overlay.setStyles({height:0,top:""})}}}.bindWithEvent(this));this.center.get("morph").addEvent("onComplete",function(){this.image.grab(this.currentImage);this.image.tween("opacity",1);var C=(!(this.mode=="showThisImage"))?this.currentGallery[this.currentIndex].retrieve("title"):this.specialDescription;if($chk(C)){this.description.innerHTML=C}if(this.mode=="imageGallery"){this.count.appendText((this.currentIndex+1)+" of "+this.currentGallery.length)}var A=this.center.getStyle("height").toInt();this.navigation.setStyle("height",this.bottom.getStyle("height").toInt());var D=this.bottom.getSize().y;var B=(A>this.image.getSize().y)?(this.bottom.getSize().y+this.image.getSize().y)-A:D;this.bottom.setStyle("display","none");this.center.retrieve("setFinalHeight").start(A,A+B)}.bindWithEvent(this));this.center.retrieve("setFinalHeight").addEvent("onComplete",function(){this.bottom.setStyles({visibility:"visible",display:"block"});$$(this.description,this.navigation).setStyle("visibility","visible");var A=$(window).getScrollSize().y;var B=$(window).getScroll().y;this.overlay.setStyle("height",A+B);this.busy=false}.bindWithEvent(this));window.addEvent("resize",function(){if(this.overlay.getStyle("opacity")==0){return }var A=$(window).getScrollSize().y;var B=$(window).getScroll().y;this.overlay.setStyles({height:A+B,top:-B})}.bindWithEvent(this));$$(this.overlay,this.image,this.close).addEvent("click",function(){this.closeMilkbox()}.bindWithEvent(this))},next_prev_aux:function(D,C){if(D){D.preventDefault();if(this.intObj){$clear(this.intObj);this.intObj=null}}else{if(this.busy){return }}this.busy=true;var E=this.currentIndex;if(C=="next"){var A=(this.currentIndex!=this.currentGallery.length-1)?this.currentIndex+=1:this.currentIndex=0;var B=(this.currentIndex!=this.currentGallery.length-1)?this.currentIndex+1:0}else{var A=(this.currentIndex!=0)?this.currentIndex-=1:this.currentIndex=this.currentGallery.length-1;var B=(this.currentIndex!=0)?this.currentIndex-1:this.currentGallery.length-1}this.image.empty();this.description.empty();this.count.empty();if(!this.loadedImages.contains(this.currentGallery[A].href)){this.center.addClass("mbLoading")}this.loadImages(this.currentGallery[A].href,[this.currentGallery[B].href])},autoPlay:function(C){var B=(C&&C.gallery&&($type(C.gallery)=="array"))?C.gallery:Milkbox.galleries[0];var A=(C&&C.index&&($type(C.index)=="number"))?C.index:0;var D=(C&&C.delay&&($type(C.delay)=="number"))?C.delay*1000:this.options.autoPlayDelay*1000;if(D<this.options.resizeDuration*2){D=this.options.resizeDuration*2}Milkbox.openMilkbox(B,A);if(this.mode!="imageGallery"){return }this.intObj=this.next_prev_aux.periodical(D,this,[null,"next"])},closeMilkbox:function(){this.cancelAllEffects();if(this.intObj){$clear(this.intObj)}this.currentImage=null;this.currentIndex=null;this.currentGallery=null;$$(this.prev,this.next,this.count).setStyle("display","none");var A=this.center.getStyle("border-right-width").toInt();var B=this.close.getSize().x+A;this.navigation.setStyles({width:B,height:"",visibility:"hidden"});this.description.setStyle("margin-right",B);this.description.empty();this.bottom.setStyles({visibility:"hidden",display:""});this.image.setStyles({opacity:0,width:"",height:""});this.image.empty();this.count.empty();this.center.setStyles({opacity:0,width:this.options.initialWidth,height:this.options.initialHeight,marginLeft:-(this.options.initialWidth/2)});this.overlay.tween("opacity",0);if(this.formtags.length!=0){this.formtags.setStyle("display","")}this.mode=null;this.closed=true},cancelAllEffects:function(){this.overlay.get("tween").cancel();this.center.get("morph").cancel();this.center.get("tween").cancel();this.center.retrieve("setFinalHeight").cancel();this.image.get("tween").cancel()},prepareEffects:function(){this.overlay.set("tween",{duration:"short",link:"cancel"});this.center.set("tween",{duration:"short",link:"chain"});this.center.set("morph",{duration:this.options.resizeDuration,link:"chain",transition:this.options.resizeTransition});this.center.store("setFinalHeight",new Fx.Tween(this.center,{property:"height",duration:"short"}));this.image.set("tween",{link:"chain"})},prepareGalleries:function(){var A=[];var B=[];$$("a").each(function(C){if(C.rel&&C.rel.test(/^milkbox/i)&&C.href.split("?")[0].test(/\.(gif|jpg|png)$/i)){if(C.rel.length>7&&!A.contains(C.rel)){A.push(C.rel)}B.push(C)}},this);B.each(function(C){$(C).store("href",C.href);$(C).store("rel",C.rel);$(C).store("title",C.title);if(this.options.removeTitle){$(C).removeProperty("title")}if(C.rel.length>7){A.each(function(E,D){if(C.rel==E){if(!this.galleries[D]){this.galleries[D]=[]}this.galleries[D].push($(C))}},this)}else{this.galleries.push([$(C)])}},this)},prepareHTML:function(){this.overlay=new Element("div",{id:"mbOverlay",styles:{opacity:0,visibility:"visible",height:0,overflow:"hidden"}}).inject($(document.body));this.center=new Element("div",{id:"mbCenter",styles:{width:this.options.initialWidth,height:this.options.initialHeight,marginLeft:-(this.options.initialWidth/2),opacity:0}}).inject($(document.body));this.image=new Element("div",{id:"mbImage"}).inject(this.center);this.bottom=new Element("div",{id:"mbBottom"}).inject(this.center).setStyle("visibility","hidden");this.navigation=new Element("div",{id:"mbNavigation"}).setStyle("visibility","hidden");this.description=new Element("div",{id:"mbDescription"}).setStyle("visibility","hidden");this.bottom.adopt(this.navigation,this.description,new Element("div",{"class":"clear"}));this.close=new Element("a",{id:"mbCloseLink"});this.next=new Element("a",{id:"mbNextLink"});this.prev=new Element("a",{id:"mbPrevLink"});this.count=new Element("span",{id:"mbCount"});$$(this.next,this.prev,this.count).setStyle("display","none");this.navigation.adopt(this.close,this.next,this.prev,new Element("div",{"class":"clear"}),this.count)}});window.addEvent("domready",function(){try{Milkbox=new Milkbox()}catch(e){}});
