/* ------------------------------------------------------------------------
	s3Slider
	
	Developed By: Boban Kari�ik -> http://www.serie3.info/
	Version: 1.0
	
	Copyright: Feel free to redistribute the script/modify it, as
	           long as you leave my infos at the top.
------------------------------------------------------------------------- */

(function($) {
	
	$.fn.s3Slider = function(vars) {
		
		var timeOut	 = (vars.timeOut != undefined) ? vars.timeOut : 4000;
		var current	 = null;
		var timeOutFn = null;
		var faderStat = true;
		var items	 = $('ul li', this);
		var itemsSpan = $('ul li span', this);
		
		var fadeElement = function(isMouseOut) {
			var thisTimeOut = (isMouseOut) ? (timeOut/2) : timeOut;
			thisTimeOut = (faderStat) ? 10 : thisTimeOut;
			if(items.length > 0) {
				timeOutFn = setTimeout(makeSlider, thisTimeOut);
			}
		}
		
		var makeSlider = function() {
			current = (current != null) ? current : items[(items.length-1)];
			var currNo	 = jQuery.inArray(current, items) + 1
			currNo = (currNo == items.length) ? 0 : (currNo - 1);
			var newMargin = $(this).width() * currNo;
			if(faderStat == true) {
				$(items[currNo]).fadeIn((timeOut/6), function() {
					if($(itemsSpan[currNo]).css('bottom') == 0) {
						$(itemsSpan[currNo]).slideUp((timeOut/6), function() {
							faderStat = false;
							current = items[currNo];
							fadeElement(false);
						});
					} else {
						$(itemsSpan[currNo]).slideDown((timeOut/6), function() {
							faderStat = false;
							current = items[currNo];
							fadeElement(false);
						});
					}
				});
			} else {
				if($(itemsSpan[currNo]).css('bottom') == 0) {
					$(itemsSpan[currNo]).slideDown((timeOut/6), function() {
						$(items[currNo]).fadeOut((timeOut/6), function() {
							faderStat = true;
							current = items[(currNo+1)];
							fadeElement(false);
						});
					});
				} else {
					$(itemsSpan[currNo]).slideUp((timeOut/6), function() {
						$(items[currNo]).fadeOut((timeOut/6), function() {
							faderStat = true;
							current = items[(currNo+1)];
							fadeElement(false);
						});
					});
				}
			}
		}
		makeSlider();
	};
})(jQuery);
