function treeNavClick(spanId, navImageId, image1, image2, nodeImgId, expandImg, collapseImg, cookieName, nodeId)
{
    var navSpan = document.getElementById(spanId);
    var displayStyle = navSpan.style.display;
    if (displayStyle == 'none')
    {
        displayStyle = 'block'
        CookieLib.setCookieAttrib(cookieName, nodeId, "x");
    }
    else
    {
        displayStyle = 'none';
        CookieLib.setCookieAttrib(cookieName, nodeId, "c");
    }
    navSpan.style.display = displayStyle;
    if (navImageId != '')
    {
        var navImage = document.getElementById(navImageId);
        if (navImage.src.indexOf(image1)>=0) navImage.src = image2; else navImage.src = image1;
    }
    if (nodeImgId != '')
    {
        var nodeImg = document.getElementById(nodeImgId);
        if (nodeImg.src.indexOf(expandImg) >=0)
            nodeImg.src = collapseImg;
        else nodeImg.src = expandImg;
    }
}

var oAjaxCall   = null;
function ajaxcall(bExpand, sTreeNode, sUrl, oLnk)
{
    this.req        = getHTTPObject();
    this.bExpand    = bExpand;
    this.sTreeNode  = sTreeNode;
    this.sUrl       = sUrl;
    this.oLnk       = oLnk;
}
function onTreeExpand(sTreeNode,oLnk,bExpand)
{

    if(oAjaxCall != null)
    {
        dbg(iWRN, "onTreeExpand\noAjaxCall");
        return false;
    }
  var s=";jsessionid="+sessionid;
    var sUrl  = removeparams(self.location.href)+s+"?ajaxcall=1&jsf_sequence=1&outlookform:_idcl=outlookform:clientTree:"+sTreeNode+":t2g&docNum=&outlookform_SUBMIT=1&outlookform:_idJsp116=shinull&clientTree:org.apache.myfaces.tree.NAV_COMMAND="+sTreeNode;

    oAjaxCall = new ajaxcall(bExpand, sTreeNode, sUrl+"&tmpstmp="+(new Date()).getMilliseconds(), oLnk);
    if (oAjaxCall.req == null)
    {
  
        dbg(iERR, "onTreeExpand\n!req");
        oAjaxCall = null;
        return true;    //=means: onclick should not break link-handling...
    }
    oAjaxCall.req.onreadystatechange = onTreeExpand_response;
    oAjaxCall.req.open("GET", oAjaxCall.sUrl, true/*asynchron?(attenzione with ff!)*/);
    if (window.XMLHttpRequest)
        oAjaxCall.req.send(null);
    else if (window.ActiveXObject)	// branch for IE/Windows ActiveX version
       oAjaxCall.req.send();
    else
    {
        dbg(iERR, "onTreeExpand\n!httpre");
        oAjaxCall = null;
        return true;
    }
    document.body.style.cursor='wait';  //mouse cursor pointer to "sanduhr"
    oLnk.style.cursor = 'wait';
    return false;
}
function onTreeExpand_response()
{
    if((oAjaxCall == null) || (oAjaxCall.req == null))
    {
        dbg(iERR, "onTreeExpand_response\n!req");
        return false;
    }
    if (oAjaxCall.req.readyState != 4)			//4 == "Complete" in ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
    {
        //dbg(iINF, "ontreeitemexpandclick_response\nreq.readyState:"+req.readyState);	
        return false;
    }
    if (!responseIsSuccess(oAjaxCall.req))
    {
        dbg(iERR, "onTreeExpand_response\nreq.status:"+oAjaxCall.req.status+"\nurl:"+oAjaxCall.sUrl);
        oAjaxCall = null;
        document.body.style.cursor='auto';
        return false;
    }
    var sAnswer = trim(oAjaxCall.req.responseText);
    oAjaxCall   = null;    
    if(sAnswer.length < 9)
    {
        dbg(iERR, "onTreeExpand_response\n(EE1)req.status:"+oAjaxCall.req.status+"\nurl:"+oAjaxCall.sUrl);
        document.body.style.cursor='auto';
        return false;
    }
    var iB = sAnswer.indexOf("<!-- clientTree-begin -->");
    var iE = sAnswer.indexOf("<!-- clientTree-end -->");

    if((iB < 0) || (iE < 0) || (iB >= iE))
    {
        dbg(iERR, "onTreeExpand_response\n(EE2)\niB:"+iB+" iE:"+iE+"\n"+sAnswer.length);
        /*
        var wnd = window.open("about:blank","dummywnd");
        wnd.moveTo(30, 30);
        wnd.document.open("text/html");
        wnd.document.write(sAnswer);
        wnd.document.close();
        */
        return false;
    }
    
    getelement("main_clienttree_span").innerHTML = sAnswer.substring(iB+25, iE);  //25 = length("<!-- clientTree-begin -->")
    document.body.style.cursor='auto';
    return false;    
}

