/* ---------------------------------------------------
   fws.js
   Librairies de fonctions javascript utilisées
   sur Maths, Informatique, Jeux
   Auteur : Frédéric WANG

   Pages utilisant ce script (11 juillet 2007) :
     
   - /index.php

   - /contacts/sondage.php

   - /maths/exercices/colleges/nombres_relatifs.php via fonctions.js
   - /maths/divers/equation.php via equation.js
   - /maths/divers/hanoi.php via hanoi.js

   - /programmation/divers/fonctions_mathematiques.php

   - /jeux/index.php
   - /jeux/combinaison.php
   - /jeux/puiss4.php
   - /jeux/sports/tirs_au_but.php
   - /jeux/fatal_combat/combat.php
   - /jeux/logigraphe/index.php
   - /jeux/logigraphe/fabriquer.php

   - /jeux_video/index.php
   - /jeux_video/gta/plans.php
   - /jeux_vide/gta/san_andreas/plans.php

   --------------------------------------------------- */

/* Retourne un nombre au hasard, compris entre 0 et N. */
function RND(N){return Math.floor(Math.random()*N);}

/* Définit _et pour coder le caractère &, qui n'est pas accepté par le W3C. On peut aussi :
   - placer le code dans un fichier externe
   - utiliser CDATA (non compris par les navigateurs)
   - utiliser &amp; (mais la conversion en & dans les adresses ne marchent qu'avec IE) */
_et="&";

/* Retourne le style d'un élément d'identificateur ID */
function Style(ID){return (document.layers?document.layers[ID]:document.getElementById(ID).style);}

/* Retourne la Longueur horizontale de l'écran ou de ID */
function LoX(ID)
{
    if(ID=="")return (document.layers ? innerWidth : document.body.clientWidth); 
    LX=Style(ID).width+(document.layers ? "px" : "");
    return eval(LX.substring(0,LX.length-2));
}

/* Retourne la Longueur verticale de l'écran ou de ID */
function LoY(ID)
{
    if(ID=="") return (document.layers ? innerHeight : document.body.clientHeight);
    LY=Style(ID).height+(document.layers ? "px" : "");
    return eval(LY.substring(0,LY.length-2));
}

/* Retourne l'abscisse de l'endroit où se trouve l'utilisateur ou un calque sur la page */
function CoX(ID)
{
    if(ID=="") return (document.layers ? pageXOffset : document.body.scrollLeft);
    X=Style(ID).left+(document.layers ? "px" : "");
    return eval(X.substring(0,X.length-2));
}

/* Retourne l'ordonnée de l'endroit où se trouve l'utilisateur ou un calque sur la page */
function CoY(ID)
{
    if(ID=="")return (document.layers ? pageYOffset : document.body.scrollTop);
    Y=Style(ID).top+(document.layers ? "px" : "");
    return eval(Y.substring(0,Y.length-2));
}

/* Montre ou cache un élément de la page */
function Voir(ID,indice)
{
    if(ID=="")return;
    if(indice==0)Style(ID).visibility=(Style(ID).visibility=="hidden" ? "visible" : "hidden");
    if(indice==-1)Style(ID).visibility="hidden";
    if(indice==1)Style(ID).visibility="visible";
}

/* Deplace un calque en X,Y */
function DepAbs(ID, X, Y)
{
    if(ID=="")window.scroll(X,Y);
    Style(ID).left=X+"px";Style(ID).top=Y+"px";
}

/* Deplace un calque de manière relative */
function DepRel(ID, X, Y)
{ 
    if(ID=="")window.scroll(CoX("")+X,CoY("")+Y);
    DepAbs(ID, CoX(ID)+X,CoY(ID)+Y);
}

