/* carousel.js - Show a carousel of links/content
 * $Id$
 * 
 * Author: Dylan Muir <dylan@ini.phys.ethz.ch>
 * Created 3rd July, 2008
 */

/* -- Variables */

var carousels;		/* - An array of all carousels in the documents */

window.onload = carouselInit;

/* carouselInit - set up system */
function carouselInit() {
	/* - Find all carousel divs */
	carousels = getElementsByClass('carousel', document, 'div');

	/* - For each carousel, find trigger and content elements */
	for (var nCarouselIndex = 0; nCarouselIndex < carousels.length; nCarouselIndex++) {
		thisCar = carousels[nCarouselIndex];
		thisCar.carTriggers = getElementsByClass('carousel-trigger', thisCar);
		thisCar.carContents = getElementsByClass('carousel-content', thisCar);
		
		/* - Add roll-over trigger properties to trigger elements */
		for (var nTrigIndex = 0; nTrigIndex < thisCar.carTriggers.length; nTrigIndex++) {
			thisCar.carTriggers[nTrigIndex].triggerNumber = nTrigIndex;
			thisCar.carTriggers[nTrigIndex].carousel = thisCar;
			thisCar.carTriggers[nTrigIndex].onmouseover = function() {carouselDisplayContent(this.carousel, this.triggerNumber)};
		}
	
		/* - Hide other carousel content elements */
		for (var nContentIndex = 0; nContentIndex < thisCar.carContents.length; nContentIndex++) {
			/* - Display first trigger and content */
			if (nContentIndex == 0) {
				thisCar.carTriggers[nContentIndex].className = 'carousel-trigger carousel-current';
				thisCar.carContents[nContentIndex].className = 'carousel-content carousel-current';
			} else {
				thisCar.carTriggers[nContentIndex].className = 'carousel-trigger hidden';
				thisCar.carContents[nContentIndex].className = 'carousel-content hidden';
			}
		}
	}
}

/* carouselDisplayContent - display one content, hide others */
function carouselDisplayContent(carousel, nContentNumber) {
	for (var nContentIndex = 0; nContentIndex < carousel.carContents.length; nContentIndex++) {
		if (nContentIndex == nContentNumber) {
			carousel.carTriggers[nContentIndex].className = 'carousel-trigger carousel-current';
			carousel.carContents[nContentIndex].className = 'carousel-content carousel-current';
		} else {
			carousel.carTriggers[nContentIndex].className = 'carousel-trigger hidden';
			carousel.carContents[nContentIndex].className = 'carousel-content hidden';
		}
	}
}



/* --- END of carousel.js --- */
