/* Settings (in milliseconds)*/
var slideTime = 3000;
var fadeTime = 250;
var slowComputer;


function slideShow() {
	/* Hide the slides */
	window.slides = getElementsByClass("slide");
	for (var i = 1; i<slides.length; i++) {
		slides[i].style.display="none";
		setOpacity(slides[i], 0);
	}
	
	/* Make the current link "active" */
	window.links = getElementsByClass("slideLink");
	toggleActive(links[0]);
	
	/* Add functionality to the links */
	for (var i in links){
		addEvent(links[i], "click", function(e) {
			/* Stop the show */
			if(interval) clearInterval(interval);
			if(window.timeout) clearTimeout(timeout);
			/* Find the clicked element */
			var targ;
			if (!e) var e = window.event;
			if (e.target) targ = e.target;
			else if (e.srcElement) targ = e.srcElement;
			/* Call fadeOut() with the # of slides to skip */
			for (var j in links){
				if (links[j] == targ) {
					fadeOut(slides[0].id, 100, j);
				}
			}
		});
	}
	
	/* 

	/* Start Rotating */
	window.interval = window.setInterval(rotate, slideTime);
}

function rotate(){
	/* Rotate the slide */
	fadeOut(slides[0].id, 100);
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function toggleActive(img){
	var target = img.src.split("/");
	if (img.src.search(/activ/) != -1){
		target[target.length - 1] = target[target.length - 1].replace("-activ", "")
	} else {
		target[target.length - 1] = target[target.length - 1].replace(".", "-activ.");
	}
	img.src = target.join("/");
}

function addEvent( obj, type, fn ) {
        if (obj.addEventListener)
                obj.addEventListener(type, fn, false);
        else if (obj.attachEvent)
                obj.attachEvent('on' + type, function() { return fn.apply(obj, new Array(window.event));});
}

function fadeIn(objId,opacity) {
	if (objId) {
		if (document.getElementById) {
			obj = document.getElementById(objId);
		}
		
		//check if computer is slow
		if(opacity == 0) {
			for (var i = 0; i < slides.length; i++){
				if(slides[i].style.display =="block") {
					slowComputer = TRUE;
				}
			}
		}

		if(slowComputer) {
			//disable fading
			setOpacity(obj, 100);
			obj.style.display="block";
		}
		
		else{	
			if (opacity <= 100) {
				setOpacity(obj, opacity);
				obj.style.display="block";
				opacity += 20;
				window.timeout = window.setTimeout("fadeIn('"+objId+"',"+opacity+")", fadeTime/5);
			}
		}
	}
}

function fadeOut(objId,opacity, skipNum) {
	if (objId && document.getElementById) {
		obj = document.getElementById(objId);
		
		if(slowComputer) {
			//disable fading
			setOpacity(obj, 0);
			obj.style.display="none";
		}
		
		else{
			if (opacity > 0) {
				setOpacity(obj, opacity);
				opacity -= 20;
				window.timeout = window.setTimeout("fadeOut('"+objId+"',"+opacity+","+skipNum+")", fadeTime/5);
			} else {
				obj.style.display="none";
				skipNum = (typeof(skipNum) != "undefined") ? skipNum : 1;
				for (i=0;i<skipNum;i++){
					slides.push(slides.shift()); //rotate array values
				}
				fadeIn(slides[0].id, 0);
				
				/* Rotate the link */
				toggleActive(links[0]);
				for (i=0;i<skipNum;i++){
					links.push(links.shift()); //rotate array values
				}
				toggleActive(links[0]);
			}
		}
	}
}

function setOpacity(obj, opacity) {
	opacity = (opacity == 100)?99.999:opacity;
	// IE/Win
	obj.style.filter = "alpha(opacity:"+opacity+")";
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacity/100;
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;
}

/* Start the script as soon as the DOM is loaded */
DomReady.ready(slideShow);