/* VITO - Unobtrusive Javascript */
/* webatrem bvba (c) 2009 */


/* Regel de timer */

$.fn.wait = function(time, type) {
	time = time || 5000;
	type = type || "fx";
	return this.queue(type, function() {
		var self = this;
		timer = setTimeout(function() {
			$(self).dequeue();
		}, time);
	});
};

stopper = function() {
	clearTimeout(timer);
	}

/* Luisterfuncties */

function detecttotal() {

	var lis, liactief, currentid, total;
	
	lis = $("#carrouselnav > ul > li");
	total = lis.length;

	return total;
}

function detectid() {

	var lis, liactief, currentid, total;
	
	lis = $("#carrouselnav > ul > li");
	liactief = $("#carrouselnav > ul > li.actief")[0];
	currentid = jQuery.inArray(liactief, lis);

	return currentid;

}

/* Functie die onclick event toevoegt */

function addclicks() {

	var links;

	links = $("#carrouselnav > ul > li > a");
	for(i=0;i<links.length;i++)
	{
		links[i].onclick=function(){showslide(this)};
	}
}

/* De onclick functie zelf die checkt wat er van waar gefade moet worden */

function showslide(o) {
	
	var links, linknumber, currentid, total, carentries;

	links = $("#carrouselnav > ul > li > a");

	linknumber = jQuery.inArray(o, links);
	currentid = detectid();
	total = detecttotal();

	carentries = $("#carrousel > .carrouselentry");
	carentriescurrent = carentries[currentid];

	if (linknumber != currentid) {
		carentries[linknumber].className = carentries[linknumber].className.replace('invisible','next'); 
		$(carentriescurrent).fadeTo("slow", 0, function(){switchslide(currentid,linknumber);});
	}
	else {}
	
	stopper();
}

/* Generieke functie om te switchen tussen 2 slides, van a naar b mee te geven */

function switchslide(a,b) {

			var links, linkscurrent, linkstobe, carentries, carentriescurrent;

			links = $("#carrouselnav > ul > li > a");
			linkstobe = links[b];
			linkscurrent = links[a];
			carentries = $("#carrousel > .carrouselentry");
			carentriescurrent = carentries[a];
			carentriestobe = carentries[b];
						
			linkscurrent.parentNode.className = linkscurrent.parentNode.className.replace('actief','nactief');
			linkstobe.parentNode.className = linkstobe.parentNode.className.replace('nactief','actief');
			carentriescurrent.className = carentriescurrent.className.replace('current','invisible');
			carentriestobe.className = carentriestobe.className.replace('next','current');
			$(carentriescurrent).attr("style","");
			
			waitforslide();
			
}

function waitforslide() {

	$("#carrouselnav").wait().show("fast", function(){computeslide();});
	
}

function computeslide() {

	var currentid, total, nextid;
	
	currentid = detectid();
	total = detecttotal();
	nextid = currentid + 1;
	
	if (nextid >= total) {
		nextid = 0;	
	} else {}	

	autoslide(currentid,nextid);

}

function autoslide(v,n) {
	
	carentries = $("#carrousel > .carrouselentry");
	carentriescurrent = carentries[v];

	if (v != n) {
		carentries[n].className = carentries[n].className.replace('invisible','next'); 
		$(carentriescurrent).fadeTo("slow", 0, function(){switchslide(v,n);});
	}
	else {}
}

/* Functie zoekt carnav en zet deze aan */
/* Carnav enkel zichtbaar als Javascript enabled is */

function showcarnav()
{
	var carnav;
	carnav = document.getElementById('carrouselnav');
	
	if(carnav != null) {
		carnav.className = carnav.className.replace('hide','show');
	} else {}
}

/* Slideshow juiste class meegeven zodat ze op mekaar liggen, met één zichtbaar en de rest niet */

function showslideshow()
{
	var carentries;
	carentries = $("#carrousel > .carrouselentry");
	
	if (carentries.length != 0) {

		if(/zonderjs/.test(carentries[0].className))
			{
				carentries[0].className = carentries[0].className.replace('zonderjs','current');
			}
			else {}
		
		for(i=1;i<carentries.length;i++)
		{
			carentries[i].className = carentries[i].className.replace('zonderjs','invisible');			
		}
	} else { }
}


// Bij laden van de pagina moet de eerste functie uitgevoerd worden

$(document).ready(function(){
	showslideshow();
	showcarnav();
	addclicks();
	waitforslide();
 });
