var ns4 = (document.layers)? true:false;
var ie4 = ((document.all) && (!document.getElementById))? true:false;
var ns6 = ((document.getElementById) && (!ie4))? true:false;

var tto;
var thisDiv;

function gety(theitem){
	var obj =eval("document.getElementById('m_" + theitem + "')");
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	//return curleft;
	return(curleft);
}
function getx(theitem){
	var obj =eval("document.getElementById('m_" + theitem + "')");
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curtop += obj.x;
	//return curleft;
	return(curtop);
}



function showMenu(theItem){
   var y=gety(theItem);
   var x= getx(theItem) + 24;
  clearTimeout(tto);
   if (ns4) {
      thisDiv = document.layers['mc_'+theItem];
	   thisDiv.top=x;
      thisDiv.left=y;
      thisDiv.visibility="show";
	   }
   if (ie4) {
      if ((thisDiv) &&(thisDiv!=document.layers['mc_'+theItem])){
		   thisDiv.visibility='hidden';
	   }
      thisDiv = document.layers['mc_'+theItem];
	   thisDiv.top=x;
      thisDiv.left=y;
      thisDiv.visibility="visible";
      }
   if (ns6) {
      if ((thisDiv) &&(thisDiv!=document.getElementById('mc_'+theItem).style)){
        thisDiv.visibility='hidden';
	   }
   	thisDiv = document.getElementById('mc_'+theItem).style;
	thisDiv.top=x+"px";
      thisDiv.left=y+"px";
      thisDiv.visibility="visible";
      }
}
			
function hideMenu(theItem){
   var thetime=400;
   if (ns4) {
      thisDiv = document.layers['mc_'+theItem];
      tto=setTimeout("thisDiv.visibility='hide'",thetime);
      }
   if (ie4) {
      thisDiv = document.layers['mc_'+theItem];
      tto=setTimeout("thisDiv.visibility='hidden'",thetime);
      }
   if (ns6) {
      thisDiv = document.getElementById('mc_'+theItem).style;
      tto=setTimeout("thisDiv.visibility='hidden'",thetime);
      }
}		

function bgOn(something, nouv_class) {
	var t=document.getElementById(something);
	if (t.className == "nv-ab") {
		t.className = "nv-ab-h";
	} else {
		t.className = "nv-gr-h";
	}
	t.style.cursor='pointer';
}
	
function bgOff(something){
	var t=document.getElementById(something);
	if (t.className == "nv-ab-h") {
		t.className = "nv-ab";
	} else {
		t.className = "nv-gr";
	}
	t.style.cursor='auto';
}






/*
** Fonction de traitement de GURL.
** retourne 0,15-8@2-3232,1-0@46-7637,0 de http://(.*)/web/page_partagee/0,15-8@2-3232,1-0@46-7637,0.html
** retourne vide en cas d'erreur.
*/
function get_ginfos_from_gurl(gurl)
{
   var reg = new RegExp("^http://(.*)/([0-9,\-\@]+)\.html$", "g");
   var result = reg.exec(gurl);
   if (result == null || result.length != 3)
   {
      return ('');
   }
   return (result);
}

/*
** on récupère la partie  1-2@3-4@5-6 de 0,1-2@3-4@5-6,1@2,5
**   sous le format : tableau [0] = '1-2'   tableau[1] = '3-4'   tableau[2] = '5-6'
*/
function get_gcontainers_from_ginfos(ginfos)
{
   var containers = ginfos[2];
   var reg = new RegExp('[,]+', 'g');
   var result = containers.split(reg);
   var returned_values = new Array();
   if (result.length != 4)
   {
      return (returned_values);
   }
   var reg = new RegExp('[\@]+', 'g');
   var returned_values = result[1].split(reg);
   if (returned_values.length == 0)
   {
   
   }
   return (returned_values);
}

/*
** on récupère le label a partir de la première partie de la GURL
*/
function get_glabel_from_ginfos(ginfos)
{
   var hosturl = ginfos[1];
   // fixme a améliorer : le .* => [^/]
   var reg = new RegExp("^.*/web/(.*)$", "g");
   var result = reg.exec(hosturl);
   if (result == null || result.length != 2)
   {
      return ('');
   }
   return (result[1]);
}

function get_ghost_from_ginfos(ginfos)
{
   var hosturl = ginfos[1];
   // fixme a améliorer : le .* => [^/]
   var reg = new RegExp("^(.*)/web/.*$", "g");
   var result = reg.exec(hosturl);
   if (result == null || result.length != 2)
   {
      return ('');
   }
   return (result[1]);
}

function get_type_container(gcontainer)
{
   var reg = new RegExp('[\-]+', 'g');
   var result = gcontainer.split(reg);
   if (result.length != 2)
   {
      return ('');
   }
   return (result[0]);
}

function get_id_container(gcontainer)
{
   var reg = new RegExp('[\-]+', 'g');
   var result = gcontainer.split(reg);
   if (result.length != 2)
   {
      return ('');
   }
   return (result[1]);
}

function is_home(gurl)
{
   var reg = new RegExp('^http://[^/]+/$', 'g');  
   if (reg.exec(gurl) == null)
     return (false);
   else
     return (true);
}

/*
** highlight menu
*/ 
function highlight_menu()
{
   var gurl = window.location;
   var annonceidToHighlight = '';
   if (is_home(gurl))
   {
      // homepage
      for (Refitemid in gl_Refitemid2annonceid)
      {
          annonceidToHighlight = gl_Refitemid2annonceid[Refitemid];
          break;
      }
   }
   else
   {
      // others
      var ginfos = get_ginfos_from_gurl(gurl);
      var gcontainers = get_gcontainers_from_ginfos(ginfos);
      var glabel = get_glabel_from_ginfos(ginfos);
      var ghost = get_ghost_from_ginfos(ginfos);
      var last_container = '';
      for (var i = 0; i < gcontainers.length; ++i)
         last_container = gcontainers[i];
      gcontainer_id = get_id_container(last_container);

      if (typeof gl_Label2annonceid[glabel] != 'undefined')
         // labels
         annonceidToHighlight = gl_Label2annonceid[glabel];
      else
         if (typeof gl_Refitemid2annonceid[gcontainer_id] != 'undefined')
            // sequences
            annonceidToHighlight = gl_Refitemid2annonceid[gcontainer_id];
         else
            if (typeof gl_refitemidsubsequence2annonceid[gcontainer_id] != 'undefined')
               annonceidToHighlight = gl_refitemidsubsequence2annonceid[gcontainer_id];
   }
   // highlight
   if (annonceidToHighlight != '')
   {
      img = document.getElementById(annonceidToHighlight).firstChild.firstChild;
      var img_url = img.getAttribute('src');
      var reg = new RegExp("^(.*)/(.*)\.gif$", "g");
      var result = reg.exec(img_url);
      if (result != null && result.length == 3)
      {
         img.setAttribute('src', result[1] + '/' + result[2] + '-on.gif');
      }
   }
}

