// -------- Fonctions pour le fondu -------- //
function setAlpha(objet,alpha){
	if (browser.isIE4up) // IE 4 ou +
		objet.filters.alpha.opacity=alpha;
	else if (browser.isNS || browser.isNSCompatible) // Netscape 6 ou +
		objet.style.MozOpacity=alpha/100;
}
function getAlpha(objet){
	if (browser.isIE4up) // IE 4 ou +
		return objet.filters.alpha.opacity;
	else if (browser.isNS || browser.isNSCompatible) // Netscape 6 ou +
		return objet.style.MozOpacity*100;
}

// Effectue un fondu pour un calque
function fondu(id,alphaDepart,alphaArrivee,nbEtapes,duree){
	objet=document.getElementById(id);
	var vitesse = (alphaArrivee-alphaDepart)/nbEtapes;
	var debit = duree/nbEtapes;
	if (objet){
		setAlpha(objet,getAlpha(objet)+vitesse);
		var condition = (vitesse > 0?getAlpha(objet)<alphaArrivee:getAlpha(objet)>alphaArrivee);
		if (condition) setTimeout("fondu('"+id+"','"+alphaDepart+"','"+alphaArrivee+"','"+nbEtapes+"','"+duree+"')",debit);
	}
}

// Fonction pour récupérer les éléments d'une classe
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

// Fonction pour cacher tous les calques d'une classe, sauf un, à partir de son id
function montrer(classe,id){
	//alert("montrer("+classe+","+id+")");
	elements=getElementsByClassName(document, "*", classe);
	for (i=0;i<elements.length;i++) {
		elements[i].style.display="none";
		setAlpha(elements[i].getElementsByTagName("img")[0],"30");
		/*elements[i].getElementsByTagName("img")[0].setAttribute("filter","alpha(opacity=30)");
		elements[i].getElementsByTagName("img")[0].setAttribute("style",'opacity:.30;');
		elements[i].getElementsByTagName("img")[0].setAttribute("style",'-moz-opacity:.30;');*/
	}
	
	if (id != 'null') document.getElementById(id).style.display="block";
}

//Fonctin pour modifier la transparence
function modif_alpha(classe,id){
	//alert("montrer("+classe+","+id+")");
	elements=getElementsByClassName(document, "*", classe);
	for (i=0;i<elements.length;i++){
		elements[i].style.display="none";
		
		// remise à la transparence normal de touts les éléments
		elements[i].getElementsByTagName("img")[0].style.filter="alpha(opacity=30)";
		elements[i].getElementsByTagName("img")[0].setAttribute("style",'opacity:.30;');
		elements[i].getElementsByTagName("img")[0].setAttribute("style",'-moz-opacity:.30;');
		
		// changement de la transparence de l'élément choisi
		document.getElementById(id).style.display="block";
		document.getElementById(id).getElementsByTagName("img")[0].style.filter="alpha(opacity=100)";
		document.getElementById(id).getElementsByTagName("img")[0].setAttribute("style",'opacity:1;');
		document.getElementById(id).getElementsByTagName("img")[0].setAttribute("style",'-moz-opacity:1;');
	}
}


/**
 *
 * Can show a tooltip over an element
 * Content of tooltip is the title attribute value of the element
 * Tested with Firefox, IE6, IE5.5, IE7, Konqueror
 *
 * To use it :
 * 1.include this script on your page
 * 2.insert this element somewhere in your page
 *       <div id="tooltip"></div>
 * 3. style it in your CSS stylesheet (set color, background etc..). You must set
 *     this two style too :
 *     div#tooltip { position:absolute; visibility:hidden; ... }
 * 4.the end. test it ! :-)
 *
 * @version 1.1
 * @copyright 2004-2007 Laurent Jouanneau. 
 * @link http://ljouanneau.com/soft/javascript
 * @licence release under LGPL Licence
 */

// the tooltip object
var tooltip = {
    // setup properties of tooltip object
    id:"tooltip",
    _x : 0,
    _y : 0,
    _tooltipElement:null,
    _saveonmouseover:null
}

var offsetx;
var offsety;

tooltip.show = voir;
tooltip.hide = masquer;

/**
* Open ToolTip. The title attribute of the htmlelement is the text of the tooltip
* Call this method on the mouseover event on your htmlelement
* ex :  <div id="myHtmlElement" onmouseover="tooltip.show(this)"...></div>
*/
function voir (id_elem, type) {

	if(type=='gd'){
		offsetx = -150;
		offsety = -270;
	}
	else
	{
		offsetx = -40;
		offsety = -135;
	}

    var text=document.getElementById(id_elem).innerHTML;

	if(document.getElementById){
        this._tooltipElement = document.getElementById(this.id);
	}else if ( document.all ) {
        this._tooltipElement = document.all[this.id].style;
	}

    this._saveonmouseover = document.onmousemove;
    document.onmousemove = this.mouseMove;

    this._tooltipElement.innerHTML = text;

    this.moveTo(this._x + offsetx , this._y + offsety);

    if(this._tooltipElement.style){
        this._tooltipElement.style.visibility ="visible";
    }else{
        this._tooltipElement.visibility = "visible";
    }
   return false;
}


/**
* hide tooltip
* call this method on the mouseout event of the html element
* ex : <div id="myHtmlElement" ... onmouseout="tooltip.hide(this)"></div>
*/
function masquer(htmlelement) {
    htmlelement.setAttribute("title",htmlelement.getAttribute("title_saved"));
    htmlelement.removeAttribute("title_saved");

    if(this._tooltipElement.style){
        this._tooltipElement.style.visibility ="hidden";
		 this._x=0;
		 this._y=0;
    }else{
        this._tooltipElement.visibility = "hidden";
		this._x=0;
		this._y=0;
    }
    document.onmousemove=this._saveonmouseover;
}



// Moves the tooltip element
tooltip.mouseMove = function (e) {
   // we don't use "this" because this method is assign to an event of document
   // and so is dereferenced
    if(e == undefined)
        e = event;

    if( e.pageX != undefined){ // gecko, konqueror,
        tooltip._x = e.pageX;
        tooltip._y = e.pageY;
    }else if(event != undefined && event.x != undefined && event.clientX == undefined){ // ie4 ?
        tooltip._x = event.x;
        tooltip._y = event.y;
    }else if(e.clientX != undefined ){ // IE6,  IE7, IE5.5
        if(document.documentElement){
            tooltip._x = e.clientX + ( document.documentElement.scrollLeft || document.body.scrollLeft);
            tooltip._y = e.clientY + ( document.documentElement.scrollTop || document.body.scrollTop);
        }else{
            tooltip._x = e.clientX + document.body.scrollLeft;
            tooltip._y = e.clientY + document.body.scrollTop;
        }
    /*}else if(event != undefined && event.x != undefined){ // IE6,  IE7, IE5.5
        tooltip.x = event.x + ( document.documentElement.scrollLeft || document.body.scrollLeft);
        tooltip.y = event.y + ( document.documentElement.scrollTop || document.body.scrollTop);
    */
    }else{
        tooltip._x = 0;
        tooltip._y = 0;
    }
    tooltip.moveTo( tooltip._x + offsetx , tooltip._y + offsety);

}

// Move the tooltip element
tooltip.moveTo = function (xL,yL) {
    if(this._tooltipElement.style){
        this._tooltipElement.style.left = xL +"px";
        this._tooltipElement.style.top = yL +"px";
    }else{
        this._tooltipElement.left = xL;
        this._tooltipElement.top = yL;
    }
}
