/* ------------------------------------------------------------------------
	s3Slider
	
	Developped By: Boban Karišik -> http://www.serie3.info/
        CSS Help: Mészáros Róbert -> http://www.perspectived.com/
	Version: 1.0
	
	Copyright: Feel free to redistribute the script/modify it, as
			   long as you leave my infos at the top.
------------------------------------------------------------------------- */
var element;
var timeOut;
var current;
var timeOutFn;
var faderStat;
var mOver;
var items;
var itemsSpan;
var stop;

(function ($)
{
	$.fn.s3Slider = function (vars)
	{

		element = this;
		timeOut = (vars.timeOut != undefined) ? vars.timeOut : 4000;
		current = null;
		timeOutFn = null;
		faderStat = true;
		mOver = false;
		items = $("#" + element[0].id + "Content ." + element[0].id + "Image");
		itemsSpan = $("#" + element[0].id + "Content ." + element[0].id + "Image span");
		stop = false;

		items.each(function (i)
		{
			$(items[i]).mouseover(function ()
			{
				mOver = true;
			});

			$(items[i]).mouseout(function ()
			{
				mOver = false;
				fadeElement(true);
			});

		});
		
		makeSlider();

	};

})(jQuery);

function fadeElement(isMouseOut)
{
	var thisTimeOut = (isMouseOut) ? (timeOut / 2) : timeOut;
	thisTimeOut = (faderStat) ? 10 : thisTimeOut;
	if (items.length > 0)
	{
		if(stop)
		{
			stop = false;
		}
		else
		{
			timeOutFn = setTimeout(makeSlider, thisTimeOut);
		}
	}
	else
	{
		console.log("Poof..");
	}
}

function makeSlider()
{
	current = (current != null) ? current : items[(items.length - 1)];
	var currNo = jQuery.inArray(current, items) + 1;
	moveTo(currNo);
}

function moveTo(currNo)
{
	currNo = (currNo == items.length) ? 0 : (currNo - 1);
	
	$(".slidercontroller li").removeClass("selected");
    $(".slidercontroller li")[currNo].className = "selected";
	
	var newMargin = $(element).width() * currNo;
	if (faderStat == true)
	{
		if (!mOver)
		{
			$(items[currNo]).fadeIn((timeOut / 6), function ()
			{
				if ($(itemsSpan[currNo]).css('bottom') == 0)
				{
					$(itemsSpan[currNo]).slideUp((timeOut / 6), function ()
					{
						faderStat = false;
						current = items[currNo];
						if (!mOver)
						{
							fadeElement(false);
						}
					});
				}
				else
				{
					$(itemsSpan[currNo]).slideDown((timeOut / 6), function ()
					{
						faderStat = false;
						current = items[currNo];
						if (!mOver)
						{
							fadeElement(false);
						}
					});
				}
			});
		}
	}
	else
	{
		if (!mOver)
		{
			if ($(itemsSpan[currNo]).css('bottom') == 0)
			{
				$(itemsSpan[currNo]).slideDown((timeOut / 6), function ()
				{
					$(items[currNo]).fadeOut((timeOut / 6), function ()
					{
						faderStat = true;
						current = items[(currNo + 1)];
						if (!mOver)
						{
							fadeElement(false);
						}
					});
				});
			}
			else
			{
				$(itemsSpan[currNo]).slideUp((timeOut / 6), function ()
				{
					$(items[currNo]).fadeOut((timeOut / 6), function ()
					{
						faderStat = true;
						current = items[(currNo + 1)];
						if (!mOver)
						{
							fadeElement(false);
						}
					});
				});
			}
		}
	}
}

function ab(pos)
{
	//stop = true;
	clearTimeout(timeOutFn);
	//current = items[pos];
	//makeSlider();
}
