// Detection du navigateur
nc4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;
nc6 = (typeof(window.controllers) != 'undefined' && typeof(window.locationbar) != 'undefined')? true:false;

// Distance de deplacement a chaque mouvement
var decallage = 3;

// Delai entre chaque mouvement (en millisecondes)
var vitesse = 30;

// Position du defilement :
var posX = 120;
var posY = 10;

// Dimensions du defilement :
var zoneX = 360;
var zoneY = 428;

// Variable qui recevra la continuite du mouvement
var mouvement;

// Variable qui recevra la position la plus haute du calque
var hauteur = 0;

// Fonction generant le mouvement
function defile(sens) {

// Instructions pour Netscape 4.x
	if (nc4) {

// Variable pour manipuler le calque defilant
		calque = 'document.conteneur.document.defilant';

// Calcul de la position la plus haute
		hauteur = -eval(calque + '.document').height + zoneY;
		}

// Instructions equivalentes pour Internet Explorer et Netscape 6 et superieur
	if (ie4) {
		calque = 'defilant.style';
		hauteur = -defilant.offsetHeight + zoneY;
		}
	if (nc6) {
		calque = 'document.getElementById("defilant").style';
		hauteur = -document.getElementById("defilant").offsetHeight + zoneY;
		}

// Si on veut aller vers le haut du contenu
	if ( sens == '+' ) {

// Tant qu'on est pas arrive en haut
		if ( parseInt(eval(calque).top) < 0 ) {

// Deplacement du calque selon le 'pas' specifie
			eval(calque).top = eval(parseInt(eval(calque).top) + sens + decallage);

// Relance selon la vitesse prevue pour creer le defilement
			mouvement = setTimeout("defile('" + sens + "')",vitesse);
			}

// Si on est arrive en haut
		else {

// Arret de la boucle de defilement
			clearTimeout(mouvement);

// Repositionnement precis du calque
			eval(calque).top = 0;
			}
		}

// Instructions equivalentes pour aller vers le bas
	if ( sens == '-' ) {
		if ( parseInt(eval(calque).top) > hauteur ) {
			eval(calque).top = eval(parseInt(eval(calque).top) + sens + decallage);
			mouvement = setTimeout("defile('" + sens + "')",vitesse);
			}
		else {
			clearTimeout(mouvement);
			eval(calque).top = hauteur;
			}
		}

// Si on veut aller tout en haut du contenu
	if ( sens == '++' ) {

// Arret de tout defilement en cours
		clearTimeout(mouvement);

// Positionnement du calque tout en haut
		eval(calque).top = 0;
		}

// Instructions equivalentes pour aller tout en bas
	if ( sens == '--' ) {
		clearTimeout(mouvement);
		eval(calque).top = hauteur;
		}
	}