var tdHover = "#F0F0F0";
var menuactuel = null;
var timeout = null;

function Init()
{
	tabTD = document.getElementsByTagName('td');
	for(var i=0; i<tabTD.length; i++)
	{
		tabTD[i].style.color = tdHover;
		tabTD[i].style.cursor = "Hand";
		
	}		
	
}

function AfficheMenu(objet,id)
{
	if(menuactuel==null)
		menuactuel=new Array(objet,id);
		
	//force le masquage du menu dans le cas ou le menu a afficher est différent de celui on on etait	
	else if(menuactuel[1]!=id)
	{
		window.clearTimeout(timeout);		
		HideMenu(menuactuel[0],menuactuel[1],0);
		menuactuel=new Array(objet,id);
	}
	else
		//on empeche au menu de s'effacer
		window.clearTimeout(timeout);
		
		
	var menu = document.getElementById('ssmenu_page'+id);
	if(menu.style.display != "block")
	{		
		menu.style.display = "block";
		//a partir de la cellule on recupere le bloc parent
		menuracine = objet.parentNode.parentNode.parentNode.parentNode.attributes['id'].value;
		ChangeColor(objet,tdHover,GetStyle(menuracine,"background-color"));	
		Positionne(menu,objet);				
	}	
}

function HideMenu(objet,id,delay)
{
	function toto()
	{
		var menu = document.getElementById('ssmenu_page'+id);
		menu.style.display="none";
		menuracine =objet.parentNode.parentNode.parentNode.parentNode.attributes['id'].value;
		ChangeColor(objet,GetStyle(menuracine,"background-color"), tdHover);		
	}	
	
	timeout = window.setTimeout(toto,(1000*delay));
			
}

//fonction qui recupere un style donné directement dans la balise <style> (etant donné que Javascript ne sait pas le faire >:( )
function GetStyle(element, style)
{
	var finstyle=0;
	var blockstyle = document.getElementsByTagName('style')[0];
	var offset = blockstyle.innerHTML.indexOf(element);
	finstyle = blockstyle.innerHTML.indexOf('}',offset);	
	var temp = blockstyle.innerHTML.substr(offset,finstyle-offset);
	
	//recuperation du style
	offset = temp.indexOf(style);
	finstyle = temp.indexOf(';',offset);
	return(temp.substr(offset,finstyle-offset).split(':')[1]);
		
}

function ouvrefenetre(id, nom, options)
{
	window.open('./default.aspx?id='+id,nom,options)
}

//change la couleur de fond et de texte d'un element
function ChangeColor(objet,fond, texte)
{
	objet.style.backgroundColor = fond;
	objet.style.color = texte;
} 

//fonction permettant de modifier la couleur du menu vertical
function MenuVertical(cas, objet)
{
	if(cas=="over")
	{
		ChangeColor(objet,tdHover,GetStyle(objet.parentNode.parentNode.parentNode.parentNode.attributes['id'].value,'background-color'));
	}
	else
		ChangeColor(objet,GetStyle(objet.parentNode.parentNode.parentNode.parentNode.attributes['id'].value,'background-color'),tdHover);
		
}

//fonction permetant de repositionner automatiquement un objet par rapport a un autre.Seule condition: l'objet doit se trouver dans un DIV
function Positionne(objet, reference)
{

	var postop = posleft =0;
	var hauteur = reference.offsetHeight;
	var largeur = reference.offsetWidth
	
	posleft = reference.offsetLeft;
	
	while(reference.tagName!="BODY")
	{
		if(reference.tagName=="DIV")
		{
			postop += reference.offsetTop;	
			
			if(reference.attributes['id'].value.indexOf("model")!=-1)
				posleft += reference.offsetLeft;	
		}		
		
		reference = reference.parentNode;		
	}

	objet.style.top = postop + hauteur*2 +1;
	objet.style.left =  posleft + (largeur/2-objet.offsetWidth/2);
}
function favoris()
 {
	if ( navigator.appName != 'Microsoft Internet Explorer') 
	{ window.sidebar.addPanel("La terre vue du coeur","http://www.laterrevueducoeur.com/",""); 
	}
	else
	{ 
	window.external.AddFavorite("http://www.laterrevueducoeur.com/","La terre vue du coeur");
	}
 }


