// Initialize namespaces
var ISHEDD = ISHEDD || {};

// ISHEDD JavaScript toolkit
ISHEDD.Document = ISHEDD.Document || {};
ISHEDD.Document.container = null;
ISHEDD.Document.containerId = "block-presentation";
ISHEDD.Document.pagerClass = "pager";
ISHEDD.Document.pageClass = "page";
ISHEDD.Document.currentDisplayed = 0;
ISHEDD.Document.currentPage = 1;
ISHEDD.Document.pager = null;
ISHEDD.Document.pages = null;
ISHEDD.Document.pagerTimer = null;

ISHEDD.Document.Initialize = function() {
	ISHEDD.Document.container = $("#" + ISHEDD.Document.containerId);
	ISHEDD.Document.container.hover(
		function() {
			ISHEDD.Document.StopTimer();
		}, function() {
			ISHEDD.Document.RestartTimer();
		}
	);
	ISHEDD.Document.pager = $(">." + ISHEDD.Document.pagerClass, ISHEDD.Document.container);
	ISHEDD.Document.pages = $(">." + ISHEDD.Document.pageClass, ISHEDD.Document.container);
	ISHEDD.Document.pages.each(function(index) {
		this.label = $(">h2", this).hide().html();
		$li = null;
		$li = $("<li></li>").html("<span>" + (index + 1) + "</span>").attr("title", this.label);
		$(">ul", ISHEDD.Document.pager).append($li);
		$li.hover(
			function() {
				ISHEDD.Document.ShowPage(index + 1);
			}, function() {
				ISHEDD.Document.ShowPage(ISHEDD.Document.currentPage);
			}
		).click(function() {
			ISHEDD.Document.currentPage = index + 1;
			ISHEDD.Document.ShowPage(ISHEDD.Document.currentPage);
		});
		this.li = $li;
		if (index == 0) {
			$(this).show();
		} else {
			$(this).hide();
		}
	});
	ISHEDD.Document.RestartTimer();
}

ISHEDD.Document.RestartTimer = function() {
	ISHEDD.Document.pager.everyTime(4000, "PagerTimer", function() { ISHEDD.Document.ShowNextPage(); });
}

ISHEDD.Document.StopTimer = function() {
	ISHEDD.Document.pager.stopTime("PagerTimer");
}

ISHEDD.Document.ShowNextPage = function() {
	newIndex = ISHEDD.Document.currentPage + 1;
	if (newIndex > ISHEDD.Document.pages.size()) {
		newIndex = 1;
	}
	ISHEDD.Document.currentPage = newIndex;
	ISHEDD.Document.ShowPage(newIndex);
}

ISHEDD.Document.ShowPage = function(index) {
	if (ISHEDD.Document.currentDisplayed == index) {
		return;
	}
	// Hide old page
	if (ISHEDD.Document.currentDisplayed > 0) {
		$page = ISHEDD.Document.pages.eq(ISHEDD.Document.currentDisplayed - 1);
		$$page = $page[0];
		$$page.li.removeClass("active");
		$page.hide();
		$(">span", ISHEDD.Document.pager).empty();
	}
	// Show new page
	$page = ISHEDD.Document.pages.eq(index - 1);
	$$page = $page[0];
	$$page.li.addClass("active");
	$page.fadeIn();
	$(">span", ISHEDD.Document.pager).html($$page.label);
	ISHEDD.Document.currentDisplayed = index;
}

$(function() {
	$("#document-layout .column").equalHeights(500, 600);
	ISHEDD.Document.Initialize();
	ISHEDD.Document.ShowPage(1);
});
