/**
Script: Slideshow.js
Slideshow - A javascript class for Mootools to stream and animate the presentation of images on your website.
License:
MIT-style license.
Copyright:
Copyright (c) 2008 [Aeron Glemann](http://www.electricprism.com/aeron/).
Dependencies:
Mootools 1.2 Core: Fx.Morph, Fx.Tween, Selectors, Element.Dimensions.
Mootools 1.2 More: Assets.
*/
Slideshow=new Class(
{
  Implements:[Chain,Events,Options],options:
  {
    captions:false,center:true,classes:[],controller:false,delay:2000,duration:750,fast:false,height:false,href:"",hu:"",linked:false,loader:
    {
      animate:["css/loader-#.png",12]
    },
    loop:true,match:/\?slide=(\d+)$/,overlap:true,paused:false,properties:["href","rel","rev","title"],random:false,replace:[/(\.[^\.]+)$/,"t$1"],resize:"width",slide:0,thumbnails:false,titles:true,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+="/"
    }
    if(this.options.fast===true)
    {
      this.options.fast=2
    }
    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,Q)
      {
        var S=O.get("src");
        var N=$pick(O.get("alt"),O.get("title"),"");
        var R=O.getParent();
        var P=(R.get("tag")=="a")?R.getProperties:
        {
        };
        var M=O.getParent().get("href")||"";
        var T=(D[Q])?D[Q].get("src"):"";
        F[S]=
        {
          caption:N,href:M,thumbnail:T
        }
      }
      )
    }
    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");
    if(Browser.Engine.trident&&Browser.Engine.version>4)
    {
      this.a.style.msInterpolationMode="bicubic"
    }
    this.a.set("styles",
    {
      display:"none",position:"absolute",zIndex:1
    }
    );
    this.b=this.a.clone();
    [this.a,this.b].each(function(M)
    {
      G.clone().cloneEvents(G).grab(M).inject(I)
    }
    );
    if(this.options.captions)
    {
      this._captions()
    }
    if(this.options.controller)
    {
      this._controller()
    }
    if(this.options.loader)
    {
      this._loader()
    }
    if(this.options.thumbnails)
    {
      this._thumbnails()
    }
    this._preload()
  },
  go:function(B,A)
  {
    if((this.slide-1+this.data.images.length)%this.data.images.length==B||$time()<this.transition)
    {
      return
    }
    $clear(this.timer);
    this.delay=0;
    this.direction=(A)?A:((B<this.slide)?"right":"left");
    this.slide=B;
    if(this.preloader)
    {
      this.preloader=this.preloader.destroy()
    }
    this._preload(this.options.fast==2||(this.options.fast==1&&this.paused))
  },
  first:function()
  {
    this.prev(true)
  },
  prev:function(A)
  {
    var B=0;
    if(!A)
    {
      if(this.options.random)
      {
        if(this.showed.i<2)
        {
          return
        }
        this.showed.i-=2;
        B=this.showed.array[this.showed.i]
      }
      else
      {
        B=(this.slide-2+this.data.images.length)%this.data.images.length
      }
    }
    this.go(B,"right")
  },
  pause:function(A)
  {
    if($chk(A))
    {
      this.paused=(A)?false:true
    }
    if(this.paused)
    {
      this.paused=false;
      this.delay=this.transition=0;
      this.timer=this._preload.delay(100,this);
      [this.a,this.b].each(function(B)
      {
        ["morph","tween"].each(function(C)
        {
          if(this.retrieve(C))
          {
            this.get(C).resume()
          }
        },
        B)
      }
      );
      if(this.options.controller)
      {
        this.slideshow.getElement("."+this.classes.pause).removeClass(this.classes.play)
      }
    }
    else
    {
      this.paused=true;
      this.delay=Number.MAX_VALUE;
      this.transition=0;
      $clear(this.timer);
      [this.a,this.b].each(function(B)
      {
        ["morph","tween"].each(function(C)
        {
          if(this.retrieve(C))
          {
            this.get(C).pause()
          }
        },
        B)
      }
      );
      if(this.options.controller)
      {
        this.slideshow.getElement("."+this.classes.pause).addClass(this.classes.play)
      }
    }
  },
  next:function(A)
  {
    var B=(A)?this.data.images.length-1:this.slide;
    this.go(B,"left")
  },
  last:function()
  {
    this.next(true)
  },
  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(H,G)
      {
        return H+"?"+G
      }
      ))
    }
    this.data=
    {
      images:[],captions:[],hrefs:[],thumbnails:[]
    };
    for(var E in C)
    {
      var D=C[E]||
      {
      };
      var B=(D.caption)?D.caption.trim():"";
      var A=(D.href)?D.href.trim():((this.options.linked)?this.options.hu+E:this.options.href);
      var F=(D.thumbnail)?D.thumbnail.trim():E.replace(this.options.replace[0],this.options.replace[1]);
      this.data.images.push(E);
      this.data.captions.push(B);
      this.data.hrefs.push(A);
      this.data.thumbnails.push(F)
    }
    if(this.options.random)
    {
      this.slide=$random(0,this.data.images.length-1)
    }
    if(this.options.thumbnails&&this.slideshow.retrieve("thumbnails"))
    {
      this._thumbnails()
    }
    if(this.slideshow.retrieve("images"))
    {
      [this.a,this.b].each(function(G)
      {
        ["morph","tween"].each(function(H)
        {
          if(this.retrieve(H))
          {
            this.get(H).cancel()
          }
        },
        G)
      }
      );
      this.slide=this.transition=0;
      this.go(0)
    }
    return this.data.images.length
  },
  destroy:function(A)
  {
    this.events.each(function(C,B)
    {
      C.each(function(D)
      {
        document.removeEvent(B,D)
      }
      )
    }
    );
    this.pause(1);
    if(this.options.loader)
    {
      $clear(this.slideshow.retrieve("loader").retrieve("timer"))
    }
    if(this.options.thumbnails)
    {
      $clear(this.slideshow.retrieve("thumbnails").retrieve("timer"))
    }
    this.slideshow.uid=Native.UID++;
    if(A)
    {
      this.slideshow[A]()
    }
  },
  _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(D)
      {
        this.image.set(D,this.preloader.get(D))
      },
      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")
      }
      var C=(this.data.captions[this.slide])?this.data.captions[this.slide].replace(/<.+?>/gm,"").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"'"):"";this.image.set("alt",C);if(this.options.titles){B.set("title",C)}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.options.fast==2||(this.options.fast==1&&this.paused))?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.image.getStyle("visibility")!="visible"){(function(){this.image.setStyle("visibility","visible")}).delay(1,this)}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")},_captions:function(){if(this.options.captions===true){this.options.captions={}}var B=this.slideshow.getElement(this.classes.get("captions"));var A=(B)?B.empty():new Element("div",{"class":this.classes.get("captions").substr(1)}).inject(this.slideshow);A.set({events:{update:function(D){var C=this.slideshow.retrieve("captions");var F=(this.data.captions[this.slide]==="");if(D){var G=(F)?"hidden":"visible";C.set("html",this.data.captions[this.slide]).get("morph").cancel().set(this.classes.get("captions",G))}else{var E=(F)?$empty:function(H){this.slideshow.retrieve("captions").set("html",this.data.captions[H]).morph(this.classes.get("captions","visible"))}.pass(this.slide,this);C.get("morph").cancel().start(this.classes.get("captions","hidden")).chain(E)}}.bind(this)},morph:$merge(this.options.captions,{link:"chain"})});this.slideshow.store("captions",A)},_controller:function(){if(this.options.controller===true){this.options.controller={}}var E=this.slideshow.getElement(this.classes.get("controller"));var A=(E)?E.empty():new Element("div",{"class":this.classes.get("controller").substr(1)}).inject(this.slideshow);var C=new Element("ul").inject(A);$H({first:"Shift + Leftwards Arrow",prev:"Leftwards Arrow",pause:"P",next:"Rightwards Arrow",last:"Shift + Rightwards Arrow"}).each(function(J,I){var G=new Element("li",{"class":(I=="pause"&&this.options.paused)?this.classes.play+" "+this.classes[I]:this.classes[I]}).inject(C);var H=this.slideshow.retrieve(I,new Element("a",{title:((I=="pause")?this.classes.play.capitalize()+" / ":"")+this.classes[I].capitalize()+" ["+J+"]"}).inject(G));H.set("events",{click:function(K){this[K]()}.pass(I,this),mouseenter:function(K){this.addClass(K)}.pass(this.classes.active,H),mouseleave:function(K){this.removeClass(K)}.pass(this.classes.active,H)})},this);A.set({events:{hide:function(G){if(!this.retrieve("hidden")){this.store("hidden",true).morph(G)}}.pass(this.classes.get("controller","hidden"),A),show:function(G){if(this.retrieve("hidden")){this.store("hidden",false).morph(G)}}.pass(this.classes.get("controller","visible"),A)},morph:$merge(this.options.controller,{link:"cancel"})}).store("hidden",false);var B=function(H){if(["left","right","p"].contains(H.key)){var G=this.slideshow.retrieve("controller");if(G.retrieve("hidden")){G.get("morph").set(this.classes.get("controller","visible"))}switch(H.key){case"left":this.slideshow.retrieve((H.shift)?"first":"prev").fireEvent("mouseenter");break;case"right":this.slideshow.retrieve((H.shift)?"last":"next").fireEvent("mouseenter");break;default:this.slideshow.retrieve("pause").fireEvent("mouseenter");break}}}.bind(this);this.events.keydown.push(B);var F=function(H){if(["left","right","p"].contains(H.key)){var G=this.slideshow.retrieve("controller");if(G.retrieve("hidden")){G.store("hidden",false).fireEvent("hide")}switch(H.key){case"left":this.slideshow.retrieve((H.shift)?"first":"prev").fireEvent("mouseleave");break;case"right":this.slideshow.retrieve((H.shift)?"last":"next").fireEvent("mouseleave");break;default:this.slideshow.retrieve("pause").fireEvent("mouseleave");break}}}.bind(this);this.events.keyup.push(F);var D=function(H){var G=this.slideshow.retrieve("images").getCoordinates();if(H.page.x>G.left&&H.page.x<G.right&&H.page.y>G.top&&H.page.y<G.bottom){this.slideshow.retrieve("controller").fireEvent("show")}else{this.slideshow.retrieve("controller").fireEvent("hide")}}.bind(this);this.events.mousemove.push(D);document.addEvents({keydown:B,keyup:F,mousemove:D});this.slideshow.retrieve("controller",A).fireEvent("hide")},_loader:function(){if(this.options.loader===true){this.options.loader={}}var A=new Element("div",{"class":this.classes.get("loader").substr(1),morph:$merge(this.options.loader,{link:"cancel"})}).store("hidden",false).store("i",1).inject(this.slideshow.retrieve("images"));if(this.options.loader.animate){for(var B=0;B<this.options.loader.animate[1];B++){img=new Asset.image(this.options.loader.animate[0].replace(/#/,B))}if(Browser.Engine.trident4&&this.options.loader.animate[0].contains("png")){A.setStyle("backgroundImage","none")}}A.set("events",{animate:function(){var C=this.slideshow.retrieve("loader");var E=(C.retrieve("i").toInt()+1)%this.options.loader.animate[1];C.store("i",E);var D=this.options.loader.animate[0].replace(/#/,E);if(Browser.Engine.trident4&&this.options.loader.animate[0].contains("png")){C.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+D+'", sizingMethod="scale")'}else{C.setStyle("backgroundImage","url("+D+")")}}.bind(this),hide:function(){var C=this.slideshow.retrieve("loader");if(!C.retrieve("hidden")){C.store("hidden",true).morph(this.classes.get("loader","hidden"));if(this.options.loader.animate){$clear(C.retrieve("timer"))}}}.bind(this),show:function(){var C=this.slideshow.retrieve("loader");if(C.retrieve("hidden")){C.store("hidden",false).morph(this.classes.get("loader","visible"));if(this.options.loader.animate){C.store("timer",function(){this.fireEvent("animate")}.periodical(50,C))}}}.bind(this)});this.slideshow.retrieve("loader",A).fireEvent("hide")},_thumbnails:function(){if(this.options.thumbnails===true){this.options.thumbnails={}}var C=this.slideshow.getElement(this.classes.get("thumbnails"));var E=(C)?C.empty():new Element("div",{"class":this.classes.get("thumbnails").substr(1)}).inject(this.slideshow);E.setStyle("overflow","hidden");var A=new Element("ul",{tween:{link:"cancel"}}).inject(E);this.data.thumbnails.each(function(J,I){var F=new Element("li").inject(A);var G=new Element("a",{events:{click:function(K){this.go(K);return false}.pass(I,this),loaded:function(){this.data.thumbnails.pop();if(!this.data.thumbnails.length){var O=E.getCoordinates();var M=E.retrieve("props");var K=0,N=M[1],L=M[2];E.getElements("li").each(function(P){var P=P.getCoordinates();if(P[N]>K){K=P[N]}},this);E.store("limit",O[L]+O[M[0]]-K)}}.bind(this)},href:this.options.hu+this.data.images[I],morph:$merge(this.options.thumbnails,{link:"cancel"})}).inject(F);if(this.data.captions[I]&&this.options.titles){G.set("title",this.data.captions[I].replace(/<.+?>/gm,"").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"'"))}var H=new Asset.image(this.options.hu+J,{onload:function(){this.fireEvent("loaded")}.bind(G)}).inject(G)},this);E.set("events",{scroll:function(H,K){var F=this.getCoordinates();var L=this.getElement("ul").getPosition();var N=this.retrieve("props");var I=N[3],R,O=N[0],T=N[2],P;var S=this.getElement("ul").get("tween",{property:O});if($chk(H)){var Q=this.getElements("li")[H].getCoordinates();R=F[O]+(F[T]/2)-(Q[T]/2)-Q[O];P=(L[I]-F[O]+R).limit(this.retrieve("limit"),0);if(K){S.set(P)}else{S.start(P)}}else{var G=F[N[2]]/3,M=this.retrieve("page"),J=-0.2;if(M[I]<(F[O]+G)){R=(M[I]-F[O]-G)*J}else{if(M[I]>(F[O]+F[T]-G)){R=(M[I]-F[O]-F[T]+G)*J}}if(R){P=(L[I]-F[O]+R).limit(this.retrieve("limit"),0);S.set(P)}}}.bind(E),update:function(F){var G=this.slideshow.retrieve("thumbnails");G.getElements("a").each(function(H,I){if(I==this.slide){if(!H.retrieve("active",false)){H.store("active",true);var K=this.classes.get("thumbnails","active");if(F){H.get("morph").set(K)}else{H.morph(K)}}}else{if(H.retrieve("active",true)){H.store("active",false);var J=this.classes.get("thumbnails","inactive");if(F){H.get("morph").set(J)}else{H.morph(J)}}}},this);if(!G.retrieve("mouseover")){G.fireEvent("scroll",[this.slide,F])}}.bind(this)});var D=E.getCoordinates();E.store("props",(D.height>D.width)?["top","bottom","height","y"]:["left","right","width","x"]);var B=function(F){var G=this.getCoordinates();if(F.page.x>G.left&&F.page.x<G.right&&F.page.y>G.top&&F.page.y<G.bottom){this.store("page",F.page);if(!this.retrieve("mouseover")){this.store("mouseover",true);this.store("timer",function(){this.fireEvent("scroll")}.periodical(50,this))}}else{if(this.retrieve("mouseover")){this.store("mouseover",false);$clear(this.retrieve("timer"))}}}.bind(E);this.events.mousemove.push(B);document.addEvent("mousemove",B);this.slideshow.store("thumbnails",E)}});
/**
Script: Slideshow.js
Slideshow - A javascript class for Mootools to stream and animate the presentation of images on your website.
License:
MIT-style license.
Copyright:
Copyright (c) 2008 [Aeron Glemann](http://www.electricprism.com/aeron/).
Dependencies:
Mootools 1.2 Core: Fx.Morph, Fx.Tween, Selectors, Element.Dimensions.
Mootools 1.2 More: Assets.
*/
Slideshow=new Class(
{
  Implements:[Chain,Events,Options],options:
  {
    captions:false,center:true,classes:[],controller:false,delay:2000,duration:750,fast:false,height:false,href:"",hu:"",linked:false,loader:
    {
      animate:["css/loader-#.png",12]
    },
    loop:true,match:/\?slide=(\d+)$/,overlap:true,paused:false,properties:["href","rel","rev","title"],random:false,replace:[/(\.[^\.]+)$/,"t$1"],resize:"width",slide:0,thumbnails:false,titles:true,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+="/"
    }
    if(this.options.fast===true)
    {
      this.options.fast=2
    }
    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,Q)
      {
        var S=O.get("src");
        var N=$pick(O.get("alt"),O.get("title"),"");
        var R=O.getParent();
        var P=(R.get("tag")=="a")?R.getProperties:
        {
        };
        var M=O.getParent().get("href")||"";
        var T=(D[Q])?D[Q].get("src"):"";
        F[S]=
        {
          caption:N,href:M,thumbnail:T
        }
      }
      )
    }
    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");
    if(Browser.Engine.trident&&Browser.Engine.version>4)
    {
      this.a.style.msInterpolationMode="bicubic"
    }
    this.a.set("styles",
    {
      display:"none",position:"absolute",zIndex:1
    }
    );
    this.b=this.a.clone();
    [this.a,this.b].each(function(M)
    {
      G.clone().cloneEvents(G).grab(M).inject(I)
    }
    );
    if(this.options.captions)
    {
      this._captions()
    }
    if(this.options.controller)
    {
      this._controller()
    }
    if(this.options.loader)
    {
      this._loader()
    }
    if(this.options.thumbnails)
    {
      this._thumbnails()
    }
    this._preload()
  },
  go:function(B,A)
  {
    if((this.slide-1+this.data.images.length)%this.data.images.length==B||$time()<this.transition)
    {
      return
    }
    $clear(this.timer);
    this.delay=0;
    this.direction=(A)?A:((B<this.slide)?"right":"left");
    this.slide=B;
    if(this.preloader)
    {
      this.preloader=this.preloader.destroy()
    }
    this._preload(this.options.fast==2||(this.options.fast==1&&this.paused))
  },
  first:function()
  {
    this.prev(true)
  },
  prev:function(A)
  {
    var B=0;
    if(!A)
    {
      if(this.options.random)
      {
        if(this.showed.i<2)
        {
          return
        }
        this.showed.i-=2;
        B=this.showed.array[this.showed.i]
      }
      else
      {
        B=(this.slide-2+this.data.images.length)%this.data.images.length
      }
    }
    this.go(B,"right")
  },
  pause:function(A)
  {
    if($chk(A))
    {
      this.paused=(A)?false:true
    }
    if(this.paused)
    {
      this.paused=false;
      this.delay=this.transition=0;
      this.timer=this._preload.delay(100,this);
      [this.a,this.b].each(function(B)
      {
        ["morph","tween"].each(function(C)
        {
          if(this.retrieve(C))
          {
            this.get(C).resume()
          }
        },
        B)
      }
      );
      if(this.options.controller)
      {
        this.slideshow.getElement("."+this.classes.pause).removeClass(this.classes.play)
      }
    }
    else
    {
      this.paused=true;
      this.delay=Number.MAX_VALUE;
      this.transition=0;
      $clear(this.timer);
      [this.a,this.b].each(function(B)
      {
        ["morph","tween"].each(function(C)
        {
          if(this.retrieve(C))
          {
            this.get(C).pause()
          }
        },
        B)
      }
      );
      if(this.options.controller)
      {
        this.slideshow.getElement("."+this.classes.pause).addClass(this.classes.play)
      }
    }
  },
  next:function(A)
  {
    var B=(A)?this.data.images.length-1:this.slide;
    this.go(B,"left")
  },
  last:function()
  {
    this.next(true)
  },
  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(H,G)
      {
        return H+"?"+G
      }
      ))
    }
    this.data=
    {
      images:[],captions:[],hrefs:[],thumbnails:[]
    };
    for(var E in C)
    {
      var D=C[E]||
      {
      };
      var B=(D.caption)?D.caption.trim():"";
      var A=(D.href)?D.href.trim():((this.options.linked)?this.options.hu+E:this.options.href);
      var F=(D.thumbnail)?D.thumbnail.trim():E.replace(this.options.replace[0],this.options.replace[1]);
      this.data.images.push(E);
      this.data.captions.push(B);
      this.data.hrefs.push(A);
      this.data.thumbnails.push(F)
    }
    if(this.options.random)
    {
      this.slide=$random(0,this.data.images.length-1)
    }
    if(this.options.thumbnails&&this.slideshow.retrieve("thumbnails"))
    {
      this._thumbnails()
    }
    if(this.slideshow.retrieve("images"))
    {
      [this.a,this.b].each(function(G)
      {
        ["morph","tween"].each(function(H)
        {
          if(this.retrieve(H))
          {
            this.get(H).cancel()
          }
        },
        G)
      }
      );
      this.slide=this.transition=0;
      this.go(0)
    }
    return this.data.images.length
  },
  destroy:function(A)
  {
    this.events.each(function(C,B)
    {
      C.each(function(D)
      {
        document.removeEvent(B,D)
      }
      )
    }
    );
    this.pause(1);
    if(this.options.loader)
    {
      $clear(this.slideshow.retrieve("loader").retrieve("timer"))
    }
    if(this.options.thumbnails)
    {
      $clear(this.slideshow.retrieve("thumbnails").retrieve("timer"))
    }
    this.slideshow.uid=Native.UID++;
    if(A)
    {
      this.slideshow[A]()
    }
  },
  _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(D)
      {
        this.image.set(D,this.preloader.get(D))
      },
      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")
      }
      var C=(this.data.captions[this.slide])?this.data.captions[this.slide].replace(/<.+?>/gm,"").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"'"):"";this.image.set("alt",C);if(this.options.titles){B.set("title",C)}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.options.fast==2||(this.options.fast==1&&this.paused))?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.image.getStyle("visibility")!="visible"){(function(){this.image.setStyle("visibility","visible")}).delay(1,this)}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")},_captions:function(){if(this.options.captions===true){this.options.captions={}}var B=this.slideshow.getElement(this.classes.get("captions"));var A=(B)?B.empty():new Element("div",{"class":this.classes.get("captions").substr(1)}).inject(this.slideshow);A.set({events:{update:function(D){var C=this.slideshow.retrieve("captions");var F=(this.data.captions[this.slide]==="");if(D){var G=(F)?"hidden":"visible";C.set("html",this.data.captions[this.slide]).get("morph").cancel().set(this.classes.get("captions",G))}else{var E=(F)?$empty:function(H){this.slideshow.retrieve("captions").set("html",this.data.captions[H]).morph(this.classes.get("captions","visible"))}.pass(this.slide,this);C.get("morph").cancel().start(this.classes.get("captions","hidden")).chain(E)}}.bind(this)},morph:$merge(this.options.captions,{link:"chain"})});this.slideshow.store("captions",A)},_controller:function(){if(this.options.controller===true){this.options.controller={}}var E=this.slideshow.getElement(this.classes.get("controller"));var A=(E)?E.empty():new Element("div",{"class":this.classes.get("controller").substr(1)}).inject(this.slideshow);var C=new Element("ul").inject(A);$H({first:"Shift + Leftwards Arrow",prev:"Leftwards Arrow",pause:"P",next:"Rightwards Arrow",last:"Shift + Rightwards Arrow"}).each(function(J,I){var G=new Element("li",{"class":(I=="pause"&&this.options.paused)?this.classes.play+" "+this.classes[I]:this.classes[I]}).inject(C);var H=this.slideshow.retrieve(I,new Element("a",{title:((I=="pause")?this.classes.play.capitalize()+" / ":"")+this.classes[I].capitalize()+" ["+J+"]"}).inject(G));H.set("events",{click:function(K){this[K]()}.pass(I,this),mouseenter:function(K){this.addClass(K)}.pass(this.classes.active,H),mouseleave:function(K){this.removeClass(K)}.pass(this.classes.active,H)})},this);A.set({events:{hide:function(G){if(!this.retrieve("hidden")){this.store("hidden",true).morph(G)}}.pass(this.classes.get("controller","hidden"),A),show:function(G){if(this.retrieve("hidden")){this.store("hidden",false).morph(G)}}.pass(this.classes.get("controller","visible"),A)},morph:$merge(this.options.controller,{link:"cancel"})}).store("hidden",false);var B=function(H){if(["left","right","p"].contains(H.key)){var G=this.slideshow.retrieve("controller");if(G.retrieve("hidden")){G.get("morph").set(this.classes.get("controller","visible"))}switch(H.key){case"left":this.slideshow.retrieve((H.shift)?"first":"prev").fireEvent("mouseenter");break;case"right":this.slideshow.retrieve((H.shift)?"last":"next").fireEvent("mouseenter");break;default:this.slideshow.retrieve("pause").fireEvent("mouseenter");break}}}.bind(this);this.events.keydown.push(B);var F=function(H){if(["left","right","p"].contains(H.key)){var G=this.slideshow.retrieve("controller");if(G.retrieve("hidden")){G.store("hidden",false).fireEvent("hide")}switch(H.key){case"left":this.slideshow.retrieve((H.shift)?"first":"prev").fireEvent("mouseleave");break;case"right":this.slideshow.retrieve((H.shift)?"last":"next").fireEvent("mouseleave");break;default:this.slideshow.retrieve("pause").fireEvent("mouseleave");break}}}.bind(this);this.events.keyup.push(F);var D=function(H){var G=this.slideshow.retrieve("images").getCoordinates();if(H.page.x>G.left&&H.page.x<G.right&&H.page.y>G.top&&H.page.y<G.bottom){this.slideshow.retrieve("controller").fireEvent("show")}else{this.slideshow.retrieve("controller").fireEvent("hide")}}.bind(this);this.events.mousemove.push(D);document.addEvents({keydown:B,keyup:F,mousemove:D});this.slideshow.retrieve("controller",A).fireEvent("hide")},_loader:function(){if(this.options.loader===true){this.options.loader={}}var A=new Element("div",{"class":this.classes.get("loader").substr(1),morph:$merge(this.options.loader,{link:"cancel"})}).store("hidden",false).store("i",1).inject(this.slideshow.retrieve("images"));if(this.options.loader.animate){for(var B=0;B<this.options.loader.animate[1];B++){img=new Asset.image(this.options.loader.animate[0].replace(/#/,B))}if(Browser.Engine.trident4&&this.options.loader.animate[0].contains("png")){A.setStyle("backgroundImage","none")}}A.set("events",{animate:function(){var C=this.slideshow.retrieve("loader");var E=(C.retrieve("i").toInt()+1)%this.options.loader.animate[1];C.store("i",E);var D=this.options.loader.animate[0].replace(/#/,E);if(Browser.Engine.trident4&&this.options.loader.animate[0].contains("png")){C.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+D+'", sizingMethod="scale")'}else{C.setStyle("backgroundImage","url("+D+")")}}.bind(this),hide:function(){var C=this.slideshow.retrieve("loader");if(!C.retrieve("hidden")){C.store("hidden",true).morph(this.classes.get("loader","hidden"));if(this.options.loader.animate){$clear(C.retrieve("timer"))}}}.bind(this),show:function(){var C=this.slideshow.retrieve("loader");if(C.retrieve("hidden")){C.store("hidden",false).morph(this.classes.get("loader","visible"));if(this.options.loader.animate){C.store("timer",function(){this.fireEvent("animate")}.periodical(50,C))}}}.bind(this)});this.slideshow.retrieve("loader",A).fireEvent("hide")},_thumbnails:function(){if(this.options.thumbnails===true){this.options.thumbnails={}}var C=this.slideshow.getElement(this.classes.get("thumbnails"));var E=(C)?C.empty():new Element("div",{"class":this.classes.get("thumbnails").substr(1)}).inject(this.slideshow);E.setStyle("overflow","hidden");var A=new Element("ul",{tween:{link:"cancel"}}).inject(E);this.data.thumbnails.each(function(J,I){var F=new Element("li").inject(A);var G=new Element("a",{events:{click:function(K){this.go(K);return false}.pass(I,this),loaded:function(){this.data.thumbnails.pop();if(!this.data.thumbnails.length){var O=E.getCoordinates();var M=E.retrieve("props");var K=0,N=M[1],L=M[2];E.getElements("li").each(function(P){var P=P.getCoordinates();if(P[N]>K){K=P[N]}},this);E.store("limit",O[L]+O[M[0]]-K)}}.bind(this)},href:this.options.hu+this.data.images[I],morph:$merge(this.options.thumbnails,{link:"cancel"})}).inject(F);if(this.data.captions[I]&&this.options.titles){G.set("title",this.data.captions[I].replace(/<.+?>/gm,"").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"'"))}var H=new Asset.image(this.options.hu+J,{onload:function(){this.fireEvent("loaded")}.bind(G)}).inject(G)},this);E.set("events",{scroll:function(H,K){var F=this.getCoordinates();var L=this.getElement("ul").getPosition();var N=this.retrieve("props");var I=N[3],R,O=N[0],T=N[2],P;var S=this.getElement("ul").get("tween",{property:O});if($chk(H)){var Q=this.getElements("li")[H].getCoordinates();R=F[O]+(F[T]/2)-(Q[T]/2)-Q[O];P=(L[I]-F[O]+R).limit(this.retrieve("limit"),0);if(K){S.set(P)}else{S.start(P)}}else{var G=F[N[2]]/3,M=this.retrieve("page"),J=-0.2;if(M[I]<(F[O]+G)){R=(M[I]-F[O]-G)*J}else{if(M[I]>(F[O]+F[T]-G)){R=(M[I]-F[O]-F[T]+G)*J}}if(R){P=(L[I]-F[O]+R).limit(this.retrieve("limit"),0);S.set(P)}}}.bind(E),update:function(F){var G=this.slideshow.retrieve("thumbnails");G.getElements("a").each(function(H,I){if(I==this.slide){if(!H.retrieve("active",false)){H.store("active",true);var K=this.classes.get("thumbnails","active");if(F){H.get("morph").set(K)}else{H.morph(K)}}}else{if(H.retrieve("active",true)){H.store("active",false);var J=this.classes.get("thumbnails","inactive");if(F){H.get("morph").set(J)}else{H.morph(J)}}}},this);if(!G.retrieve("mouseover")){G.fireEvent("scroll",[this.slide,F])}}.bind(this)});var D=E.getCoordinates();E.store("props",(D.height>D.width)?["top","bottom","height","y"]:["left","right","width","x"]);var B=function(F){var G=this.getCoordinates();if(F.page.x>G.left&&F.page.x<G.right&&F.page.y>G.top&&F.page.y<G.bottom){this.store("page",F.page);if(!this.retrieve("mouseover")){this.store("mouseover",true);this.store("timer",function(){this.fireEvent("scroll")}.periodical(50,this))}}else{if(this.retrieve("mouseover")){this.store("mouseover",false);$clear(this.retrieve("timer"))}}}.bind(E);this.events.mousemove.push(B);document.addEvent("mousemove",B);this.slideshow.store("thumbnails",E)}});
/**
Script: Slideshow.js
Slideshow - A javascript class for Mootools to stream and animate the presentation of images on your website.
License:
MIT-style license.
Copyright:
Copyright (c) 2008 [Aeron Glemann](http://www.electricprism.com/aeron/).
Dependencies:
Mootools 1.2 Core: Fx.Morph, Fx.Tween, Selectors, Element.Dimensions.
Mootools 1.2 More: Assets.
*/
Slideshow=new Class(
{
  Implements:[Chain,Events,Options],options:
  {
    captions:false,center:true,classes:[],controller:false,delay:2000,duration:750,fast:false,height:false,href:"",hu:"",linked:false,loader:
    {
      animate:["css/loader-#.png",12]
    },
    loop:true,match:/\?slide=(\d+)$/,overlap:true,paused:false,properties:["href","rel","rev","title"],random:false,replace:[/(\.[^\.]+)$/,"t$1"],resize:"width",slide:0,thumbnails:false,titles:true,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+="/"
    }
    if(this.options.fast===true)
    {
      this.options.fast=2
    }
    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,Q)
      {
        var S=O.get("src");
        var N=$pick(O.get("alt"),O.get("title"),"");
        var R=O.getParent();
        var P=(R.get("tag")=="a")?R.getProperties:
        {
        };
        var M=O.getParent().get("href")||"";
        var T=(D[Q])?D[Q].get("src"):"";
        F[S]=
        {
          caption:N,href:M,thumbnail:T
        }
      }
      )
    }
    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");
    if(Browser.Engine.trident&&Browser.Engine.version>4)
    {
      this.a.style.msInterpolationMode="bicubic"
    }
    this.a.set("styles",
    {
      display:"none",position:"absolute",zIndex:1
    }
    );
    this.b=this.a.clone();
    [this.a,this.b].each(function(M)
    {
      G.clone().cloneEvents(G).grab(M).inject(I)
    }
    );
    if(this.options.captions)
    {
      this._captions()
    }
    if(this.options.controller)
    {
      this._controller()
    }
    if(this.options.loader)
    {
      this._loader()
    }
    if(this.options.thumbnails)
    {
      this._thumbnails()
    }
    this._preload()
  },
  go:function(B,A)
  {
    if((this.slide-1+this.data.images.length)%this.data.images.length==B||$time()<this.transition)
    {
      return
    }
    $clear(this.timer);
    this.delay=0;
    this.direction=(A)?A:((B<this.slide)?"right":"left");
    this.slide=B;
    if(this.preloader)
    {
      this.preloader=this.preloader.destroy()
    }
    this._preload(this.options.fast==2||(this.options.fast==1&&this.paused))
  },
  first:function()
  {
    this.prev(true)
  },
  prev:function(A)
  {
    var B=0;
    if(!A)
    {
      if(this.options.random)
      {
        if(this.showed.i<2)
        {
          return
        }
        this.showed.i-=2;
        B=this.showed.array[this.showed.i]
      }
      else
      {
        B=(this.slide-2+this.data.images.length)%this.data.images.length
      }
    }
    this.go(B,"right")
  },
  pause:function(A)
  {
    if($chk(A))
    {
      this.paused=(A)?false:true
    }
    if(this.paused)
    {
      this.paused=false;
      this.delay=this.transition=0;
      this.timer=this._preload.delay(100,this);
      [this.a,this.b].each(function(B)
      {
        ["morph","tween"].each(function(C)
        {
          if(this.retrieve(C))
          {
            this.get(C).resume()
          }
        },
        B)
      }
      );
      if(this.options.controller)
      {
        this.slideshow.getElement("."+this.classes.pause).removeClass(this.classes.play)
      }
    }
    else
    {
      this.paused=true;
      this.delay=Number.MAX_VALUE;
      this.transition=0;
      $clear(this.timer);
      [this.a,this.b].each(function(B)
      {
        ["morph","tween"].each(function(C)
        {
          if(this.retrieve(C))
          {
            this.get(C).pause()
          }
        },
        B)
      }
      );
      if(this.options.controller)
      {
        this.slideshow.getElement("."+this.classes.pause).addClass(this.classes.play)
      }
    }
  },
  next:function(A)
  {
    var B=(A)?this.data.images.length-1:this.slide;
    this.go(B,"left")
  },
  last:function()
  {
    this.next(true)
  },
  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(H,G)
      {
        return H+"?"+G
      }
      ))
    }
    this.data=
    {
      images:[],captions:[],hrefs:[],thumbnails:[]
    };
    for(var E in C)
    {
      var D=C[E]||
      {
      };
      var B=(D.caption)?D.caption.trim():"";
      var A=(D.href)?D.href.trim():((this.options.linked)?this.options.hu+E:this.options.href);
      var F=(D.thumbnail)?D.thumbnail.trim():E.replace(this.options.replace[0],this.options.replace[1]);
      this.data.images.push(E);
      this.data.captions.push(B);
      this.data.hrefs.push(A);
      this.data.thumbnails.push(F)
    }
    if(this.options.random)
    {
      this.slide=$random(0,this.data.images.length-1)
    }
    if(this.options.thumbnails&&this.slideshow.retrieve("thumbnails"))
    {
      this._thumbnails()
    }
    if(this.slideshow.retrieve("images"))
    {
      [this.a,this.b].each(function(G)
      {
        ["morph","tween"].each(function(H)
        {
          if(this.retrieve(H))
          {
            this.get(H).cancel()
          }
        },
        G)
      }
      );
      this.slide=this.transition=0;
      this.go(0)
    }
    return this.data.images.length
  },
  destroy:function(A)
  {
    this.events.each(function(C,B)
    {
      C.each(function(D)
      {
        document.removeEvent(B,D)
      }
      )
    }
    );
    this.pause(1);
    if(this.options.loader)
    {
      $clear(this.slideshow.retrieve("loader").retrieve("timer"))
    }
    if(this.options.thumbnails)
    {
      $clear(this.slideshow.retrieve("thumbnails").retrieve("timer"))
    }
    this.slideshow.uid=Native.UID++;
    if(A)
    {
      this.slideshow[A]()
    }
  },
  _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(D)
      {
        this.image.set(D,this.preloader.get(D))
      },
      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")
      }
      var C=(this.data.captions[this.slide])?this.data.captions[this.slide].replace(/<.+?>/gm,"").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"'"):"";this.image.set("alt",C);if(this.options.titles){B.set("title",C)}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.options.fast==2||(this.options.fast==1&&this.paused))?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.image.getStyle("visibility")!="visible"){(function(){this.image.setStyle("visibility","visible")}).delay(1,this)}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")},_captions:function(){if(this.options.captions===true){this.options.captions={}}var B=this.slideshow.getElement(this.classes.get("captions"));var A=(B)?B.empty():new Element("div",{"class":this.classes.get("captions").substr(1)}).inject(this.slideshow);A.set({events:{update:function(D){var C=this.slideshow.retrieve("captions");var F=(this.data.captions[this.slide]==="");if(D){var G=(F)?"hidden":"visible";C.set("html",this.data.captions[this.slide]).get("morph").cancel().set(this.classes.get("captions",G))}else{var E=(F)?$empty:function(H){this.slideshow.retrieve("captions").set("html",this.data.captions[H]).morph(this.classes.get("captions","visible"))}.pass(this.slide,this);C.get("morph").cancel().start(this.classes.get("captions","hidden")).chain(E)}}.bind(this)},morph:$merge(this.options.captions,{link:"chain"})});this.slideshow.store("captions",A)},_controller:function(){if(this.options.controller===true){this.options.controller={}}var E=this.slideshow.getElement(this.classes.get("controller"));var A=(E)?E.empty():new Element("div",{"class":this.classes.get("controller").substr(1)}).inject(this.slideshow);var C=new Element("ul").inject(A);$H({first:"Shift + Leftwards Arrow",prev:"Leftwards Arrow",pause:"P",next:"Rightwards Arrow",last:"Shift + Rightwards Arrow"}).each(function(J,I){var G=new Element("li",{"class":(I=="pause"&&this.options.paused)?this.classes.play+" "+this.classes[I]:this.classes[I]}).inject(C);var H=this.slideshow.retrieve(I,new Element("a",{title:((I=="pause")?this.classes.play.capitalize()+" / ":"")+this.classes[I].capitalize()+" ["+J+"]"}).inject(G));H.set("events",{click:function(K){this[K]()}.pass(I,this),mouseenter:function(K){this.addClass(K)}.pass(this.classes.active,H),mouseleave:function(K){this.removeClass(K)}.pass(this.classes.active,H)})},this);A.set({events:{hide:function(G){if(!this.retrieve("hidden")){this.store("hidden",true).morph(G)}}.pass(this.classes.get("controller","hidden"),A),show:function(G){if(this.retrieve("hidden")){this.store("hidden",false).morph(G)}}.pass(this.classes.get("controller","visible"),A)},morph:$merge(this.options.controller,{link:"cancel"})}).store("hidden",false);var B=function(H){if(["left","right","p"].contains(H.key)){var G=this.slideshow.retrieve("controller");if(G.retrieve("hidden")){G.get("morph").set(this.classes.get("controller","visible"))}switch(H.key){case"left":this.slideshow.retrieve((H.shift)?"first":"prev").fireEvent("mouseenter");break;case"right":this.slideshow.retrieve((H.shift)?"last":"next").fireEvent("mouseenter");break;default:this.slideshow.retrieve("pause").fireEvent("mouseenter");break}}}.bind(this);this.events.keydown.push(B);var F=function(H){if(["left","right","p"].contains(H.key)){var G=this.slideshow.retrieve("controller");if(G.retrieve("hidden")){G.store("hidden",false).fireEvent("hide")}switch(H.key){case"left":this.slideshow.retrieve((H.shift)?"first":"prev").fireEvent("mouseleave");break;case"right":this.slideshow.retrieve((H.shift)?"last":"next").fireEvent("mouseleave");break;default:this.slideshow.retrieve("pause").fireEvent("mouseleave");break}}}.bind(this);this.events.keyup.push(F);var D=function(H){var G=this.slideshow.retrieve("images").getCoordinates();if(H.page.x>G.left&&H.page.x<G.right&&H.page.y>G.top&&H.page.y<G.bottom){this.slideshow.retrieve("controller").fireEvent("show")}else{this.slideshow.retrieve("controller").fireEvent("hide")}}.bind(this);this.events.mousemove.push(D);document.addEvents({keydown:B,keyup:F,mousemove:D});this.slideshow.retrieve("controller",A).fireEvent("hide")},_loader:function(){if(this.options.loader===true){this.options.loader={}}var A=new Element("div",{"class":this.classes.get("loader").substr(1),morph:$merge(this.options.loader,{link:"cancel"})}).store("hidden",false).store("i",1).inject(this.slideshow.retrieve("images"));if(this.options.loader.animate){for(var B=0;B<this.options.loader.animate[1];B++){img=new Asset.image(this.options.loader.animate[0].replace(/#/,B))}if(Browser.Engine.trident4&&this.options.loader.animate[0].contains("png")){A.setStyle("backgroundImage","none")}}A.set("events",{animate:function(){var C=this.slideshow.retrieve("loader");var E=(C.retrieve("i").toInt()+1)%this.options.loader.animate[1];C.store("i",E);var D=this.options.loader.animate[0].replace(/#/,E);if(Browser.Engine.trident4&&this.options.loader.animate[0].contains("png")){C.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+D+'", sizingMethod="scale")'}else{C.setStyle("backgroundImage","url("+D+")")}}.bind(this),hide:function(){var C=this.slideshow.retrieve("loader");if(!C.retrieve("hidden")){C.store("hidden",true).morph(this.classes.get("loader","hidden"));if(this.options.loader.animate){$clear(C.retrieve("timer"))}}}.bind(this),show:function(){var C=this.slideshow.retrieve("loader");if(C.retrieve("hidden")){C.store("hidden",false).morph(this.classes.get("loader","visible"));if(this.options.loader.animate){C.store("timer",function(){this.fireEvent("animate")}.periodical(50,C))}}}.bind(this)});this.slideshow.retrieve("loader",A).fireEvent("hide")},_thumbnails:function(){if(this.options.thumbnails===true){this.options.thumbnails={}}var C=this.slideshow.getElement(this.classes.get("thumbnails"));var E=(C)?C.empty():new Element("div",{"class":this.classes.get("thumbnails").substr(1)}).inject(this.slideshow);E.setStyle("overflow","hidden");var A=new Element("ul",{tween:{link:"cancel"}}).inject(E);this.data.thumbnails.each(function(J,I){var F=new Element("li").inject(A);var G=new Element("a",{events:{click:function(K){this.go(K);return false}.pass(I,this),loaded:function(){this.data.thumbnails.pop();if(!this.data.thumbnails.length){var O=E.getCoordinates();var M=E.retrieve("props");var K=0,N=M[1],L=M[2];E.getElements("li").each(function(P){var P=P.getCoordinates();if(P[N]>K){K=P[N]}},this);E.store("limit",O[L]+O[M[0]]-K)}}.bind(this)},href:this.options.hu+this.data.images[I],morph:$merge(this.options.thumbnails,{link:"cancel"})}).inject(F);if(this.data.captions[I]&&this.options.titles){G.set("title",this.data.captions[I].replace(/<.+?>/gm,"").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"'"))}var H=new Asset.image(this.options.hu+J,{onload:function(){this.fireEvent("loaded")}.bind(G)}).inject(G)},this);E.set("events",{scroll:function(H,K){var F=this.getCoordinates();var L=this.getElement("ul").getPosition();var N=this.retrieve("props");var I=N[3],R,O=N[0],T=N[2],P;var S=this.getElement("ul").get("tween",{property:O});if($chk(H)){var Q=this.getElements("li")[H].getCoordinates();R=F[O]+(F[T]/2)-(Q[T]/2)-Q[O];P=(L[I]-F[O]+R).limit(this.retrieve("limit"),0);if(K){S.set(P)}else{S.start(P)}}else{var G=F[N[2]]/3,M=this.retrieve("page"),J=-0.2;if(M[I]<(F[O]+G)){R=(M[I]-F[O]-G)*J}else{if(M[I]>(F[O]+F[T]-G)){R=(M[I]-F[O]-F[T]+G)*J}}if(R){P=(L[I]-F[O]+R).limit(this.retrieve("limit"),0);S.set(P)}}}.bind(E),update:function(F){var G=this.slideshow.retrieve("thumbnails");G.getElements("a").each(function(H,I){if(I==this.slide){if(!H.retrieve("active",false)){H.store("active",true);var K=this.classes.get("thumbnails","active");if(F){H.get("morph").set(K)}else{H.morph(K)}}}else{if(H.retrieve("active",true)){H.store("active",false);var J=this.classes.get("thumbnails","inactive");if(F){H.get("morph").set(J)}else{H.morph(J)}}}},this);if(!G.retrieve("mouseover")){G.fireEvent("scroll",[this.slide,F])}}.bind(this)});var D=E.getCoordinates();E.store("props",(D.height>D.width)?["top","bottom","height","y"]:["left","right","width","x"]);var B=function(F){var G=this.getCoordinates();if(F.page.x>G.left&&F.page.x<G.right&&F.page.y>G.top&&F.page.y<G.bottom){this.store("page",F.page);if(!this.retrieve("mouseover")){this.store("mouseover",true);this.store("timer",function(){this.fireEvent("scroll")}.periodical(50,this))}}else{if(this.retrieve("mouseover")){this.store("mouseover",false);$clear(this.retrieve("timer"))}}}.bind(E);this.events.mousemove.push(B);document.addEvent("mousemove",B);this.slideshow.store("thumbnails",E)}});
/**
Script: Slideshow.js
Slideshow - A javascript class for Mootools to stream and animate the presentation of images on your website.
License:
MIT-style license.
Copyright:
Copyright (c) 2008 [Aeron Glemann](http://www.electricprism.com/aeron/).
Dependencies:
Mootools 1.2 Core: Fx.Morph, Fx.Tween, Selectors, Element.Dimensions.
Mootools 1.2 More: Assets.
*/
Slideshow=new Class(
{
  Implements:[Chain,Events,Options],options:
  {
    captions:false,center:true,classes:[],controller:false,delay:2000,duration:750,fast:false,height:false,href:"",hu:"",linked:false,loader:
    {
      animate:["css/loader-#.png",12]
    },
    loop:true,match:/\?slide=(\d+)$/,overlap:true,paused:false,properties:["href","rel","rev","title"],random:false,replace:[/(\.[^\.]+)$/,"t$1"],resize:"width",slide:0,thumbnails:false,titles:true,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+="/"
    }
    if(this.options.fast===true)
    {
      this.options.fast=2
    }
    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,Q)
      {
        var S=O.get("src");
        var N=$pick(O.get("alt"),O.get("title"),"");
        var R=O.getParent();
        var P=(R.get("tag")=="a")?R.getProperties:
        {
        };
        var M=O.getParent().get("href")||"";
        var T=(D[Q])?D[Q].get("src"):"";
        F[S]=
        {
          caption:N,href:M,thumbnail:T
        }
      }
      )
    }
    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");
    if(Browser.Engine.trident&&Browser.Engine.version>4)
    {
      this.a.style.msInterpolationMode="bicubic"
    }
    this.a.set("styles",
    {
      display:"none",position:"absolute",zIndex:1
    }
    );
    this.b=this.a.clone();
    [this.a,this.b].each(function(M)
    {
      G.clone().cloneEvents(G).grab(M).inject(I)
    }
    );
    if(this.options.captions)
    {
      this._captions()
    }
    if(this.options.controller)
    {
      this._controller()
    }
    if(this.options.loader)
    {
      this._loader()
    }
    if(this.options.thumbnails)
    {
      this._thumbnails()
    }
    this._preload()
  },
  go:function(B,A)
  {
    if((this.slide-1+this.data.images.length)%this.data.images.length==B||$time()<this.transition)
    {
      return
    }
    $clear(this.timer);
    this.delay=0;
    this.direction=(A)?A:((B<this.slide)?"right":"left");
    this.slide=B;
    if(this.preloader)
    {
      this.preloader=this.preloader.destroy()
    }
    this._preload(this.options.fast==2||(this.options.fast==1&&this.paused))
  },
  first:function()
  {
    this.prev(true)
  },
  prev:function(A)
  {
    var B=0;
    if(!A)
    {
      if(this.options.random)
      {
        if(this.showed.i<2)
        {
          return
        }
        this.showed.i-=2;
        B=this.showed.array[this.showed.i]
      }
      else
      {
        B=(this.slide-2+this.data.images.length)%this.data.images.length
      }
    }
    this.go(B,"right")
  },
  pause:function(A)
  {
    if($chk(A))
    {
      this.paused=(A)?false:true
    }
    if(this.paused)
    {
      this.paused=false;
      this.delay=this.transition=0;
      this.timer=this._preload.delay(100,this);
      [this.a,this.b].each(function(B)
      {
        ["morph","tween"].each(function(C)
        {
          if(this.retrieve(C))
          {
            this.get(C).resume()
          }
        },
        B)
      }
      );
      if(this.options.controller)
      {
        this.slideshow.getElement("."+this.classes.pause).removeClass(this.classes.play)
      }
    }
    else
    {
      this.paused=true;
      this.delay=Number.MAX_VALUE;
      this.transition=0;
      $clear(this.timer);
      [this.a,this.b].each(function(B)
      {
        ["morph","tween"].each(function(C)
        {
          if(this.retrieve(C))
          {
            this.get(C).pause()
          }
        },
        B)
      }
      );
      if(this.options.controller)
      {
        this.slideshow.getElement("."+this.classes.pause).addClass(this.classes.play)
      }
    }
  },
  next:function(A)
  {
    var B=(A)?this.data.images.length-1:this.slide;
    this.go(B,"left")
  },
  last:function()
  {
    this.next(true)
  },
  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(H,G)
      {
        return H+"?"+G
      }
      ))
    }
    this.data=
    {
      images:[],captions:[],hrefs:[],thumbnails:[]
    };
    for(var E in C)
    {
      var D=C[E]||
      {
      };
      var B=(D.caption)?D.caption.trim():"";
      var A=(D.href)?D.href.trim():((this.options.linked)?this.options.hu+E:this.options.href);
      var F=(D.thumbnail)?D.thumbnail.trim():E.replace(this.options.replace[0],this.options.replace[1]);
      this.data.images.push(E);
      this.data.captions.push(B);
      this.data.hrefs.push(A);
      this.data.thumbnails.push(F)
    }
    if(this.options.random)
    {
      this.slide=$random(0,this.data.images.length-1)
    }
    if(this.options.thumbnails&&this.slideshow.retrieve("thumbnails"))
    {
      this._thumbnails()
    }
    if(this.slideshow.retrieve("images"))
    {
      [this.a,this.b].each(function(G)
      {
        ["morph","tween"].each(function(H)
        {
          if(this.retrieve(H))
          {
            this.get(H).cancel()
          }
        },
        G)
      }
      );
      this.slide=this.transition=0;
      this.go(0)
    }
    return this.data.images.length
  },
  destroy:function(A)
  {
    this.events.each(function(C,B)
    {
      C.each(function(D)
      {
        document.removeEvent(B,D)
      }
      )
    }
    );
    this.pause(1);
    if(this.options.loader)
    {
      $clear(this.slideshow.retrieve("loader").retrieve("timer"))
    }
    if(this.options.thumbnails)
    {
      $clear(this.slideshow.retrieve("thumbnails").retrieve("timer"))
    }
    this.slideshow.uid=Native.UID++;
    if(A)
    {
      this.slideshow[A]()
    }
  },
  _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(D)
      {
        this.image.set(D,this.preloader.get(D))
      },
      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")
      }
      var C=(this.data.captions[this.slide])?this.data.captions[this.slide].replace(/<.+?>/gm,"").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"'"):"";this.image.set("alt",C);if(this.options.titles){B.set("title",C)}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.options.fast==2||(this.options.fast==1&&this.paused))?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.image.getStyle("visibility")!="visible"){(function(){this.image.setStyle("visibility","visible")}).delay(1,this)}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")},_captions:function(){if(this.options.captions===true){this.options.captions={}}var B=this.slideshow.getElement(this.classes.get("captions"));var A=(B)?B.empty():new Element("div",{"class":this.classes.get("captions").substr(1)}).inject(this.slideshow);A.set({events:{update:function(D){var C=this.slideshow.retrieve("captions");var F=(this.data.captions[this.slide]==="");if(D){var G=(F)?"hidden":"visible";C.set("html",this.data.captions[this.slide]).get("morph").cancel().set(this.classes.get("captions",G))}else{var E=(F)?$empty:function(H){this.slideshow.retrieve("captions").set("html",this.data.captions[H]).morph(this.classes.get("captions","visible"))}.pass(this.slide,this);C.get("morph").cancel().start(this.classes.get("captions","hidden")).chain(E)}}.bind(this)},morph:$merge(this.options.captions,{link:"chain"})});this.slideshow.store("captions",A)},_controller:function(){if(this.options.controller===true){this.options.controller={}}var E=this.slideshow.getElement(this.classes.get("controller"));var A=(E)?E.empty():new Element("div",{"class":this.classes.get("controller").substr(1)}).inject(this.slideshow);var C=new Element("ul").inject(A);$H({first:"Shift + Leftwards Arrow",prev:"Leftwards Arrow",pause:"P",next:"Rightwards Arrow",last:"Shift + Rightwards Arrow"}).each(function(J,I){var G=new Element("li",{"class":(I=="pause"&&this.options.paused)?this.classes.play+" "+this.classes[I]:this.classes[I]}).inject(C);var H=this.slideshow.retrieve(I,new Element("a",{title:((I=="pause")?this.classes.play.capitalize()+" / ":"")+this.classes[I].capitalize()+" ["+J+"]"}).inject(G));H.set("events",{click:function(K){this[K]()}.pass(I,this),mouseenter:function(K){this.addClass(K)}.pass(this.classes.active,H),mouseleave:function(K){this.removeClass(K)}.pass(this.classes.active,H)})},this);A.set({events:{hide:function(G){if(!this.retrieve("hidden")){this.store("hidden",true).morph(G)}}.pass(this.classes.get("controller","hidden"),A),show:function(G){if(this.retrieve("hidden")){this.store("hidden",false).morph(G)}}.pass(this.classes.get("controller","visible"),A)},morph:$merge(this.options.controller,{link:"cancel"})}).store("hidden",false);var B=function(H){if(["left","right","p"].contains(H.key)){var G=this.slideshow.retrieve("controller");if(G.retrieve("hidden")){G.get("morph").set(this.classes.get("controller","visible"))}switch(H.key){case"left":this.slideshow.retrieve((H.shift)?"first":"prev").fireEvent("mouseenter");break;case"right":this.slideshow.retrieve((H.shift)?"last":"next").fireEvent("mouseenter");break;default:this.slideshow.retrieve("pause").fireEvent("mouseenter");break}}}.bind(this);this.events.keydown.push(B);var F=function(H){if(["left","right","p"].contains(H.key)){var G=this.slideshow.retrieve("controller");if(G.retrieve("hidden")){G.store("hidden",false).fireEvent("hide")}switch(H.key){case"left":this.slideshow.retrieve((H.shift)?"first":"prev").fireEvent("mouseleave");break;case"right":this.slideshow.retrieve((H.shift)?"last":"next").fireEvent("mouseleave");break;default:this.slideshow.retrieve("pause").fireEvent("mouseleave");break}}}.bind(this);this.events.keyup.push(F);var D=function(H){var G=this.slideshow.retrieve("images").getCoordinates();if(H.page.x>G.left&&H.page.x<G.right&&H.page.y>G.top&&H.page.y<G.bottom){this.slideshow.retrieve("controller").fireEvent("show")}else{this.slideshow.retrieve("controller").fireEvent("hide")}}.bind(this);this.events.mousemove.push(D);document.addEvents({keydown:B,keyup:F,mousemove:D});this.slideshow.retrieve("controller",A).fireEvent("hide")},_loader:function(){if(this.options.loader===true){this.options.loader={}}var A=new Element("div",{"class":this.classes.get("loader").substr(1),morph:$merge(this.options.loader,{link:"cancel"})}).store("hidden",false).store("i",1).inject(this.slideshow.retrieve("images"));if(this.options.loader.animate){for(var B=0;B<this.options.loader.animate[1];B++){img=new Asset.image(this.options.loader.animate[0].replace(/#/,B))}if(Browser.Engine.trident4&&this.options.loader.animate[0].contains("png")){A.setStyle("backgroundImage","none")}}A.set("events",{animate:function(){var C=this.slideshow.retrieve("loader");var E=(C.retrieve("i").toInt()+1)%this.options.loader.animate[1];C.store("i",E);var D=this.options.loader.animate[0].replace(/#/,E);if(Browser.Engine.trident4&&this.options.loader.animate[0].contains("png")){C.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+D+'", sizingMethod="scale")'}else{C.setStyle("backgroundImage","url("+D+")")}}.bind(this),hide:function(){var C=this.slideshow.retrieve("loader");if(!C.retrieve("hidden")){C.store("hidden",true).morph(this.classes.get("loader","hidden"));if(this.options.loader.animate){$clear(C.retrieve("timer"))}}}.bind(this),show:function(){var C=this.slideshow.retrieve("loader");if(C.retrieve("hidden")){C.store("hidden",false).morph(this.classes.get("loader","visible"));if(this.options.loader.animate){C.store("timer",function(){this.fireEvent("animate")}.periodical(50,C))}}}.bind(this)});this.slideshow.retrieve("loader",A).fireEvent("hide")},_thumbnails:function(){if(this.options.thumbnails===true){this.options.thumbnails={}}var C=this.slideshow.getElement(this.classes.get("thumbnails"));var E=(C)?C.empty():new Element("div",{"class":this.classes.get("thumbnails").substr(1)}).inject(this.slideshow);E.setStyle("overflow","hidden");var A=new Element("ul",{tween:{link:"cancel"}}).inject(E);this.data.thumbnails.each(function(J,I){var F=new Element("li").inject(A);var G=new Element("a",{events:{click:function(K){this.go(K);return false}.pass(I,this),loaded:function(){this.data.thumbnails.pop();if(!this.data.thumbnails.length){var O=E.getCoordinates();var M=E.retrieve("props");var K=0,N=M[1],L=M[2];E.getElements("li").each(function(P){var P=P.getCoordinates();if(P[N]>K){K=P[N]}},this);E.store("limit",O[L]+O[M[0]]-K)}}.bind(this)},href:this.options.hu+this.data.images[I],morph:$merge(this.options.thumbnails,{link:"cancel"})}).inject(F);if(this.data.captions[I]&&this.options.titles){G.set("title",this.data.captions[I].replace(/<.+?>/gm,"").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"'"))}var H=new Asset.image(this.options.hu+J,{onload:function(){this.fireEvent("loaded")}.bind(G)}).inject(G)},this);E.set("events",{scroll:function(H,K){var F=this.getCoordinates();var L=this.getElement("ul").getPosition();var N=this.retrieve("props");var I=N[3],R,O=N[0],T=N[2],P;var S=this.getElement("ul").get("tween",{property:O});if($chk(H)){var Q=this.getElements("li")[H].getCoordinates();R=F[O]+(F[T]/2)-(Q[T]/2)-Q[O];P=(L[I]-F[O]+R).limit(this.retrieve("limit"),0);if(K){S.set(P)}else{S.start(P)}}else{var G=F[N[2]]/3,M=this.retrieve("page"),J=-0.2;if(M[I]<(F[O]+G)){R=(M[I]-F[O]-G)*J}else{if(M[I]>(F[O]+F[T]-G)){R=(M[I]-F[O]-F[T]+G)*J}}if(R){P=(L[I]-F[O]+R).limit(this.retrieve("limit"),0);S.set(P)}}}.bind(E),update:function(F){var G=this.slideshow.retrieve("thumbnails");G.getElements("a").each(function(H,I){if(I==this.slide){if(!H.retrieve("active",false)){H.store("active",true);var K=this.classes.get("thumbnails","active");if(F){H.get("morph").set(K)}else{H.morph(K)}}}else{if(H.retrieve("active",true)){H.store("active",false);var J=this.classes.get("thumbnails","inactive");if(F){H.get("morph").set(J)}else{H.morph(J)}}}},this);if(!G.retrieve("mouseover")){G.fireEvent("scroll",[this.slide,F])}}.bind(this)});var D=E.getCoordinates();E.store("props",(D.height>D.width)?["top","bottom","height","y"]:["left","right","width","x"]);var B=function(F){var G=this.getCoordinates();if(F.page.x>G.left&&F.page.x<G.right&&F.page.y>G.top&&F.page.y<G.bottom){this.store("page",F.page);if(!this.retrieve("mouseover")){this.store("mouseover",true);this.store("timer",function(){this.fireEvent("scroll")}.periodical(50,this))}}else{if(this.retrieve("mouseover")){this.store("mouseover",false);$clear(this.retrieve("timer"))}}}.bind(E);this.events.mousemove.push(B);document.addEvent("mousemove",B);this.slideshow.store("thumbnails",E)}});
