jQuery.fn.carousel = function(b, c, d) { var e = jQuery(this).children()[0]; var f = 20000; var g = window.setInterval(function() { $('#next').click() }, f); if (e) { var h = jQuery(e).children().outerWidth("true"), elmnts = jQuery(e).children(), numElmts = elmnts.length, sizeFirstElmnt = h, shownInViewport = Math.round(jQuery(this).width() / sizeFirstElmnt), firstElementOnViewPort = 1, isAnimating = false; for (i = 0; i < shownInViewport; i++) { jQuery(e).css('width', (numElmts + shownInViewport) * h + h + "px"); jQuery(e).append(jQuery(elmnts[i]).clone()) } jQuery(b).click(function(a) { window.clearInterval(g); if (!isAnimating) { if (firstElementOnViewPort == 1) { jQuery(e).css('left', "-" + numElmts * sizeFirstElmnt + "px"); firstElementOnViewPort = numElmts } else { firstElementOnViewPort-- } jQuery(e).animate({ left: "+=" + h, y: 0, queue: true }, 2000, "swing", function() { isAnimating = false }); isAnimating = true } g = setInterval(function() { $('#next').click() }, f) }); jQuery(c).click(function(a) { window.clearInterval(g); if (!isAnimating) { if (firstElementOnViewPort > numElmts) { firstElementOnViewPort = 2; jQuery(e).css('left', "0px") } else { firstElementOnViewPort++ } jQuery(e).animate({ left: "-=" + h, y: 0, queue: true }, 2000, "swing", function() { isAnimating = false }); isAnimating = true } g = setInterval(function() { $('#next').click() }, f) }) } };
