//---------------------------------------------------------
//  Nom Document : gf_effet.js
//  Auteur       : G.Ferraz
//  Objet        :
//  Création     :
//---------------------------------------------------------
//  Mise à Jour  :
//---------------------------------------------------------
//-- Test sur Navigateur
var DOM = (document.getElementById ? true : false);
var IE  = (document.all && !DOM ? true : false);
var NETSCAPE = (navigator.appName == "Netscape");

//-- Variables globales pour les Effets
var CLIP_TOP    = 0;
var CLIP_RIGHT  = 1;
var CLIP_BOTTOM = 2;
var CLIP_LEFT   = 3;
var TopIndex =1000;
var T_Sinus = new Array();
var Index =0;
var IdTimer=null;
var PosX, PosY;
var PasY, PasX;
var OfsX, OfsY;
var Haut, Larg;
var Delai =10;
var Count;
var szImg;
//=====================================
// Fonctions MANIPULATION des DIV...etc
//=====================================
//---------------------
function GetObjet(div_){
  if( DOM) return document.getElementById(div_);
  if( IE)  return document.all[div_];
  return( null);
}
//---------------------
function GetStyle(div_){
  var Obj = GetObjet( div_);
  if( Obj)
    return( Obj.style);
  return( null);
}
//---------------------------
function ObjGetLargeur( div_){
  var Larg = 0;
  var Obj = GetObjet( div_);
  if( Obj){
    if( NETSCAPE)
      Larg = Obj.offsetWidth;
    else
      Larg = Obj.scrollWidth;
  }
  return( Larg);
}
//---------------------------
function ObjGetHauteur( div_){
  var Haut = 0;
  var Obj = GetObjet( div_);
  if( Obj){
    if( NETSCAPE)
      Haut= Obj.offsetHeight;
    else
      Haut= Obj.scrollHeight;
  }
  return( Haut);
}
//-----------------------------
function ObjWrite( div_, html_){
  var Obj = GetObjet( div_);
  if( Obj)
    Obj.innerHTML = html_;
}
//---------------------
function ObjHide( div_){
  var Obj = GetStyle( div_);
  if( Obj){
    Obj.visibility= "hidden";
    Obj.zIndex = 0;
  }
  return(true);
}
//-------------------------
function ObjShow( div_, z_){
  var Obj = GetStyle( div_);
  if( Obj){
    Obj.visibility = "visible";
    if( arguments[1] != null)
      Obj.zIndex = z_;
    else
      Obj.zIndex = 9999;
  }
  return(true);
}
//-------------------------------
function ObjMoveTo( div_, x_, y_){
  var Obj = null;
  var Arg = arguments;
  if( div_){
    Obj = GetStyle( div_);
    if( Obj){
      if( Arg[1] != null) Obj.left = x_ +"px";
      if( Arg[2] != null) Obj.top  = y_ +"px";
    }
  }
}
//--------------------------------------------
// ATTENTION à l'ordre des paramètres
//      Top Right Bottom et Left
// Nota: ne convient pas pour NS4
//--------------------------------------------
function ObjSetClipping( div_, t_, r_, b_, l_){
  var Arg = arguments;
  var Clipping = "rect(";
  var Obj = GetStyle( div_);
  if( Obj){
    for( i=1; i< Arg.length; i++){
      if( Arg[i] != null)
        Clipping += " "+Arg[i] + "px";
      else
        Clipping += " auto";
    }
    Clipping += ")";
    Obj.clip = Clipping;
  }
}
//==================================
// Fonctions pour les EFFETS
//==================================
//------------------
function Stop_Anim(){
  if( IdTimer)
    clearTimeout( IdTimer);
}

//--------------------------------------//
// Génération d'une table de Sinus      //
// Entrée :                             //
//   periode_ : longueur de l'onde      //
//   ampli_   : profondeur de l'onde    //
// Sortie : Tableau d'Entiers           //
//--------------------------------------//
function GetTableSinus( periode_, ampli_){
  var i;
  var Tab = new Array();
  var Cst = 2* 3.1416/periode_; // évite le recalcul dans la boucle
  for( i =0; i < periode_; i++){
    Tab[i] = parseInt( Math.sin( i *Cst) *ampli_);
  }
  return( Tab);
}
//-----------------------------------------
// Entrée : Chaine de caractères
// Sortie : Tableau d'Entiers
//-----------------------------------------
// pour IE clip ="rect(0px 200px 50px 0px)"
// pour FF clip ="rect(0px,200px,50px,0px)"
// pour NS clip ="rect(0px 50px 15px 10px)"
// ATTENTION
// les clip="rect(0px auto 50px 0px)"
//-----------------------------------------
function GetTabValeur( txt_){
  var i;
  var Car;
  var NbrCar;
  var Champ = 0;
  var bFlag = true;              // Gestion changement de champ
  var Str   ="";
  var Tab   = new Array();       // Tableau Récup. Texte
  var Ent   = new Array();       // Tableau Récup. Entier

  with( txt_){
    i = 0;
    NbrCar = length;

    //-- On va au chiffre le plus proche --//
    while ((i < NbrCar) && (charAt(i)<'0')|(charAt(i)>'9'))
      i++;

    for(; i < NbrCar; i++){
      Car = charAt(i);
      //-- On ne prend que les chiffres --//
      if (( Car >= '0') && ( Car <= '9')){
        if( bFlag){
          Tab[Champ] = "";       // Déclare en Texte
          bFlag = false;         // On reste dans la même Champ
        }
        Tab[Champ] += Car;
      }
      else{
        if( !bFlag) Champ++;     // Champ suivant
        bFlag = true;            // Autorise le changement de Champ
      }
    }
  }
  //-- Conversion en Entier --//
  for( i= 0; i <Tab.length; i++)
    Ent[i] = parseInt( Tab[i], 10);
  return( Ent);
}
var k =0;

//-------------------------------------
// Destruction d'un Elément de document
//-------------------------------------
function DIV_Remove( div_){
  var Obj = GetObjet( div_);
  if( Obj){
    var Parent = Obj.parentNode;
    if( Parent)
      Parent.removeChild( Obj);
  }
}
//-------------------------------------------------
// Création d'un div lorsque le document est chargé
//-------------------------------------------------
function DIV_Add( div_, txt_){
  var Html ="";
  var NewDiv;
  if( DOM){
    NewDiv = document.createElement('DIV');
    with( NewDiv){
      id               = div_;
      innerHTML        = txt_;
      style.position   = "absolute";
      style.left       = "0px";
      style.top        = "0px";
      style.width      = "auto";
      style.height     = "auto";
      style.visibility = "hidden";
      style.zIndex     = 0;
    }
    document.body.appendChild(NewDiv);
  }
}

//-----------------------------------
function DIV_GetObjClip( div_, what_){
  var Obj;
  var Dim   = new Array(0,0,0,0);
  var szDiv = div_ +'_H0_L0';
  //-- Valeur valide 0=top 1=right 2=bottom 3=left
  if(( what_> -1) && ( what_< 4)){
    Obj = GetStyle( szDiv);
    Dim = GetTabValeur( Obj.clip);
    return( Dim[what_]);
  }
  alert( "Valeur = " +what_ +"\nInvalide !");
  return( -1);
}


//==================================
// Fonctions TOOLS
//==================================
function OpenAide(url_,larg_, haut_){
  var Win;
  var Html;
  var L = (larg_ ? larg_: 400);             // Largeur Fenêtre
  var H = (haut_ ? haut_: 400);             // Hauteur Fenêtre
  var X = (screen.width  -L) /2;            // Centrage Horizontal
  var Y = (screen.height -H) /2;            // Centrage Vertical
  var Pos = "left="+X+",top="+Y+",width="+L+",height="+H +",";
  var Opt = "scrollbars=yes, resizable=yes";
  Win  = window.open( url_,"AIDE", Pos +Opt);
  Win.focus();
}


