function bookmark_add4righttoolbar(btn)
{
	var sAdd2Folder = "";
	var sTitle		= "";
	
	for(var i=0; i < btn.form.elements.length; i++)
	{
		if(btn.form.elements[i].type == "text")
		{
			if(trim(btn.form.elements[i].value) == "")
			{
				alert("Bitte, geben Sie einen Titel an!");
				return false;
			}
			sTitle = escape(btn.form.elements[i].value);
			continue;
		}
		if(btn.form.elements[i].type == "select-one")
		{
			sAdd2Folder = btn.form.elements[i].value;
			if(trim(sAdd2Folder) == "")
				sAdd2Folder = "bookmark";	//root alias
			continue;
		}
		//alert("id:"+btn.form.elements[i].id+"\ntype:"+btn.form.elements[i].type+"\nvalue:"+btn.form.elements[i].value);
	}
	
	if((sAdd2Folder == "") || (sTitle == ""))
	{
		dbg(iERR, "bookmark_add4righttoolbar\n!title");
		return false;
	}
	
    var s="jsessionid="+sessionid;
	var sParams = "object=t3&invalidatesession=false&ajaxcall=1&action=add_bookmark&scaffoldedparam_ali="+__scaffoledlnk_clicked_ali+"&scaffoldedparam_doc="+__scaffoledlnk_clicked_doc+"&scaffoldedparam_fn="+__scaffoledlnk_clicked_doc+"&title="+sTitle+"&folder="+sAdd2Folder+"&return=1&tmpstmp="+(new Date()).getMilliseconds();
	
    var sUrl 	= getpath(removeparams(self.location.href))+"/standard/jsp/shiajaxcommunicator.jsp;"+s+"?"+sParams;
    var sContent= s + "&" + sParams;
    var myreq 	= getHTTPObject();
	
    if (myreq == null)
    {
        dbg(iERR, "bookmark_add4righttoolbar\n!myreq");
        return false;
    }
    if(true)
    {
        function bookmark_add4righttoolbar_response()
        {
            if(myreq == null)
            {
                dbg(iERR, "bookmark_add4righttoolbar_response\n!myreq");	return false;
            }
            if (myreq.readyState != 4)		return;
            if (!responseIsSuccess(myreq))  return;
            var sAnswer = trim(myreq.responseText);
			if (sAnswer == "1")
			{
				implodeLast();
				reloadmypage("t3");
            	return false;
			}
			dbg(iERR, "bookmark_add4righttoolbar_response\n?sAnswer?\n"+sAnswer);
			return false;
        }
    }
    myreq.onreadystatechange = bookmark_add4righttoolbar_response;
    myreq.open("POST", sUrl, true);
    myreq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    if (window.XMLHttpRequest)
    {
        myreq.send(sContent);
    }
    else if (window.ActiveXObject)  // branch for IE/Windows ActiveX version
    {
       myreq.send(sContent);
    }
	return false;
}
function bookmark_add4lefttoolbar(lnk)
{
	var sAdd2Folder = "";
	var sTitle		= "";
	
	var frm = getform(lnk); 
	
	for(var i=0; i < frm.elements.length; i++)
	{
		if(frm.elements[i].type == "text")
		{
			if(trim(frm.elements[i].value) == "")
			{
				alert("Bitte, geben Sie einen Titel an!");
				return false;
			}
			sTitle = escape(frm.elements[i].value);
			break;
		}
	}
	
	if(sTitle == "")
	{
		dbg(iERR, "bookmark_add4lefttoolbar\n!title");
		return false;		
	}
	
    var s="jsessionid="+sessionid;
	var sParams = "object=t3&invalidatesession=false&ajaxcall=1&action=add_bookmark&return=treeandeditandalias&title="+sTitle+"&folder=@SELECTEDALIAS@&tmpstmp="+(new Date()).getMilliseconds();
    var sUrl 	= getpath(removeparams(self.location.href))+"/standard/jsp/shiajaxcommunicator.jsp;"+s+"?"+sParams;
    var sContent= s + "&" + sParams;
    var myreq 	= getHTTPObject();
	
    if (myreq == null)
    {
        dbg(iERR, "bookmark_add4lefttoolbar\n!myreq");
        return false;
    }
    if(true)
    {
        function bookmark_add4lefttoolbar_response()
        {
            if(myreq == null)
            {
                dbg(iERR, "bookmark_add4lefttoolbar_response\n!myreq");	return false;
            }
            if (myreq.readyState != 4)		return;
            if (!responseIsSuccess(myreq))
            {
                dbg(iERR, "bookmark_add4lefttoolbar_response\n!myreq.success");	return false;
            }
            var sAnswer = trim(myreq.responseText);
			var sEdit   = "";
			var sAlias  = null;
			var iEdit = sAnswer.indexOf("<!-- edit: -->");
			if (iEdit > 1)
			{
				sEdit   = sAnswer.substring(iEdit + "<!-- edit: -->".length);
				sAnswer = sAnswer.substring(0, iEdit);
                var iAli= sEdit.indexOf("<!-- alias: -->");
                if (iAli > -1)
                {
                    sAlias= sEdit.substring(iAli + "<!-- alias: -->".length); 
                    sEdit = sEdit.substring(0, iAli);
                }
			}
			else
			{
				dbg(iERR, "bookmark_add4lefttoolbar_response\n?sAnswer?iEdit("+iEdit+")?\n"+sAnswer);
			}
			
			if(!refreshbookmarks(sAnswer, sEdit, lnk, sAlias, "t3"))			
				dbg(iERR, "bookmark_add4lefttoolbar_response\n?sAnswer?\n"+sAnswer);
			//else
			//	dbg(iERR, "bookmark_add4lefttoolbar_response\nsEdit:\n"+sEdit+"\nsAlias:"+sAlias+"\nsAnswer:"+sAnswer);
			return false;
        }
    }
    myreq.onreadystatechange = bookmark_add4lefttoolbar_response;
    myreq.open("POST", sUrl, true);
    myreq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    if (window.XMLHttpRequest)
    {
        myreq.send(sContent);
    }
    else if (window.ActiveXObject)  // branch for IE/Windows ActiveX version
    {
       myreq.send(sContent);
    }
	return false;
}
function bookmark_del(lnk)
{
    var s="jsessionid="+sessionid;
	var sParams = "object=t3&invalidatesession=false&ajaxcall=1&action=del&return=treeandedit&folder=@SELECTEDALIAS@&tmpstmp="+(new Date()).getMilliseconds();
    var sUrl 	= getpath(removeparams(self.location.href))+"/standard/jsp/shiajaxcommunicator.jsp;"+s+"?"+sParams;
    var sContent= s + "&" + sParams;
    var myreq 	= getHTTPObject();
	
    if (myreq == null)
    {
        dbg(iERR, "bookmark_del\n!myreq");
        return false;
    }
    if(true)
    {
        function bookmark_del_response()
        {
            if(myreq == null)
            {
                dbg(iERR, "bookmark_del_response\n!myreq");	return false;
            }
            if (myreq.readyState != 4)		return;
            if (!responseIsSuccess(myreq))  return;
            var sAnswer = trim(myreq.responseText);
			
			var sEdit   = "";
			
			var iEdit = sAnswer.indexOf("<!-- edit: -->");
			if (iEdit > 1)
			{
				sEdit   = sAnswer.substring(iEdit + "<!-- edit: -->".length);
				sAnswer = sAnswer.substring(0, iEdit);
			}
			else
			{
				dbg(iERR, "bookmark_del_response\n?sAnswer?iEdit("+iEdit+")?\n"+sAnswer);
			}

			if(!refreshbookmarks(sAnswer, sEdit, lnk))
				dbg(iERR, "bookmark_del_response\n?sAnswer?\n"+sAnswer);
			return false;
        }
    }
    myreq.onreadystatechange = bookmark_del_response;
    myreq.open("POST", sUrl, true);
    myreq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    if (window.XMLHttpRequest)
    {
        myreq.send(sContent);
    }
    else if (window.ActiveXObject)  // branch for IE/Windows ActiveX version
    {
       myreq.send(sContent);
    }
	return false;
}
function sendBoorkmarkFolderForm(lnk, sDirection)
{
    var s="jsessionid="+sessionid;
	var sParams = "object=t3&invalidatesession=false&ajaxcall=1&action=add_folder&return=treeandeditandalias&folder=@SELECTEDALIAS@&direction="+sDirection+"&tmpstmp="+(new Date()).getMilliseconds();
    var sUrl 	= getpath(removeparams(self.location.href))+"/standard/jsp/shiajaxcommunicator.jsp;"+s+"?"+sParams;
    var sContent= s + "&" + sParams;
    var myreq 	= getHTTPObject();
	
    if (myreq == null)
    {
        dbg(iERR, "sendBoorkmarkFolderForm\n!myreq");
        return false;
    }
    if(true)
    {
        function sendBoorkmarkFolderForm_response()
        {
            if(myreq == null)
            {
                dbg(iERR, "sendBoorkmarkFolderForm_response\n!myreq");	return false;
            }
            if (myreq.readyState != 4)		return;
            if (!responseIsSuccess(myreq))
            {
                dbg(iERR, "sendBoorkmarkFolderForm_response\n!myreq.success");	return false;
            }
            var sAnswer = trim(myreq.responseText);
			var sEdit   = "";
			var sAlias	= null;
			
			var iEdit = sAnswer.indexOf("<!-- edit: -->");
			
			if (iEdit > 1)
			{
				sEdit   = sAnswer.substring(iEdit + "<!-- edit: -->".length);
				sAnswer = sAnswer.substring(0, iEdit);
				var iAli= sEdit.indexOf("<!-- alias: -->");
				if (iAli > -1)
				{
					sAlias= sEdit.substring(iAli + "<!-- alias: -->".length); 
					sEdit = sEdit.substring(0, iAli);
				}
			}
			else
			{
				dbg(iERR, "sendBoorkmarkFolderForm_response\n?sAnswer?iEdit("+iEdit+")?\n"+sAnswer);
			}
			if(!refreshbookmarks(sAnswer, sEdit, lnk, sAlias))
				dbg(iERR, "sendBoorkmarkFolderForm_response\n?sAnswer?\n"+sAnswer);
			return false;
        }
    }
    myreq.onreadystatechange = sendBoorkmarkFolderForm_response;
    myreq.open("POST", sUrl, true);
    myreq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    if (window.XMLHttpRequest)
    {
        myreq.send(sContent);
    }
    else if (window.ActiveXObject)  // branch for IE/Windows ActiveX version
    {
       myreq.send(sContent);
    }
	return false;
}
function bookmark_rename(lnk)
{
	var sTitle		= "";
	var frm = getform(lnk);
	
	for(var i=0; i < frm.elements.length; i++)
	{
		if(frm.elements[i].type == "text")
		{
			if(trim(frm.elements[i].value) == "")
			{
				alert("Bitte, geben Sie einen Titel an!");
				return false;
			}
			sTitle = escape(frm.elements[i].value);
			break;
		}
	}
	
	if(sTitle == "")
	{
		dbg(iERR, "bookmark_rename\n!title");
		return false;
	}
	
    var s="jsessionid="+sessionid;
	var sParams = "object=t3&invalidatesession=false&ajaxcall=1&action=rename&return=treeandedit&folder=@SELECTEDALIAS@&title="+sTitle+"&tmpstmp="+(new Date()).getMilliseconds();
    var sUrl 	= getpath(removeparams(self.location.href))+"/standard/jsp/shiajaxcommunicator.jsp;"+s+"?"+sParams;
    var sContent= s + "&" + sParams;
    var myreq 	= getHTTPObject();
	
    if (myreq == null)
    {
        dbg(iERR, "bookmark_rename\n!myreq");
        return false;
    }
    if(true)
    {
        function bookmark_rename_response()
        {
            if(myreq == null)
            {
                dbg(iERR, "bookmark_rename_response\n!myreq");	return false;
            }
            if (myreq.readyState != 4)		return;
            if (!responseIsSuccess(myreq))  return;
            var sAnswer = trim(myreq.responseText);
			
			var sEdit   = "";
			
			var iEdit = sAnswer.indexOf("<!-- edit: -->");
			if (iEdit > 1)
			{
				sEdit   = sAnswer.substring(iEdit + "<!-- edit: -->".length);
				sAnswer = sAnswer.substring(0, iEdit);
			}
			else
			{
				dbg(iERR, "bookmark_rename_response\n?sAnswer?iEdit("+iEdit+")?\n"+sAnswer);
			}
			if(!refreshbookmarks(sAnswer, sEdit, lnk))			
				dbg(iERR, "bookmark_rename_response\n?sAnswer?\n"+sAnswer);
			return false;
        }
    }
    myreq.onreadystatechange = bookmark_rename_response;
    myreq.open("POST", sUrl, true);
    myreq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    if (window.XMLHttpRequest)
    {
        myreq.send(sContent);
    }
    else if (window.ActiveXObject)  // branch for IE/Windows ActiveX version
    {
       myreq.send(sContent);
    }
	return false;
}

///////////////////////////////////  TREE  ////////////////////////////////////////////

function bookmark_ontreeitemexpandclick(sAli, bHasDocs, bHasChildren, sBeanName)
{
	return ontreeitemexpandclick(sAli, bHasDocs, bHasChildren, sBeanName);
}
function bookmark_ontreeitemcollapsclick(sAli, bHasDocs, bHasChildren, sBeanName)
{
	return ontreeitemcollapsclick(sAli, bHasDocs, bHasChildren, sBeanName);
}
function bookmark_ontreeitemcloseclick(sAli, bHasDocs, bHasChildren, sBeanName)
{
	var bDocClicked = (sAli.toUpperCase().indexOf("_MAINCOLALI_") > 0);
	if (bDocClicked)
	{
		return ontreeitemcloseclick(sAli, bHasDocs, bHasChildren, sBeanName);	
	}
	//bookmark_ontreeitemcollapsclick(sAli, bHasDocs, bHasChildren, sBeanName);
	bookmark_doselect(sAli, bHasDocs, bHasChildren, sBeanName);
	return false;
}
function bookmark_deselectall(oE, sBeanName)
{
	return deselectall(oE, sBeanName);
}
function bookmark_ontreeitemopenclick(sAli, bHasDocs, bHasChildren, sBeanName)
{
	var bDocClicked = (sAli.toUpperCase().indexOf("_MAINCOLALI_") > 0);
	if (bDocClicked)
	{
		return ontreeitemopenclick(sAli, bHasDocs, bHasChildren, sBeanName);
	}
	if(bHasChildren)
	{
		bookmark_ontreeitemexpandclick(sAli, bHasDocs, bHasChildren, sBeanName);
	}
	bookmark_doselect(sAli, bHasDocs, bHasChildren, sBeanName);
	return false;	
}
function bookmark_onselchange(sAli, bHasDocs, bHasChildren, sBeanName)
{
	var bDocClicked = (sAli.toUpperCase().indexOf("_MAINCOLALI_") > 0);
	if (bDocClicked)
	{
		return onselchange(sAli, bHasDocs, bHasChildren, sBeanName);
	}
	if(bHasChildren)
	{
		bookmark_ontreeitemexpandclick(sAli, bHasDocs, bHasChildren, sBeanName);
	}
	bookmark_doselect(sAli, bHasDocs, bHasChildren, sBeanName);
	return false;		
}
function bookmark_doonmouseover(oelem, sBeanName)
{
	return doonmouseover(oelem, sBeanName);
}
function bookmark_doonmouseout(oelem, sBeanName)
{
	return doonmouseout(oelem, sBeanName);
}
function bookmark_treedivonmouseover(div, sBeanName, sAli)
{
	return treedivonmouseover(div, sBeanName, sAli);
}
function bookmark_treedivonmouseout(div, sBeanName, sAli)
{
	return treedivonmouseout(div, sBeanName, sAli);
}
/*
function bookmark_doselect(sAli, bHasDocs, bHasChildren, sBeanName)
{
	return_doselect(sAli, bHasDocs, bHasChildren, sBeanName);
}
*/
function bookmark_doselect(sAli, bHasDocs, bHasChildren, sBeanName)
{
    var s="jsessionid="+sessionid;
	var sParams = "object="+sBeanName+"&invalidatesession=false&ajaxcall=1&action=selectalias&return=edit&1&selectalias="+sAli+"&tmpstmp="+(new Date()).getMilliseconds();
    var sUrl 	= getpath(removeparams(self.location.href))+"/standard/jsp/shiajaxcommunicator.jsp;"+s+"?"+sParams;
    var sContent= s + "&" + sParams;
    var myreq 	= getHTTPObject();
	
    if (myreq == null)
    {
        dbg(iERR, "bookmark_doselect\n!myreq");
        return false;
    }
    if(true)
    {
        function bookmark_doselect_response()
        {
            if(myreq == null)
            {
                dbg(iERR, "bookmark_doselect_response\n!myreq");
                return false;
            }
            if (myreq.readyState    != 4)           //4 == "Complete" in ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
                return;
            if (!responseIsSuccess(myreq))
                return;
            var sAnswer = trim(myreq.responseText);
			if (sAnswer == "")
			{
				dbg(iERR, "bookmark_doselect_response\n!sAnswer:'"+trim(sAnswer)+"'\nparams:"+sParams);
				return false;
			}
			if(true)
			{
			    bookmark_deselectall(getelement("body"), sBeanName);
				
				if(true)
				{
					var sTilAli = "";
					eval("sTilAli = "+sBeanName+"idcur;");
					
					if((sTilAli != null) && (sTilAli != ""))
					{
						if(getelement(sBeanName+"titlelnk_closelnk_"+sTilAli) == null)
						{
							//dbg(iWRN, "bookmark_doselect_response TILALI\n!ele:'"+sBeanName+"titlelnk_closelnk_"+sTilAli+"'\nsAnswer:"+sAnswer+"\n(perhaps after del)");
						}
						else
						{
				        	getelement(sBeanName+"titlelnk_closelnk_"+sTilAli).className = "treeitem";
				        	getelement(sBeanName+"titlelnk_openlnk_" +sTilAli).className = "treeitem";
						}					
					}
				}
				
			    idcur = sAli;
			    eval(sBeanName+"idcur = '"+sAli+"';");
				if(getelement(sBeanName+"titlelnk_closelnk_"+sAli) == null)
				{
					dbg(iERR, "bookmark_doselect_response ALI\n!ele:'"+sBeanName+"titlelnk_closelnk_"+sAli+"'\nsAnswer:"+sAnswer);
				}
				else
				{
				    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";
				    }
				}
				refreshbookmarks(null, sAnswer, sAli);
			}

            return false;
        }
    }
    myreq.onreadystatechange = bookmark_doselect_response;
    myreq.open("POST", sUrl, true);
    myreq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    if (window.XMLHttpRequest)
    {
        myreq.send(sContent);
    }
    else if (window.ActiveXObject)  // branch for IE/Windows ActiveX version
    {
       myreq.send(sContent);
    }
	return false;
}
function refreshbookmarks(sTree, sEdit, frm, sAlias)
{
	if(trim(sAlias).length > 1)
	{
	    idcur = sAlias;
	    eval("t3idcur = '"+sAlias+"';");
	}
	if(sTree != null)
	{
		if(trim(sTree).length < 9)
		{
			dbg(iWRN, "refreshbookmarks\n!sTree:"+sTree+"\nedit:"+sEdit+"\nfrm:"+frm);
			//return false;
		}
		var tree = getelement("bookmarktreespan");
		if(!tree)
		{
			dbg(iERR, "refreshbookmarks\n!tree");
			return false;
		}
		tree.innerHTML = sTree;
	}
	if(sEdit == null)
	{
		//don't update edit-content
		//dbg(iINF, "refreshbookmarks\n!sEdit:"+sEdit);
	}
	else
	{
		if(trim(sEdit).length > 0)
		{
			if (frm == null)
				frm = getelement("bookmarktreespan");
			frm = getform(frm);
			for(var i=0; i < frm.elements.length; i++)
			{
				//alert("("+i+")id:"+frm.elements[i].id+"\ntype:"+frm.elements[i].type);
				if(frm.elements[i].type != "text") continue;
				frm.elements[i].value = sEdit;
				break;
			}
		}
		else
		{
			dbg(iERR, "refreshbookmarks\n!sEdit:"+sEdit);
		}
	}
	
	if(sTree == null)
	{
		if(bookmarktreeHasEntries(null))
		{
			sTree = "dummydummydummydummydummydummydummy";
		}
		else
		{
			alert("!bookmarktreeHasEntries!");
		}
	}
	
	var i=0;
	while(true)
	{
		i++;
	 	var oSpan2Hide = getelement("undertree_buttons"+i);
	 	if(!oSpan2Hide)break;
	 	oSpan2Hide.style.display = ((trim(sTree).length < 9) ? "none" : "inline");
	}
	if(i < 2)
	{
		dbg(iWRN, "refreshbookmarks\n!undertree_buttons("+i+")");
	}
	return true;
}
function getform(e)
{
	if(!e)
	{
		dbg(iERR, "getform\n!e");
		return null;
	}
	var e_org = e;
	var frm = e.form;
	if((frm != null) && (frm != 'undefined') && (frm != 'null') && frm.tagName && (frm.tagName.toLowerCase() == "form"))
		return frm;
	
	if (e.parentNode == null)
		e = getelement("bookmarktreespan");
	
	while(e)
	{
		e = e.parentNode;
		if(e && e.tagName && (e.tagName.toLowerCase() == "form"))
		{
			return e;
		}
	}
	dbg(iERR, "getform\n!e(2)");
	return null;
}

