//-------------------------------------------------------------
//  Nom Document : gf_mess.js
//  Auteur       : G.Ferraz
//  Objet        : défilement d'un message
//  Mise à Jour  : xx.xx.2006 pour CodesSourceS
//-------------------------------------------------------------
//  Mise à Jour  : 12.12.2006
//  Objet        : Correction de BUG pour compatibilite DOCTYPE
//                 simplification du Code
//-------------------------------------------------------------
var DOM = (document.getElementById ? true : false);

var DelayDefil = 50;      // Delai pour defilement Msg
var DelayPause = 1500;    // Delai pour pause sur le Msg
var IncY = 2;             // Pas Incrementation du Msg
var bFirst = false;
var MsgTimer = null;      // Timer du Msg
var OfsY;                 // OfsY du Msg pour clipping
var DeltaY;               // Compteur pour pause Msg
var PosX;                 // Positon d'affichage X du Msg
var PosY;                 // Positon d'affichage Y du Msg
var MsgClip;              // Hauteur visible du Msg
var MsgEnCours;           // Numero du Msg en cours d'affichage
var MsgNbr;               // Nbr Ligne à afficher
var MsgZone;              // Div ou l'on affichage
var MsgLarg;              // Largeur Msg
var MsgHaut;              // Hauteur Msg
var MsgOK   = false;      // Flag pour Init correct
var Clip    = new RECT(); // Zone de clipping du Msg
var Message = new Array();

//----------------------------
function RECT( l_, t_, r_, b_){
  var Arg = arguments;
  this.Left    = ( Arg[0] ? l_: 0);
  this.Top     = ( Arg[1] ? t_: 0);
  this.Right   = ( Arg[2] ? r_: 0);
  this.Bottom  = ( Arg[3] ? b_: 0);
}
//---------------------
function GetObjet(div_){
  if( DOM) return document.getElementById(div_);
}
//---------------------
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)
    Larg = Obj.scrollWidth;
  return( Larg);
}
//---------------------------
function ObjGetHauteur( div_){
  var Haut = 0;
  var Obj  = GetObjet( div_);
  if( Obj)
    Haut = Obj.scrollHeight;
  return( Haut);
}
//-----------------------------
function ObjWrite( div_, html_){
  var Obj = GetObjet( div_);
  if( Obj)
    Obj.innerHTML = html_;
}
//-------------------------
function ObjShow( div_, z_){
  var Obj = GetStyle( div_);
  if( Obj){
    Obj.visibility = "visible";
    if( arguments[1] != null)
      Obj.zIndex = z_;
  }
  return(true);
}
//-------------------------------
function ObjMoveTo( div_, x_, y_){
  var Arg = arguments;
  var 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 Obj = null;
  var Clipping = "rect(";
  var Arg = arguments;
  if( div_){
    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;
    }
  }
}
//-------------------------------------------------
// Creation d'un div lorsque le document est charge
//-------------------------------------------------
function Add_Div( div_){
  var Html ="";
  var NewDiv;
  var Obj = GetObjet( MsgZone);
  with( Obj){
    //-- pour eviter le mouseover sous Opera notamment
    style.overflow = 'hidden';
    //-- Pb d'héritage
    if( style.textAlign == "")
      style.textAlign="left";
  }
  Html  = '<DIV ID="MSG" style="position:absolute;left:0px;top:0px;width:140px;height:auto;visibility:hidden;"';
  Html += ' OnMouseOver="Msg_Stop();" OnMouseOut="Msg_Replay(\'MSG\');">&nbsp;</DIV>';
  //-- Creation Element
  NewDiv = document.createElement('DIV');
  //-- Ajout du New Element
  Obj.appendChild(NewDiv);
  //-- Ajout du Texte
  NewDiv.innerHTML = Html;
}
//-----------------------
function Add_Message(  m_){
  var i = Message.length;
  Message[i]  = m_;
}
//-----------------------
// Formatage du Message
//-----------------------
function Msg_Creer( div_){
  var Html = "";
  var szTR = "";
  var Largeur = ObjGetLargeur( MsgZone);
  var Hauteur = ObjGetHauteur( MsgZone);

  //-- Calcul valeur coherente au pas Y
  Hauteur = parseInt(Hauteur /IncY) * IncY;

  MsgNbr = Message.length +1;

  szTR = '<TR><TD HEIGHT="' +Hauteur +'" WIDTH="' +Largeur +'" class="MSG" VALIGN="CENTER">&nbsp;';
  Html = '<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="' +Largeur +'">';

  for( i in Message)
    Html += szTR +Message[i] +'</TD></TR>';

  //-- On rajoute la 1st Ligne pour rotation
  Html += szTR +Message[0] +'</TD></TR>';

  Html += '</TABLE>';
  ObjWrite( div_, Html);
}
//-----------------
function Msg_Stop(){
  if( MsgTimer)
    clearTimeout( MsgTimer);
}
//-----------------------
function Msg_Replay(div_){
  if( MsgOK){
    Msg_Stop();
    MsgTimer = setTimeout("DefilHAUT('" +div_ +"')", DelayDefil);
  }
}
//-----------------------
function Msg_Begin( div_){
  //-- Reinitialisation
  OfsY   = 0;
  DeltaY = 0;
  MsgEnCours = 1;
  //-- Init des Clipping
  Clip.Top    = 0;
  Clip.Bottom = Clip.Top + MsgClip;
  //-- On applique le clipping
  ObjSetClipping( div_, Clip.Top, MsgLarg, Clip.Bottom, 0);
  //-- On place le div
  ObjMoveTo( div_, 0, 0);
  ObjShow( div_, 100);
  //-- Pause sur message
  MsgTimer = setTimeout("DefilHAUT('" +div_ +"')", DelayPause);
}
//-----------------------
function Msg_Start( div_){
//-----------------------
  var Obj = null;
  var Html= "";
  Msg_Stop();
  Obj = GetObjet( div_);
  if( Obj){
    //-- On Récup l'Objet
    bFirst = true;
    //-- Creation d'un Message unique
    Msg_Creer( div_);
    //-- Recup. des dimensions
    MsgLarg = ObjGetLargeur( div_);
    MsgHaut = ObjGetHauteur( div_);
    //-- Calcul Hauteur de chaque Message
    MsgClip = MsgHaut / MsgNbr;
    //-- C'est parti
    Msg_Begin( div_);
    //-- Return Init OK
    return( true);
  }
  return( false);
}
//-----------------------
function DefilHAUT( div_){
//-----------------------
  //-- Incrementation
  OfsY   += IncY;
  DeltaY += IncY;
  //-- Init des Clipping
  Clip.Top    = OfsY;
  Clip.Bottom = Clip.Top + MsgClip;
  //-- On applique le clipping
  ObjSetClipping( div_, Clip.Top, MsgLarg, Clip.Bottom, 0);
  //-- On deplace ou replace
  ObjMoveTo( div_, 0, -Clip.Top);
  //-- On montre si first
  if( bFirst){
    ObjShow( div_, 100);
    bFirst = false;
  }
  //-- Gestion du deplacement
  if( DeltaY < MsgClip){
    //-- On y Retourne
    MsgTimer = setTimeout("DefilHAUT('" +div_ +"')", DelayDefil);
  }
  else{
    DeltaY = 0;
    MsgEnCours ++;
    if( MsgEnCours == MsgNbr){
      Msg_Begin( div_);
    }
    else{
      MsgTimer = setTimeout("DefilHAUT('" +div_ +"')", DelayPause);
    }
  }
}
//---------------------------------------
// Fonction à mettre sur onload du <BODY>
//---------------------------------------
function Msg_Init( where_){
  if( DOM){
    MsgZone = where_;
    Add_Div  ('MSG');
    MsgOK = Msg_Start('MSG');
  }
  else
    alert("Cette Animation n'est pas supportée par votre navigateur..\nI'm SORRY");
}
//----------------------------------------------------------------
//== INITIALISATION du Message ===================================
//----------------------------------------------------------------
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_080401">Avril 2008 :<\/a> <font style="font-weight:bold">Evoluprint lance une plateforme Web de production...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_080301" class="ejs_scroll">Mars 2008<\/a> : <br/><font style="font-weight:bold">Evoluprint renforce son équipe Innovation...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_080301" class="ejs_scroll">Mars 2008<\/a> : <br/><font style="font-weight:bold">Evoluprint développe la mise en page en ligne...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_080206" class="ejs_scroll">Janvier 2008<\/a> : <br/><font style="font-weight:bold">pr&eacute;sence nationale d\'Evoluprint <br/><br/>Evoluprint continue son évolution et sa croissance...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_071219" class="ejs_scroll">D&eacute;cembre 2007<\/a> : <br/><font style="font-weight:bold">mise en place de deux CTP Fuji...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_071113" class="ejs_scroll">Novembre 2007<\/a> : <br/><font style="font-weight:bold">Evoluprint exp&eacute;rimente les corrections &eacute;lectroniques...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_070907" class="ejs_scroll">Septembre 2007<\/a> : <br/><font style="font-weight:bold">Evoluprint investit dans un nouveau flux pr&eacute;-presse...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_070805" class="ejs_scroll">Ao&ucirc;t 2007<\/a> : <br/><font style="font-weight:bold">Evoluprint continue sa démarche de protection de l\'environnement...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_070710" class="ejs_scroll">Juillet 2007<\/a> : <br/><font style="font-weight:bold">Evoluprint renforce sa force de vente...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_070607" class="ejs_scroll">Juin 2007<\/a> : <br/><font style="font-weight:bold">présentation de notre service In\'IT...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_070509" class="ejs_scroll">Mai 2007<\/a> : <br/><font style="font-weight:bold">mise en place d\'un EvoluShow...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_070418" class="ejs_scroll">Avril 2007<\/a> : <br/><font style="font-weight:bold">le mois des records de vitesse !...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_070206" class="ejs_scroll">Février 2007<\/a> : <br/><font style="font-weight:bold">nos solutions sur mesure pour le stockage et l\'expédition...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_070101" class="ejs_scroll">Janvier 2007<\/a> : <br/><font style="font-weight:bold">Evoluprint vous présente ses meilleurs v&oelig;ux pour 2007...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_061206" class="ejs_scroll">Décembre 2006<\/a> : <br/><font style="font-weight:bold">critère réactivité...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_061107" class="ejs_scroll">Novembre 2006<\/a> : <br/><font style="font-weight:bold">Evoluprint en vid&eacute;o...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_061004" class="ejs_scroll">Octobre 2006<\/a> : <br/><font style="font-weight:bold">Evoluprint obtient la certification Imprim\'Vert&reg;...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_060905" class="ejs_scroll">Septembre 2006<\/a> : <br/><font style="font-weight:bold">les actions sociales d\'Evoluprint...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_060805" class="ejs_scroll">Ao&ucirc;t 2006<\/a> : <br/><font style="font-weight:bold">vos produits traités même pendant vos congés...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_060706" class="ejs_scroll">Juillet 2006<\/a> : <br/><font style="font-weight:bold">Evoluprint choisi par La Poste comme site pilote...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_060516" class="ejs_scroll">Mai 2006<\/a> : <br/><font style="font-weight:bold">compte-rendu de l\'invitation des élus locaux de notre région...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_060516" class="ejs_scroll">Mai 2006<\/a> : <br/><font style="font-weight:bold">mise en place de groupes de réflexion...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_060402" class="ejs_scroll">Avril 2006<\/a> : <br/><font style="font-weight:bold">invitation des maires de notre région...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_060228" class="ejs_scroll">Mars 2006<\/a> : <br/><font style="font-weight:bold">optimisation de l\'atelier d\'impression numérique...</font>');
Add_Message( '<a href="http://www.evoluprint.fr/index.php?rub=historique&page=actualite_060120" class="ejs_scroll">Janvier 2006<\/a> : <br/><font style="font-weight:bold">Evoluprint s\'équipe d\'une nouvelle presse 4 couleurs Heidelberg...</font>');
//-- EOF -----------------------------


