function ontreeitemexpandclick(sAli, bHasDocs, bHasChildren, sBeanName)
{
	if(true)
    {
        var oDIV = getelement(sBeanName+"children_"+sAli);
        if(!oDIV)
        {
            dbg(iINF, "ontreeitemexpandclick1\n!oDIV\n"+sBeanName+"children_"+sAli);
            return false;
        }
        if(trim(oDIV.innerHTML) != "")
        {
            getelement(sBeanName+"closelnk_"+sAli).style.display= "inline";
            getelement(sBeanName+"children_"+sAli).style.display= "inline";
            getelement(sBeanName+"openlnk_" +sAli).style.display= "none";
            return false;
        }
    }

    getelement(sBeanName+"closelnk_"+sAli).style.display= "inline";
    getelement(sBeanName+"children_"+sAli).style.display= "inline";
    getelement(sBeanName+"openlnk_" +sAli).style.display= "none";

    var s=";jsessionid="+sessionid;
    var sUrl = getpath(self.location.href)+"/standard/jsp/shiajaxcommunicator.jsp"+s+"?object="+sBeanName+"&tree_ajax_alias="+sAli+"&invalidatesession=false&ajaxcall=1&tmpstmp="+(new Date()).getMilliseconds();
    var sContent = "object="+sBeanName+"&tree_ajax_alias="+sAli+"&ajaxcall=1";
    var myreq = getHTTPObject();
    if (myreq == null)
    {
        dbg(iERR, "ontreeitemexpandclick\n!myreq");
        return false;
    }
	if(true)
    {
        var iontreeitemexpandclick_response_called = 0;
        function ontreeitemexpandclick_response()
        {
            if(myreq == null)
            {
                dbg(iERR, "ontreeitemexpandclick_response\n!myreq");
                document.body.style.cursor='auto';
                return false;
            }

            iontreeitemexpandclick_response_called++;

            if (myreq.readyState    != 4)           //4 == "Complete" in ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
            {
            //    dbg(iINF, "ontreeitemexpandclick_response\nmyreq.readyState");
            //      return false;

                  if(iontreeitemexpandclick_response_called == 99)
                  {
                    iontreeitemexpandclick_response_called = 0;
                  }
                  else
                  {
                    return false;
                  }
            }
            var sAnswer = "";
            //if (!responseIsSuccess(myreq))
			if(true)
            {
                //dbg(iINF, "ontreeitemexpandclick_response\nmyreq.status");
                //document.body.style.cursor='auto';
                try
                {
                    //sAnswer = trim(myreq.responseText);
                    sAnswer = myreq.responseText;
                    if((sAnswer == "") || (sAnswer == " "))
                        return false;
                }
                catch(e)
                {
                    //"die für diesen Vorgang erforderlichen Daten sind noch nicht verfügbar"
                    //about IE: the content WILL NOT be available until the DOM is complete
                    //alert(e.message);
                    return false;
                }
            }

            iontreeitemexpandclick_response_called++;

            var iB = sAnswer.indexOf("<!-- alias:");
            var iE = sAnswer.indexOf(":alias -->");
            var sAli = trim(sAnswer.substring(iB+("<!-- alias:".length), iE));
            iB = sAnswer.indexOf("<!-- bean:");
            iE = sAnswer.indexOf(":bean -->");
            var sBeanName = trim(sAnswer.substring(iB+("<!-- bean:".length), iE));

            oDIV = getelement(sBeanName+"children_"+sAli);

            if (myreq.readyState == 4)
            {
                document.body.style.cursor                                    = 'auto';
				try
				{
	                getelement(sBeanName+"openlnk_"+sAli).style.cursor            = 'auto';
	                getelement(sBeanName+"titlelnk_closelnk_"+sAli).style.cursor  = 'auto';
	                getelement(sBeanName+"titlelnk_openlnk_"+sAli).style.cursor   = 'auto';
	                getelement(sBeanName+"piclnk_openlnk_"+sAli).style.cursor     = 'auto';
	                getelement(sBeanName+"piclnk_closelnk_"+sAli).style.cursor    = 'auto';
	                getelement(sBeanName+"piclnk_close_"+sAli).style.cursor       = 'auto';
	                getelement(sBeanName+"piclnk_open_"+sAli).style.cursor        = 'auto';
				}
				catch(e)
				{
					dbg(iERR, "ontreeitemexpandclick_response\n!o's\n"+sBeanName+"\ne:"+e);
				}				
            }
            if(!oDIV)
            {
                dbg(iINF, "ontreeitemexpandclick_response\n!oDIV\n"+sBeanName+"children_"+sAli+"\nsAnswer:'"+sAnswer+"'");
                return false;
            }
            oDIV.innerHTML = sAnswer;
            //alert(sAnswer.substring(sAnswer.length - 9));
            //if(myreq.readyState   == 4)alert(iontreeitemexpandclick_response_called);
            return false;
        }   //end function ontreeitemexpandclick_response()
    }

    myreq.onreadystatechange = ontreeitemexpandclick_response;
    myreq.open("POST", sUrl, true);
    myreq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    //myreq.async=true;

    document.body.style.cursor                                    = 'wait';  //mouse cursor pointer to "sanduhr"
    
	try
	{
	    getelement(sBeanName+"openlnk_"+sAli).style.cursor            = 'wait';
	    getelement(sBeanName+"titlelnk_closelnk_"+sAli).style.cursor  = 'wait';
	    getelement(sBeanName+"titlelnk_openlnk_"+sAli).style.cursor   = 'wait';
	    getelement(sBeanName+"piclnk_openlnk_"+sAli).style.cursor     = 'wait';
	    getelement(sBeanName+"piclnk_closelnk_"+sAli).style.cursor    = 'wait';
	    getelement(sBeanName+"piclnk_close_"+sAli).style.cursor       = 'wait';
	    getelement(sBeanName+"piclnk_open_"+sAli).style.cursor        = 'wait';
	}
	catch(e)
	{
		dbg(iERR, "ontreeitemexpandclick\n!o's\n"+sBeanName+"\ne:"+e);
	}
    if (window.XMLHttpRequest)
    {
        myreq.send(sContent);
    }
    else if (window.ActiveXObject)  // branch for IE/Windows ActiveX version
    {
       myreq.send(sContent);
    }
    return false;
}
function ontreeitemcollapsclick(sAli, bHasDocs, bHasChildren, sBeanName)
{
    getelement(sBeanName+"openlnk_" +sAli).style.display= "inline";
    getelement(sBeanName+"closelnk_"+sAli).style.display= "none";
    getelement(sBeanName+"children_"+sAli).style.display= "none";
    return false;
}
function ontreeitemcloseclick(sAli, bHasDocs, bHasChildren, sBeanName)
{
    //ontreeitemcollapsclick(sAli, bHasDocs, bHasChildren, sBeanName);
    doselect(sAli, bHasDocs, bHasChildren, sBeanName);
    return false;
}
function deselectall(oE, sBeanName)
{
    var aas = document.getElementsByTagName("a");
    var i=0;
    for(i=0; i < aas.length; i++)
    {
        oE = aas[i];
        if(oE.id == null) continue;
        if(oE.id.indexOf(sBeanName) != 0) continue;
        if (oE.className && oE.className.toLowerCase() == "treeitemmark")
            oE.className = "treeitem";
        if (oE.className && oE.className.toLowerCase() == "treeitem_disabledmark")
            oE.className = "treeitem_disabled";
    }
}
function ontreeitemopenclick(sAli, bHasDocs, bHasChildren, sBeanName)
{
    onselchange(sAli, bHasDocs, bHasChildren, sBeanName);
    return false;
}
function onselchange(sAli, bHasDocs, bHasChildren, sBeanName)
{
    var s=";jsessionid="+sessionid;
	//alert("./"+getfilename(self.location.href)+s+"?"+sBeanName+"_alias="+sAli+"&invalidatesession=false&beanname="+sBeanName);
    self.location.href = "./"+getfilename(self.location.href)+s+"?"+sBeanName+"_alias="+sAli+"&invalidatesession=false&beanname="+sBeanName;
}
function doselect(sAli, bHasDocs, bHasChildren, sBeanName)
{
    deselectall(getelement("body"), sBeanName);
    idcur = sAli;
    eval(sBeanName+"idcur = '"+sAli+"';");// = sAli;
    if(getelement(sBeanName+"titlelnk_closelnk_"+sAli).className.toLowerCase() == "treeitem_disabled")
    {
        getelement(sBeanName+"titlelnk_closelnk_"+sAli).className = "treeitem_disabledmark";
        getelement(sBeanName+"titlelnk_openlnk_" +sAli).className = "treeitem_disabledmark";
    }
    else
    {
        getelement(sBeanName+"titlelnk_closelnk_"+sAli).className = "treeitemmark";
        getelement(sBeanName+"titlelnk_openlnk_" +sAli).className = "treeitemmark";
    }
    onselchange(sAli, bHasDocs, bHasChildren, sBeanName);
}
function doonmouseover(oelem, sBeanName)
{
   return;
   // oelem.className = "treeitemmark";
}
function doonmouseout(oelem, sBeanName)
{
    /*
    var sAli = idcur.toLowerCase();
    if (sAli.indexOf("id")==0)
        sAli = sAli.substring(2);
    if(oelem.id.toLowerCase().indexOf("_"+sAli) > 0)        //current selected element...?
        return;
    */
  //  return;
   // oelem.className = "treeitem";
}
function getPosTopTilEle(element, oTilEle)
{
    var el = element;
    var posTop = 0;
    while(el)
    {
        posTop += el.offsetTop;
        el = el.offsetParent;
	if(el == oTilEle)
            break;
    }
    return posTop;
}
function scrollselectedtreeentryintoview(sBeanName)
{
    var _idcur = null;
    try
    {
        _idcur = eval(sBeanName+"idcur");
        if((_idcur == null) || (_idcur == ""))
            _idcur = idcur;
        if((_idcur == null) || (_idcur == ""))
        {
            dbg(iWRN, "scrollselectedtreeentryintoview\n!idcur:"+_idcur);
            return;
        }
    }
    catch(e)
    {
         //dbg(iWRN, "scrollselectedtreeentryintoview\n!idcur:'"+_idcur+"' msg:"+e.message);
        return;
    }
    var o = getelement(sBeanName+"closelnk_"+_idcur);
    if(!o)
    {
        //can happen if root and hide.root
        //dbg(iWRN, "scrollselectedtreeentryintoview\n!closelnk:"+_idcur);
        return;
    }
    if (o.style.display == "none")
        o = getelement(sBeanName+"openlnk_"+_idcur);
    if(!o)
    {
        dbg(iWRN, "scrollselectedtreeentryintoview\n!"+sBeanName+"openlnk:"+_idcur);
        return;
    }
    if (o.style.display == "none")
    {
        dbg(iWRN, "scrollselectedtreeentryintoview\n!"+sBeanName+".displayed:"+_idcur);
        return;
    }
	
	var treeDiv = o.parentNode; var bFound = false;
	while(treeDiv != null)
	{
		if (treeDiv.id == null || treeDiv.id == "")
		{
			treeDiv = treeDiv.parentNode;
			continue;
		}
		
		var iPos = treeDiv.id.toLowerCase().lastIndexOf("treescrolldiv");
		if(iPos > 0 && iPos == (treeDiv.id.length - "treescrolldiv".length))
		{
			bFound = true;
			break;
		}
		treeDiv = treeDiv.parentNode;
	}
	
	if(treeDiv == null || !bFound)
    	treeDiv = document.getElementById('outlookform:treeAreaDiv2:treeAreaDiv2Div');
	if (treeDiv == null)
		treeDiv = document.getElementById('outlookform:treeAreaDiv2');
    if (treeDiv == null)
    	treeDiv = document.getElementById('outlookform:bookmark:bookmarkDiv');
	
    if (treeDiv == null)
    {
		dbg(iERR, "scrollselectedtreeentryintoview\n!treeDiv\n"+sBeanName+"openlnk:"+_idcur);
        o.scrollIntoView("true");
    }
    else
    {
        var iOffsetTop = getPosTopTilEle(o, treeDiv);
        treeDiv.scrollTop  = (iOffsetTop - 192);
        treeDiv.scrollLeft = '0px';
        //alert("1:div:"+treeDiv.scrollTop+"\niOffsetTop:"+ (iOffsetTop - 192));
    }
}
function treedivonmouseover(div, sBeanName, sAli)
{
    var _idcur = eval(sBeanName+"idcur");

    var achildren = new Array();
    getchildren(div, achildren);

    var bIsSelected = false;

    if (_idcur.toLowerCase() == sAli.toLowerCase())
    {
        bIsSelected = true;
    }
    for(var i=0; i < achildren.length; i++)
    {
        if((achildren[i].tagName.toLowerCase() == "span") && (achildren[i].className.toLowerCase() == "span_treeitem"))
        {
            continue;
        }

        var id = achildren[i].id;
        var bUnderline = (achildren[i].id.indexOf(sBeanName+"title") == 0);

        if(bIsSelected)
        {
            if(achildren[i].id.indexOf("piclnk_") > 1)
            {
                achildren[i].className = "treeitemmouseoverimg";
                continue;
            }
            achildren[i].className = "outlookToolbarWidth treeitemmouseover" + (bUnderline ? " textmouseover" : "");
        }
        else
        {
            if(achildren[i].id.indexOf("piclnk_") > 1)
            {
                achildren[i].className = "treeitemmouseoverimg";
                continue;
            }
            achildren[i].className = "outlookToolbarWidth treeitemmouseover" + (bUnderline ? " textmouseover" : "");
        }
    }

    div.className = "divstylemouseover";
}
function treedivonmouseout(div, sBeanName, sAli)
{
    var _idcur = eval(sBeanName+"idcur");

    var achildren = new Array();
    getchildren(div, achildren);

    var bIsSelected = false;

    if (_idcur.toLowerCase() == sAli.toLowerCase())
    {
        bIsSelected = true;
    }

    for(var i=0; i < achildren.length; i++)
    {
        if((achildren[i].tagName.toLowerCase() == "span") && (achildren[i].className.toLowerCase() == "span_treeitem"))
        {
            continue;
        }

        if(bIsSelected)
        {
            if(achildren[i].id.indexOf("piclnk_") > 1)
            {
                achildren[i].className = "treeitemmouseoutimg";
                continue;
            }
            achildren[i].className = "outlookToolbarWidth treeitemmouseout  span_treeitemmark";
        }
        else
        {
            if(achildren[i].id.indexOf("piclnk_") > 1)
            {
                achildren[i].className = "treeitemmouseoutimg";
                continue;
            }
            achildren[i].className = "outlookToolbarWidth treeitemmouseout ";
        }
    }
    div.className = "divstylemouseout";
    //div.className = "outlookToolbarWidth treeitemmouseout";
}
function getchildren(e, achildren)
{
    if((e == null)||(e.childNodes == null)) return;
    for(var i=0; i < e.childNodes.length; i++)
    {
        getchildren(e.childNodes[i], achildren);
        if(e.childNodes[i].nodeType == 1)
        {
            if(e.childNodes[i].tagName.toLowerCase() != "img")
                achildren.push(e.childNodes[i]);
        }
    }
}
function fakemouseontree(sBeanName, bOnResize)
{
	var sAli= null;
	try
	{
		sAli = eval(sBeanName+"idcur");
	}
	catch(e)
	{
		sAli = null;
	}
	var div = null;

	if(sAli != null)
	{
		var e	= getelement(sBeanName+"openlnk_" + sAli);
		
		while(e && div == null)
		{
			e = e.parentNode;
			if(e && e.tagName && (e.tagName.toLowerCase() == "div"))
			{
				div = e;
				break;
			}
		}
	}	
	if(!div && !bOnResize)
	{
		var i=0;
		while(true)
		{
			i++;
		 	var oSpan2Hide = getelement("undertree_buttons"+i);
		 	if(!oSpan2Hide)break;
		 	oSpan2Hide.style.display = "none";
		}
		//setCSSClassesForLeftSlider(g_iActualColumnLeftWidth+1);
		//setCSSClassesForLeftSlider(g_iActualColumnLeftWidth-1);
		return;
	}
	if(isie() && (div != null) && (sAli != null))
	{	
		treedivonmouseover(div, sBeanName, sAli);
		treedivonmouseout( div, sBeanName, sAli);
	}
}
function a(div, sBeanName, sAli)
{
	return treedivonmouseover(div, sBeanName, sAli);
}
function b(div, sBeanName, sAli)
{
	return treedivonmouseout(div, sBeanName, sAli);
}
function c(oelem, sBeanName)
{
	return doonmouseover(oelem, sBeanName);
}
function d(oelem, sBeanName)
{
	return doonmouseout(oelem, sBeanName);
}
function e(sAli, bHasDocs, bHasChildren, sBeanName)
{
	return ontreeitemcollapsclick(sAli, bHasDocs, bHasChildren, sBeanName);
}
function f(sAli, bHasDocs, bHasChildren, sBeanName)
{
	return ontreeitemcloseclick(sAli, bHasDocs, bHasChildren, sBeanName);
}
function g(sAli, bHasDocs, bHasChildren, sBeanName)
{
	return ontreeitemexpandclick(sAli, bHasDocs, bHasChildren, sBeanName);
}
function h(sAli, bHasDocs, bHasChildren, sBeanName)
{
	return ontreeitemopenclick(sAli, bHasDocs, bHasChildren, sBeanName);
}
