function getElementsByClass(searchClass, node, tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
    return classElements;
}


// Fonctions utilisées pour l'IHM du site vcube.fr
function affiche(cadre)
{
	//alert("cadre à afficher : " + cadre + " (affiche)");
	var selection = $(cadre);
	//alert(selection);
	var invisible = (selection.style.display == "none");
	//alert(invisible);
	//Test
	//Test
	if (invisible)
	{
		new Effect.Appear(cadre, 1);
	}
	trans2opac(cadre);
	var premier = zmax();
	while (selection.style.zIndex <= premier)
	{
		selection.style.zIndex++;
	}
	if (cadre=="cadre4")
	{
		$("code_client").focus();
	}
	if (cadre=="cadre5")
	{
		//Affichage des voeux temporisé
		new Effect.Appear($("voeux"), {duration: 1, delay: 9});
		new Effect.Highlight('voeux', {duration: 3, delay: 9, startcolor: "#760DA2", endcolor: "#CCFFCC"});
	}
}

function masque(id)
{
	var cadre = $(id);
	new Effect.Fade(cadre, 2);
	cadre.style.zIndex=0;
	second_plan_devant();
}

function trans2opac(id)
{
	/*
	 *	Rend l'élément opaque, et les autres transparents
	 */
	 
	 var cadre1 = $("cadre1");
	 var cadre2 = $("cadre2");
	 var cadre3 = $("cadre3");
	 var cadre4 = $("cadre4");
	 var cadre5 = $("cadre5");
	 
	 if (id == "cadre1")
	 {
		 masque_close("2");
		 new Effect.Opacity(cadre2, {duration:1, from:0.8, to:0.6});
		 masque_close("3");
		 new Effect.Opacity(cadre3, {duration:1, from:0.8, to:0.6});
		 masque_close("4");
		 new Effect.Opacity(cadre4, {duration:1, from:0.8, to:0.6});
		 masque_close("5");
		 new Effect.Opacity(cadre5, {duration:1, from:0.8, to:0.6});
		 
		 new Effect.Opacity(cadre1, {duration:1, from:0.6, to:0.8});
		 affiche_close("1");
	 }
	 else if (id == "cadre2")
	 {
		 masque_close("1");
		 new Effect.Opacity(cadre1, {duration:1, from:0.8, to:0.6});
		 masque_close("3");
		 new Effect.Opacity(cadre3, {duration:1, from:0.8, to:0.6});
		 masque_close("4");
		 new Effect.Opacity(cadre4, {duration:1, from:0.8, to:0.6});
		 masque_close("5");
		 new Effect.Opacity(cadre5, {duration:1, from:0.8, to:0.6});
		 
		 affiche_close("2");
		 new Effect.Opacity(cadre2, {duration:1, from:0.6, to:0.8});
	 }
	 else if (id == "cadre3")
	 {
		 masque_close("1");
		 new Effect.Opacity(cadre1, {duration:1, from:0.8, to:0.6});
		 masque_close("2");
		 new Effect.Opacity(cadre2, {duration:1, from:0.8, to:0.6});
		 masque_close("4");
		 new Effect.Opacity(cadre4, {duration:1, from:0.8, to:0.6});
		 masque_close("5");
		 new Effect.Opacity(cadre5, {duration:1, from:0.8, to:0.6});
		 
		 affiche_close("3");
		 new Effect.Opacity(cadre3, {duration:1, from:0.6, to:0.8});
	 }
	 else if (id == "cadre4")
	 {
		 masque_close("1");
		 new Effect.Opacity(cadre1, {duration:1, from:0.8, to:0.6});
		 masque_close("2");
		 new Effect.Opacity(cadre2, {duration:1, from:0.8, to:0.6});
		 masque_close("3");
		 new Effect.Opacity(cadre3, {duration:1, from:0.8, to:0.6});
		 masque_close("5");
		 new Effect.Opacity(cadre5, {duration:1, from:0.8, to:0.6});
		 
		 affiche_close("4");
		 new Effect.Opacity(cadre4, {duration:1, from:0.6, to:0.8});
	 }
	 else if (id == "cadre5")
	 {
		 masque_close("1");
		 new Effect.Opacity(cadre1, {duration:1, from:0.8, to:0.6});
		 masque_close("2");
		 new Effect.Opacity(cadre2, {duration:1, from:0.8, to:0.6});
		 masque_close("3");
		 new Effect.Opacity(cadre3, {duration:1, from:0.8, to:0.6});
		 masque_close("4");
		 new Effect.Opacity(cadre4, {duration:1, from:0.8, to:0.6});
		 
		 affiche_close("5");
		 new Effect.Opacity(cadre5, {duration:1, from:0.6, to:0.8});
	 }
}

function couche_sup(id_elt)
{
	//var id_elt = element.id;
	var elt = $(id_elt);
	if (visible(id_elt))
	{
		var z = elt.style.zIndex;
		var premier = zmax();
		//alert(z +"/" + premier + "(id " + id_elt + " dans couche_sup)");
		if (z<=premier)
		{
			z = premier + 1;
			elt.style.zIndex = z;
			trans2opac(id_elt);
		}
	}
}

function est_devant(id)
{
	var premier = zmax();
	var z = $(id).style.zIndex;
	
	if (z >= premier)
	{
		//alert("Cet élément est au premier plan : " + z + ">" + premier);
		return true;
	}
	else
	{
		//alert("Cet élément n'est pas au premier plan : " + z + "<" + premier);
		return false;
	}
}

function zmax()
{
	var z1 = $('cadre1').style.zIndex;
	var z2 = $('cadre2').style.zIndex;
	var z3 = $('cadre3').style.zIndex;
	var z4 = $('cadre4').style.zIndex;
	var z5 = $('cadre5').style.zIndex;
	
	var premier = Math.max(z1, z2);
	premier = Math.max(premier, z3);
	premier = Math.max(premier, z4);
	premier = Math.max(premier, z5);
	
	return premier;
}

function affiche_desc(id)
{
//	var ht = hauteur_requise(id);
	new Effect.Appear(id, {duration: 3});
	
/*	if (ht != false)
	{
		//On redimensionne la fenêtre
		new Effect.ReSize($(id), {direction:'vert', amount:ht});
	}*/
}

function masque_desc(id)
{
	new Effect.Fade(id, {duration: 3});
}

function masque_close(num)
{
	var barre = $("close_"+num);
	
	//alert(num + " : " + barre.style.display);
	var invisible = (barre.style.display == "none");
	if (!invisible && visible("cadre"+num))
	{
		//alert ("visible => à cacher !");
		new Effect.Fade("close_"+num, {duration: 2});
	}
}

function affiche_close(num)
{
	var barre = $("close_"+num);
	//alert(num + " : " + barre.style.display);
	var invisible = (barre.style.display == "none");
	if (invisible)
	{
		//alert ("invisible => à afficher !");
		new Effect.Appear("close_"+num, {duration: 2});
	}
}

function second_plan_devant()
{
	var z1 = 0;
	var z2 = 0;
	var z3 = 0;
	var z4 = 0;
	var z5 = 0;
	
	if (visible("cadre1"))
	{
		z1 = $("cadre1").style.zIndex;
	}
	if (visible("cadre2"))
	{
		z2 = $("cadre2").style.zIndex;
	}
	if (visible("cadre3"))
	{
		z3 = $("cadre3").style.zIndex;
	}
	if (visible("cadre4"))
	{
		z4 = $("cadre4").style.zIndex;
	}
	if (visible("cadre5"))
	{
		z4 = $("cadre5").style.zIndex;
	}
	
	if (z1 + z2 + z3 + z4 + z5 > 0)
	{
		var zMax = Math.max(z1, z2);
		zMax = Math.max(zMax, z3);
		zMax = Math.max(zMax, z4);
		zMax = Math.max(zMax, z5);
		
		if (zMax == z1)
		{
			//alert("cadre 1 à mettre devant");
			affiche("cadre1");
			//trans2opac("cadre1");
		}
		else if (zMax == z2)
		{
			//alert("cadre 2 à mettre devant");
			affiche("cadre2");
			//trans2opac("cadre2");
		}
		else if (zMax == z3)
		{
			//alert("cadre 3 à mettre devant");
			affiche("cadre3");
			//trans2opac("cadre3");
		}
		else if (zMax == z4)
		{
			affiche("cadre4");
		}
		else
		{
			affiche("cadre5");
		}
	}
}

function visible(id)
{
	var cadre = $(id);
	if (cadre.style.display == "none")
	{
		//alert("le cadre " + id + " est masqué");
		return false;
	}
	else
	{
		//alert("le cadre " + id + " est visible");
		return true;
	}
}

function hauteur_requise(id)
{
	//Prend en paramètre l'id du descriptif (cadre Book) et renvoie la hauteur requise pour cadre2
	var conteneur = document.getElementById(id);
	var htdesc = conteneur.style.offsetHeight;
	var cadre = document.getElementById('cadre2');
	var htcadre = cadre.style.offsetHeight;
//	htcadre = htcadre.substring(0, htcadre.length-2);
	alert(htcadre);
//	htcadre = parseInt(htcadre);
//	alert(htcadre);
	//On ajoute 90 pixels (position absolute du div "desc_book")
	htdesc += 90;
	//On ajoute 40 pixels (marge basse)
	htdesc += 40;
	if (htcadre<htdesc)
	{
		return (htdesc-htcadre);
	}
	else
	{
		return false;
	}
}

function anime2fixe(id)
{
	var img = $(id);
	img.src = images[id]["fixe"];
}
function fixe2anime(id)
{
	var img = $(id);
	img.src = images[id]["anime"];
}
function coul2nb(id)
{
	var img = $(id);
	img.src = images[id]["nb"];
}
function nb2coul(id)
{
	var img = $(id);
	img.src = images[id]["coul"];
}
function rollover(num)
{
	/*
	 * Cette fonction permet d'appliquer le même effet de survol aux boutons des menus horizontal et vertical
	 * num : identifiant du bouton
	 */
	
	var name = "bouton" + num;
	var tabBoutons = document.getElementsByName(name);
	
	//alert("survol de " + name +". Nombre d'elements : " + tabBoutons.length);
	
	for (i=0; i<tabBoutons.length; i++)
	{
		Effect.Pulsate(tabBoutons[i], {duration:5, from:0.4});
		new Effect.Opacity(tabBoutons[i], {duration:0.1, to:1.0});
		//tabBoutons[i].className.replace="bouton_over";
	}
}
function rollout(num)
{
	/*
	 * Cette fonction permet de supprimer l'effet de survol aux boutons des menus horizontal et vertical
	 * num : identifiant du bouton
	 */
	var name = "bouton" + num;
	var tabBoutons = document.getElementsByName(name);
	for (i=0; i<tabBoutons.length; i++)
	{
		new Effect.Opacity(tabBoutons[i], {duration:0.1, to:1.0});
	}
}


var images = new Array;
images["imgmirab"] = new Array;
images["imgmirab"]["fixe"] = "images/mirab_fixe.gif";
images["imgmirab"]["anime"] = "images/mirab.gif";
images["imgpromosecours"] = new Array;
images["imgpromosecours"]["fixe"] = "images/promosecours_fixe.gif";
images["imgpromosecours"]["anime"] = "images/promosecours.gif";
images["imgeliptec"] = new Array;
images["imgeliptec"]["fixe"] = "images/eliptec_fixe.gif";
images["imgeliptec"]["anime"] = "images/eliptec.gif";
images["imgfd"] = new Array;
images["imgfd"]["fixe"] = "images/formulede_fixe.gif";
images["imgfd"]["anime"] = "images/formulede.gif";
images["imgpmb"] = new Array;
images["imgpmb"]["fixe"] = "images/pmb_fixe.gif";
images["imgpmb"]["anime"] = "images/pmb.gif";
images["img_crea_1"] = new Array;
images["img_crea_1"]["nb"] = "images/tuyau_1_nb.jpg";
images["img_crea_1"]["coul"] = "images/tuyau_1.jpg";
images["img_crea_2"] = new Array;
images["img_crea_2"]["nb"] = "images/tuyau_2_nb.jpg";
images["img_crea_2"]["coul"] = "images/tuyau_2.jpg";
images["img_crea_3"] = new Array;
images["img_crea_3"]["nb"] = "images/devloop_nb.jpg";
images["img_crea_3"]["coul"] = "images/devloop.jpg";

/*var accmirab = new Accordion("accordeon_mirab", "h3", "accmirab");
var accpromosecours = new Accordion("accordeon_promosecours", "h3", "accpromosecours");
var acceliptec = new Accordion("accordeon_eliptec", "h3", "acceliptec");
var accformulede = new Accordion("accordeon_formulede", "h3", "accformulede");
var accpmb = new Accordion("accordeon_pmb", "h3", "accpmb");
*/