(function(){
/*!
  Copyright 2011 Gaetan Renaudeau
  http://greweb.fr/slider
  
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  
  http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  */
var d,f,e,l,a,k,i,j,c;var g=function(m,n){return function(){return m.apply(n,arguments)}},h=Object.prototype.hasOwnProperty,b=function(p,n){for(var m in n){if(h.call(n,m)){p[m]=n[m]}}function o(){this.constructor=p}o.prototype=n.prototype;p.prototype=new o;p.__super__=n.prototype;return p};k=function(n,m){return n-m*Math.floor(n/m)};i=function(n,m){while(n--&&!(m=window["oR0msR0mozR0webkitR0r".split(0)[n]+"equestAnimationFrame"])){}return m||function(o){setTimeout(o,15)}}(5);a=function(){return new Date().getTime()};j=function(n){var m;m=$('<div class="slider">\n  <div class="loader"><span class="spinner"></span> <span class="percent">0</span>%</div>\n  <div class="slide-images"></div>\n  <div class="options">\n    <a class="prevSlide" href="javascript:;">prev</a>\n    <span class="slide-pager"></span>\n    <a class="nextSlide" href="javascript:;">next</a>\n  </div>\n</div>');m.find(".slide-images").append($.map(n.slides,function(o){return $('<div class="slide-image">'+(o.link?'<a href="'+o.link+'" target="_blank">':"")+'<img src="'+o.src+'">'+(o.name?'<span class="caption">'+o.name+"</span>":"")+(o.link?"</a>":"")+"</div>")[0]}));m.find(".slide-pager").append($.map(n.slides,function(o,p){return $('<a href="javascript:;">'+(p+1)+"</a>")[0]}));return m};c=function(n){var m;m=j(n);m.find("div.slide-images").append('<canvas class="slide-images" />');return m};e={extractImageData:function(u,q,r){var s,t,n,p,m,o;o=u.canvas[0],m=o.width,t=o.height;u.clean();u.drawImage(u.images[q]);s=u.ctx.getImageData(0,0,m,t);u.clean();u.drawImage(u.images[r]);p=u.ctx.getImageData(0,0,m,t);n=u.ctx.createImageData(m,t);return{fromData:s,toData:p,output:n}},clippedTransition:function(m){return function(p,u,t,q){var o,n,r,s;s=p.canvas[0],r=s.width,n=s.height;o=p.ctx;p.drawImage(p.images[u]);o.save();o.beginPath();m(o,r,n,q);o.clip();p.drawImage(p.images[t]);return o.restore()}}};f={clock:{render:e.clippedTransition(function(n,m,o,q){n.moveTo(m/2,o/2);return n.arc(m/2,o/2,Math.max(m,o),0,Math.PI*2*q,false)})},circle:{render:e.clippedTransition(function(n,m,o,q){return n.arc(m/2,o/2,0.6*q*Math.max(m,o),0,Math.PI*2,false)})},diamond:{render:e.clippedTransition(function(o,n,s,u){var t,r,q,m;m=n/2;q=s/2;t=u*s;r=u*n;o.moveTo(m,q-t);o.lineTo(m+r,q);o.lineTo(m,q+t);return o.lineTo(m-r,q)})},verticalOpen:{render:e.clippedTransition(function(D,B,u,n){var z,y,o,t,C,A,x,r,m,v,q,s;t=8;A=u/(2*t);m=A;C=n*B/2;v=B/2-C;q=B/2+C;x=v-m;r=q+m;D.moveTo(v,0);for(o=0;0<=t?o<=t:o>=t;0<=t?o++:o--){z=(2*o)*A;y=z+A;D.lineTo(x,z);D.lineTo(v,y)}D.lineTo(r,u);s=[];for(o=t;t<=0?o<=0:o>=0;t<=0?o++:o--){z=(2*o)*A;y=z-A;D.lineTo(q,z);s.push(D.lineTo(r,y))}return s})},horizontalOpen:{render:e.clippedTransition(function(n,m,o,q){return n.rect(0,(1-q)*o/2,m,o*q)})},horizontalSunblind:{render:e.clippedTransition(function(o,n,r,t){var s,u,q,m;t=1-(1-t)*(1-t);q=6;u=r/q;m=[];for(s=0;0<=q?s<=q:s>=q;0<=q?s++:s--){m.push(o.rect(0,u*s,n,u*t))}return m})},verticalSunblind:{render:e.clippedTransition(function(v,u,r,m){var t,s,o,q,n;m=1-(1-m)*(1-m);o=10;s=u/o;n=[];for(t=0;0<=o?t<=o:t>=o;0<=o?t++:t--){q=Math.max(0,Math.min(2*m-(t+1)/o,1));n.push(v.rect(s*t,0,s*q,r))}return n})},circles:{render:e.clippedTransition(function(G,E,v,n){var u,D,A,z,s,o,t,F,m,C,B,q;z=6;A=Math.floor(z*E/v);D=E/A;u=v/z;F=Math.max(E,v);t=0.7*Math.max(D,u);q=[];for(C=0;0<=A?C<=A:C>=A;0<=A?C++:C--){q.push((function(){var p;p=[];for(B=0;0<=z?B<=z:B>=z;0<=z?B++:B--){s=(C+0.5)*D;o=(B+0.5)*u;m=Math.max(0,Math.min(2*n-s/E,1))*t;G.moveTo(s,o);p.push(G.arc(s,o,m,0,Math.PI*2,false))}return p})())}return q})},squares:{render:e.clippedTransition(function(F,E,t,m){var A,u,q,o,s,D,n,C,z,B,v,r;m=1-(1-m)*(1-m);o=5;q=Math.floor(o*E/t);u=E/q;A=t/o;r=[];for(B=0;0<=q?B<=q:B>=q;0<=q?B++:B--){r.push((function(){var p;p=[];for(v=0;0<=o?v<=o:v>=o;0<=o?v++:v--){C=u*B;z=A*v;s=Math.max(0,Math.min(3*m-C/E-z/t,1));n=u*s;D=A*s;p.push(F.rect(C-n/2,z-D/2,n,D))}return p})())}return r})},fadeLeft:{init:function(m,r,q){var o,n,p;o=e.extractImageData(m,r,q);o.randomTrait=[];n=m.canvas[0].height;for(p=0;0<=n?p<=n:p>=n;0<=n?p++:p--){o.randomTrait[p]=Math.random()}return o},render:function(y,v,w,m,t){var p,z,o,x,r,u,q,n,s;p=150;s=y.canvas[0],n=s.width,x=s.height;z=y.ctx;o=t.fromData.data;q=t.toData.data;r=t.output.data;u=t.randomTrait;(function(){var B=n*m/p;for(var G=0;G<n;++G){var A=G/p;for(var E=0;E<x;++E){var F=(E*n+G)*4;var I=Math.min(Math.max((A-B*(1+u[E]/10)),0),1);var H=1-I;for(var D=0;D<3;++D){var C=F+D;r[C]=I*(o[C])+H*(q[C])}r[F+3]=255}}}());return y.ctx.putImageData(t.output,0,0)}}};d=(function(){function m(n){this.container=$(n)}m.prototype.current=0;m.prototype.lastHumanNav=0;m.prototype.duration=4000;m.prototype.w="640px";m.prototype.h="430px";m.prototype.theme="theme-dark";m.prototype.tmpl=j;m.prototype.circular=function(n){return k(n,this.slides.size())};m.prototype.slide=function(n){if(this.slides&&this.pages){n=Math.max(0,Math.min(n,this.slides.size()-1));this.slides.eq(this.current).removeClass("current");this.slides.eq(n).addClass("current");this.pages.eq(this.current).removeClass("current");this.pages.eq(n).addClass("current")}this.current=n;return this};m.prototype.next=function(){return this.slide(this.circular(this.current+1))};m.prototype.prev=function(){return this.slide(this.circular(this.current-1))};m.prototype.setDuration=function(n){this.duration=n;return this};m.prototype.setTransition=function(n){if(this.node){if(this.transition){this.node.removeClass(this.transition)}if(n){this.node.addClass(n)}}this.transition=n;return this};m.prototype.setTheme=function(n){if(n==null){n="theme-dark"}if(this.node){if(this.theme){this.node.removeClass(this.theme)}if(n){this.node.addClass(n)}}this.theme=n;return this};m.prototype.setSize=function(n,o){this.w=n;this.h=o;if(this.node){this.node.width(n);this.node.find(".slide-image").width(n);this.node.find(".slide-images").height(o)}return this};m.prototype.fetchJson=function(p,o,n){var q;q=$.extend({},o);if(n==null){n=function(r){return r}}$.getJSON(p,q,g(function(r){return this.setPhotos(n(r))},this));return this};m.prototype._sync=function(){this.setTransition(this.transition);this.setTheme(this.theme);this.setSize(this.w,this.h);return this.slide(this.current)};m.prototype.setPhotos=function(p){var o,n;this.photos=p;this.node=this.tmpl({slides:p}).addClass("loading");this.container.empty().append(this.node);this._sync();n=0;o=this.node.find(".slide-image img").bind("load",g(function(){var q;q=o.size();if(++n===q){this.node.removeClass("loading");this.start()}return this.node.find(".loader .percent").text(Math.floor(100*n/q))},this));if(o.size()===0){this.node.find(".loader").text("No photo")}return this};m.prototype.start=function(){this.slides=this.node.find(".slide-image");this.pages=this.node.find(".slide-pager a");this._sync();this._bind();return this};m.prototype.stop=function(){this._unbind();return this};m.prototype._bind=function(){var p,o,n;this._unbind();this.node.find(".prevSlide").click(g(function(){return this.prev()},this));this.node.find(".nextSlide").click(g(function(){return this.next()},this));n=this;if(this.node){this.node.find(".slide-pager a").each(function(q){return $(this).click(function(){return n.slide(q)})});o=function(){return a()};this.node.find(".options a").click(g(function(){return this.lastHumanNav=o()},this))}if(!this.timeout){p=g(function(){if(o()-this.lastHumanNav>2000){this.next()}return this.timeout=setTimeout(p,this.duration)},this);this.timeout=setTimeout(p,this.duration)}return this};m.prototype._unbind=function(){if(this.node){this.node.find(".prevSlide, .nextSlide, .slide-pager a, .options a").unbind("click")}if(this.timeout){clearTimeout(this.timeout);return this.timeout=null}};return m})();l=(function(){b(m,d);function m(){m.__super__.constructor.apply(this,arguments)}m.prototype.transitionFunction=f.clock;m.prototype.transitionDuration=1500;m.prototype.tmpl=c;m.prototype._sync=function(){var n;n=this.renderMode;m.__super__._sync.apply(this,arguments);return this.setRenderMode(n)};m.prototype.start=function(){this.notCanvas=this.node.find(".slide-images:not(canvas) img");this.canvas=this.node.find("canvas.slide-images");if(this.canvas[0]&&this.canvas[0].getContext){this.ctx=this.canvas[0].getContext("2d")}if(this.photos){this.images=$.map(this.photos,(g(function(o){var n;n=new Image();n.src=o.src;return n},this)))}return m.__super__.start.apply(this,arguments)};m.prototype.setSize=function(n,o){m.__super__.setSize.call(this,n,o);if(this.canvas){this.canvas.attr("height",o).attr("width",n)}return this};m.prototype.setRenderMode=function(n){this.renderMode=n;if(this.ctx){if(this.renderMode==="canvas"){this.drawImage(this.images[this.current]);this.notCanvas.hide();this.canvas.show()}else{this.canvas.hide();this.notCanvas.show()}}return this};m.prototype.setTransition=function(n){this.setRenderMode("css");m.__super__.setTransition.call(this,n);return this};m.prototype.setTransitionFunction=function(n){this.transitionFunction=n;this.setRenderMode("canvas");return this};m.prototype.setTransitionDuration=function(n){this.transitionDuration=n;this.setRenderMode("canvas");return this};m.prototype.slide=function(n){this.fromSlide=this.current;this.toSlide=n;this.transitionStart=a();if(this.ctx&&this.renderMode==="canvas"){this.startRender()}return m.__super__.slide.call(this,n)};m.prototype.clean=function(){return this.ctx.clearRect(0,0,this.canvas[0].width,this.canvas[0].height)};m.prototype.drawImage=function(o){var n,p,q;q=this.canvas[0],p=q.width,n=q.height;return this.ctx.drawImage(o,0,0,p,p*o.height/o.width)};m.prototype._renderId=0;m.prototype.startRender=function(){if(this.transitionFunction.init){this.tfdata=this.transitionFunction.init(this,this.fromSlide,this.toSlide)}return this.render(++this._renderId,this.transitionFunction)};m.prototype.render=function(q,p){var o,n;o=a();if(q===this._renderId&&o>=this.transitionStart){n=Math.min(1,(o-this.transitionStart)/this.transitionDuration);if(n===1){this.clean();return this.drawImage(this.images[this.toSlide])}else{p.render(this,this.fromSlide,this.toSlide,n,this.tfdata);return i((g(function(){return this.render(q,p)},this)),this.canvas[0])}}};return m})();window.Slider=l;window.SliderTransitionFunctions=f;window.SliderUtils=e}).call(this);
