jQuery.fn.infiniteCarousel=function(){function a(b,a){return(new Array(a+1)).join(b)}return this.each(function(){var d=jQuery("> div",this).css("overflow","hidden"),h=d.find("> ul"),c=h.find("> li"),j=c.filter(":first"),f=j.outerWidth(),b=Math.ceil(d.innerWidth()/f),e=1,i=Math.ceil(c.length/b);if(c.length%b!=0){h.append(a('<li class="empty" />',b-c.length%b));c=h.find("> li")}c.filter(":first").before(c.slice(-b).clone().addClass("cloned"));c.filter(":last").after(c.slice(0,b).clone().addClass("cloned"));c=h.find("> li");d.scrollLeft(f*b);function g(a){var g=a<e?-1:1,h=Math.abs(e-a),c=f*g*b*h;d.filter(":not(:animated)").animate({scrollLeft:"+="+c},500,function(){if(a==0){d.scrollLeft(f*b*i);a=i}else if(a>i){d.scrollLeft(f*b);a=1}e=a});return false}d.after('<a class="arrow back"></a><a class="arrow forward"></a>');jQuery("a.back",this).click(function(){return g(e-1)});jQuery("a.forward",this).click(function(){return g(e+1)});jQuery(this).bind("goto",function(b,a){g(a)});jQuery(this).bind("next",function(){g(e+1)})})}
