(function ($) {
	$.fn.fadeTransition = function(options) {
		var options = $.extend({pauseTime: 5000, transitionTime: 2000, ignore: null, delayStart: 0, pauseNavigation: false}, options);
		var transitionObject;

		Trans = function(obj) {
			var timer = null;
			var current = 0;
			var els = (options.ignore)?$("> *:not(" + options.ignore + ")", obj):$("> *", obj);
			$(obj).css("position", "relative");
			els.css("display", "none").css("left", "0").css("top", "0").css("position", "absolute");

			if (options.delayStart > 0) {
				setTimeout(showFirst, options.delayStart);
			}
			else
				showFirst();

			function showFirst() {
				if (options.ignore) {
					$(options.ignore, obj).fadeOut(options.transitionTime);
					$(els[current]).fadeIn(options.transitionTime);
				}
				else {
					$(els[current]).css("display", "block");
				}
			}

			function transition(next) {
				$(els[current]).fadeOut(options.transitionTime);
				$(els[next]).fadeIn(options.transitionTime);
				current = next;
				cue();
			};

			function cue() {
				if ($("> *", obj).length < 2) return false;
				if (timer) clearTimeout(timer);
				if (!options.pauseNavigation) {
					timer = setTimeout(function() { transition((current + 1) % els.length | 0)} , options.pauseTime);
			}
		};

		this.showItem = function(item) {
			if (timer) clearTimeout(timer);
			transition(item);
		};

		cue();
	}

	this.showItem = function(item) {
		transitionObject.showItem(item);
	};

	return this.each(function() {
		transitionObject = new Trans(this);
	});
}
})(jQuery);
var page = {
	tr: null,
	init: function() {
		page.tr = $(".area").fadeTransition({pauseTime: 4000, transitionTime: 1500});
		$("div.navigation").each(function() {
			$(this).children().each( function(idx) {
			if ($(this).is("a"))
				$(this).click(function() { page.tr.showItem(idx); return false; })
			});
		});
	},

	show: function(idx) {
		if (page.tr.timer) clearTimeout(page.tr.timer);
			page.tr.showItem(idx);
	}
};
$(document).ready(page.init);
