(function(a){a.fn.carouFredSel=function(b){return this.each(function(){var c=a.extend(true,{},a.fn.carouFredSel.defaults,b),f=a(this),h=a("> *",f),m=h.length,i=h.outerWidth(true),d=h.outerHeight(true),j=0,l=null,k=(c.direction=="up"||c.direction=="left")?"next":"prev";if(c.scroll.items==0||c.scroll.items==null){c.scroll.items=c.visibleItems}c.auto=a.fn.carouFredSel.getNaviObject(c.auto,false,true);c.prev=a.fn.carouFredSel.getNaviObject(c.prev);c.next=a.fn.carouFredSel.getNaviObject(c.next);c.pagination=a.fn.carouFredSel.getNaviObject(c.pagination,true);c.auto=a.extend({},c.scroll,c.auto);c.prev=a.extend({},c.scroll,c.prev);c.next=a.extend({},c.scroll,c.next);c.pagination=a.extend({},c.scroll,c.pagination);if(typeof(c.pagination.anchorBuilder)!="function"){c.pagination.anchorBuilder=a.fn.carouFredSel.pageAnchorBuilder}if(typeof(c.pagination.keys)!="boolean"){c.pagination.keys=false}if(typeof(c.auto.play)!="boolean"){c.auto.play=true}if(typeof(c.auto.delay)!="number"){c.auto.delay=0}if(typeof(c.auto.pauseDuration)!="number"){c.auto.pauseDuration=c.auto.duration*6}if(c.auto.pauseDuration==c.auto.duration){c.auto.duration--}c.prev.name="prev";c.next.name="next";c.pagination.name="pagination";if(c.visibleItems>=m){a.fn.carouFredSel.log("Not enough items: terminating");if(c.prev.button){c.prev.button.hide()}if(c.next.button){c.next.button.hide()}if(c.pagination.container){c.pagination.container.hide()}return}if(c.direction=="right"||c.direction=="left"){var g=["width",i*2];var e={width:c.width||i*c.visibleItems,height:c.height||d}}else{var g=["height",d*2];var e={height:c.height||d*c.visibleItems,width:c.width||i}}f.css(g[0],g[1]*m).css({position:"absolute"}).wrap('<div class="caroufredsel_wrapper" />').parent().css(e).css({position:"relative",overflow:"hidden"});f.bind("pause",function(){if(l!=null){clearTimeout(l)}}).bind("play",function(o,p,n){if(c.auto.play){if(typeof(p)=="undefined"){p=k}if(typeof(n)=="undefined"){n=0}l=setTimeout(function(){if(f.is(":animated")){f.trigger("pause").trigger("play",p)}else{f.trigger(p,c.auto)}},c.auto.pauseDuration+n)}}).bind("prev",function(t,s,r){if(f.is(":animated")){return}if(c.visibleItems>=m){return}if(typeof(s)=="number"){r=s}if(typeof(s)!="object"){s=c.prev}if(typeof(r)!="number"){r=s.items}if(!r||typeof(r)!="number"){a.fn.carouFredSel.log("Not a valid number.");return}f.find("> *:gt("+(m-r-1)+")").prependTo(f);if(m<c.visibleItems+r){f.find("> *:lt("+((c.visibleItems+r)-m)+")").clone(true).appendTo(f)}j-=r;if(j<0){j+=m}var n=a.fn.carouFredSel.getCurrentItems(f,c,r);if(c.direction=="right"||c.direction=="left"){var u="left",p=i}else{var u="top",p=d}var q={},o={};q[u]=-(p*r);o[u]=0;if(s.onBefore){s.onBefore(n[1],n[0],s.name)}f.data("numItems",r).data("sliderObj",s).data("oldItems",n[1]).data("newItems",n[0]).css(q).animate(o,{duration:s.duration,easing:s.easing,complete:function(){if(m<c.visibleItems+f.data("numItems")){f.find("> *:gt("+(m-1)+")").remove()}if(f.data("sliderObj").onAfter){f.data("sliderObj").onAfter(f.data("oldItems"),f.data("newItems"),f.data("sliderObj").name)}}});f.trigger("updatePageStatus").trigger("pause").trigger("play","prev")}).bind("next",function(t,r,q){if(f.is(":animated")){return}if(c.visibleItems>=m){return}if(typeof(r)=="number"){q=r}if(typeof(r)!="object"){r=c.next}if(typeof(q)!="number"){q=r.items}if(!q||typeof(q)!="number"){a.fn.carouFredSel.log("Not a valid number.");return}if(m<c.visibleItems+q){f.find("> *:lt("+((c.visibleItems+q)-m)+")").clone(true).appendTo(f)}j+=q;if(j>=m){j-=m}var n=a.fn.carouFredSel.getCurrentItems(f,c,q);if(c.direction=="right"||c.direction=="left"){var u="left",p=i}else{var u="top",p=d}var o={},s={};o[u]=-(p*q);s[u]=0;if(r.onBefore){r.onBefore(n[0],n[1],r.name)}f.data("numItems",q).data("sliderObj",r).data("oldItems",n[0]).data("newItems",n[1]).animate(o,{duration:r.duration,easing:r.easing,complete:function(){if(f.data("sliderObj").onAfter){f.data("sliderObj").onAfter(f.data("oldItems"),f.data("newItems"),f.data("sliderObj").name)}if(m<c.visibleItems+f.data("numItems")){f.find("> *:gt("+(m-1)+")").remove()}f.css(s).find("> *:lt("+f.data("numItems")+")").appendTo(f)}});f.trigger("updatePageStatus").trigger("pause").trigger("play","next")}).bind("scrollTo",function(p,s,r,q){if(f.is(":animated")){return}if(typeof(s)=="string"){s=parseInt(s)}if(typeof(s)=="object"){s=f.find("> *").index(s)}else{if(typeof(s)=="number"){s+=-j+m;if(s>=m){s-=m}}}if(typeof(s)!="number"||s==-1){a.fn.carouFredSel.log("Not a valid number.");return}if(typeof(r)=="string"){r=parseInt(r)}if(typeof(r)!="number"){r=0}if(typeof(q)!="object"){q=false}s+=r;if(s<0){s+=m}if(s>=m){s-=m}if(s==0){return}if(s<m/2){f.trigger("next",[q,s])}else{f.trigger("prev",[q,m-s])}}).bind("slideTo",function(p,s,r,q){f.trigger("scrollTo",[s,r,q])}).bind("insertItem",function(r,q,s){if(typeof(q)=="string"){q=a(q)}if(typeof(q)!="object"||typeof(q.jquery)=="undefined"||q.length==0){a.fn.carouFredSel.log("Not a valid object.");return}if(typeof(s)=="undefined"){s="after"}if(typeof(s)=="number"){s=s-1}if(typeof(s)=="string"){if(s=="before"){s=m-1}else{if(s=="after"){s=c.visibleItems-1}else{if(s=="end"){s=m-j-1}else{s=a(s)}}}}if(typeof(s)=="object"){s=f.find("> *").index(s)-1}if(typeof(s)!="number"){a.fn.carouFredSel.log("Not a valid number.");return}var p=m-j;if(p>=m){p-=m}if(s>=p&&p>0){j+=q.length}var o=f.find("> *");if(o.length<2){if(s==-1){f.prepend(q)}else{f.append(q)}}else{if(s==-1){o.filter(":nth(0)").before(q)}else{o.filter(":nth("+s+")").after(q)}}h=f.find("> *");m=h.length;f.css(g[0],g[1]*m).trigger("updatePageStatus",true)}).bind("removeItem",function(q,p){if(typeof(p)=="object"&&typeof(p.jquery)=="undefined"){p=a(p)}if(typeof(p)=="string"){p=a(p)}if(typeof(p)=="number"){p=f.find("> *:nth("+p+")")}if(typeof(p)!="object"||typeof(p.jquery)=="undefined"||p.length==0){a.fn.carouFredSel.log("Not a valid object.");return}var r=f.find("> *").index(p);var o=m-j;if(o>=m){o-=m}if(r>=o&&o>0){j-=p.length}else{if(o-p.length==0){j=0}}p.remove();h=f.find("> *");m=h.length;f.css(g[0],g[1]*m).trigger("updatePageStatus",true)}).bind("updatePageStatus",function(p,q){if(c.pagination.container==null||c.pagination.container.length==0){return false}if(typeof(q)=="boolean"&&q){c.pagination.container.find("> *").remove();for(var n=0;n<Math.ceil(m/c.visibleItems);n++){c.pagination.container.append(c.pagination.anchorBuilder(n+1))}c.pagination.container.find("> *").each(function(r){a(this).unbind("click").click(function(){f.trigger("scrollTo",[r*c.visibleItems,0,c.pagination]);return false})})}var o=Math.round(j/c.visibleItems);c.pagination.container.find("> *").removeClass("selected").filter(":nth("+o+")").addClass("selected")});if(c.auto.pauseOnHover&&c.auto.play){f.hover(function(){f.trigger("pause")},function(){f.trigger("play",k)})}if(c.prev.button!=null&&c.prev.button.length){c.prev.button.click(function(){f.trigger("prev");return false});if(c.prev.pauseOnHover&&c.auto.play){c.prev.button.hover(function(){f.trigger("pause")},function(){f.trigger("play",k)})}}if(c.next.button!=null&&c.next.button.length){c.next.button.click(function(){f.trigger("next");return false});if(c.next.pauseOnHover&&c.auto.play){c.next.button.hover(function(){f.trigger("pause")},function(){f.trigger("play",k)})}}if(c.pagination.container!=null&&c.pagination.container.length){f.trigger("updatePageStatus",true);if(c.pagination.pauseOnHover&&c.auto.play){c.pagination.container.hover(function(){f.trigger("pause")},function(){f.trigger("play",k)})}}if(c.next.key||c.prev.key){a(document).keyup(function(o){var n=o.keyCode;if(n==c.next.key){f.trigger("next")}if(n==c.prev.key){f.trigger("prev")}})}if(c.pagination.keys){a(document).keyup(function(o){var n=o.keyCode;if(n>=49&&n<58){n=(n-49)*c.visibleItems;if(n<=m){f.trigger("scrollTo",[n,0,c.pagination])}}})}f.trigger("play",[k,c.auto.delay])})};a.fn.carouFredSel.defaults={height:null,width:null,visibleItems:5,direction:"left",scroll:{items:null,easing:"swing",duration: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.getNaviObject=function(d,c,e){if(typeof(c)!="boolean"){c=false}if(typeof(e)!="boolean"){e=false}if(typeof(d)=="undefined"){d={}}if(typeof(d)=="string"){var b=a.fn.carouFredSel.getKeyCode(d);if(b==-1){d=a(d)}else{d=b}}if(c){if(typeof(d.jquery)!="undefined"){d={container:d}}if(typeof(d)=="boolean"){d={keys:d}}if(typeof(d.container)=="string"){d.container=a(d.container)}}else{if(e){if(typeof(d)=="boolean"){d={play:d}}if(typeof(d)=="number"){d={pauseDuration:d}}}else{if(typeof(d.jquery)!="undefined"){d={button:d}}if(typeof(d)=="number"){d={key:d}}if(typeof(d.button)=="string"){d.button=a(d.button)}if(typeof(d.key)=="string"){d.key=a.fn.carouFredSel.getKeyCode(d.key)}}}return d};a.fn.carouFredSel.getCurrentItems=function(e,d,f){var c=e.find("> *:lt("+d.visibleItems+")"),b=e.find("> *:lt("+(d.visibleItems+f)+"):gt("+(f-1)+")");return[c,b]};a.fn.carouFredSel.log=function(c){try{console.log("carouFredSel: "+c)}catch(b){}};a.fn.carouFredSel.pageAnchorBuilder=function(b){return'<a href="#"><span>'+b+"</span></a>"}})(jQuery);
