﻿//NECESSITE divers.js

//Cette fonction permet d'afficher le calque [ID]
function show(id){
	if(ns4)
	{
		document.layers[id].visibility = "show";
	}
	else
	{
		getIt(id).style.visibility = "visible";
      	getIt(id).style.display = "block";
	}
}

//Cette fonction permet de cacher le calque [ID]
function hide(id){
	if(ns4){document.layers[id].visibility = "hide";}
	else
	{
		getIt(id).style.visibility = "hidden";
    	getIt(id).style.display = "none";
	}
}

function bascule_visibilite(id){
	if(ns4)
	{
		if(document.layers[id].visibility == "hide")
			{show(id);}
		else
			{hide(id);}
	}
	else
	{
	 	if (getIt(id).style.visibility == "hidden")
			{show(id);}
		else
			{hide(id);}
	}
}

function modifier_alpha(element,alpha){
	//Au cas où je récupère uniquement le nom de l'élément, au lien de l'objet lui-même
	if(!isObject(element)) {element=getIt(element);}

	var style = element.style;

	if( style.MozOpacity != undefined )
	{//Moz and older
		style.MozOpacity = alpha;
	}
	else if( style.filter != undefined )
	{//IE
		style.filter = "alpha(opacity=0)";
		element.filters.alpha.opacity = ( alpha * 100 );
	}
	else if( style.opacity != undefined )
	{//Opera
		style.opacity = alpha;
	}
}

function ajouter_cadre(element,strBordure){
//Pour mettre un cadre noire simple: srtBordure="solid 1px #000000"
//Pour enlver un cadre: strBordure="none";
	//Au cas où je récupère uniquement le nom de l'élément, au lien de l'objet lui-même
	if(!isObject(element)) {element=getIt(element);}
	var style = element.style;
	
	style.border=strBordure;
}

//Accèpte en entrée aussi bien l'objet TR lui même, que son id.
function setBackgroundColor(theRow, thePointerColor)
{
	if (isString(theRow)) {theRow=getIt(theRow);}
    if (typeof(theRow.style) == 'undefined' || typeof(theRow.cells) == 'undefined')
    {
        return false;
    }
    var row_cells_cnt           = theRow.cells.length;
    for (var c = 0; c < row_cells_cnt; c++)
    {
        theRow.cells[c].bgColor = thePointerColor;
    }
    return true;
}

function ajouterCSSClass(element, classe) {
	//Au cas où je récupère uniquement le nom de l'élément, au lien de l'objet lui-même
	if(!isObject(element)) {element=getIt(element);}

	if (element.className)
	{
		element.className += " ";
	}
	element.className += classe;
}

function enleverCSSClass(element, classe){
	if (element.className)
	{
		var reg=new RegExp("(" + classe + ")", "g");
		element.className=element.className.replace(reg,"")
	}
}

function getCssValue(tagRef,element) {
	var tag = document.all(tagRef);
	var value= tag.style[element];
	
	if(value==null || value=='' || value=='undefined')
	{
		//La couleur n'est pas définie dans l'attribut style de mon élément
        var aClass = tag.className;
        var cssRules = 'rules';
        //Je parcours toutes les feuilles de style référencées
        for (var sSheet=0; sSheet < document.styleSheets.length; sSheet++)
		{
			for (var rule=0; rule < document.styleSheets[sSheet].rules.length; rule++)
			{
				var currentClass = document.styleSheets[sSheet].rules[rule].selectorText;
				if (currentClass == aClass)
				{
					return eval("document.styleSheets["+sSheet+"].rules["+rule+"].style."+element);
				}
          	}
        }
	}
	//Si je n'ai rien récupéré, je suis peut-être sur un DIV.
	if(value==null || value=='' || value=='undefined')
	{
		//La couleur n'est pas définie dans l'attribut style de mon élément
        var aClass = tag.tagName+"."+tag.className;
        var cssRules = 'rules';
        //Je parcours toutes les feuilles de style référencées
        for (var sSheet=0; sSheet < document.styleSheets.length; sSheet++)
		{
			for (var rule=0; rule < document.styleSheets[sSheet].rules.length; rule++)
			{
				var currentClass = document.styleSheets[sSheet].rules[rule].selectorText;
				if (currentClass == aClass)
				{
					return eval("document.styleSheets["+sSheet+"].rules["+rule+"].style."+element);
				}
          	}
        }
	}
    return  value;
} 