﻿// JScript File

// Fonction pour utiliser le scrolling vertical
// Dir = up, dn, left, right
function verScroll(dir, spd, loop, elem, x_original, y_original) {
loop = true;
direction = "up";
speed = 10;
scrolltimer = null;

    //alert("x_original = " +x_original + " y_original = " + y_original);

/*
Nous commencons notre script en ouvrant notre fonction verScroll qui recevra 3 arguments. dir est la direction, spd la vitesse et loop correspondant à la boucle (j'y reviendrais plus tard).
Puis nous fixons quelques variables.
*/
//    if (document.layers) {
//        var page = eval("document."+elem);
//    }
//    else if (document.getElementById) {
//             var page= eval("document.getElementById(\""+elem+"\").style");
//    }
//    else if (document.all) {
//            var page = eval("document.all('"+elem+"').style");
//    }
    if (!document.getElementById(elem)) {
        return false;
    }
    
    var page = document.getElementById(elem).style;
    
    //alert("height = " +page.height + " width = " + page.width);
    var height = -(parseInt(page.height.substring(0, page.height.length - 2)))
    var width = -(parseInt(page.width.substring(0, page.width.length - 2)))
    //alert("height = " +height + " width = " + width);
/*
Içi nous allons détecter les différents DOM (Document Object Model) en fonction du navigateur du visiteurs (layer => netscape4, getElementById => tous les navigateurs compatible DOM level2, all => internet explorer 5+). Cette opération, effectuée avec la méthode eval, va nous permettre de récuperer la valeur de l'élément elementTexte.
*/
    direction = dir;
    speed = parseInt(spd);
    var y_pos = parseInt(page.top);
    var x_pos = parseInt(page.left);
    //alert("x_pos = " +x_pos + " y_pos = " + y_pos);
/*
Dans la variable direction on met l'argument dir reçus a l'appel de la fonction.
Dans la variable speed, on y met l'argument spd reçus à l'appel de la fonction. On utilise ici la méthode parseInt pour être sur que la valeur sera un entier.
Et enfin dans la variable y_pos, on y met la valeur de top (de la déclaration du style de l'élement) de l'élement se trouvant dans la variable page.
*/
    if (loop == true) {
      if (direction == "dn" && y_pos > height) {
           page.top = (y_pos - (speed)) + "px";
       } 
       else 
       {
           if (direction == "up" && y_pos < y_original) {
               page.top = (y_pos + (speed)) + "px";
           } 
           else 
           {
                if (direction == "left" && x_pos > (width + 500)) {
                    page.left = (x_pos - (speed)) + "px";
                }
                else
                {
                    if (direction == "right" && x_pos < x_original) {
                        page.left = (x_pos + (speed)) + "px";
                    }
                }
            }
        }
        var tmp = "verScroll(direction,speed,"+loop+",'"+elem+"',"+x_original+","+y_original+")";
        scrolltimer = setTimeout(tmp, 1);
    }
}

/*
Ici nous créons une variable scrolltimer qui contient la méthode de l'objet window setTimeout ayant pour fonction d'évaluer une expression (ici appelle de la fonction verScroll avec en argument les variables direction et speed) après qu'un délai en millisecondes (ici ) soit expiré.
*/

function stopScroll() {
    loop = false;
    clearTimeout(scrolltimer);
}

// Cette fonction bloque l'acces à toutes les touches sauf aux caractères numériques
function TestNumeric(e) {
    // if aEvent is null, means the Internet Explorer event model,
    // so get window.event.
    var IE5 = false;

    if (!e) var e = window.event;
    
    if (e.keyCode) {
        IE5= true;
        code = e.keyCode;
    }
    else if (e.which) {
        code = e.which ;
    }

    //test du code
    if (code < 48 || code > 57)
    {
        if(IE5) e.returnValue = false;
        else e.preventDefault();
    }
}