/********************************************************
 *                                                      *
 *  **************************************************  *
 *  *                                                *  *
 *  *                                                *  *
 *  *                 JS crossfade                   *  *
 *  *                  Copyright:                    *  *
 *  *                    BasieP                      *  *
 *  *               http://basiep.nl                 *  *
 *  *                     2006                       *  *
 *  *                                                *  *
 *  *                                                *  *
 *  *                                                *  *
 *  **************************************************  *
 *                                                      *
 ********************************************************/



var cf_staytime = 5000;
var cf_fadetime = 2000;
							//total time between 2 frames is cf_fadetime + cf_staytime

var cf_stepinterval = 80;				// (lower is more smooth, but takes more cpu power)



/*
Don't edit under this line
*/


window.onload = function windowLoaded() {
	//crossfade voor header
	var container = document.getElementById("crossfade");

	container.cf_staytime = cf_staytime;
	container.cf_fadetime = cf_fadetime;
	container.cf_content = cf_content[0];

	container.cf_div_trans = 100;
	container.showdiv1 = true;


	container.cf_content = shuffle(container.cf_content);
	if (container.cf_content.length > 1) {
		crossfade(container.id);
	}
}

function crossfade(container) {
	var container = document.getElementById(container);

	var div1 = container.getElementsByTagName('div')[0];
	var div2 = container.getElementsByTagName('div')[1];

	setTransparency(div1, container.cf_div_trans);
	setTransparency(div2, 100 - container.cf_div_trans);

	//calculate next transparency
	var cf_stepsize = 100 / container.cf_fadetime * cf_stepinterval;
	container.cf_div_trans = container.showdiv1 ? container.cf_div_trans + cf_stepsize : container.cf_div_trans - cf_stepsize;


	//catch switches
	if (container.cf_div_trans < 0) {
		container.cf_div_trans = 0;
		setTransparency(div1, container.cf_div_trans);
		setTransparency(div2, 100 - container.cf_div_trans);

		//change content div1
		if (div2.style.backgroundImage != 'url(' + container.cf_content[0] + ')') {
			div1.style.backgroundImage = 'url(\'' + container.cf_content[0] + '\')';
			setCursor(container, container.cf_content[0] + '.big');
			div1.currentImage = container.cf_content[0];
		} else {
			div1.style.backgroundImage = 'url(\'' + container.cf_content[1] + '\')';
			setCursor(container, container.cf_content[1] + '.big');
			div1.currentImage = container.cf_content[1];
		}

		//shuffle array
		container.cf_content = shuffle(container.cf_content);

		//show content for xx seconds
		setTimeout ("crossfade('" + container.id + "');", container.cf_staytime);
		container.showdiv1 = true;
	} else if (container.cf_div_trans > 100) {
		container.cf_div_trans = 100;
		setTransparency(div1, container.cf_div_trans);
		setTransparency(div2, 100 - container.cf_div_trans);

		//change content div2
		if (div1.style.backgroundImage != 'url(' + container.cf_content[0] + ')') {
			div2.style.backgroundImage = 'url(\'' + container.cf_content[0] + '\')';
			setCursor(container, container.cf_content[0] + '.big');
			div2.currentImage = container.cf_content[0];
		} else {
			div2.style.backgroundImage = 'url(\'' + container.cf_content[1] + '\')';
			setCursor(container, container.cf_content[1] + '.big');
			div2.currentImage = container.cf_content[1];
		}

		//shuffle array
		container.cf_content = shuffle(container.cf_content);

		//show content for xx seconds
		setTimeout ("crossfade('" + container.id + "');", container.cf_staytime);
		container.showdiv1 = false;
	} else {
		//do next shade of transparency
		setTimeout ("crossfade('" + container.id + "');", cf_stepinterval);
	}
}

function setCursor(container, value) {
	if (Contains(value, container.cf_contentBig)) {
		container.style.cursor = 'pointer';
	} else {
		container.style.cursor = 'default';
	}
}



function setTransparency(node, value) {
	node.style.filter = 'Alpha(opacity=' + value + ')';
	node.style.MozOpacity = value / 100;
	node.style.KhtmlOpacity = value / 100;
	node.style.opacity = value / 100;
}

function makebig(container) {
	var currentImage = '';

	if (container.cf_div_trans > 50) {
		var div1 = container.getElementsByTagName('div')[0];
		currentImage = div1.currentImage;
	} else {
		var div2 = container.getElementsByTagName('div')[1];
		currentImage = div2.currentImage;
	}
	currentImage = currentImage + '.big';

	var pos = Contains(currentImage, container.cf_contentBig);

	if (pos) {
		showImagePopup(container.cf_contentBig, pos - 1);
	}
}

function Contains(needle, haystack) {
	for (var i in haystack) {
		if (haystack[i] == needle) {
			return parseInt(i) + 1;
		}
	}
	return false;
}

/**************************************
» Jonas Raoni Soares Silva
» http://www.joninhas.ath.cx
**************************************/

function shuffle(o) {
	var tmp = o[0];
	o.splice(0, 1);
	for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
	o[o.length] = tmp;
	return o;
};

