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;


/*----------------------------------------
menu_hi(theItem, offon)

PURPOSE		:	change the cursor and the style of the mouseovered item
CALLER		: the <li> if no under menu, the functions showMenu and hideMenu if any;
VAR				:	- theItem : the <li> id
						- offon, string: "on" or "off"
----------------------------------------*/
function menu_hi(theItem, offon){
	
	var menuitem = document.getElementById("m_"+theItem);

	if (offon=="on"){
		// we change the cursor and the style
		menuitem.style.cursor='pointer';
		// we create a var to stock the class name
		this[theItem+"_class_base"]=menuitem.className;
		menuitem.className='menu_hi';
	}else{
		
		menuitem.style.cursor='auto';
		menuitem.className=this[theItem+"_class_base"];
	
	}
}


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){
	
	// we change the cursor and the style
	menu_hi(theItem, 'on');
	
	
   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){
	
	
		// we change the cursor and the style
		menu_hi(theItem, 'off');
		
	
   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';
}




function xt_clic(typecl,page,url,nvlle)
{
hsh = new Date();
hsd = document;
hsr = hsd.referrer.replace(/[<>]/g, '');
xt_img = new Image();
hsi = 'http://logc2.xiti.com/hit.xiti?s=43260';
hsi += '&p='+page+'&clic='+typecl+'&hl=' + hsh.getHours() + 'x' + hsh.getMinutes() + 'x' + hsh.getSeconds();
if(parseFloat(navigator.appVersion)>=4)
{Xiti_s=screen;hsi += '&r=' + Xiti_s.width + 'x' + Xiti_s.height + 'x' + Xiti_s.pixelDepth + 'x' + Xiti_s.colorDepth;}
hsi += '&ref=' + hsr.replace(/&/g, '$');
xt_img.src = hsi;
if (url != null)
{ if ((nvlle=='')||(nvlle==null)) { hsd.location = url;} else {xfen = window.open(url,'xfen',''); xfen.focus();}}
else
{return;}
}

/*
** 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);
}

function get_params_from_gurl(gurl)
{
   var reg = new RegExp("^http://.*/[0-9,\-\@]+\.html\?(.*)$", "g");
   var get = reg.exec(gurl);
   var result = new Array();
   if (get != null && get.length == 2)
   {
      var list_doubles = get[1].substr(1).split("&");
      for (var cpt = 0; cpt < list_doubles.length; ++cpt)
      {
         // alert("double : " + list_doubles[cpt]);
         var list_key_val = list_doubles[cpt].split("=");
         if (list_key_val.length == 2)
            result[list_key_val[0]] = list_key_val[1];
      }
   }
   return result;
}

/*
** on recupere 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)
{
   if ( !(containers = ginfos[2]) )
   {
      return [];
   }
   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 recupere le label a partir de la première partie de la GURL
*/
function get_glabel_from_ginfos(ginfos)
{
   var hosturl = ginfos[1];
   // fixme a ameliorer : 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 ameliorer : 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);
      annonceidToHighlight = get_annonce_id_to_highlight(glabel, gcontainer_id);
   }
   
   // highlight
   if (annonceidToHighlight != '')
      highlight_the_annonce_id(annonceidToHighlight)
}

function get_annonce_id_to_highlight(glabel, gcontainer_id) {
var annonceidToHighlight = '';
if ( glabel && typeof gl_Label2annonceid[glabel] != 'undefined' )
   // labels
   annonceidToHighlight = gl_Label2annonceid[glabel];
else
   if ( gcontainer_id && typeof gl_Refitemid2annonceid[gcontainer_id] != 'undefined' )
      // sequences
      annonceidToHighlight = gl_Refitemid2annonceid[gcontainer_id];
   else
      if ( gcontainer_id && typeof gl_refitemidsubsequence2annonceid[gcontainer_id] != 'undefined' )
         annonceidToHighlight = gl_refitemidsubsequence2annonceid[gcontainer_id]; 
return annonceidToHighlight;  
}

function highlight_the_annonce_id(id_annonce)
{
if ( (annonce = document.getElementById(id_annonce)) && (img = annonce.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');
}
}
}

function high_light_v3(label, id) {
if ( (id_annonce = get_annonce_id_to_highlight(label, id)) )
   highlight_the_annonce_id(id_annonce);
}

function highlight_menu_eco()
{
   // grabbing NAV1 && NAV2
   var nav1 = null;
   var nav2 = null;

   var table_params = get_params_from_gurl(window.location);
   for (var param in table_params)
   {
      if (param == "NAV1")
         nav1 = table_params[param];
      if (param == "NAV2")
         nav2 = table_params[param];
   }
   // default NAV1 menu
   if (nav1 == null && typeof gl_Nav1Default != "undefined")
      nav1 = gl_Nav1Default;
   // display menu NAV2
   if (nav1 != null)
   {
      var menu_nav2_all = document.getElementById("SUB_NAV1_" + nav1);
      var menu_tohide = document.getElementById("NAV12_tohide");
      // display nav2 lists corresponding to nav1.
      if (menu_nav2_all && typeof menu_nav2_all != "undefined" &&
          menu_tohide && typeof menu_tohide != "undefined")
      {
         menu_tohide.style.display = "none"; // removing default empty pub submenu
         menu_nav2_all.style.display = "block";
      }
      // selecting nav 1 : deleting <A> tag, changing css.
      var menu_nav1 = document.getElementById("NAV1_" + nav1);
      if (menu_nav1 &&
          typeof menu_nav1 != "undefined" &&
          typeof menu_nav1.firstChild != "undefined" &&
          menu_nav1.firstChild.tagName == "A")
      {
         // changing nav 1 style
         if (menu_nav1.getAttribute("class") == "fi-nosel_etudes" ||
             menu_nav1.getAttribute("className") == "fi-nosel_etudes")
         {
            menu_nav1.setAttribute("class", "fi-sel_etudes");
            menu_nav1.setAttribute("className", "fi-sel_etudes");
         }
         else if (menu_nav1.getAttribute("class") == "fi-nosel" ||
                  menu_nav1.getAttribute("className") == "fi-nosel")
         {
            menu_nav1.setAttribute("class", "fi-sel");
            menu_nav1.setAttribute("className", "fi-sel");
         }
         // choosing nav 1 picture
         var menu_nav1_img = document.getElementById("NAV1_" + nav1 + "_img");
         var menu_nav1_img_on = document.getElementById("NAV1_" + nav1 + "_img-on");
         if (menu_nav1_img && typeof menu_nav1_img != "undefined" &&
             menu_nav1_img_on && typeof menu_nav1_img_on != "undefined")
         {
            menu_nav1_img.style.display = "none";
            menu_nav1_img_on.style.display = "block";
         }

         // small IE patch ...
         if (document.all)
            menu_nav1.style.setAttribute("cssText", "line-height:14px;");
      }
      // selecting nav 2 style.
      if (nav2 != null)
      {
         var menu_nav2 = document.getElementById("NAV12_" + nav1 + "_" + nav2);
         if (menu_nav2 &&
            typeof menu_nav2 != "undefined" &&
            typeof menu_nav2.firstChild != "undefined" &&
            menu_nav2.firstChild.tagName == "A")
         {
            menu_nav2.setAttribute("class", "fi-sel");
            menu_nav2.setAttribute("className", "fi-sel");
         }
      }
      // selecting correct nav2 submenu color (pub / abo ?)
      if (menu_nav1 && typeof menu_nav1 != "undefined" && 
          (menu_nav1.getAttribute("class") == "fi-nosel_etudes" ||
           menu_nav1.getAttribute("class") == "fi-sel_etudes" ||
           menu_nav1.getAttribute("className") == "fi-nosel_etudes" ||
           menu_nav1.getAttribute("className") == "fi-sel_etudes"))
      {
         document.getElementById("fi-which-menu").setAttribute("id", "fi-submenu-etudes");
      }
      else
      {
         document.getElementById("fi-which-menu").setAttribute("id", "fi-submenu");
      }
   }
}
