if (!window.liltype)
{
	var liltype = {};
}

liltype.PromoSlider = function()
{
	var i, c, ns;
	if (arguments.length)
	{
		this.items = arguments[0].css("display", "none");
		this.navs = (ns = arguments[1]);
		this.navOnClass = arguments[2] ? arguments[2] : "nav_item_selected";
		this.onclick = arguments[3] ? arguments[3] : function() { return true; };
		for (i = 0, c = ns.length; i < c; i++)
		{
			jQuery("a", ns.eq(i)).click(this.anonNavClick(this, i));
		}
		this.count = i;
		this.select(0);
	}
}
new liltype.PromoSlider();

liltype.PromoSlider.prototype =
/* 
	<ul id="navs">
		<li><a href="#">1</a></li>
		<li><a href="#">2</a></li>
		<li><a href="#">3</a></li>
		<li><a href="#">4</a></li>
	</ul>
	<div id="items" style="position: relative;">
		<div class="item" style="position: absolute;">Item #1</div>
		<div class="item" style="position: absolute;">Item #2</div>
		<div class="item" style="position: absolute;">Item #3</div>
		<div class="item" style="position: absolute;">Item #4</div>
	</div>
	<script type="text/javascript">
		function sliderClick(ind)
		{
			// return true to continue the slide transition and false to stop the transition
		}
		new liltype.PromoSlider(jQuery("#items div.item"), jQuery("#navs li"), "nav_item_selected", sliderClick);
	</script>
*/
{
	"count": null,
	"ind": null,
	"timeoutMs": 5000,
	"timeoutId": null,
	"items": null,
	"navs": null,
	"anonNavClick": function(obj, i)
	{
		var f = function()
		{
			return obj.select(i);
		};
		return f;
	},
	"select": function(ind)
	{
		var nextInd, obj = this, items = this.items, navs = this.navs;
		
		if (!this.onclick(ind))
		{
			return false;
		}

		if (this.timeoutId)
		{
			clearTimeout(this.timeoutId);
		}
		
		if (this.ind !== null)
		{
			items.eq(this.ind).fadeOut("slow");
			navs.eq(this.ind).removeClass(this.navOnClass);
		}
		items.eq(ind).fadeIn("slow");
		navs.eq(ind).addClass(this.navOnClass);

		this.ind = ind;

		nextInd = ind + 1;
		if (nextInd == this.count)
		{
			nextInd = 0;
		}

		this.timeoutId = setTimeout(function() { obj.select(nextInd); }, this.timeoutMs);
		return false;
	}
};
