// Cookie functions -----------------------
    function SetCookie(sName, sValue) {
        //date = new Date();
        // closing navigator remove the cookie
        document.cookie = sName + "=" + escape(sValue); // + "; expires=" + date.toGMTString();
    }

    function GetCookie(sName) {
        // cookies are separated by semicolons
        var aCookie = document.cookie.split("; ");
        for (var i=0; i < aCookie.length; i++) {
            // a name/value pair (a crumb) is separated by an equal sign
            var aCrumb = aCookie[i].split("=");
            if (sName == aCrumb[0]) 
            return unescape(aCrumb[1]);
        }

        // a cookie with the requested name does not exist
        return null;
    }

// Remember state functions -----------------------
    function SaveState(sCookieName, t) {
        var i;
        var s = '';
        for (i = 0; i < t.length; i++) {
            s = s + t[i];
        }
        //alert(s);
        SetCookie(sCookieName, s);
    }

    function RestoreState(sCookieName, t) {
        var s = GetCookie(sCookieName);
        if (s == null) return;
        var i;
        for (i = 0; i < s.length; i++) {
            // si l'arborescence est modifiée à priori il n'y a pas de problème de plantage
            // au pire des noeuds seront ouverts au lieu d'être fermés et le tableau tState[] sera plus grand que nécessaire si des éléments ont été supprimés
            t[i] = s.charAt(i); // s.substr(i, 1);
        }
    }

// Open/close tree functions -----------------------
    function Hide(id) {
        if (tState[id] == 0) {
            // open folder
            tState[id] = 1;
            SaveState("treestate", tState);
            document.getElementById('node'+id+'childs').style.display = 'block';
            document.getElementById('node'+id+'img').innerHTML = '<img src="../../img/fleche-vert.gif" width="9" height="9" border="0" align="absmiddle">';
        } else {
            // close folder
            tState[id] = 0;
            SaveState("treestate", tState);
            document.getElementById('node'+id+'childs').style.display = 'none';
            document.getElementById('node'+id+'img').innerHTML = '<img src="../../img/fleche-horz.gif" width="9" height="9" border="0" align="absmiddle">';
        }
    }

