function EcrireCookie(nom, valeur)
{
	var argv 	= EcrireCookie.arguments;
	var argc 	= EcrireCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path 	= (argc > 3) ? argv[3] : null;
	var domain 	= (argc > 4) ? argv[4] : null;
	var secure 	= (argc > 5) ? argv[5] : false;
	document.cookie = nom+"="+escape(valeur)+
	((expires == null) ? "" : ("; expires="+expires.toGMTString()))+
	((path == null) ? "" : ("; path="+path))+
	((domain == null) ? "" : ("; domain="+domain))+
	((secure == true) ? "; secure" : "");
}

function getCookieVal(offset)
{
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function LireCookie(nom)
{
	var arg = nom +"=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen){
		var j = i+alen;
		if (document.cookie.substring(i, j) == arg) return getCookieVal(j);
		i = document.cookie.indexOf(" ",i)+1;
		if (i == 0) break;
	}
	return null;
}

function EffaceCookie(nom)
{
	date = new Date;
	date.setFullYear(date.getFullYear()-1);
	EcrireCookie(nom,null,date);
}

function NbElements(obj) {
	ul = document.getElementById(obj);
	nElements = ul.getElementsByTagName("li");
	
	nElements[nElements.length-1].setAttribute("class", "noborder");
	//alert('test');
	
	return nElements.length;
}

function resizeMenu(obj){
	var nbrElements = NbElements(obj);
	var hauteur;
	var hauteurIntermediaire;
	var hauteurElement = 36;
	var sEtatMenu = document.getElementById(obj).getAttribute("etat");
	
	// Recuperation de la taille 
	if (document.getElementById(obj).style.height) hauteur = parseInt(document.getElementById(obj).style.height);
	else {
		hauteur = document.getElementById(obj).offsetHeight;
		var a = LireCookie(obj);
		
		// Si la hauteur actuelle du div est plus grande que celle contenue dans le cookie, on l'ecrit dans celui ci. Permet de récupérer la taille max
		if(hauteur > a)
			EcrireCookie(obj, hauteur);
	}
	
	switch(sEtatMenu) {
		// Le menu est enroulé, on veut le dérouler
		case "ferme" :
			// Vitesse d'ouverture du menu
			hauteurIntermediaire = hauteur + 6;
			hauteur = nbrElements * hauteurElement;
			// hauteur = LireCookie(obj);
			
			if (hauteurIntermediaire < (hauteur - 2)) {
				document.getElementById(obj).style.height = hauteurIntermediaire+"px";
				setTimeout("resizeMenu('"+obj+"')", 0.1);
			}
			
			if (hauteurIntermediaire >= hauteur - 2) {
				EcrireCookie(obj+"Etat", "ouvert");
				document.getElementById(obj).style.height = hauteur+"px";
				document.getElementById(obj).setAttribute("etat","ouvert");
			}
			
			break;
		
		// Le menu est deroulé, on veut l'enrouler
		case "ouvert" :
			if (hauteur > 2) {
				// Vitesse de fermeture du menu
				hauteurIntermediaire = hauteur - 6;
				document.getElementById(obj).style.height = hauteurIntermediaire+"px";
				setTimeout("resizeMenu('"+obj+"')", 0.1);
			}
			
			if (hauteur <= 2) {
				EcrireCookie(obj+"Etat", "ferme");
				document.getElementById(obj).style.height = "0px";
				document.getElementById(obj).setAttribute("etat","ferme");
			}	
			
			break;
	}	
}
