/**
 * Get banner link element.
 */
function getBannerLink(nr) {
	return document.getElementById("bannerlink" + nr);
}

/**
 * Make previous links inactive and set active link.
 */
function updateBannerLinks(banners, curnr) {
	for (var i=1;i<=banners.length;i++)
		getBannerLink(i).className = "bannerlink";
	getBannerLink(curnr).className = "bannerlinkactief";
}

/**
 * Deselect banner (animation).
 */
function deselectBanner(nr, el, duration) {
	var attributes = {
		'opacity': {
			'from': 1, 'to': 0
		},
		'duration': (duration / 1000).toString()
	};
	var myAnim = new YAHOO.util.Anim(el, attributes);
	myAnim.animate();
}

/**
 * Select banner (animation).
 */
function selectBanner(nr, el, duration) {
	var attributes = {
		'opacity': {
			'from': 0, 'to': 1
		},
		'duration': (duration / 1000).toString()
	};
	var myAnim = new YAHOO.util.Anim(el, attributes);
	myAnim.animate();
}

/**
 * Swap / deselect previous banner and select next banner.
 */
function switchBanner(banners, nr, prevnr, el, el_url) {
	// Clear previous timeout if a timer was set.
	if (mytimeout)
		clearTimeout(mytimeout);
	// Clear next timeout if a timer was set.
	if (nexttimeout)
		clearTimeout(nexttimeout);	
	
	if (prevnr >= 0)
		deselectBanner(prevnr, el, fade_out_duration);
	if (nr >= 0) {
		nexttimeout = setTimeout(function() {
			updateBannerLinks(banners, nr);
			// Set current banner link.
			var index   = nr - 1;
			el.src      = banners[index].image;
			if (banners[index].url) {
				el_url.href         = banners[index].url;
				el_url.style.cursor = 'pointer';
			} else {
				el_url.href         = '#';
				el_url.style.cursor = 'default';
			}
			// Select banner, if there was no previous banner (<0) then
			// don't do animation.
			if (prevnr >= 0)
				selectBanner(nr, el, fade_in_duration);
			// After animation show next banner.
			mytimeout = setTimeout(function() { nextBanner(banners, nr + 1, nr); }, switch_duration);
		}, fade_out_duration);
	}
}

/**
 * Banner is clicked.
 */
function clickBanner(banners, next) {
	nextBanner(banners, next, 0);
}

/**
 * Select next banner.
 */
function nextBanner(banners, next, prev) {
	if (typeof(prev) == 'undefined')
		prev = -1;
	if (next > banners.length)
		next = 1;
	switchBanner(banners, next, prev, bannersysteem, bannersysteemurl);
}

var mytimeout         = null;
var nexttimeout       = null;
var fade_out_duration = 500;
var fade_in_duration  = 500;
var switch_duration   = 10000;
var bannersysteem     = null;
var bannersysteemurl  = null;

function initBanner(param_switch_duration) {
	if(typeof(param_switch_duration) != 'undefined') {
		switch_duration = param_switch_duration;
	}
	bannersysteem     = document.getElementById('bannersysteem');
	bannersysteemurl  = document.getElementById('bannersysteemUrl');
	if (bannersysteemImages.length == 1) {
		// Er is maar 1 banner, dus de link kan weg
		getBannerLink(1).style.display = "none";
	} else if (bannersysteemImages.length > 1) {
		switchBanner(bannersysteemImages, 1, -1, bannersysteem, bannersysteemurl);
	}
};
