/* 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+
 */
(function(A){
		A.fn.jFlow = function(D){
				var E = A.extend({},A.fn.jFlow.defaults,D);
				var F = 0;
				var B = A(".jFlowControl").length;
				
				A(this).find(".jFlowControl").each(function(G){
						A(this).click(function(){
							A(".jFlowControl").removeClass("jFlowSelected");
							A(this).addClass("jFlowSelected");
							var H = Math.abs(F-G);
							A(E.slides).animate(
								{marginLeft:"-"+(G*A(E.slides).find(":first-child").width()+"px")},
								E.duration*(H)
							);
							F=G;
							if(E.auto){
								StopInterval();
								StartInterval();
							}
						});
					});
					
					A(E.slides).before('<div id="jFlowSlide"></div>').appendTo("#jFlowSlide");
					A(E.slides).find("div").each(function(){
						A(this).before('<div class="jFlowSlideContainer"></div>').appendTo(A(this).prev());
					});
					A(".jFlowControl").eq(F).addClass("jFlowSelected");
					var C = function(G){
						A("#jFlowSlide").css({position:"relative",width:E.width,height:E.height,overflow:"hidden"}
					);
						
					A(E.slides).css({ 
						position:"relative",
						width:A("#jFlowSlide").width()*A(".jFlowControl").length+"px",
						height:A("#jFlowSlide").height()+"px",
						overflow:"hidden"
					});
					
					A(E.slides).children().css({position:"relative",width:A("#jFlowSlide").width()+"px",height:A("#jFlowSlide").height()+"px","float":"left"});
					A(E.slides).css({marginLeft:"-"+(F*A(E.slides).find(":first-child").width()+"px")})};
					C();
					
					A(window).resize(function(){C()});
						
					A(".jFlowPrev").click(function(){
						if(F>0){F--}else{F=B-1}
						A(".jFlowControl").removeClass("jFlowSelected");
						A(E.slides).animate({marginLeft:"-"+(F*A(E.slides).find(":first-child").width()+"px")},E.duration);
						A(".jFlowControl").eq(F).addClass("jFlowSelected");
						if(E.auto){
							StopInterval();
							StartInterval();
						}
					});
						
					A(".jFlowNext").click(function(){
						if(F<B-1){F++}else{F=0}
						A(".jFlowControl").removeClass("jFlowSelected");
						A(E.slides).animate({marginLeft:"-"+(F*A(E.slides).find(":first-child").width()+"px")},E.duration);
						A(".jFlowControl").eq(F).addClass("jFlowSelected");
						if(E.auto){
							StopInterval();
							StartInterval();
						}
					});
					
					A(".jFlowStopAuto").click(function(){
						if(E.auto){
							StopInterval();
						}
						E.auto = false;
					});
					
					A(".jFlowStartAuto").click(function(){
						if(!E.auto){
							E.auto = true;
							StartInterval();
						}
					});
					
					if(E.auto){
						function StartInterval(){
							the_interval = setInterval(function(){
								if(F<B-1){F++}else{F=0}
								A(".jFlowControl").removeClass("jFlowSelected");
								A(E.slides).animate({marginLeft:"-"+(F*A(E.slides).find(":first-child").width()+"px")},E.duration);
								A(".jFlowControl").eq(F).addClass("jFlowSelected");
							}, E.autoDuration);
						
						}
						function StopInterval(){
							clearInterval(the_interval);
						}
						StartInterval();
					}
				};
				A.fn.jFlow.defaults = {easing:"swing",duration:400,width:"100%", auto: true, autoDuration: 4000}
				
})(jQuery);
