/* Copyright (c) 2008 Kean Loong Tan http://www.gimiti.com/kltan * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) * jFlow * Version: 1.1 (May 22, 2008) * Requires: jQuery 1.2+ */ //modified by LandRover 30th May 08 (function($) { $.fn.jFlow = function(options) { var opts = $.extend({}, $.fn.jFlow.defaults, options); var cur = 0; var timer; var selected_class = "jFlowSelected"; var maxi = $(".jFlowControl").length; $(this).find(".jFlowControl").each(function(i){ $(this).click(function(){ dotimer(); $(".jFlowControl").removeClass(selected_class); $(this).addClass(selected_class); //alert(cur); //alert(i); var dur = Math.abs(cur-i); $(opts.slides).animate({ marginLeft: "-" + (i * $(opts.slides).find(":first-child").width() + "px") }, opts.duration*(dur)); cur = i; }); }); $(opts.slides).before('
').appendTo("#jFlowSlide"); $(opts.slides).find("div").each(function(){ $(this).before('').appendTo($(this).prev()); }); //initialize the controller $(".jFlowControl").eq(cur).addClass(selected_class); var resize = function (x){ $("#jFlowSlide").css({ position: "relative", width: opts.width, height: opts.height, overflow: "hidden" }); $(opts.slides).css({ position:"relative", width: $("#jFlowSlide").width()*$(".jFlowControl").length+"px", height: $("#jFlowSlide").height()+"px", overflow: "hidden" }); $(opts.slides).children().css({ position: "relative", width: $("#jFlowSlide").width()+"px", height: $("#jFlowSlide").height()+"px", "float":"left" }); $(opts.slides).css({ marginLeft: "-" + (cur * $(opts.slides).find(":first-child").width() + "px") }); } resize(); $(window).resize(function(){ resize(); }); $(".jFlowPrev").click(function(){ dotimer(); doprev(); }); var doprev = function (x){ if (cur > 0) cur--; else cur = maxi -1; $(".jFlowControl").removeClass(selected_class); $(opts.slides).animate({ marginLeft: "-" + (cur * $(opts.slides).find(":first-child").width() + "px") }, opts.duration); $(".jFlowControl").eq(cur).addClass(selected_class); } $(".jFlowNext").click(function(){ donext(); dotimer(); }); var donext = function (x){ if (cur < maxi - 1) cur++; else cur = 0; $(".jFlowControl").removeClass(selected_class); $(opts.slides).animate({ marginLeft: "-" + (cur * $(opts.slides).find(":first-child").width() + "px") }, opts.duration); $(".jFlowControl").eq(cur).addClass(selected_class); } var dotimer = function (x){ if(timer != null) clearInterval(timer); timer = setInterval(function() { donext(); }, 6000); } dotimer(); }; $.fn.jFlow.defaults = { easing: "swing", duration: 400, width: "100%" }; })(jQuery);