// jquery.touchcarousel v1.2
(function(g){function r(a,c){var b,e;this.carouselRoot=g(a);var d=this;this._b=this._a=!1;this._e=this._d=this._c="";this._f;this._g;this._h;this._i;this._j;this._k=0;this.settings=g.extend({},g.fn.touchCarousel.defaults,c);this._l=this.carouselRoot.find(".touchcarousel-container");this._m=this._l[0].style;this._n=this._l.wrap(g('<div class="touchcarousel-wrapper" />')).parent();var f=this._l.find(".touchcarousel-item");this.items=[];this.numItems=f.length;this._o;this._p=!1;this._s=this._r=this._q=
0;this._v=this._u=this._t=!1;b=navigator.userAgent.toLowerCase();e=/(chrome)[ \/]([\w.]+)/.exec(b)||/(webkit)[ \/]([\w.]+)/.exec(b)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(b)||/(msie) ([\w.]+)/.exec(b)||0>b.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(b)||[];b=e[1]||"";e=e[2]||"0";var q={};b&&(q[b]=!0,q.version=e);q.chrome&&(q.webkit=!0);d._w=q;"ontouchstart"in window?(this.hasTouch=!0,this._c="touchstart.rs",this._d="touchmove.rs",this._e="touchend.rs",this._x=this.settings.baseTouchFriction):
(this.hasTouch=!1,this._x=this.settings.baseMouseFriction,this.settings.dragUsingMouse?(this._c="mousedown.rs",this._d="mousemove.rs",this._e="mouseup.rs",this._y,this._z,b=d._w,b.msie||b.opera?this._y=this._z="move":b.mozilla&&(this._y="-moz-grab",this._z="-moz-grabbing"),this._a1()):this._n.addClass("auto-cursor"));if((this.hasTouch||this.settings.useWebkit3d)&&"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix)this._l.css({"-webkit-transform-origin":"0 0","-webkit-transform":"translateZ(0)"}),
this._v=!0;this._v?(this._b1="-webkit-transform",this._c1="translate3d(",this._d1="px, 0, 0)"):(this._b1="left",this._c1="",this._d1="px");this.hasTouch&&(this.settings.directionNavAutoHide=!1);this.settings.directionNav||(this._f1=this.settings.loopItems?this._e1=!0:this._e1=!1,this.settings.loopItems=!0);var m,h,p=0;f.eq(this.numItems-1).addClass("last");f.each(function(a){h=g(this);m={};m.item=h;m.index=a;m.posX=p;m.width=h.outerWidth(!0)||d.settings.itemFallbackWidth;p+=m.width;if(this.hasTouch){var b;
h.find("a").each(function(){b=g(this);b.data("tc-href",b.attr("href"));b.data("tc-target",b.attr("target"));b.attr("href","#");b.bind("click",function(a){a.preventDefault();if(d._p)return!1;a=g(this).data("tc-href");var b=g(this).data("tc-target");!b||"_g1"===b.toLowerCase()?window.location.href=a:window.open(a)})})}else h.find("a").bind("click.touchcarousel",function(a){if(d._p)return a.preventDefault(),!1});h.find(".non-draggable").bind(d._c,function(a){d._p=!1;a.stopImmediatePropagation()});d.items.push(m)});
this._h1=this._f=p;this._i1=0<this.settings.itemsPerMove?this.settings.itemsPerMove:1;if(this.settings.snapToItems)if(this.settings.pagingNavControls){this._j1=!0;this._k1=Math.ceil(this.numItems/this._i1);this._l1=0;this._m1=g('<div class="tc-paging-container"><div class="tc-paging-centerer"><div class="tc-paging-centerer-inside"></div></div></div>');f=this._m1.find(".tc-paging-centerer-inside");for(e=1;e<=this._k1;e++)b=g('<a class="tc-paging-item" href="#">'+e+"</a>").data("tc-id",e),e===this._l1+
1&&b.addClass("current"),f.append(b);this._n1=f.find(".tc-paging-item").click(function(a){a.preventDefault();d.goTo((g(a.currentTarget).data("tc-id")-1)*d._i1)});this._n.after(this._m1)}else this._j1=!1;else this._j1=!1;this._l.css({width:p});this.settings.directionNav&&(this._n.after("<a href='#' class='arrow-holder left'><span class='arrow-icon left'></span></a> <a href='#' class='arrow-holder right'><span class='arrow-icon right'></span></a>"),this.arrowLeft=this.carouselRoot.find(".arrow-holder.left"),
this.arrowRight=this.carouselRoot.find(".arrow-holder.right"),1>this.arrowLeft.length||1>this.arrowRight.length?this.settings.directionNav=!1:this.settings.directionNavAutoHide&&(d.arrowLeft.css("opacity",0),d.arrowRight.css("opacity",0),this.carouselRoot.one("mousemove.arrowshover",function(){d.arrowLeft.animate({opacity:1},200);d.arrowRight.animate({opacity:1},200)}),this.carouselRoot.hover(function(){d.arrowLeft.stop();d.arrowRight.stop();d.arrowLeft.animate({opacity:1},200);d.arrowRight.animate({opacity:1},
200)},function(){d.arrowLeft.stop();d.arrowRight.stop();d.arrowLeft.animate({opacity:0},200);d.arrowRight.animate({opacity:0},200)})),this._p1(0),this.settings.directionNav&&(this.arrowRight.click(function(a){a.preventDefault();(d.settings.loopItems&&!d._t||!d._f1)&&d.next()}),this.arrowLeft.click(function(a){a.preventDefault();(d.settings.loopItems&&!d._t||!d._e1)&&d.prev()})));this.carouselWidth;this._q1="onorientationchange"in window?"orientationchange.touchcarousel":"resize.touchcarousel";var l;
g(window).bind(this._q1,function(){l&&clearTimeout(l);l=setTimeout(function(){d.updateCarouselSize(!1)},100)});this.settings.scrollbar?(this._r1=g("<div class='scrollbar-holder'><div class='scrollbar"+("light"===this.settings.scrollbarTheme.toLowerCase()?" light":" dark")+"'></div></div>"),this._r1.appendTo(this.carouselRoot),this.scrollbarJQ=this._r1.find(".scrollbar"),this._s1="",this._t1=this.scrollbarJQ[0].style,this._u1=0,this.settings.scrollbarAutoHide?(this._v1=!1,this.scrollbarJQ.css("opacity",
0)):this._v1=!0):this.settings.scrollbarAutoHide=!1;this.updateCarouselSize(!0);this._n.bind(this._c,function(a){d._w1(a)});(this.autoplay=this.settings.autoplay)&&this.resumeAutoplay();this.settings.keyboardNav&&g(document).bind("keydown.touchcarousel",function(a){d._t||(37===a.keyCode?d.prev():39===a.keyCode&&d.next())});this.carouselRoot.css("overflow","visible")}r.prototype={goTo:function(a,c){var b=this.items[a];b&&(!c&&(this.autoplay&&this.settings.autoplayStopAtAction)&&this.stopAutoplay(),
this._x1(a),this.endPos=this._y1(),b=-b.posX,0<b?b=0:b<this.carouselWidth-this._h1&&(b=this.carouselWidth-this._h1),this.animateTo(b,this.settings.transitionSpeed,"easeInOutSine"))},goToPage:function(a){this.goTo(a*this._i1)},next:function(a){var c=this._y1(),b=this._z1(c).index;if(this._j1)c=this._l1+1,b=c>this._k1-1?this.settings.loopItems||a?0:(this._k1-1)*this._i1:c*this._i1;else{b+=this._i1;if(this.settings.loopItems||a)c<=this.carouselWidth-this._h1&&(b=0);b>this.numItems-1&&(b=this.numItems-
1)}this.goTo(b,a)},prev:function(a){var c=this._y1(),b=this._z1(c).index;this._j1?(c=this._l1-1,b=0>c?this.settings.loopItems?(this._k1-1)*this._i1:0:c*this._i1):(b-=this._i1,0>b&&(b=this.settings.loopItems?0>c?0:this.numItems-1:0));this.goTo(b,a)},getCurrentId:function(){return this._z1(this._y1()).index},setXPos:function(a,c){c?this._t1[this._b1]=this._c1+a+this._d1:this._m[this._b1]=this._c1+a+this._d1},stopAutoplay:function(){this.autoplayTimer&&(this.hasTouch||this.carouselRoot.unbind("mouseenter mouseleave"));
this._a2();this.wasAutoplayRunning=this.autoplay=!1},resumeAutoplay:function(){var a=this;this.autoplay=!0;this._b2=!1;this.autoplayTimer="";this.wasAutoplayRunning=!0;this.hasTouch||this.carouselRoot.hover(function(){a._b2=!0;a._a2()},function(){a._b2=!1;a._c2()});this._d2()},updateCarouselSize:function(a){this.carouselWidth=this.carouselRoot.width();if(this.settings.scrollToLast){for(var c=0,b=Math.max(this.numItems%this._i1,this._i1),b=this.numItems-b;b<this.numItems;b++)c+=this.items[b].width;
this._h1=this._f+this.carouselWidth-c}else this._h1=this._f;this.settings.scrollbar&&(c=Math.round(this._r1.width()/(this._h1/this.carouselWidth)),this.scrollbarJQ.css("width",c),this._u1=this._r1.width()-c);if(!this.settings.scrollToLast){if(this.carouselWidth>=this._f){this._u=!0;this.settings.loopItems||(this._f1=!0,this.arrowRight.addClass("disabled"),this._e1=!0,this.arrowLeft.addClass("disabled"));this.setXPos(0);return}this._u&&(this._e1=this._f1=this._u=!1,this.arrowRight.removeClass("disabled"),
this.arrowLeft.removeClass("disabled"))}a||(a=this.endPos=this._y1(),0<a?a=0:a<this.carouselWidth-this._h1&&(a=this.carouselWidth-this._h1),this.animateTo(a,300,"easeInOutSine"))},animateTo:function(a,c,b,e,d,f,q){function m(){h._b=!1;h._d2();h.settings.scrollbarAutoHide&&h._g2();null!==h.settings.onAnimComplete&&h.settings.onAnimComplete.call(h)}null!==this.settings.onAnimStart&&this.settings.onAnimStart.call(this);this.autoplay&&this.autoplayTimer&&(this.wasAutoplayRunning=!0,this._a2());this._e2();
var h=this,p=this.settings.scrollbar,l=h._b1,j=h._c1,n=h._d1,r={containerPos:this.endPos},k={containerPos:a},v={containerPos:d};d=e?d:a;var s=h._m;h._b=!0;if(p){var t=this._t1,u=h._h1-h.carouselWidth;this.settings.scrollbarAutoHide&&(this._v1||this._f2())}this._p1(d);this._o=g(r).animate(k,{duration:c,easing:b,step:function(){p&&(t[l]=j+Math.round(h._u1*(-this.containerPos/u))+n);s[l]=j+Math.round(this.containerPos)+n},complete:function(){e?h._o=g(k).animate(v,{duration:f,easing:q,step:function(){p&&
(t[l]=j+Math.round(h._u1*(-this.containerPos/u))+n);s[l]=j+Math.round(this.containerPos)+n},complete:function(){p&&(t[l]=j+Math.round(h._u1*(-v.containerPos/u))+n);s[l]=j+Math.round(v.containerPos)+n;m()}}):(p&&(t[l]=j+Math.round(h._u1*(-k.containerPos/u))+n),s[l]=j+Math.round(k.containerPos)+n,m())}})},destroy:function(a){this.stopAutoplay();this._n.unbind(this._c);g(document).unbind(this._d).unbind(this._e);g(window).unbind(this._q1);this.settings.keyboardNav&&g(document).unbind("keydown.touchcarousel");
a||this.carouselRoot.remove()},_x1:function(a){this._j1&&(this._l1=a=this._h2(a),this.settings.pagingNavControls&&(this._n1.removeClass("current"),this._n1.eq(a).addClass("current")))},_h2:function(a){for(var c=this._i1,b=0;b<this._k1;b++)if(a>=b*c&&a<b*c+c)return b;return 0>a?0:a>=this._k1?this._k1-1:!1},_i2:function(){this.settings.loopItems||(this._e1?(this._e1=!1,this.arrowLeft.removeClass("disabled")):this._f1&&(this._f1=!1,this.arrowRight.removeClass("disabled")))},_o1:function(){!this._e1&&
!this.settings.loopItems&&(this._e1=!0,this.arrowLeft.addClass("disabled"),this._f1&&(this._f1=!1,this.arrowRight.removeClass("disabled")))},_j2:function(){!this._f1&&!this.settings.loopItems&&(this._f1=!0,this.arrowRight.addClass("disabled"),this._e1&&(this._e1=!1,this.arrowLeft.removeClass("disabled")))},_z1:function(a){a=-a;for(var c,b=0;b<this.numItems;b++)if(c=this.items[b],a>=c.posX&&a<c.posX+c.width)return c;return-1},_d2:function(){this.autoplay&&this.wasAutoplayRunning&&(this._b2||this._c2(),
this.wasAutoplayRunning=!1)},_g2:function(){var a=this;this._v1=!1;this._s1&&clearTimeout(this._s1);this._s1=setTimeout(function(){a.scrollbarJQ.animate({opacity:0},150,"linear")},450)},_f2:function(){this._v1=!0;this._s1&&clearTimeout(this._s1);this.scrollbarJQ.stop().animate({opacity:1},150,"linear")},_e2:function(){this._o&&this._o.stop()},_c2:function(){if(this.autoplay){var a=this;this.autoplayTimer||(this.autoplayTimer=setInterval(function(){!a._k2&&!a._b&&a.next(!0)},this.settings.autoplayDelay))}},
_a2:function(){this.autoplayTimer&&(clearInterval(this.autoplayTimer),this.autoplayTimer="")},_y1:function(a){a=!a?this._l:this.scrollbarJQ;return this._v?(a=a.css("-webkit-transform").replace(/^matrix\(/i,"").split(/, |\)$/g),parseInt(a[4],10)):Math.round(a.position().left)},_w1:function(a){if(!this._k2){this.autoplay&&this.settings.autoplayStopAtAction&&this.stopAutoplay();this._e2();this.settings.scrollbarAutoHide&&this._f2();var c;if(this.hasTouch)if(this._a=!1,(c=a.originalEvent.touches)&&0<
c.length)c=c[0];else return!1;else c=a,a.preventDefault();this._l2();this._k2=!0;var b=this;this._v&&b._l.css({"-webkit-transition-duration":"0","-webkit-transition-property":"none"});g(document).bind(this._d,function(a){b._m2(a)});g(document).bind(this._e,function(a){b._n2(a)});this._o2=this._y1();this._i=c.clientX;this._p=!1;this._k=a.timeStamp||(new Date).getTime();this._s=0;this._r=this._q=c.clientX;this._p2=c.clientY}},_m2:function(a){var c=a.timeStamp||(new Date).getTime(),b;if(this.hasTouch){if(this._a)return!1;
b=a.originalEvent.touches;if(1<b.length)return!1;b=b[0];if(Math.abs(b.clientY-this._p2)>Math.abs(b.clientX-this._q)+3)return this.settings.lockAxis&&(this._a=!0),!1}else b=a;a.preventDefault();this._j=b.clientX;this._q2=this._r2;a=b.clientX-this._r;this._q2!=a&&(this._r2=a);if(0!=a){var e=this._o2+this._s;0<=e?(a/=4,this._o1()):e<=this.carouselWidth-this._h1?(this._j2(),a/=4):this._i2();this._s+=a;this.setXPos(e);this.settings.scrollbar&&this.setXPos(this._u1*(-e/(this._h1-this.carouselWidth)),!0)}this._r=
b.clientX;350<c-this._k&&(this._k=c,this._i=b.clientX);null!==this.settings.onDragStart&&this.settings.onDragStart.call(this);return!1},_n2:function(a){if(this._k2){var c=this;this._k2=!1;this._a1();this.endPos=this._y1();this.isdrag=!1;g(document).unbind(this._d).unbind(this._e);if(this.endPos==this._o2){this._p=!1;this.settings.scrollbarAutoHide&&this._g2();return}this._p=!0;var b=this._j-this._i;a=Math.max(40,(a.timeStamp||(new Date).getTime())-this._k);var e=0.5;a=Math.abs(b)/a;var d=function(a){0<
a?a=0:a<c.carouselWidth-c._h1&&(a=c.carouselWidth-c._h1);return a};if(this.settings.snapToItems){this.autoplay&&this.settings.autoplayStopAtAction&&this.stopAutoplay();var b=Boolean(0<this._q-this._r),e=d(this._y1()),f=this._z1(e).index;if(this._j1){if(b){var f=0,q=this._l1*this._i1+this._i1;if(q<this.numItems-1){for(var m=this._l1*this._i1;m<q;m++)f+=this.items[m].width;e=Math.max(e-f-1,1-c._h1);f=this._z1(e).index;void 0===f&&(f=this.numItems-1)}else f=this.numItems-1}f=this._h2(f)*this._i1}else f+=
b?this._i1:-this._i1+1;f=b?Math.min(f,this.numItems-1):Math.max(f,0);e=this.items[f];this._x1(f);e&&(e=d(-e.posX),d=Math.abs(this.endPos-e),a=Math.max(1.08*d/a,150),f=Boolean(180>a),d*=0.08,b&&(d*=-1),this.animateTo(f?e+d:e,Math.min(a,400),"easeOutSine",f,e,300,"easeOutCubic"))}else d=0,2>=a?(e=3.5*this._x,d=0):2<a&&3>=a?(e=4*this._x,d=200):3<a&&(d=300,4<a&&(a=4,d=400,e=6*this._x),e=5*this._x),b=2*a*a/(2*e)*(0>b?-1:1),e=2*a/e+d,0<this.endPos+b?0<this.endPos?this.animateTo(0,800,"easeOutCubic"):this.animateTo(this.carouselWidth/
10*((d+200)/1E3),1.1*Math.abs(this.endPos)/a,"easeOutSine",!0,0,400,"easeOutCubic"):this.endPos+b<this.carouselWidth-this._h1?this.endPos<this.carouselWidth-this._h1?this.animateTo(this.carouselWidth-this._h1,800,"easeOutCubic"):this.animateTo(this.carouselWidth-this._h1-this.carouselWidth/10*((d+200)/1E3),1.1*Math.abs(this.carouselWidth-this._h1-this.endPos)/a,"easeOutSine",!0,this.carouselWidth-this._h1,400,"easeOutCubic"):this.animateTo(this.endPos+b,e,"easeOutCubic");null!==this.settings.onDragRelease&&
this.settings.onDragRelease.call(this)}return!1},_p1:function(a){void 0===a&&(a=this._y1());this.settings.loopItems||(0<=a?this._o1():a<=this.carouselWidth-this._h1?this._j2():this._i2())},_a1:function(){this._y?this._n.css("cursor",this._y):(this._n.removeClass("grabbing-cursor"),this._n.addClass("grab-cursor"))},_l2:function(){this._z?this._n.css("cursor",this._z):(this._n.removeClass("grab-cursor"),this._n.addClass("grabbing-cursor"))}};g.fn.touchCarousel=function(a){return this.each(function(){var c=
new r(g(this),a);g(this).data("touchCarousel",c)})};g.fn.touchCarousel.defaults={itemsPerMove:1,snapToItems:!1,pagingNav:!1,pagingNavControls:!0,autoplay:!1,autoplayDelay:3E3,autoplayStopAtAction:!0,scrollbar:!0,scrollbarAutoHide:!1,scrollbarTheme:"dark",transitionSpeed:600,directionNav:!0,directionNavAutoHide:!1,loopItems:!1,keyboardNav:!1,dragUsingMouse:!0,itemFallbackWidth:500,baseMouseFriction:0.0012,baseTouchFriction:8E-4,lockAxis:!0,useWebkit3d:!1,onAnimStart:null,onAnimComplete:null,onDragStart:null,
onDragRelease:null,scrollToLast:!0};g.fn.touchCarousel.settings={};g.extend(jQuery.easing,{easeInOutSine:function(a,c,b,e,d){return-e/2*(Math.cos(Math.PI*c/d)-1)+b},easeOutSine:function(a,c,b,e,d){return e*Math.sin(c/d*(Math.PI/2))+b},easeOutCubic:function(a,c,b,e,d){return e*((c=c/d-1)*c*c+1)+b}})})(jQuery);
(function(){if(navigator.userAgent.match(/OS 6(_\d)+/i)&&void 0===window.getTimeouts){var g={},r={},a=window.setTimeout,c=window.setInterval,b=window.clearTimeout,e=window.clearInterval,d=function(b,d,e,f){if(e){var l=function(){var a=(new Date).getTime();!1!==k[j].loop?(k[j].requestededFrame=webkitRequestAnimationFrame(l),k[j].loop=a<=n):(k[j].callback&&k[j].callback(),w?(n=(new Date).getTime()+d,k[j].loop=a<=n,k[j].requestedFrame=webkitRequestAnimationFrame(l)):delete k[j])},j;e=b.name||"rafTimer"+
Math.floor(1E3*Math.random());var n=(new Date).getTime()+d,w=f||!1,k=w?r:g;j=e+""+n;k[j]={};k[j].loop=!0;k[j].callback=b;l();return j}return f?c(b,d):a(b,d)},f=function(a,d){if(a.indexOf&&-1<a.indexOf("rafTimer")){var c;c=d?r:g;c[a]?(c[a].callback=void 0,c[a].loop=!1,c=!0):c=!1;return c}return d?e(a):b(a)};window.getTimeouts=function(){return{timeouts:g,intervals:r}};window.setTimeout=function(a,b){return d(a,b,!0)};window.setInterval=function(a,b){return d(a,b,!0,!0)};window.clearTimeout=function(a){return f(a)};
window.clearInterval=function(a){return f(a,!0)}}})();
