// JavaScript Document

var xhr;
var nbImages = 3;
var vitesse = 6000;
var currentInFade = 0;
var folder = null;
var toLoad = 0;
var images = null;

if(navigator.appName.substring(0,3)=="Mic") attachEvent("onload",initFader);
else addEventListener("load", initFader, false);


function createXhrObject() {
    if (window.XMLHttpRequest) return new XMLHttpRequest();
    if (window.ActiveXObject) {
        var names = [
            "Msxml2.XMLHTTP.6.0",
            "Msxml2.XMLHTTP.3.0",
            "Msxml2.XMLHTTP",
            "Microsoft.XMLHTTP"
        ];
        for(var i in names)  {
            try{ return new ActiveXObject(names[i]); }
            catch(e){}
        }
    }
    //window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
    return null; // non supporté
}

function getFolder() {
	var img = document.getElementById("topIllu0");
	var tmp = img.src.split("/");
	tmp.splice(0,3);
	tmp.pop();
	folder = "/"+tmp.join("/")+"/";
}
function initFader(res) {
	if (folder == null) getFolder();
	if (typeof(res) != "string") {
		xhr = createXhrObject();
		xhr.onreadystatechange = function(){
			if(xhr.readyState  == 4){
				if(xhr.status  == 200) initFader(xhr.responseText);
				else alert("Error code " + xhr.status);
			}
		}
		var data = "folder="+folder;
		xhr.open("POST", "/php/imagelist.php", true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send(data);
	} else {
		//alert(res);
		var imgs = res.split("|");
		toLoad = imgs.length;
		var preImages = new Array();
		for (i = 0; i<imgs.length; i++) {
			preImages[i] = new Image();
			preImages[i].onLoad = onPreloadImage();
			preImages[i].src = imgs[i];
		}
	}
}
function onPreloadImage() {
	toLoad--;
	if (toLoad == 0) setTimeout(getImages,vitesse);
}

function getImages() {
	var currents = new Array();
	for (var i=0; i<nbImages; i++) {
		var img = document.getElementById("topIllu"+i);
		var tmp = img.src.split("/");
		var src = tmp.pop();
		currents.push(src);
	}
	loadImagesList(folder,currents.join("|"));
}

function loadImagesList(folder,currents) {
	//alert("loadImagesList: "+folder);
	xhr = createXhrObject();
	xhr.onreadystatechange = onLoadImagesList;
	var data = "folder="+folder+"&currents="+currents+"&count="+nbImages;
	xhr.open("POST", "/php/imagelist.php", true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send(data);
}
function onLoadImagesList() {
	if(xhr.readyState  == 4){
		if(xhr.status  == 200) parseResponse(xhr.responseText);
		else alert("Error code " + xhr.status);
	}
}
function parseResponse(res) {
	//alert("parseResponse: "+res);
	images = res.split("|");
	currentInFade = 0;
	currentOpa = 100;
	setTimeout(fadeOutImage,25);
}

function fadeOutImage() {
	var img = document.getElementById("topIllu"+currentInFade);
	currentOpa -= 1;
	if(document.all && !window.opera) img.style.filter = 'alpha(opacity=' + currentOpa + ');' ;
	else img.style.opacity = currentOpa/100;
	if (currentOpa <= 5) onFadeOutImage();
	else setTimeout(fadeOutImage,25);
}
function onFadeOutImage() {
	var img = document.getElementById("topIllu"+currentInFade);
	img.src = images[currentInFade];
	img.onError = onErrorLoadImageToFade;
	if(document.all && !window.opera) img.style.filter = 'alpha(opacity=' + currentOpa + ');' ;
	else img.style.opacity = currentOpa/100;
	setTimeout(fadeInImage,25);
}
function onErrorLoadImageToFade() {
	
}

function fadeInImage() {
	var img = document.getElementById("topIllu"+currentInFade);
	currentOpa += 1;
	if(document.all && !window.opera) img.style.filter = 'alpha(opacity=' + currentOpa + ');' ;
	else img.style.opacity = currentOpa/100;
	if (currentOpa >= 100) onFadeInImage();
	else setTimeout(fadeInImage,25);
}
function onFadeInImage() {
	currentInFade++;
	currentOpa = 100;
	if (currentInFade < nbImages) setTimeout(fadeOutImage,25);
	else setTimeout(getImages,vitesse);
}