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