(function(a,b){a.widget("seasideslider.seasideSlider",{options:{viewport:"> .viewport",slides:".slides > section",prev:"> nav .prev",next:"> nav .next",slideSelectorsAncestor:"> nav ul",slideSelectors:function(c){return a('<li title="slide '+(c+1)+'"></li>').appendTo(this)},swipeThreshold:50,},_create:function(){this.$window=a(window);this.$document=a(document);this.viewport=this.element.find(this.options.viewport);this.slides=this.element.find(this.options.slides);this.container=this.slides.parent();this.axis=new Array();this.transform=Modernizr.prefixed("transform");this._calculateLayout();this._controls();this._keyboardAccessibility();this.goTo(Math.max(0,this.slides.filter(".current").index()),false);if(Modernizr.touch){this._touch()}this.$window.bind("resize."+this.namespace,a.proxy(function(){this._calculateLayout();this.goTo(this.current,false)},this))},destroy:function(){this.$window.unbind(this.namespace);this.$document.unbind("."+this.namespace).undelegate("."+this.namespace);this.element.unbind("."+this.namespace);this.prevSelector.unbind("."+this.namespace);this.nextSelector.unbind("."+this.namespace);this.slideSelectorsAncestor.undelegate("."+this.namespace);if(Modernizr.touch){this.viewport.unbind("."+this.namespace)}a.Widget.prototype.destroy.call(this)},_calculateLayout:function(){var c=this.slides.outerWidth()+parseInt(this.slides.css("margin-right"));this.axis=this.slides.map(function(d){var e=c*d;a(this).css("left",e+"px");return e})},prev:function(){return this.goTo(this.current-1)},next:function(){return this.goTo(this.current+1)},first:function(){return this.goTo(0)},last:function(){return this.goTo(this.slides.length-1)},goTo:function(d,c){this.container.toggleClass("transition",c!==false);this.element.removeClass("slide-left slide-right");if(d>this.current){this.element.addClass("slide-right")}else{if(d<this.current){this.element.addClass("slide-left")}}if(Modernizr.touch){if(d<0){d=0}else{if(d>this.slides.length-1){d=this.slides.length-1}}}else{if(d<0){d=this.slides.length-1}else{if(d>this.slides.length-1){d=0}}}this.current=d;this._translateX(-this.axis[d]);this._markCurrent();this._trigger("goto",null,{n:d});return this},_markCurrent:function(){this.slides.filter(".current").removeClass("current").end().eq(this.current).addClass("current");this.slideSelectors.filter(".current").removeClass("current").end().eq(this.current).addClass("current")},_translateX:function(c){if(Modernizr.csstransforms3d){this.container.css(this.transform,"translate3d("+c+"px,0,0)")}else{if(Modernizr.csstransforms){this.container.css(this.transform,"translateX("+c+"px)")}else{this.container.css("marginLeft",c+"px")}}},_getX:function(){return parseInt(this.container.css(this.transform).replace(/^matrix\(-?[0-9]+, -?[0-9]+, -?[0-9]+, -?[0-9]+, (-?[0-9]+), -?[0-9]\)$/g,"$1"))},_controls:function(){if(this.options.prev!==false){this.prevSelector=this.element.find(this.options.prev).bind("click."+this.namespace,a.proxy(this.prev,this))}if(this.options.next!==false){this.nextSelector=this.element.find(this.options.next).bind("click."+this.namespace,a.proxy(this.next,this))}if(this.options.slideSelectorsAncestor!==false){this.slideSelectorsAncestor=this.element.find(this.options.slideSelectorsAncestor);this.slideSelectors=this.slideSelectorsAncestor.find(typeof this.options.slideSelectors==="function"?this.slides.map(a.proxy(function(d){var c=this.options.slideSelectors.call(this.slideSelectorsAncestor[0],d);return a(c).get(0)},this)):this.options.slideSelectors);this.slideSelectorsAncestor.delegate(this.slideSelectors.prop("nodeName"),"click."+this.namespace,a.proxy(function(c){this.goTo(this.slideSelectors.index(c.target))},this))}},_keyboardAccessibility:function(){this.element.attr("tabindex",0).bind("focusin."+this.namespace,a.proxy(function(c){this.$document.bind("keydown."+this.namespace,a.proxy(function(d){switch(d.keyCode){case 37:this.prev();break;case 39:this.next();break}},this))},this)).bind("focusout."+this.namespace,a.proxy(function(){this.$document.unbind("keydown."+this.namespace)},this))},_touch:function(){var d,f,g,c,e;this.viewport.bind("touchstart."+this.namespace,a.proxy(function(h){e=false;d=h.originalEvent.touches[0].pageX;f=0;g=new Array();c=this._getX();this.container.removeClass("transition")},this)).bind("touchmove."+this.namespace,a.proxy(function(h){if(h.originalEvent.touches.length>1||h.originalEvent.scale!==1){return}f=h.originalEvent.touches[0].pageX;g.push(f);if(e||Math.abs(d-f)>3){this._translateX(c+(f-d));h.preventDefault();e=true}},this)).bind("touchend."+this.namespace,a.proxy(function(h){if(f===0){return}else{if((d-f)>this.options.swipeThreshold){if(g[g.length-2]<f){this.goTo(this.current)}else{this.next()}}else{if((f-d)>this.options.swipeThreshold){if(g[g.length-2]>f){this.goTo(this.current)}else{this.prev()}}else{this.goTo(this.current)}}}},this))},})})(jQuery);
