(function(a){a.fn.carouFredSel=function(b){return this.each(function(){var c=a.extend(true,{},a.fn.carouFredSel.defaults,b),l=a(this),n=a("li",l),e=n.length,o=c.visibleItems,j=e-1,f=n.outerWidth(),g=n.outerHeight(),m=null,i=(c.direction=="up"||c.direction=="right")?"next":"prev";if(c.visibleItems>=e){try{console.log("carouFredSel: Not enough items: terminating");}catch(h){}return;}if(c.scroll.items==0){c.scroll.items=c.visibleItems;}c.auto=a.extend({},c.scroll,c.auto);c.buttons=a.extend({},c.scroll,c.buttons);c.next=a.extend({},c.buttons,c.next);c.prev=a.extend({},c.buttons,c.prev);if(!c.auto.pauseDuration){c.auto.pauseDuration=2500;}if(c.auto.pauseDuration==c.auto.speed){c.auto.speed--;}c.buttons=null;c.scroll=null;if(c.direction=="right"||c.direction=="left"){var d={width:f*e*2};var k={width:c.width||f*c.visibleItems,height:c.height||g};}else{var d={height:g*e*2};var k={height:c.height||g*c.visibleItems,width:c.width||f};}l.css(d).css({position:"absolute"}).wrap('<div class="caroufredsel_wrapper" />').parent().css(k).css({position:"relative",overflow:"hidden"});l.bind("pause",function(){if(m!=null){clearTimeout(m);}}).bind("play",function(q,p){if(c.autoPlay){if(p==null||p==""||typeof(p)=="undefined"){p=i;}m=setTimeout(function(){if(l.is(":animated")){l.trigger("pause").trigger("play",p);}else{l.trigger(p,c.auto);}},c.auto.pauseDuration);}}).bind("next",function(u,t){if(l.is(":animated")){return;}if(typeof(t)=="undefined"){t=c.next;}if(typeof(t)=="object"){numItems=t.items;}else{if(typeof(t)=="number"){numItems=t;t=c.next;}}if(!numItems||typeof(numItems)!="number"){return;}if(e<c.visibleItems+numItems){l.find("li:lt("+((c.visibleItems+numItems)-e)+")").clone(true).appendTo(l);}var p=a.fn.carouFredSel.getCurrentItems(l,c,numItems);if(c.direction=="right"||c.direction=="left"){var r="left",v=f;}else{var r="top",v=g;}var s={},q={};s[r]=l.offset()[r]-p[0].offset()[r]||-(v*numItems);q[r]=0;if(t.onBefore){t.onBefore(p[0],p[1],"next");}l.data("numItems",numItems).data("sliderObj",t).data("oldItems",p[0]).data("newItems",p[1]).animate(s,{duration:t.speed,easing:t.effect,complete:function(){if(l.data("sliderObj").onAfter){l.data("sliderObj").onAfter(l.data("oldItems"),l.data("newItems"),"next");}if(e<c.visibleItems+l.data("numItems")){l.find("li:gt("+(e-1)+")").remove();}l.css(q).find("li:lt("+l.data("numItems")+")").appendTo(l);}});l.trigger("pause").trigger("play","next");}).bind("prev",function(u,t){if(l.is(":animated")){return;}if(typeof(t)=="undefined"){t=c.prev;}if(typeof(t)=="object"){numItems=t.items;}else{if(typeof(t)=="number"){numItems=t;t=c.prev;}}if(!numItems||typeof(numItems)!="number"){return;}l.find("li:gt("+(e-numItems-1)+")").prependTo(l);if(e<c.visibleItems+numItems){l.find("li:lt("+((c.visibleItems+numItems)-e)+")").clone(true).appendTo(l);}var p=a.fn.carouFredSel.getCurrentItems(l,c,numItems);if(c.direction=="right"||c.direction=="left"){var q="left",v=f;}else{var q="top",v=g;}var s={},r={};s[q]=l.offset()[q]-p[1].offset()[q]||-(v*numItems);r[q]=0;if(t.onBefore){t.onBefore(p[1],p[0],"prev");}l.data("numItems",numItems).data("sliderObj",t).data("oldItems",p[1]).data("newItems",p[0]).css(s).animate(r,{duration:t.speed,easing:t.effect,complete:function(){if(e<c.visibleItems+l.data("numItems")){l.find("li:gt("+(e-1)+")").remove();}if(l.data("sliderObj").onAfter){l.data("sliderObj").onAfter(l.data("oldItems"),l.data("newItems"),"next");}}});l.trigger("pause").trigger("play","prev");}).bind("slideTo",function(s,q,r){if(l.is(":animated")){return;}if(typeof(q)=="object"){q=l.find("li").index(q);}if(typeof(q)=="string"){q=parseInt(q);}if(typeof(r)=="string"){r=parseInt(r);}if(typeof(r)!="number"){r=0;}if(typeof(q)!="number"){try{console.log("carouFredSel: Not a valid number.");}catch(p){}return;}q+=r;if(q<0){q+=e;}if(q>=e){q-=e;}if(q==0){return;}if(q<e/2){l.trigger("next",q);}else{l.trigger("prev",e-q);}});if(c.auto.pauseOnHover&&c.autoPlay){l.hover(function(){l.trigger("pause");},function(){l.trigger("play",i);});}if(c.next.button!=null){c.next.button.click(function(){l.trigger("next");return false;});if(c.next.pauseOnHover&&c.autoPlay){c.next.button.hover(function(){l.trigger("pause");},function(){l.trigger("play",i);});}}if(c.prev.button!=null){c.prev.button.click(function(){l.trigger("prev");return false;});if(c.prev.pauseOnHover&&c.autoPlay){c.prev.button.hover(function(){l.trigger("pause");},function(){l.trigger("play",i);});}}if(c.next.key!=null||c.prev.key!=null){if(typeof(c.next.key)=="string"){c.next.key=a.fn.carouFredSel.getKeyCode(c.next.key);}if(typeof(c.prev.key)=="string"){c.prev.key=a.fn.carouFredSel.getKeyCode(c.prev.key);}a(window).keyup(function(p){if(p.keyCode==c.next.key){l.trigger("next");}if(p.keyCode==c.prev.key){l.trigger("prev");}});}l.trigger("play",i);});};a.fn.carouFredSel.defaults={height:null,width:null,visibleItems:5,autoPlay:true,direction:"right",scroll:{items:0,effect:"swing",speed:500,pauseOnHover:false,onBefore:null,onAfter:null}};a.fn.carouFredSel.getKeyCode=function(b){if(b=="right"){return 39;}if(b=="left"){return 37;}if(b=="up"){return 38;}if(b=="down"){return 40;}return -1;};a.fn.carouFredSel.getCurrentItems=function(d,b,f){var c=d.find("li:lt("+b.visibleItems+")"),e=d.find("li:lt("+(b.visibleItems+f)+"):gt("+(f-1)+")");return[c,e];};})(jQuery);
