(function (jQuery) {
jQuery.fn.fadeTransition = function(options) {
  var options = jQuery.extend({pauseTime: 6000, transitionTime: 750}, options);
  var transitionObject;

  Trans = function(obj) {
	var timer = null;
	var current = 0;
	var els = jQuery("> *", obj).css("display", "none").css("left", "0").css("top", "0").css("position", "absolute");
	jQuery(obj).css("position", "relative");
	jQuery(els[current]).css("display", "block");

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

	function cue() {
	  if (jQuery("> *", obj).length < 2) return false;
	  if (timer) clearTimeout(timer);
	  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 = jQuery(".area").fadeTransition({pauseTime: 6000, transitionTime: 750});
  jQuery("div.navigation").each(function() {
	jQuery(this).children().each( function(idx) {
	  if (jQuery(this).is("a"))
		jQuery(this).click(function() { page.tr.showItem(idx);return false; })
	});
  });
},

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

jQuery(document).ready(page.init);
