var timeoutDuration = 8000;
var slideShowDiv = 'updates';
var linksDivClassName = 'pages';
var hilightedClassName = 'active';
window.addEvent(
	'domready', function() {
		createPaginationLinks();
		if (setPage(1)) {
			autoPageTurn = window.setTimeout(incrementPage, timeoutDuration);
		}
	}
);
function createPaginationLinks() {
	var pages = $(slideShowDiv).getElements('li');
	var linksDiv = document.createElement('div');
	var p = 0;
	var a = new Array();
	linksDiv.className = linksDivClassName;
	document.getElementById(slideShowDiv).appendChild(linksDiv);
	for (var p = 1; p <= pages.length; p++) {
		a[p] = document.createElement('a');
		a[p].setAttribute('href', p);
		a[p].setAttribute('title', 'Show page ' + p);
		a[p].appendChild(document.createTextNode(p));
		linksDiv.appendChild(a[p]);
		$(a[p]).addEvent('click', function() {
			transitionPage(this.getAttribute('href'));
			return false;
		});
	}
}
function setPage(p) {
	var pages = $(slideShowDiv).getElements('li');
	var z = 0;
	if (p > pages.length || p < 1) return false;
	for (var i = 0; i < pages.length; i++) {
		pages[i].erase('class');
		if (i == p - 1) {
			z = 2;
			pages[i].addClass('current');
		} else {
			z = 1;
		}
		pages[i].setStyle('z-index', z);
	}
	hilightCurrentPage();
	return true;
}
function incrementPage() {
	var pages = $(slideShowDiv).getElements('li');
	var currentPage = 0;
	for (var i = 0; i < pages.length; i++) {
		if (pages[i].hasClass('current')) {
			currentPage = i + 1;
			break;
		}
	}
	var p = (currentPage >= pages.length) ? 1 : currentPage + 1;
	transitionPage(p);
}
function transitionPage(p) {
	window.clearTimeout(autoPageTurn);
	var pages = $(slideShowDiv).getElements('li');
	var currentPageIndex = 0;
	var incomingPageIndex = p - 1;
	var z = 0;
	for (var i = 0; i < pages.length; i++) {
		if (pages[i].hasClass('current')) {
			currentPageIndex = i;
			break;
		}
	}
	if (p > pages.length || p < 1 || p - 1 == currentPageIndex) return false;
	pages[incomingPageIndex].setStyle('opacity', 0);
	for (var i = 0; i < pages.length; i++) {
		if (i == currentPageIndex) {
			z = 2;
			pages[i].erase('class');
		} else if (i == incomingPageIndex) {
			z = 3;
			pages[i].setProperty('class', 'current');
		} else {
			z = 1;
			pages[i].erase('class');
		}
		pages[i].setStyle('z-index', z);
	}
	var incomingPage = new Fx.Morph(pages[incomingPageIndex]);
	incomingPage.addEvent('complete', restackPages);
	incomingPage.start({'opacity': 1});
	hilightCurrentPage();
	autoPageTurn = window.setTimeout(incrementPage, timeoutDuration);
	return true;
}
function restackPages() {
	var pages = $(slideShowDiv).getElements('li');
	var currentPageIndex = 0;
	var z = 0;
	for (var i = 0; i < pages.length; i++) {
		if (pages[i].hasClass('current')) {
			currentPageIndex = i;
			break;
		}
	}
	for (var i = 0; i < pages.length; i++) {
		z = (i == currentPageIndex) ? 2 : 1;
		pages[i].setStyle('z-index', z);
	}
}
function hilightCurrentPage() {
	var pages = $(slideShowDiv).getElements('li');
	var pageLinks = $(slideShowDiv).getElement('div').getElements('a');
	var currentPageIndex = 0;
	for (var i = 0; i < pages.length; i++) {
		if (pages[i].hasClass('current')) {
			pageLinks[i].setProperty('class', hilightedClassName);
		} else {
			pageLinks[i].erase('class');
		}
	}
}