//Constants de Configuració

   var PIXELS_X_OFFSET=-5;
   var PIXELS_Y_OFFSET=20;
   var GLOBUS_TIME_TO_OPEN=250;//En milisegons.
   var GLOBUS_OPENED_TIME=500;


//Variables Globals

   var GlobusCloseTimer;
   var GlobusOpenTimer;

//Fucnions

//Amaga el globus DIV al cap de GLOBUS_OPENED_TIME milisegons.
function amagaGlobusInTime(div){
   GlobusCloseTimer=setTimeout("amagaGlobus('"+div+"')",GLOBUS_OPENED_TIME);
   return;
}

//Mostra el globus DIV a la posició indicada a XReF,YReF al cap de GLOBUS_TIME_TO_OPEN milisegons.
function mostraGlobusInTime(div,XRef,YRef){
   GlobusOpenTimer=setTimeout("mostraGlobus('"+div+"',"+XRef+","+YRef+")",GLOBUS_TIME_TO_OPEN);
   return;
}

//Mostra el globus DIV a la posició indicada a XReF,YReF
function mostraGlobus(div,XRef,YRef){

   //Anulem un possible timmer actiu de d'obriment de globus.
   GlobusOpenTimer=null;
   var div_globus = document.getElementById(div);

   //Distància entre el text del link i el globus
   var tempX = 0;
   var tempY = 0;

   //Si hi havia un timer contant per AMAGAR el globus el resetejem i l'amaguem directament.
   if(GlobusCloseTimer!=null && GlobusCloseTimer!=undefined){
      clearTimeout(GlobusCloseTimer);
      amagaGlobus(div);
   }

   //Calculem l'emplaçament del globus a partir de la posició del link i els Offsets.
   if((XRef!=null)&&(YRef!=null)){
      tempX= XRef + PIXELS_X_OFFSET;
      tempY= YRef + PIXELS_Y_OFFSET;

      if (tempX < 0){tempX = 0;}
      if (tempY < 0){tempY = 0;}

      div_globus.style.top = (tempY);
      div_globus.style.left = (tempX);
   }

   //Mostrem el globus
   div_globus.style.display='inline';

   return;
}

//Amaga el globus DIV
function amagaGlobus(div){

   //Anulem un possible timmer actiu de tancament de globus.
   GlobusCloseTimer=null;

   var div_globus = document.getElementById(div);

   //Si hi ha un timer d'obriment de globus actiu, el resetejem.
   if(GlobusOpenTimer!=null && GlobusOpenTimer!=undefined){
      clearTimeout(GlobusOpenTimer);
   }

   //Amaguem el globus.
   div_globus.style.display='none';

   return;
}

//Donat un objecte html et retorna la posició X real
function findPosX(obj){
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
}

//Donat un objecte html et retorna la posició Y real
function findPosY(obj){
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
}
