
/*
     plugin Glossaire pour pluxml
     
     Une partie de ce script javascript provient du site : http://css.alsacreations.com/
     Il est sous licence Creative Commons : http://creativecommons.org/licenses/by/2.0/fr/
     La partie "comportement survol def" est inspirée de ce lien:
     http://www.developpez.net/forums/d645689/webmasters-developpement-web/javascript/onmouseout-div-boutons/

     modifications:
     08/09/2009 modification class pop en gpop (conflit css RSS GuppY)
     20/07/2009 détection IE8 (source = http://blogs.msdn.com/giorgio/archive/2009/04/14/how-to-detect-ie8-using-javascript-client-side.aspx)
     27/02/2009 ajout limitation hauteur fonction hauteur fenêtre
     26/01/2009 intégration option définition figeable
     05/01/2009 ajout stopLect()
     04/01/2009 définition cliquable (tempo 0.5sec + se fige au survol).
     01/01/2009 prise en compte choix [1024] GuppY
*/
//Détection IE8 - on repère la sous-chaine "Trident/4.0"
function IsIE8Browser() {    
  var rv = -1;    
  var ua = navigator.userAgent;    
  var re = new RegExp("Trident\/([0-9]{1,}[\.0-9]{0,})");    
  if (re.exec(ua) != null) {        
    rv = parseFloat(RegExp.$1);    
    }    
    return (rv >= 4);
    }

gk=window.Event?1:0; // navigateurs Gecko ou IE
if (IsIE8Browser()) gk=0; // navigateur IE8
D=document;bulle=poppup=popn=encours=wpop=hpop=x=0

var colleDef = null;

function ferm()
{
encours.left=-999+'px'; 
encours=0; 
delai=null;
if(window.stopLect){stopLect('vid'+poppup.id);}
}

var chrono = null;
function initEvent(idConteneur)
{
  var elements = document.getElementById(idConteneur).getElementsByTagName("*");
  var i;
  var n = elements.length;
  for (i=0; i<n; i++)
  {
    elements[i].onmouseover = function(){stopTempo()}
  }
}

function stopTempo()
{
  if (chrono!=null)
    clearTimeout(chrono);
  chrono = null;
}

function demarreTempo()
{
  if (chrono==null)
    chrono = setTimeout("mouseOut()","20");
}

function mouseOut()
{
  if(colleDef == null) {
  ferm();
  chrono = null;
  }
}

var delai = null;
function stopDelai()
{
  if (delai!=null)
    {clearTimeout(delai);
    delai = null;}
}

function demarreDelai()
{
  if (delai==null)
  {delai = setTimeout("ferm();","500");}
}

function ctrl(e)
{
if(!x){de=!D.documentElement.clientWidth?D.body:D.documentElement;x=1} // IE6
el=gk?e.target:event.srcElement; //objet sous la souris
if(!el.tagName)el=el.parentNode; // noeud #text

if(el.className == 'gpop' && el.href)
  {
  poppup = D.getElementById(el.href.substring(el.href.lastIndexOf('#') + 1));
  with(poppup){wpop=offsetWidth;hpop=offsetHeight;bulle=style}

  if(bulle!=encours) // seulement si changement de bulle
    {
    colleDef=null;
    encours.left=-999+'px';
    encours=bulle;
    dx=0;    // Remplace la ligne ci-dessous pour pluxml
    //dx=D.getElementById('top')?D.getElementById('top').offsetLeft:0;   // pour tenir compte de [1024] dans GuppY
    fx=gk?innerWidth-15:de.clientWidth   //l fenêtre
    fy=gk?innerHeight-15:de.clientHeight //h fenêtre
    sx=gk?pageXOffset:de.scrollLeft      //scroll h
    sy=gk?pageYOffset:de.scrollTop       //scroll v
    x=gk?e.pageX:event.clientX+sx;       //curseur x
    y=gk?e.pageY:event.clientY+sy;       //curseur y
    posx=x>=fx+sx-wpop-10?x-15-wpop:x+10
    posx=posx-dx;
    if(hpop>=0.8*fy){hpop=Math.round(0.8*fy); he=hpop+"px";} else{ he="";}    // limit. hauteur def par rapport hauteur fenêtre
    posy=y>=fy+sy-hpop-20?fy+sy-hpop-15:y+10

    with(bulle){left=posx+'px';top=posy+'px'; height=he; overflow=he==""?'hidden':'auto';}
    
    el.onclick=function(){return false}//désactive le lien
    if(window.demLect){demLect('vid'+poppup.id);} // fonction demLect(id) à créer par l'utilisateur (voir lisez-moi)

    }  // Tempo d'affichage
    el.onmouseout=function(){demarreDelai();}
    el.onmouseover=function(){stopDelai();}
  }
  
  else {  // Comportement survol def
    if((el.className == 'pp larg1')||(el.className == 'pp larg2')){
    stopDelai();
    initEvent(el.id);
    if(colleDef == null){  
    if(el.firstChild.className == 'figer'){colleDef = 1;} else{colleDef = null;}
    }
    el.onmouseout=function(){demarreTempo();}
    el.onmouseover=function(){stopTempo();}
    }
  }
}

if(colleDef == null) {
  D.onmousemove=ctrl;
 }


