    function toggle(val)
        {
            if(val.className == "tancat") {
                expand(val);
            }else{
                colapse(val);
            }            
            
        }
    function expand(val){
        var val2 = val.parentNode;
        val.className ="obert";                
        for (var i=0; i<val2.childNodes.length; i++){
            if(val2.childNodes[i].nodeName.toUpperCase() =="UL"){
                val2.childNodes[i].className = val2.childNodes[i].className.replace("noesveu", "esveu");
            }
        }
    }
    function colapse(val){
        var val2 = val.parentNode;
        val.className ="tancat";                
        for (var i=0; i<val2.childNodes.length; i++){
            if(val2.childNodes[i].nodeName.toUpperCase() =="UL"){
                val2.childNodes[i].className = val2.childNodes[i].className.replace("esveu", "noesveu");
            }
        }
    }
    function colapseAll(){
        var x=document.getElementsByName("expand");
        for(var i=0;i<x.length;i++){
            colapse(x[i]);
        }
    }
    function expandById(strid){
        var x=document.getElementById(strid);
        var a = new Array();
        var i = 0;
	
	if(x==null){
		return;
	}
	
        a[i] = strid;
        i = i + 1;
        var val2 = x.parentNode.parentNode;
        while(val2.nodeName.toUpperCase() == "LI"){
            a[i] = val2.id;
            val2 = val2.parentNode.parentNode;            
            i= i+1;
        }
        
        for(i=a.length - 1; i >=0 ; i--){
            expandByIdR(a[i]);
        }
    }
    
    function expandByIdR(strid){
        var x=document.getElementById(strid);
        for (var i=0; i<x.childNodes.length; i++){
            if(x.childNodes[i].name =="expand"){
                expand(x.childNodes[i]);
            }
        }
    }