/* une fonction qui remplace uen div par une div cachee *
 * et au bout d'un certain temps la re-remplace par la  *
 * div normale (quand onMouseOut, en particulier */

var contenuCourant;
var contenuCache;
var posContenu;
var posContenuCache;
var nomContenant;
var lock = false;
var compteur = 0;
var derouleVar;
var step = 4;
var timer = 10;

function derouleEnroule(nomContenuCache,nomContenu,nomConteneur){
    contenuCourant = document.getElementById(nomContenu);
    contenuCache = document.getElementById(nomContenuCache);
    nomContenant = nomConteneur;
    posContenu = parseInt(contenuCourant.style.top);
    posContenuCache = parseInt(contenuCache.style.top);
    // on attend que le deroulement precedent se soit bien passe
    waitLock();
}

function scrollBas(){
    posContenu = posContenu + step;
    posContenuCache = posContenuCache + step;
    contenuCourant.style.top = posContenu + "px";
    contenuCache.style.top = posContenuCache + "px";
    if (posContenuCache < 0) {
	setTimeout("scrollBas()",timer);
    } else { // on met proprement les tailles et on arrete
	posContenuCache = 0;
	posContenu = contenuCache.offsetHeight;
	contenuCourant.style.top = posContenu + "px";
	contenuCache.style.top = posContenuCache + "px";
	lock = false;
	compteur--;
    }
}

function scrollHaut(){
    posContenu = posContenu - step;
    posContenuCache = posContenuCache - step;
    contenuCourant.style.top = posContenu + "px";
    contenuCache.style.top = posContenuCache + "px";
    if (posContenu > 0) {
	setTimeout("scrollHaut()",timer);
    } else {
	posContenuCache = - contenuCache.offsetHeight;
	posContenu = 0;
	contenuCourant.style.top = posContenu + "px";
	contenuCache.style.top = posContenuCache + "px";
	lock = false;
	compteur--;
    }
}

function waitLock(){
    if(compteur == 0) { // UN appel a deja ete fait
	if(compteur == 0) { // je suis seul
	    compteur++;
	    if(derouleVar) {
		scrollBas();
	    } else {
		scrollHaut();
	    }	
	} else {
	    setTimeout("waitLock()",60);
	}
    } else {
	// compteur--;
    }
}

function deroule(haut,bas,big){
    derouleVar = true;
    derouleEnroule(haut,bas,big);
}


function enroule(haut,bas,big){
    derouleVar = false;
    derouleEnroule(haut,bas,big);
}
