var fadeColors = ['#000000', '#222222', '#444444', '#666666', '#888888', '#aaaaaa', '#cccccc', '#eeeeee'];
var fadeRed = ['#000000', '#220000', '#440000', '#660000', '#880000', '#aa0000', '#cc0000', '#ee0000'];
var copyright, linkhere, ul, items, x, z, used = new Array();

window.onload = function(){
	ul = document.getElementsByTagName('ul')[0];
	var citems = ul.getElementsByTagName('li');
	items = new Array(citems.length - 1);
	items.push(citems[citems.length - 1]);
	for(var i = 0; x = citems[i]; i++){
		if(i == (citems.length - 1)) break;
		z = -1;
		while(z == -1 || items[z])
			z = Math.floor(Math.random() * items.length);
		items[z] = x;
	}
	for(var i = 1; i <= 4; i++)
		window['h'+i] = document.getElementsByTagName('h'+i)[0];
	setTimeout('startShow()', 1000);
}

function startShow(){
	ul.style.display = 'block';
	var time = 1;
	for(var i = 0; i < items.length; i++){
		setTimeout('fadeItem('+i+')', time);
		time += (1600 - ((i * i > 400)? (400 + (i * 2)) : i * i));
	}
	setTimeout('fadeHeading("h3")', (time += 1500));
	setTimeout('fadeHeading("h4")', (time += 700));
	setTimeout('fadeHeadingOut("h3")', (time += 1750));
	setTimeout('fadeHeadingOut("h4")', time);
	setTimeout('fadeHeading("h1")', (time += 350));
	setTimeout('fadeHeading("h2")', (time += 700));
	setTimeout('location.href="http://opera-fr.com/"', (time + 1500));
}

function fadeIn(time, estr, a){
	for(var i = 0; x = a[i]; i++){
		setTimeout(estr+'.style.color="'+x+'"', time);
		time += 75;
	}
	return (time - 75);
}

function fadeOut(time, estr, a){
	for(var i = (a.length - 1); x = a[i]; i--){
		time += 75;
		setTimeout(estr+'.style.color="'+x+'"', time);
	}
	setTimeout(estr+'.style.display="none"', time);
	setTimeout('if(used["'+estr+'"]) delete used["'+estr+'"]', time);
}

function fadeItem(item){
	items[item].style.display = 'block';

	var c = 0;
	var iw = (window.innerWidth? window.innerWidth : document.documentElement.clientWidth);
	var ih = (window.innerHeight? window.innerHeight : document.documentElement.clientHeight);
	var cw = items[item].clientWidth;
	var ch = items[item].clientHeight;

	while(c < 50){
		var max = (iw - cw - 100);
		if(max < 1) max = 1;
		var left = (Math.floor(Math.random() * max) + 50);
		items[item].style.left = left + 'px';

		max = (ih - ch - 100);
		if(max < 1) max = 1;
		var top = (Math.floor(Math.random() * max) + 50);
		items[item].style.top = top + 'px';

		var nmatch = false;
		var lc = left + cw;
		var tc = top + ch;

		for(var i in used){
			x = used[i];
			if(lc >= x[0] && left <= x[1] && tc >= x[2] && top <= x[3]){
				nmatch = true;
				break;
			}
		}

		if(!nmatch){
			used['items['+item+']'] = [left, lc, top, tc];
			break;
		}
		c++;
	}

	var time = fadeIn(1, 'items['+item+']', fadeColors) + 250;
	fadeOut(time, 'items['+item+']', fadeColors);
}

function fadeHeading(h){
	window[h].style.display = 'block';
	fadeIn(1, h, fadeRed);
}

function fadeHeadingOut(h){
	fadeOut(1, h, fadeRed);
}

