//MooTools More, <http://mootools.net/more>. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.

var Asset=new Hash({javascript:function(F,D){D=$extend({onload:$empty,document:document,check:$lambda(true)},D);var B=new Element("script",{src:F,type:"text/javascript"});
var E=D.onload.bind(B),A=D.check,G=D.document;delete D.onload;delete D.check;delete D.document;B.addEvents({load:E,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){E();
}}}).setProperties(D);if(Browser.Engine.webkit419){var C=(function(){if(!$try(A)){return ;}$clear(C);E();}).periodical(50);}return B.inject(G.head);},css:function(B,A){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:B},A)).inject(document.head);
},image:function(C,B){B=$merge({onload:$empty,onabort:$empty,onerror:$empty},B);var D=new Image();var A=$(D)||new Element("img");["load","abort","error"].each(function(E){var F="on"+E;
var G=B[F];delete B[F];D[F]=function(){if(!D){return ;}if(!A.parentNode){A.width=D.width;A.height=D.height;}D=D.onload=D.onabort=D.onerror=null;G.delay(1,A,A);
A.fireEvent(E,A,1);};});D.src=A.src=C;if(D&&D.complete){D.onload.delay(1);}return A.setProperties(B);},images:function(D,C){C=$merge({onComplete:$empty,onProgress:$empty},C);
if(!D.push){D=[D];}var A=[];var B=0;D.each(function(F){var E=new Asset.image(F,{onload:function(){C.onProgress.call(this,B,D.indexOf(F));B++;if(B==D.length){C.onComplete();
}}});A.push(E);});return new Elements(A);}});

Slideshow=new Class({Implements:[Chain,Events,Options],options:{captions:false,center:false,classes:[],controller:false,delay:1500,duration:1500,fast:false,height:false,href:"",hu:"",linked:false,loader:false,loop:true,match:/\?slide=(\d+)$/,overlap:true,paused:false,random:false,replace:[/(\.[^\.]+)$/,"t$1"],resize:"width",slide:0,thumbnails:false,transition:function(A){return -(Math.cos(Math.PI*A)-1)/2},width:false},initialize:function(C,F,L){this.setOptions(L);this.slideshow=$(C);if(!this.slideshow){return}this.slideshow.set("styles",{display:"block",position:"relative","z-index":0});var H=window.location.href.match(this.options.match);this.slide=(this.options.match&&H)?H[1].toInt():this.options.slide;this.counter=this.delay=this.transition=0;this.direction="left";this.paused=false;if(!this.options.overlap){this.options.duration*=2}var G=this.slideshow.getElement("a")||new Element("a");if(!this.options.href){this.options.href=G.get("href")||""}if(this.options.hu.length&&!this.options.hu.test(/\/$/)){this.options.hu+="/"}var K=["slideshow","first","prev","play","pause","next","last","images","captions","controller","thumbnails","hidden","visible","inactive","active","loader"];var J=K.map(function(N,M){return this.options.classes[M]||N},this);this.classes=J.associate(K);this.classes.get=function(){var O="."+this.slideshow;for(var N=0,M=arguments.length;N<M;N++){O+=("-"+this[arguments[N]])}return O}.bind(this.classes);if(!F){this.options.hu="";F={};var D=this.slideshow.getElements(this.classes.get("thumbnails")+" img");this.slideshow.getElements(this.classes.get("images")+" img").each(function(O,P){var Q=O.get("src");var N=O.get("alt")||O.get("title")||"";var M=O.getParent().get("href")||"";var R=D[P].get("src")||"";F[Q]={caption:N,href:M,thumbnail:R}})}var E=this.load(F);if(!E){return}this.events=$H({keydown:[],keyup:[],mousemove:[]});var B=function(M){switch(M.key){case"left":this.prev(M.shift);break;case"right":this.next(M.shift);break;case"p":this.pause();break}}.bind(this);this.events.keyup.push(B);document.addEvent("keyup",B);var C=this.slideshow.getElement(this.classes.get("images"));var I=(C)?C.empty():new Element("div",{"class":this.classes.get("images").substr(1)}).inject(this.slideshow);var A=I.getSize();this.height=this.options.height||A.y;this.width=this.options.width||A.x;I.set({styles:{display:"block",height:this.height,overflow:"hidden",position:"relative",width:this.width}});this.slideshow.store("images",I);this.a=this.image=this.slideshow.getElement("img")||new Element("img");this.a.set("styles",{display:"none",position:"absolute",zIndex:1});this.b=this.a.clone();[this.a,this.b].each(function(M){G.clone().grab(M).inject(I)});if(this.options.loader){this._loader()}this._preload()},load:function(C){this.firstrun=true;this.showed={array:[],i:0};if($type(C)=="array"){this.options.captions=false;C=new Array(C.length).associate(C.map(function(G,F){return G+"?"+F}))}this.data={images:[],captions:[],hrefs:[],thumbnails:[]};for(image in C){var D=C[image]||{};var B=(D.caption)?D.caption.trim():"";var A=(D.href)?D.href.trim():((this.options.linked)?this.options.hu+image:this.options.href);var E=(D.thumbnail)?D.thumbnail.trim():image.replace(this.options.replace[0],this.options.replace[1]);this.data.images.push(image);this.data.captions.push(B);this.data.hrefs.push(A);this.data.thumbnails.push(E)}if(this.options.thumbnails&&this.slideshow.retrieve("thumbnails")){this._thumbnails()}if(this.slideshow.retrieve("images")){[this.a,this.b].each(function(F){["morph","tween"].each(function(G){if(this.retrieve(G)){this.get(G).cancel()}},F)});this.slide=this.transition=0;this.go(0)}return this.data.images.length},_preload:function(A){if(!this.preloader){this.preloader=new Asset.image(this.options.hu+this.data.images[this.slide],{onload:function(){this.store("loaded",true)}})}if(this.preloader.retrieve("loaded")&&$time()>this.delay&&$time()>this.transition){if(this.stopped){if(this.options.captions){this.slideshow.retrieve("captions").get("morph").cancel().start(this.classes.get("captions","hidden"))}this.pause(1);if(this.end){this.fireEvent("end")}this.stopped=this.end=false;return}this.image=(this.counter%2)?this.b:this.a;this.image.set("styles",{display:"block",height:"auto",visibility:"hidden",width:"auto",zIndex:this.counter});["src","height","width"].each(function(C){this.image.set(C,this.preloader.get(C))},this);this._resize(this.image);this._center(this.image);var B=this.image.getParent();if(this.data.hrefs[this.slide]){B.set("href",this.data.hrefs[this.slide])}else{B.erase("href")}if(this.data.captions[this.slide]){B.set("title",this.data.captions[this.slide].replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"'"))}else{B.erase("title")}if(this.options.loader){this.slideshow.retrieve("loader").fireEvent("hide")}if(this.options.captions){this.slideshow.retrieve("captions").fireEvent("update",A)}if(this.options.thumbnails){this.slideshow.retrieve("thumbnails").fireEvent("update",A)}this._show(A);this._loaded()}else{if($time()>this.delay&&this.options.loader){this.slideshow.retrieve("loader").fireEvent("show")}this.timer=(this.paused&&this.preloader.retrieve("loaded"))?null:this._preload.delay(100,this,A)}},_show:function(B){if(!this.image.retrieve("morph")){var C=(this.options.overlap)?{duration:this.options.duration,link:"cancel"}:{duration:this.options.duration/2,link:"chain"};$$(this.a,this.b).set("morph",$merge(C,{onStart:this._start.bind(this),onComplete:this._complete.bind(this),transition:this.options.transition}))}var E=this.classes.get("images",((this.direction=="left")?"next":"prev"));var F=this.classes.get("images","visible");var A=(this.counter%2)?this.a:this.b;if(B){A.get("morph").cancel().set(E);this.image.get("morph").cancel().set(F)}else{if(this.options.overlap){A.get("morph").set(F);this.image.get("morph").set(E).start(F)}else{var D=function(G,H){this.image.get("morph").set(G).start(H)}.pass([E,F],this);E=this.classes.get("images",((this.direction=="left")?"prev":"next"));A.get("morph").set(F).start(E).chain(D)}}},_loaded:function(){this.counter++;this.delay=(this.paused)?Number.MAX_VALUE:$time()+this.options.duration+this.options.delay;this.direction="left";this.transition=(this.paused||this.options.fast)?0:$time()+this.options.duration;if(this.slide+1==this.data.images.length&&!this.options.loop&&!this.options.random){this.stopped=this.end=true}if(this.options.random){this.showed.i++;if(this.showed.i>=this.showed.array.length){var A=this.slide;if(this.showed.array.getLast()!=A){this.showed.array.push(A)}while(this.slide==A){this.slide=$random(0,this.data.images.length-1)}}else{this.slide=this.showed.array[this.showed.i]}}else{this.slide=(this.slide+1)%this.data.images.length}if(this.preloader){this.preloader=this.preloader.destroy()}this._preload()},_center:function(A){if(this.options.center){var B=A.getSize();A.set("styles",{left:(B.x-this.width)/-2,top:(B.y-this.height)/-2})}},_resize:function(B){if(this.options.resize){var D=this.preloader.get("height"),A=this.preloader.get("width");var E=this.height/D,C=this.width/A,F;if(this.options.resize=="length"){F=(E>C)?C:E}else{F=(E>C)?E:C}B.set("styles",{height:Math.ceil(D*F),width:Math.ceil(A*F)})}},_start:function(){this.fireEvent("start")},_complete:function(){if(this.firstrun&&this.options.paused){this.firstrun=false;this.pause(1)}this.fireEvent("complete")}});
