/* 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.2 (July 7, 2008)
 * Requires: jQuery 1.2+
 */
 
(function($s) {

$s.fn.jFlow = function(options) {

var opts = $s.extend({}, $s.fn.jFlow.defaults, options);

var cur = 0;

var timer;

var selected_class = "jFlowSelected";

var maxi = $s(".jFlowControl").length;

$s(this).find(".jFlowControl").each(function(i){

$s(this).click(function(){

dotimer();

$s(".jFlowControl").removeClass(selected_class);

$s(this).addClass(selected_class);

//alert(cur);

//alert(i);

var dur = Math.abs(cur-i);

$s(opts.slides).animate({

marginLeft: "-" + (i * $s(opts.slides).find(":first-child").width() + "px")

}, opts.duration*(dur));

cur = i;

});

}); 

$s(opts.slides).before('<div id="jFlowSlide"></div>').appendTo("#jFlowSlide");

$s(opts.slides).find("div").each(function(){

$s(this).before('<div class="jFlowSlideContainer"></div>').appendTo($s(this).prev());

});

//initialize the controller

$s(".jFlowControl").eq(cur).addClass(selected_class);

var resize = function (x){

$s("#jFlowSlide").css({

position: "relative",

width: opts.width,

height: opts.height,

overflow: "hidden"

});

$s(opts.slides).css({

position:"relative",

width: $s("#jFlowSlide").width()*$s(".jFlowControl").length+"px",

height: $s("#jFlowSlide").height()+"px",

overflow: "hidden"

});

$s(opts.slides).children().css({

position: "relative",

width: $s("#jFlowSlide").width()+"px",

height: $s("#jFlowSlide").height()+"px",

"float":"left"

});

$s(opts.slides).css({

marginLeft: "-" + (cur * $s(opts.slides).find(":first-child").width() + "px")

});

}

resize();

$s(window).resize(function(){

resize();

});

$s(".jFlowPrev").click(function(){

dotimer();

doprev();

});

var doprev = function (x){

if (cur > 0)

cur--;

else

cur = maxi -1;

$s(".jFlowControl").removeClass(selected_class);

$s(opts.slides).animate({

marginLeft: "-" + (cur * $s(opts.slides).find(":first-child").width() + "px")

}, opts.duration);

$s(".jFlowControl").eq(cur).addClass(selected_class);

}

$s(".jFlowNext").click(function(){

donext();

dotimer();

});

$s(".pause").click(function(){

dopause();

});

$s(".resume").click(function(){

doresume();

});

var donext = function (x){

if (cur < maxi - 1)

cur++;

else

cur = 0;

$s(".jFlowControl").removeClass(selected_class);

$s(opts.slides).animate({

marginLeft: "-" + (cur * $s(opts.slides).find(":first-child").width() + "px")

}, opts.duration);

$s(".jFlowControl").eq(cur).addClass(selected_class);

}

var dotimer = function (x){

if(timer != null)

clearInterval(timer);

timer = setInterval(function() {

donext();

}, opts.autoslide);

}

dotimer();

var dopause = function (x){

if(timer != null)

clearInterval(timer);

timer = setInterval(function() {

donext();

}, 500000);

}

dotimer();

var doresume = function (x){

if(timer != null)

clearInterval(timer);

timer = setInterval(function() {

donext();

}, opts.autoslide);

}

dotimer();

/*$s("div.jFlowSlideContainer").hover(function(){

dopause();

}, function(){

doresume();

});*/

};

$s.fn.jFlow.defaults = {
easing: "swing",
duration: 800,
width: "100%",
autoslide: 4000,
};

})(jQuery);