(function(){var i=".slide-images";
/*!
  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 j,d,a,h,c,k,f,e,g,b=function(a,b){return function(){return a.apply(b,arguments)}},m=Object.prototype.hasOwnProperty,l=function(b,a){for(var c in a)if(m.call(a,c))b[c]=a[c];function d(){this.constructor=b}d.prototype=a.prototype;b.prototype=new d;b.__super__=a.prototype;return b};k=function(a,b){return a-b*Math.floor(a/b)};f=function(a,b){while(a--&&!(b=window["oR0msR0mozR0webkitR0r".split(0)[a]+"equestAnimationFrame"]));return b||function(a){setTimeout(a,15)}}(5);c=function(){return+new Date};e=function(b){var a;a=$('<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>');a.find(i).append($.map(b.slides,function(a){return $('<div class="slide-image"><a href="'+(a.link?a.link:'javascript: void(0)" onclick="switcher()')+'"><img src="'+a.src+'">'+(a.name?'<span class="caption">'+a.name+"</span>":"")+(a.link?"</a>":"")+"</div>")[0]}));a.find(".slide-pager").append($.map(b.slides,function(){return $('<a href="javascript:;" class="iefix"></a>')[0]}));return a};g=function(b){var a;a=e(b);a.find("div.slide-images").append('<canvas class="slide-images" />');return a};a={extractImageData:function(a,h,i){var e,b,f,g,c,d;d=a.canvas[0],c=d.width,b=d.height;a.clean();a.drawImage(a.images[h]);e=a.ctx.getImageData(0,0,c,b);a.clean();a.drawImage(a.images[i]);g=a.ctx.getImageData(0,0,c,b);f=a.ctx.createImageData(c,b);return{fromData:e,toData:g,output:f}},clippedTransition:function(a){return function(b,h,i,g){var c,e,f,d;d=b.canvas[0],f=d.width,e=d.height;c=b.ctx;b.drawImage(b.images[h]);c.save();c.beginPath();a(c,f,e,g);c.clip();b.drawImage(b.images[i]);return c.restore()}}};d={clock:{render:a.clippedTransition(function(c,b,a,d){c.moveTo(b/2,a/2);return c.arc(b/2,a/2,Math.max(b,a),0,Math.PI*2*d,false)})},circle:{render:a.clippedTransition(function(c,b,a,d){return c.arc(b/2,a/2,.6*d*Math.max(b,a),0,Math.PI*2,false)})},diamond:{render:a.clippedTransition(function(c,h,f,g){var d,e,a,b;b=h/2;a=f/2;d=g*f;e=g*h;c.moveTo(b,a-d);c.lineTo(b+e,a);c.lineTo(b,a+d);return c.lineTo(b-e,a)})},verticalOpen:{render:a.clippedTransition(function(d,m,o,p){var e,f,a,b,k,c,n,i,j,g,l,h;b=8;c=o/(2*b);j=c;k=p*m/2;g=m/2-k;l=m/2+k;n=g-j;i=l+j;d.moveTo(g,0);for(a=0;0<=b?a<=b:a>=b;0<=b?a++:a--){e=2*a*c;f=e+c;d.lineTo(n,e);d.lineTo(g,f)}d.lineTo(i,o);h=[];for(a=b;b<=0?a<=0:a>=0;b<=0?a++:a--){e=2*a*c;f=e-c;d.lineTo(l,e);h.push(d.lineTo(i,f))}return h})},horizontalOpen:{render:a.clippedTransition(function(c,d,a,b){return c.rect(0,(1-b)*a/2,d,a*b)})},horizontalSunblind:{render:a.clippedTransition(function(f,h,g,c){var b,d,a,e;c=1-(1-c)*(1-c);a=6;d=g/a;e=[];for(b=0;0<=a?b<=a:b>=a;0<=a?b++:b--)e.push(f.rect(0,d*b,h,d*c));return e})},verticalSunblind:{render:a.clippedTransition(function(g,i,h,c){var b,d,a,f,e;c=1-(1-c)*(1-c);a=10;d=i/a;e=[];for(b=0;0<=a?b<=a:b>=a;0<=a?b++:b--){f=Math.max(0,Math.min(2*c-(b+1)/a,1));e.push(g.rect(d*b,0,d*f,h))}return e})},circles:{render:a.clippedTransition(function(m,f,k,p){var h,i,b,a,e,j,l,o,n,c,d,g;a=6;b=Math.floor(a*f/k);i=f/b;h=k/a;o=Math.max(f,k);l=.7*Math.max(i,h);g=[];for(c=0;0<=b?c<=b:c>=b;0<=b?c++:c--)g.push(function(){var b;b=[];for(d=0;0<=a?d<=a:d>=a;0<=a?d++:d--){e=(c+.5)*i;j=(d+.5)*h;n=Math.max(0,Math.min(2*p-e/f,1))*l;m.moveTo(e,j);b.push(m.arc(e,j,n,0,Math.PI*2,false))}return b}());return g})},squares:{render:a.clippedTransition(function(p,o,n,e){var f,g,b,a,i,j,k,l,m,c,d,h;e=1-(1-e)*(1-e);a=5;b=Math.floor(a*o/n);g=o/b;f=n/a;h=[];for(c=0;0<=b?c<=b:c>=b;0<=b?c++:c--)h.push(function(){var b;b=[];for(d=0;0<=a?d<=a:d>=a;0<=a?d++:d--){l=g*c;m=f*d;i=Math.max(0,Math.min(3*e-l/o-m/n,1));k=g*i;j=f*i;b.push(p.rect(l-k/2,m-j/2,k,j))}return b}());return h})},fadeLeft:{init:function(e,f,g){var d,c,b;d=a.extractImageData(e,f,g);d.randomTrait=[];c=e.canvas[0].height;for(b=0;0<=c?b<=c:b>=c;0<=c?b++:b--)d.randomTrait[b]=Math.random();return d},render:function(d,m,n,k,a){var c,l,i,h,f,g,j,b,e;c=150;e=d.canvas[0],b=e.width,h=e.height;l=d.ctx;i=a.fromData.data;j=a.toData.data;f=a.output.data;g=a.randomTrait;(function(){for(var o=b*k/c,a=0;a<b;++a)for(var p=a/c,d=0;d<h;++d){for(var n=(d*b+a)*4,m=Math.min(Math.max(p-o*(1+g[d]/10),0),1),q=1-m,e=0;e<3;++e){var l=n+e;f[l]=m*i[l]+q*j[l]}f[n+3]=255}})();return d.ctx.putImageData(a.output,0,0)}}};j=function(){var g=".slide-pager a",f=".slide-image",d="theme-dark";function a(a){this.container=$(a)}a.prototype.current=0;a.prototype.descrBlock="";a.prototype.lastHumanNav=0;a.prototype.duration=15e3;a.prototype.w="640px";a.prototype.h="430px";a.prototype.theme=d;a.prototype.tmpl=e;a.prototype.circular=function(a){return k(a,this.slides.size())};a.prototype.slide=function(b){var c="current",a=this;if(a.current!=b)if($("#descr"+b).is(":hidden")){$(a.descrBlock+" div").slideUp();$("#descr"+b).slideDown()}if(a.slides&&a.pages){b=Math.max(0,Math.min(b,a.slides.size()-1));a.slides.eq(a.current).removeClass(c);a.slides.eq(b).addClass(c);a.pages.eq(a.current).removeClass(c);a.pages.eq(b).addClass(c)}a.current=b;return a};a.prototype.next=function(){return this.slide(this.circular(this.current+1))};a.prototype.prev=function(){return this.slide(this.circular(this.current-1))};a.prototype.setDuration=function(a){this.duration=a;return this};a.prototype.descrBlock=function(a){this.descrBlock=a;return this};a.prototype.setTransition=function(b){var a=this;if(a.node){a.transition&&a.node.removeClass(a.transition);b&&a.node.addClass(b)}a.transition=b;return a};a.prototype.setTheme=function(b){var a=this;if(b==null)b=d;if(a.node){a.theme&&a.node.removeClass(a.theme);b&&a.node.addClass(b)}a.theme=b;return a};a.prototype.setSize=function(b,c){var a=this;a.w=b;a.h=c;if(a.node){a.node.width(b);a.node.find(f).width(b);a.node.find(i).height(c)}return a};a.prototype.fetchJson=function(e,d,a){var c;c=$.extend({},d);if(a==null)a=function(a){return a};$.getJSON(e,c,b(function(b){return this.setPhotos(a(b))},this));return this};a.prototype._sync=function(){var a=this;a.setTransition(a.transition);a.setTheme(a.theme);a.setSize(a.w,a.h);return a.slide(a.current)};a.prototype.setPhotos=function(e){var a=this,d,c;a.photos=e;a.node=a.tmpl({slides:e}).addClass("loading");a.container.empty().append(a.node);a._sync();c=0;d=a.node.find(".slide-image img").bind("load",b(function(){var a=this,b;b=d.size();if(++c===b){a.node.removeClass("loading");a.start();$(a.descrBlock).show()}return a.node.find(".loader .percent").text(Math.floor(100*c/b))},a));d.size()===0&&a.node.find(".loader").text("No photo");return a};a.prototype.start=function(){var a=this;a.slides=a.node.find(f);a.pages=a.node.find(g);a._sync();a._bind();return a};a.prototype.stop=function(){this._unbind();return this};a.prototype._bind=function(){var a=this,d,e,f;a._unbind();a.node.find(".prevSlide").click(b(function(){return this.prev()},a));a.node.find(".nextSlide").click(b(function(){return this.next()},a));f=a;if(a.node){a.node.find(g).each(function(a){return $(this).click(function(){return f.slide(a)})});e=function(){return c()};a.node.find(".options a").click(b(function(){return this.lastHumanNav=e()},a))}if(!a.timeout){d=b(function(){var a=this;e()-a.lastHumanNav>2e3&&a.next();return a.timeout=setTimeout(d,a.duration)},a);a.timeout=setTimeout(d,a.duration)}return a};a.prototype._unbind=function(){var a=this;a.node&&a.node.find(".prevSlide, .nextSlide, .slide-pager a, .options a").unbind("click");if(a.timeout){clearTimeout(a.timeout);return a.timeout=null}};return a}();h=function(){var e="canvas";l(a,j);function a(){a.__super__.constructor.apply(this,arguments)}a.prototype.transitionFunction=d.clock;a.prototype.transitionDuration=1500;a.prototype.tmpl=g;a.prototype._sync=function(){var b;b=this.renderMode;a.__super__._sync.apply(this,arguments);return this.setRenderMode(b)};a.prototype.start=function(){var c=this;c.notCanvas=c.node.find(".slide-images:not(canvas) img");c.canvas=c.node.find("canvas.slide-images");if(c.canvas[0]&&c.canvas[0].getContext)c.ctx=c.canvas[0].getContext("2d");if(c.photos)c.images=$.map(c.photos,b(function(b){var a;a=new Image;a.src=b.src;return a},c));return a.__super__.start.apply(c,arguments)};a.prototype.setSize=function(d,c){var b=this;a.__super__.setSize.call(b,d,c);b.canvas&&b.canvas.attr("height",c).attr("width",d);return b};a.prototype.setRenderMode=function(b){var a=this;a.renderMode=b;if(a.ctx)if(a.renderMode===e){a.drawImage(a.images[a.current]);a.notCanvas.hide();a.canvas.show()}else{a.canvas.hide();a.notCanvas.show()}return a};a.prototype.setTransition=function(b){this.setRenderMode("css");a.__super__.setTransition.call(this,b);return this};a.prototype.setTransitionFunction=function(a){this.transitionFunction=a;this.setRenderMode(e);return this};a.prototype.setTransitionDuration=function(a){this.transitionDuration=a;this.setRenderMode(e);return this};a.prototype.slide=function(d){var b=this;b.fromSlide=b.current;b.toSlide=d;b.transitionStart=c();b.ctx&&b.renderMode===e&&b.startRender();return a.__super__.slide.call(b,d)};a.prototype.clean=function(){return this.ctx.clearRect(0,0,this.canvas[0].width,this.canvas[0].height)};a.prototype.drawImage=function(c){var d,a,b;b=this.canvas[0],a=b.width,d=b.height;return this.ctx.drawImage(c,0,0,a,a*c.height/c.width)};a.prototype._renderId=0;a.prototype.startRender=function(){var a=this;if(a.transitionFunction.init)a.tfdata=a.transitionFunction.init(a,a.fromSlide,a.toSlide);return a.render(++a._renderId,a.transitionFunction)};a.prototype.render=function(h,g){var a=this,e,d;e=c();if(h===a._renderId&&e>=a.transitionStart){d=Math.min(1,(e-a.transitionStart)/a.transitionDuration);if(d===1){a.clean();return a.drawImage(a.images[a.toSlide])}else{g.render(a,a.fromSlide,a.toSlide,d,a.tfdata);return f(b(function(){return this.render(h,g)},a),a.canvas[0])}}};return a}();window.Slider=h;window.SliderTransitionFunctions=d;window.SliderUtils=a}).call(this);
