(function(e){var o="onAfterAnimation",n="marginBottom",k="marginRight",m="first",g="last",l="both",j="jcarousel-item-placeholder",f=true,i="block",d="px",h="<div></div>",a=null,b=false;e.fn.jcarousel=function(a){return this.each(function(){new c(this,a)})};var p={vertical:b,start:1,offset:1,size:a,scroll:3,visible:a,animation:"normal",easing:"swing",auto:0,wrap:a,initCallback:a,reloadCallback:a,itemLoadCallback:a,itemFirstInCallback:a,itemFirstOutCallback:a,itemLastInCallback:a,itemLastOutCallback:a,itemVisibleInCallback:a,itemVisibleOutCallback:a,buttonNextHTML:h,buttonPrevHTML:h,buttonNextEvent:"click",buttonPrevEvent:"click",buttonNextCallback:a,buttonPrevCallback:a};e.jcarousel=function(f,r){var k="display",j="jcarousel-container",g="jcarousel-clip",n="jcarousel-skin",c=this;c.options=e.extend({},p,r||{});c.locked=b;c.container=a;c.clip=a;c.list=a;c.buttonNext=a;c.buttonPrev=a;c.wh=!c.options.vertical?"width":"height";c.lt=!c.options.vertical?"left":"top";for(var s="",o=f.className.split(" "),m=0;m<o.length;m++)if(o[m].indexOf(n)!=-1){e(f).removeClass(o[m]);var s=o[m];break}if(f.nodeName=="UL"||f.nodeName=="OL"){c.list=e(f);c.container=c.list.parent();if(c.container.hasClass(g)){if(!c.container.parent().hasClass(j))c.container=c.container.wrap(h);c.container=c.container.parent()}else if(!c.container.hasClass(j))c.container=c.list.wrap(h).parent()}else{c.container=e(f);c.list=e(f).find(">ul,>ol,div>ul,div>ol")}s!=""&&c.container.parent()[0].className.indexOf(n)==-1&&c.container.wrap('<div class=" '+s+'"></div>');c.clip=c.list.parent();if(!c.clip.length||!c.clip.hasClass(g))c.clip=c.list.wrap(h).parent();c.buttonPrev=e(".jcarousel-prev",c.container);if(c.buttonPrev.size()==0&&c.options.buttonPrevHTML!=a)c.buttonPrev=c.clip.before(c.options.buttonPrevHTML).prev();c.buttonPrev.addClass(c.className("jcarousel-prev"));c.buttonNext=e(".jcarousel-next",c.container);if(c.buttonNext.size()==0&&c.options.buttonNextHTML!=a)c.buttonNext=c.clip.before(c.options.buttonNextHTML).prev();c.buttonNext.addClass(c.className("jcarousel-next"));c.clip.addClass(c.className(g));c.list.addClass(c.className("jcarousel-list"));c.container.addClass(c.className(j));var u=c.options.visible!=a?Math.ceil(c.clipping()/c.options.visible):a,q=c.list.children("li"),l=c;if(q.size()>0){var t=0,m=c.options.offset;q.each(function(){l.format(this,m++);t+=l.dimension(this,u)});c.list.css(c.wh,t+d);if(!r||r.size===undefined)c.options.size=q.size()}c.container.css(k,i);c.buttonNext.css(k,i);c.buttonPrev.css(k,i);c.funcNext=function(){l.next()};c.funcPrev=function(){l.prev()};c.funcResize=function(){l.reload()};c.options.initCallback!=a&&c.options.initCallback(c,"init");if(e.browser.safari){c.buttons(b,b);e(window).bind("load",function(){l.setup()})}else c.setup()};var c=e.jcarousel;c.fn=c.prototype={jcarousel:"0.2.3"};c.fn.extend=c.extend=e.extend;c.fn.extend({setup:function(){var c=this;c.first=a;c.last=a;c.prevFirst=a;c.prevLast=a;c.animating=b;c.timer=a;c.tail=a;c.inTail=b;if(c.locked)return;c.list.css(c.lt,c.pos(c.options.offset)+d);var f=c.pos(c.options.start);c.prevFirst=c.prevLast=a;c.animate(f,b);e(window).unbind("resize",c.funcResize).bind("resize",c.funcResize)},reset:function(){var b=this;b.list.empty();b.list.css(b.lt,"0px");b.list.css(b.wh,"10px");b.options.initCallback!=a&&b.options.initCallback(b,"reset");b.setup()},reload:function(){var f=this;f.tail!=a&&f.inTail&&f.list.css(f.lt,c.intval(f.list.css(f.lt))+f.tail);f.tail=a;f.inTail=b;f.options.reloadCallback!=a&&f.options.reloadCallback(f);if(f.options.visible!=a){var h=f,j=Math.ceil(f.clipping()/f.options.visible),g=0,i=0;e("li",f.list).each(function(a){g+=h.dimension(this,j);if(a+1<h.first)i=g});f.list.css(f.wh,g+d);f.list.css(f.lt,-i+d)}f.scroll(f.first,b)},lock:function(){this.locked=f;this.buttons()},unlock:function(){this.locked=b;this.buttons()},size:function(b){var a=this;if(b!=undefined){a.options.size=b;!a.locked&&a.buttons()}return a.options.size},has:function(h,c){var d=this;if(c==undefined||!c)c=h;if(d.options.size!==a&&c>d.options.size)c=d.options.size;for(var e=h;e<=c;e++){var g=d.get(e);if(!g.length||g.hasClass(j))return b}return f},"get":function(a){return e(".jcarousel-item-"+a,this.list)},add:function(f,i){var b=this,e=b.get(f),k=0,n=0;if(e.length==0){var g,e=b.create(f),h=c.intval(f);while(g=b.get(--h))if(h<=0||g.length){h<=0?b.list.prepend(e):g.after(e);break}}else k=b.dimension(e);e.removeClass(b.className(j));typeof i=="string"?e.html(i):e.empty().append(i);var m=b.options.visible!=a?Math.ceil(b.clipping()/b.options.visible):a,l=b.dimension(e,m)-k;f>0&&f<b.first&&b.list.css(b.lt,c.intval(b.list.css(b.lt))-l+d);b.list.css(b.wh,c.intval(b.list.css(b.wh))+l+d);return e},remove:function(b){var a=this,e=a.get(b);if(!e.length||b>=a.first&&b<=a.last)return;var f=a.dimension(e);b<a.first&&a.list.css(a.lt,c.intval(a.list.css(a.lt))+f+d);e.remove();a.list.css(a.wh,c.intval(a.list.css(a.wh))-f+d)},next:function(){var c=this;c.stopAuto();if(c.tail!=a&&!c.inTail)c.scrollTail(b);else c.scroll((c.options.wrap==l||c.options.wrap==g)&&c.options.size!=a&&c.last==c.options.size?1:c.first+c.options.scroll)},prev:function(){var b=this;b.stopAuto();if(b.tail!=a&&b.inTail)b.scrollTail(f);else b.scroll((b.options.wrap==l||b.options.wrap==m)&&b.options.size!=a&&b.first==1?b.options.size:b.first-b.options.scroll)},scrollTail:function(d){var a=this;if(a.locked||a.animating||!a.tail)return;var b=c.intval(a.list.css(a.lt));!d?(b-=a.tail):(b+=a.tail);a.inTail=!d;a.prevFirst=a.first;a.prevLast=a.last;a.animate(b)},scroll:function(c,b){var a=this;if(a.locked||a.animating)return;a.animate(a.pos(c),b)},pos:function(i){var g="circular",e=this;if(e.locked||e.animating)return;if(e.options.wrap!=g)i=i<1?1:e.options.size&&i>e.options.size?e.options.size:i;var m=e.first>i,o=c.intval(e.list.css(e.lt)),y=e.options.wrap!=g&&e.first<=1?1:e.first,t=m?e.get(y):e.get(e.last),h=m?y:y-1,f=a,s=0,w=b,p=0;while(m?--h>=i:++h<i){f=e.get(h);w=!f.length;if(f.length==0){f=e.create(h).addClass(e.className(j));t[m?"before":"after"](f)}t=f;p=e.dimension(f);if(w)s+=p;if(e.first!=a&&(e.options.wrap==g||h>=1&&(e.options.size==a||h<=e.options.size)))o=m?o+p:o-p}var u=e.clipping(),x=[],r=0,h=i,q=0,t=e.get(i-1);while(++r){f=e.get(h);w=!f.length;if(f.length==0){f=e.create(h).addClass(e.className(j));t.length==0?e.list.prepend(f):t[m?"before":"after"](f)}t=f;var p=e.dimension(f);if(p==0){alert("jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...");return 0}if(e.options.wrap!=g&&e.options.size!==a&&h>e.options.size)x.push(f);else if(w)s+=p;q+=p;if(q>=u)break;h++}for(var z=0;z<x.length;z++)x[z].remove();if(s>0){e.list.css(e.wh,e.dimension(e.list)+s+d);if(m){o-=s;e.list.css(e.lt,c.intval(e.list.css(e.lt))-s+d)}}var l=i+r-1;if(e.options.wrap!=g&&e.options.size&&l>e.options.size)l=e.options.size;if(h>l){r=0,h=l,q=0;while(++r){var f=e.get(h--);if(!f.length)break;q+=e.dimension(f);if(q>=u)break}}var v=l-r+1;if(e.options.wrap!=g&&v<1)v=1;if(e.inTail&&m){o+=e.tail;e.inTail=b}e.tail=a;if(e.options.wrap!=g&&l==e.options.size&&l-r+1>=1){var A=c.margin(e.get(l),!e.options.vertical?k:n);if(q-A>u)e.tail=q-u-A}while(i-->v)o+=e.dimension(e.get(i));e.prevFirst=e.first;e.prevLast=e.last;e.first=v;e.last=l;return o},animate:function(h,j){var c=this;if(c.locked||c.animating)return;c.animating=f;var e=c,i=function(){e.animating=b;h==0&&e.list.css(e.lt,0);(e.options.wrap==l||e.options.wrap==g||e.options.size==a||e.last<e.options.size)&&e.startAuto();e.buttons();e.notify(o)};c.notify("onBeforeAnimation");if(!c.options.animation||j==b){c.list.css(c.lt,h+d);i()}else{var k=!c.options.vertical?{left:h}:{top:h};c.list.animate(k,c.options.animation,c.options.easing,i)}},startAuto:function(c){var b=this;if(c!=undefined)b.options.auto=c;if(b.options.auto==0)return b.stopAuto();if(b.timer!=a)return;var d=b;b.timer=setTimeout(function(){d.next()},b.options.auto*1e3)},stopAuto:function(){if(this.timer==a)return;clearTimeout(this.timer);this.timer=a},buttons:function(d,e){var j="disabled",i="addClass",h="removeClass",c=this;if(d==undefined||d==a){var d=!c.locked&&c.options.size!==0&&(c.options.wrap&&c.options.wrap!=m||c.options.size==a||c.last<c.options.size);if(!c.locked&&(!c.options.wrap||c.options.wrap==m)&&c.options.size!=a&&c.last>=c.options.size)d=c.tail!=a&&!c.inTail}if(e==undefined||e==a){var e=!c.locked&&c.options.size!==0&&(c.options.wrap&&c.options.wrap!=g||c.first>1);if(!c.locked&&(!c.options.wrap||c.options.wrap==g)&&c.options.size!=a&&c.first==1)e=c.tail!=a&&c.inTail}var k=c;c.buttonNext[d?"bind":"unbind"](c.options.buttonNextEvent,c.funcNext)[d?h:i](c.className("jcarousel-next-disabled")).attr(j,d?b:f);c.buttonPrev[e?"bind":"unbind"](c.options.buttonPrevEvent,c.funcPrev)[e?h:i](c.className("jcarousel-prev-disabled")).attr(j,e?b:f);if(c.buttonNext.length>0&&(c.buttonNext[0].jcarouselstate==undefined||c.buttonNext[0].jcarouselstate!=d)&&c.options.buttonNextCallback!=a){c.buttonNext.each(function(){k.options.buttonNextCallback(k,this,d)});c.buttonNext[0].jcarouselstate=d}if(c.buttonPrev.length>0&&(c.buttonPrev[0].jcarouselstate==undefined||c.buttonPrev[0].jcarouselstate!=e)&&c.options.buttonPrevCallback!=a){c.buttonPrev.each(function(){k.options.buttonPrevCallback(k,this,e)});c.buttonPrev[0].jcarouselstate=e}},notify:function(d){var b=this,c=b.prevFirst==a?"init":b.prevFirst<b.first?"next":"prev";b.callback("itemLoadCallback",d,c);if(b.prevFirst!==b.first){b.callback("itemFirstInCallback",d,c,b.first);b.callback("itemFirstOutCallback",d,c,b.prevFirst)}if(b.prevLast!==b.last){b.callback("itemLastInCallback",d,c,b.last);b.callback("itemLastOutCallback",d,c,b.prevLast)}b.callback("itemVisibleInCallback",d,c,b.first,b.last,b.prevFirst,b.prevLast);b.callback("itemVisibleOutCallback",d,c,b.prevFirst,b.prevLast,b.first,b.last)},callback:function(f,d,i,h,k,l,m){var b=this;if(b.options[f]==undefined||typeof b.options[f]!="object"&&d!=o)return;var g=typeof b.options[f]=="object"?b.options[f][d]:b.options[f];if(!e.isFunction(g))return;var j=b;if(h===undefined)g(j,i,d);else if(k===undefined)b.get(h).each(function(){g(j,this,h,i,d)});else for(var c=h;c<=k;c++)c!==a&&!(c>=l&&c<=m)&&b.get(c).each(function(){g(j,this,c,i,d)})},create:function(a){return this.format("<li></li>",a)},format:function(c,b){var a=e(c).addClass(this.className("jcarousel-item")).addClass(this.className("jcarousel-item-"+b));a.attr("jcarouselindex",b);return a},className:function(a){return a+" "+a+(!this.options.vertical?"-horizontal":"-vertical")},dimension:function(i,h){var f="marginTop",b="marginLeft",g=this,a=i.jquery!=undefined?i[0]:i,j=!g.options.vertical?a.offsetWidth+c.margin(a,b)+c.margin(a,k):a.offsetHeight+c.margin(a,f)+c.margin(a,n);if(h==undefined||j==h)return j;var l=!g.options.vertical?h-c.margin(a,b)-c.margin(a,k):h-c.margin(a,f)-c.margin(a,n);e(a).css(g.wh,l+d);return g.dimension(a)},clipping:function(){var a=this;return!a.options.vertical?a.clip[0].offsetWidth-c.intval(a.clip.css("borderLeftWidth"))-c.intval(a.clip.css("borderRightWidth")):a.clip[0].offsetHeight-c.intval(a.clip.css("borderTopWidth"))-c.intval(a.clip.css("borderBottomWidth"))},index:function(b,a){if(a==undefined)a=this.options.size;return Math.round(((b-1)/a-Math.floor((b-1)/a))*a)+1}});c.extend({defaults:function(a){return e.extend(p,a||{})},margin:function(b,h){if(!b)return 0;var a=b.jquery!=undefined?b[0]:b;if(h==k&&e.browser.safari){var d={display:i,"float":"none",width:"auto"},g,f;e.swap(a,d,function(){g=a.offsetWidth});d.marginRight=0;e.swap(a,d,function(){f=a.offsetWidth});return f-g}return c.intval(e.css(a,h))},intval:function(a){a=parseInt(a);return isNaN(a)?0:a}})})(jQuery);
