/* bxCarousel v1.0 Plugin developed by: Steven Wanderski http://bxcarousel.com http://stevenwanderski.com Released under the GPL license: http://www.gnu.org/licenses/gpl.html */ (function($){ $.fn.bxCarousel = function(options){ var defaults = { move: 4, display_num: 4, speed: 500, margin:0, auto: false, auto_interval: 2000, auto_dir: 'next', auto_hover: false, next_text: 'next', next_image: '', prev_text: 'prev', prev_image: '', controls: true }; var options = $.extend(defaults, options); return this.each(function() { var $this = $(this); var li = $this.find('li'); var first = 0; var fe = 0; var last = options.display_num-1; var le = options.display_num-1; var is_working = false; var j = ''; var clicked = false; li.css({'float':'left','listStyle':'none', 'marginRight':options.margin}); var ow = li.outerWidth(true); wrap_width = (ow*options.display_num) - options.margin; var seg = ow*options.move; $this.wrap('
').width(999999); if(options.controls){ if(options.next_image != '' || options.prev_image != ''){var controls = '';} else{var controls = '';} } $this.parent('.bx_container').wrap('
').css({'position':'relative', 'width':wrap_width,'overflow':'hidden'}).before(controls); var w = li.slice(0, options.display_num).clone(); var last_appended = (options.display_num+options.move)-1; $this.empty().append(w); get_p(); get_a(); $this.css({'position':'relative', 'left':-(seg)}); $this.parent().siblings('.next').click(function(){ slide_next(); clearInterval(j); clicked = true; return false; }); $this.parent().siblings('.prev').click(function(){ slide_prev(); clearInterval(j); clicked = true; return false; }); if(options.auto){ start_slide(); if(options.auto_hover && clicked != true){ $this.find('li').live('mouseenter', function(){ if(!clicked){clearInterval(j);} }); $this.find('li').live('mouseleave', function(){ if(!clicked){start_slide();} }); } } function start_slide(){ if(options.auto_dir == 'next'){ j = setInterval(function(){slide_next()}, options.auto_interval); }else{ j = setInterval(function(){slide_prev()}, options.auto_interval); } } function slide_next(){ if(!is_working){ is_working = true; set_pos('next'); $this.animate({left:'-='+seg}, options.speed, function(){ $this.find('li').slice(0, options.move).remove(); $this.css('left',-(seg)); get_a(); is_working = false; }); } } function slide_prev(){ if(!is_working){ is_working = true; set_pos('prev'); $this.animate({left:'+='+seg}, options.speed, function(){ $this.find('li').slice(-options.move).remove(); $this.css('left',-(seg)); get_p(); is_working = false; }); } } function get_a(){ var str = new Array(); var lix = li.clone(); le = last; for(i=0;i= li.length) { first = first % li.length; } last += options.move; if (last >= li.length){ last = last % li.length; } }else if (dir == 'prev'){ first -= options.move; if (first < 0){ first = li.length + first; } last -= options.move; if (last < 0){ last = li.length + last; } } } }); } })(jQuery);