 /*	==========================================================
	Filename		: common.js
	Author			: Copyright 2001-2003 La Mire(www.lamire.com)
	Created			: samedi 18 octobre 2003 17:44:43
	Last Updated	: samedi 18 octobre 2003 17:44:42
	Comments		: 
	
	Fonctions communes pour le site.
	
	==========================================================*/

// ========================= tooltip object ===============================
/* usage : 
dans le header :  créer un objet en passant le nom de cet objet:
var tt = new tooltip('tt');
sur les liens ou objets actifs: 
<a href="http://www.mylink.com/" onmouseover="tt.mover(this,'libellé');" onmouseout="tt.mout();">link text</a>
*/
function tooltip(myname) {
	d.write('<style type=\"text/css\">.tooltip{ position:absolute; z-index:5; visibility:hidden; border:1px dotted #666666; padding:2px; background-color:#CCCCCC; layer-background-color:#CCCCCC; font:10px Verdana,Arial,sans-serif }</style>');
	d.write('<div id="TOOLTIP" class="tooltip" onmouseover="'+myname+'.standby();" onmouseout="'+myname+'.mout();">&nbsp;</div>');
	this.name = myname; // nom de l'instance de l'objet.
	this.tipo = gE("TOOLTIP");
	this.delay = 1*1000; // délai de fermeture du tooltip en ms.
	this.Tto= null; // global timeout object
}
// mouseover tip anchor
tooltip.prototype.mover=function(o,text){if(!text)return;wH(this.tipo,text);
var r=eltRect(o);sX(this.tipo,r.left);sY(this.tipo,r.bottom);sE(this.tipo);this.standby();}
// mouseout tip anchor or tip area
tooltip.prototype.mout=function(){this.Tto=setTimeout(this.name+".close()",this.delay);} 
tooltip.prototype.close = function(){hE(this.tipo);} // hide tip area
tooltip.prototype.standby = function(){clearTimeout(this.Tto);}
// ========================= end tooltip object

// =================================== gestion de la barre de menu ========================
var timerID = null;
var menu = Array();
var delay=500;
var offsetx=100;
var offsety=20;
// fonctions appelées par les panels
function panelout(){timerID=setTimeout('closeall()',delay);}
function panelover(){clearTimeout(timerID);}
// fonctions appelées par les handlers
function handout(){	timerID=setTimeout('closeall()',delay);}
function closeall(){for (a in menu){hE(gE(a));menu[a]=0;}}
function handover(hand,drop){
var m,s,p;m=gE(drop);s=menu[drop];closeall();
if (!s){p=eltPos(hand);p.y+=offsety;p.x+=offsetx-(gW(m)/2);if(p.x<0)p.x=0;
moveto(m,p);sE(m);menu[drop]=1;}
clearTimeout(timerID);
}
// fin gestion de la barre de menu


// ======== gestion collapse (DOM: IE5+ NS6+)
function collapse(img,panel){// img as object, panel as string
	var s,m;m=gE(panel);
	s=(m.style.display=='block')?1:0;
	m.style.display=(s)?'none':'block';
	img.src=(s)?icnClosed:icnOpen;
	img.parentNode.className=(s)?cssClosed:cssOpen;
}

// ouvre la fenêtre d'aide centrée sur l'écran
function openHelpWindow(wnd,helpURL){
	var w = (screen.availWidth)?screen.availWidth:800;
	var h = (screen.availHeight)?screen.availHeight:600;
	var popW=600, popH=450;
	var leftPos=(w-popW)/2, topPos=(h-popH)/2;
	owin = wnd.open(helpURL,"helpwindow",'width='+popW+',height='+popH+',top='+topPos+',left='+leftPos+',status=no,scrollbars=yes,resizable=yes');
	if (owin) owin.focus();
}

// =============== "hilite" sur les cellules de tableau (DOM: IE5+ NS6+)
function mmOvr(o,s){if(o.className){o.className=s;o.style.cursor=(ns6)?'pointer':'hand';}}
function mmOut(o,s){if(o.className){o.className=s;o.style.cursor='default';}}
function mmClk(s){document.location.href=s;}

// ============== not implemented alert ! =================
function notready(msg) {
	if(!msg)msg='';
	alert ("Commande non disponible.\n"+ msg);
}

//  ======= mail decoder =======
function mail_decode(st, lab, xk, cl){
	var r="";for(i=0;i<st.length;i++)r+=String.fromCharCode(xk^st.charCodeAt(i));
	if (lab=='') lab = r;
	document.write ('<a href="mailto:'+r+'" class="'+cl+'">'+lab+'</a>');
}