/******************************************************************************
* phiLIB.js                                                                   *
* dernière mise à jour : 4 sept 2000.                                         *
* Philippe Bresson - DSCR                                                     *
*                                                                             *
* routines diverses de gestion des layers                                     *
* routines diverses de gestion de menus                                       *
******************************************************************************/

/*****************************************************************

	initialisations diverses

*****************************************************************/

// stockage des positions de la souris.
var ratX = 0;
var ratY = 0;

//identification du browser
var typeNS4 = (document.layers) ? 1 : 0;
var typeIE4 = (document.all)    ? 1 : 0;

// active la capture d'evenements pour la lecture du mulot
if (typeNS4)
  document.captureEvents(Event.MOUSEMOVE);

document.onmousemove = litPositionRat;


/*****************************************************************

	interruption de recupération des coordonnees de la souris

*****************************************************************/
function litPositionRat(e)

	{
	// Save cursor position using browser-specific code.

	if (typeNS4)
	{
	ratX = e.pageX;
	ratY = e.pageY;
	}
 
	if (typeIE4) 
	{
	ratX = event.clientX + document.body.scrollLeft;
	ratY = event.clientY + document.body.scrollTop;
	}

  //status	= ratX + "," + ratY;;
  return true;
}

/*****************************************************************

	Gestion du passage de la souris sur les liens

*****************************************************************/
function ratOver(nomObjet)
	{
	var 	block = getBlock(nomObjet);

	if (typeNS4);

	if (typeIE4)
		{
		block.fontWeight='bold';
		}
	//status	= nomObjet;
	}

/*****************************************************************

	Gestion du passage de la souris sur les liens	

*****************************************************************/
function ratOut(nomObjet)
	{
	var 	block = getBlock(nomObjet);

	if (typeNS4);
	
	if (typeIE4)
		{
		block.fontWeight='normal';
		}
	}

/*****************************************************************

	identifie le navigateur	

*****************************************************************/
function identifieNavigateur()
	{
	if (typeNS4)
		return('MOZ');
	
	if (typeIE4)
		return('IEX');
	}

/*****************************************************************

	renvoie une chaine de description de block	

*****************************************************************/
function creeBlock(nom, px, py, sx, sy, border, bgCouleur, text)
	{
	var		resultat	= '';

	resultat	= '<div id="' + nom + '" ';
	resultat	+= 'onmouseover="javascript:ratOver(\'' + nom + '\')" ';
	resultat	+= 'onmouseout="javascript:ratOut(\'' + nom + '\')" ';
	resultat	+= 'style="';

	// selon si l'on a demande une couleur de fond
	if (bgCouleur	!= '')
		{
		resultat	+= 'background-color: ' + bgCouleur + '; ';
		resultat	+= 'layer-background-color: ' + bgCouleur + '; ';
		}
		
	resultat	+= 'position:absolute; left: ' + px + '; top: ' + py + '; ';
	resultat	+= 'width: ' + sx + '; height: ' + sy + '; ';
	//resultat	+= 'overflow: hidden; ';
	resultat	+= 'margin: 2px; ';


	if (border !=0)
	{
	resultat	+= 'border-style: solid; ';
	resultat	+= 'border-color: #000000; ';
	resultat	+= 'border-width: ' + border + 'px; ';
	}

	resultat	+= 'font-family: sans-serif; ';
	resultat	+= 'font-size: 8pt; ';
	//resultat	+= 'visibility: hidden; ';
	resultat	+= '" ';
	resultat	+=	'>';
	resultat	+= text;
	resultat	+= '</div>';
	//alert (resultat);
	
	return(resultat);
	}

/*****************************************************************

	renvoie une chaine de description de tag	

*****************************************************************/
function creeBlockTag(nom, bgCouleur, text)
	{
	var		resultat	= '';

	resultat	= '<div id="' + nom + '" ';
	//resultat	+= 'onmouseover="javascript:ratOver(\'' + nom + '\')" ';
	//resultat	+= 'onmouseout="javascript:ratOut(\'' + nom + '\')" ';
	resultat	+= 'style="';

	// selon si l'on a demande une couleur de fond
	if (bgCouleur	!= '')
		{
		resultat	+= 'background-color: ' + bgCouleur + '; ';
		resultat	+= 'layer-background-color: ' + bgCouleur + '; ';
		}
		
	resultat	+= 'position:absolute; left: auto; top: auto; ';
	resultat	+= 'width: auto; height: auto; ';
	//resultat	+= 'overflow: hidden; ';
	resultat	+= 'margin: 10px; ';
	resultat	+= 'border-style: solid; ';
	resultat	+= 'border-color: #000000; ';
	resultat	+= 'border-width: 1px; ';
	resultat	+= 'font-family: sans-serif; ';
	resultat	+= 'font-size: 8pt; ';
	resultat	+= 'visibility: hidden; ';
	resultat	+= '" ';
	resultat	+=	'>';
	resultat	+= text;
	resultat	+= '</div>';
	//alert (resultat);
	
	return(resultat);
	}

/*****************************************************************

	efface un tag	

*****************************************************************/
function effaceTag(nomObjet)
	{
	var s, t;

	s	= objetSY(nomObjet);
	s	= Math.round(s-(s)/9);
	
	//alert(objetSY(nomObjet));

	objetSetSY(nomObjet, s);
	
	if (objetSY(nomObjet)!=0)
		t	= setTimeout(effaceTag(nomObjet), 10);
	else
		effaceBlock(nomObjet);	
	}

/*****************************************************************

	affichage un tag à la position de la souris

*****************************************************************/
function montreTag(nomObjet)
	{
	var positionX;
	var largeurMinObjet = 250;
	var	retrait = 20;

	positionX	= ratX;
	objetSetSX(nomObjet, largeurMinObjet);

	if (ratX+objetSX(nomObjet)+retrait>litFenetreX())
		positionX	-= objetSX(nomObjet) + retrait;

	moveObjetA(nomObjet, positionX, ratY)
		
	afficheBlock(nomObjet);



	//alert(litFenetreX());
	}

/*****************************************************************

	affichage d'un block	

*****************************************************************/
function effaceBlock(nomObjet)
	{
	var 	block = getBlock(nomObjet);

	if (typeNS4)
		block.visibility='hide';

	if (typeIE4)
		{
		block.visibility='hidden';
		}
	}

/*****************************************************************

	fait disparaitre un block

*****************************************************************/
function afficheBlock(nomObjet)
	{
	var 	block = getBlock(nomObjet);

	if (typeNS4)
		block.visibility='show';
	
	if (typeIE4)
		{
		block.visibility='visible';
		}
	}

/*****************************************************************

	Renvoie un handle vers un objet nom

*****************************************************************/
function getBlock(nom)
	{
	// netscape
  if (typeNS4)
    return(document.layers[nom]);
	
	//IE
  else if (typeIE4)
  	{
    layer = eval('document.all.' + nom + '.style');
    return(layer);
  }
  else
    return(null);
}

/*****************************************************************

	Recupere la position X d'un objet

*****************************************************************/
function objetPX(nomObjet)
	{

	var 	block = getBlock(nomObjet);
	var 	pX;

	if (typeNS4)
		pX	= block.left;

	else if (typeIE4)
		pX	= block.pixelLeft;

	return	(pX);
	}

/*****************************************************************

	Recupere la position Y d'un objet

*****************************************************************/
function objetPY(nomObjet)
	{

	var 	block = getBlock(nomObjet);
	var 	pY;

	if (typeNS4)
		pY	= block.top;

	else if (typeIE4)
		pY	= block.pixelTop;

	return	(pY);
	}

/*****************************************************************

	Recupere la largeur X d'un objet

*****************************************************************/
function objetSX(nomObjet)
	{

	var 	block = getBlock(nomObjet);
	var 	sX;

	if (typeNS4)
		sX	= block.pixelWidth;

	else if (typeIE4)
		sX	= block.pixelWidth;
		
	return	(sX);
	}

/*****************************************************************

	Recupere la hauteur Y d'un objet

*****************************************************************/
function objetSY(nomObjet)
	{

	var 	block = getBlock(nomObjet);
	var 	sY;

	if (typeNS4)
		sY	= block.pixelHeight;

	else if (typeIE4)
		sY	= block.pixelHeight;

	return	(sY);
	}

/*****************************************************************

	Positionne la largeur X d'un objet

*****************************************************************/
function objetSetSX(nomObjet, taille)
	{

	var 	block = getBlock(nomObjet);
	var 	sX;

	if (typeNS4)
		block.pixelWidth	= taille;

	else if (typeIE4)
		block.pixelWidth	= taille;
		
	return	(sX);
	}

/*****************************************************************

	positionne la hauteur Y d'un objet

*****************************************************************/
function objetSetSY(nomObjet, taille)
	{

	var 	block = getBlock(nomObjet);
	var 	sY;

	if (typeNS4)
		block.pixelHeight	= taille;

	else if (typeIE4)
		block.pixelHeight	= taille;

	return	(sY);
	}

/*****************************************************************

	deplace un block en coordonnées relatives

*****************************************************************/
function moveObjetVers(nomObjet, x, y)
	{

	var 	block = getBlock(nomObjet);

	if (typeNS4)
		{
		block.left += x;
		block.top  += y;
		}
	else if (typeIE4)
		{
		block.pixelLeft += x;
		block.pixelTop  += y;
		}
	}

/*****************************************************************

	deplace un block en coordonnées absolues

*****************************************************************/
function moveObjetA(nomObjet, x, y)
	{

	var block = getBlock(nomObjet);

	if (typeNS4)
		{
		block.left = x;
		block.top  = y;
		}
	else if (typeIE4)
		{
		block.pixelLeft = x;
		block.pixelTop  = y;
		}
	}
/*****************************************************************

	recupere la largeur de la fenetre

*****************************************************************/
function litFenetreX()
{

  if (typeNS4)
    return window.innerWidth;
  if (typeIE4)
    return document.body.clientWidth;
  return -1;
}
/*****************************************************************

	recupere la hauteur de la fenetre

*****************************************************************/
function litFenetreY()
{

  if (typeNS4)
    return window.innerHeight;
  if (typeIE4)
    return document.body.clientHeight;
  return -1;
}

/*****************************************************************

	creation d'un menu: creation du squelette

*****************************************************************/
function creeMenu()
{
	var text;
	
	text	= '';

	text	+= '<table border="0" width="100%" align="left">';
	text	+= '<tr>';
	text	+= '<td width="100%">';
	text	+= '<!--baliseInsertion-->';
	text	+= '</td>';
	text	+= '</tr>';
	text	+= '</table>';

  return text;
}


/*****************************************************************

	creation d'un menu: ajout de ligne dans le squelette

*****************************************************************/
function ajoutOptionMenu(menu, label, lien)
{
	var text, nvMenu;


	nvMenu	= menu;

	text	= '<p><a href="' + lien + '" style="font-family: Arial; color: #008000; font-size: 9 pt; font-weight: bold; TEXT-DECORATION: none;">' + label + '</a></p>';
    text	= text + '<!--baliseInsertion-->';
    nvMenu	= nvMenu.replace('<!--baliseInsertion-->', text);

	return nvMenu;
}

/*****************************************************************

	creation d'un menu: ajout de ligne dans le squelette
	
	chaine descriptive, posX, posY, SX, SY, couleur fond

*****************************************************************/
function initMenu(menuDesc, menuNom, px, py, sx, sy, backCol)

{
	document.write(creeBlock(menuNom, px, py, sx, sy, '', backCol, menuDesc));
}
