function dhtmlXTreeObject(htmlObject, width, height, rootId, cfg) {
	if (typeof (htmlObject) != "object")
		this.parentObject = document.getElementById(htmlObject);
	else
		this.parentObject = htmlObject;
	this.mytype = "tree";
	this.width = width;
	this.height = height;
	this.rootId = rootId;
	this.parseXmlCallback = cfg.parseXmlCallback;

	this.style_pointer = "pointer";
	if (navigator.appName == 'Microsoft Internet Explorer')
		this.style_pointer = "hand";

	this.hfMode = 0;
	this.nodeCut = 0;
	this.XMLsource = 0;
	this.XMLloadingWarning = 0;
	this._globalIdStorage = new Array();
	this.globalNodeStorage = new Array();
	this._globalIdStorageSize = 0;
	this.treeLinesOn = true;
	this.checkFuncHandler = 0;
	this.openFuncHandler = 0;
	this.dblclickFuncHandler = 0;
	this.tscheck = false;
	this.timgen = true;
	this.imPath = "/rabota/pic/treeImgs/";	
	this.checkArray = new Array("iconUnCheckAll.gif", "iconCheckAll.gif",
			"iconCheckGray.gif");	
	this.lineArray = new Array("line2.gif", "line3.gif", "line4.gif",
			"blank.gif", "blank.gif");	
	this.minusArray = new Array("minus2.gif", "minus3.gif", "minus4.gif",
		"minus.gif", "minus5.gif");	
	this.plusArray = new Array("plus2.gif", "plus3.gif", "plus4.gif",
			"plus.gif", "plus5.gif");	
	this.imageArray = new Array("leaf.gif", "folderOpen.gif",
			"folderClosed.gif");
	this.cutImg = new Array(0, 0, 0);
	this.cutImage = "but_cut.gif";
	this.dragger = new dhtmlDragAndDropObject();
	this.htmlNode = new dhtmlXTreeItemObject(this.rootId, "", 0, 0, this);
	this.htmlNode.htmlNode.childNodes[0].childNodes[0].style.display = "none";
	this.htmlNode.htmlNode.childNodes[0].childNodes[0].childNodes[0].className = "hiddenRow";
	this.allTree = this._createSelf();
	this.allTree.appendChild(this.htmlNode.htmlNode);
	this.allTree.onselectstart = new Function("return false;");
	this.XMLLoader = new dtmlXMLLoaderObject(this._parseXMLTree, this);
	// if ( this.XMLLoader && this.parseXmlCallback ) this.parseXmlCallback();
	this.dragger.addDragLanding(this.allTree, this);
	return this;
};

function dhtmlXTreeItemObject(itemId, itemText, leaf, parentObject, treeObject,
		actionHandler, mode) {
	this.htmlNode = "";
	this.acolor = "";
	this.scolor = "";
	this.tr = 0;
	this.childsCount = 0;
	this.tempDOMM = 0;
	this.tempDOMU = 0;
	this.dragSpan = 0;
	this.dragMove = 0;
	this.span = 0;
	this.closeble = 1;
	this.leaf = leaf;
	this.childNodes = new Array();
	this.checkstate = 0;
	this.treeNod = treeObject;
	this.label = itemText;
	this.parentObject = parentObject;
	this.actionHandler = actionHandler;
	this.images = new Array(treeObject.imageArray[0], treeObject.imageArray[1],
			treeObject.imageArray[2]);

	this.id = treeObject._globalIdStorageAdd(itemId, this);

	if (this.treeNod.checkBoxOff)
		this.htmlNode = this.treeNod._createItem(1, this, mode);
	else
		this.htmlNode = this.treeNod._createItem(0, this, mode);
	this.htmlNode.objBelong = this;
	return this;
};

dhtmlXTreeObject.prototype._globalIdStorageAdd = function(itemId, itemObject) {
	if (this._globalIdStorageFind(itemId)) {
		d = new Date();
		itemId = d.valueOf() + "_" + itemId;
		return this._globalIdStorageAdd(itemId, itemObject);
	}
	this._globalIdStorage[this._globalIdStorageSize] = itemId;
	this.globalNodeStorage[this._globalIdStorageSize] = itemObject;
	this._globalIdStorageSize++;
	return itemId;
};

dhtmlXTreeObject.prototype._globalIdStorageSub = function(itemId) {
	for ( var i = 0; i < this._globalIdStorageSize; i++)
		if (this._globalIdStorage[i] == itemId) {
			this._globalIdStorage[i] = this._globalIdStorage[this._globalIdStorageSize - 1];
			this.globalNodeStorage[i] = this.globalNodeStorage[this._globalIdStorageSize - 1];
			this._globalIdStorageSize--;
			this._globalIdStorage[this._globalIdStorageSize] = 0;
			this.globalNodeStorage[this._globalIdStorageSize] = 0;
		}
};

dhtmlXTreeObject.prototype._globalIdStorageFind = function(itemId) {
	for ( var i = 0; i < this._globalIdStorageSize; i++)
		if (this._globalIdStorage[i] == itemId)
			return this.globalNodeStorage[i];
	return 0;
};

dhtmlXTreeObject.prototype._drawNewTr = function(htmlObject) {
	var tr = document.createElement('tr');
	var td1 = document.createElement('td');
	var td2 = document.createElement('td');
	td1.appendChild(document.createTextNode(" "));
	td2.colSpan = 3;
	td2.appendChild(htmlObject);
	tr.appendChild(td1);
	tr.appendChild(td2);
	return tr;
};

dhtmlXTreeObject.prototype.loadXMLString = function(xmlString) {
	this.XMLLoader.loadXMLString(xmlString);
};

dhtmlXTreeObject.prototype.loadXML = function(file) {
	this.XMLLoader.loadXML(file);
};

dhtmlXTreeObject.prototype._attachChildNode = function(parentObject, itemId,
		itemText, leaf, itemActionHandler, image1, image2, image3, optionStr, childs,
		beforeNode) {
	if (beforeNode)
		parentObject = beforeNode.parentObject;
	if (((parentObject.XMLload == 0) && (this.XMLsource))
			&& (!this.XMLloadingWarning)) {
		parentObject.XMLload = 1;
		this.loadXML(this.XMLsource + getUrlSymbol(this.XMLsource) + "itemId="
				+ escape(parentObject.itemId));
	}

	var Count = parentObject.childsCount;
	var Nodes = parentObject.childNodes;

	if ((!itemActionHandler) && (this.aFunc))
		itemActionHandler = this.aFunc;
	Nodes[Count] = new dhtmlXTreeItemObject(itemId, itemText, leaf, parentObject,
			this, itemActionHandler, 1);

	if (image1)
		Nodes[Count].images[0] = image1;
	if (image2)
		Nodes[Count].images[1] = image2;
	if (image3)
		Nodes[Count].images[2] = image3;

	parentObject.childsCount++;
	var tr = this._drawNewTr(Nodes[Count].htmlNode);
	if (this.XMLloadingWarning)
		Nodes[Count].htmlNode.parentNode.parentNode.style.display = "none";

	if (optionStr) {
		var tempStr = optionStr.split(",");
		for ( var i = 0; i < tempStr.length; i++) {
			switch (tempStr[i]) {
			case "TOP":
				if (parentObject.childsCount > 1)
					beforeNode = parentObject.htmlNode.childNodes[0].childNodes[1].nodem.previousSibling;
				break;
			}
		}
		;
	}
	;

	if ((beforeNode) && (beforeNode.tr.nextSibling))
		parentObject.htmlNode.childNodes[0].insertBefore(tr,
				beforeNode.tr.nextSibling);
	else
		parentObject.htmlNode.childNodes[0].appendChild(tr);

	if (this.XMLsource)
		if ((childs) && (childs != 0))
			Nodes[Count].XMLload = 0;
		else
			Nodes[Count].XMLload = 1;

	Nodes[Count].tr = tr;
	tr.nodem = Nodes[Count];

	if (parentObject.itemId == 0)
		tr.childNodes[0].className = "hitemIddenRow";

	if (optionStr) {
		var tempStr = optionStr.split(",");
		for ( var i = 0; i < tempStr.length; i++) {
			switch (tempStr[i]) {
			case "SELECT":
				this.selectItem(itemId, false);
				break;
			case "CALL":
				this.selectItem(itemId, true);
				break;
			case "CHILD":
				Nodes[Count].XMLload = 0;
				break;
			case "CHECKED":
				if (this.XMLloadingWarning)
					this.setCheckList += itemId;
				else
					this.setCheck(itemId, 1);
				break;
			case "OPEN":
				Nodes[Count].openMe = 1;
				break;
			}
		}
		;
	}
	;

	if (!this.XMLloadingWarning) {
		if (this._getOpenState(parentObject) < 0)
			this.openItem(parentObject.id);

		if (beforeNode) {
			this._correctPlus(beforeNode);
			this._correctLine(beforeNode);
		}
		this._correctPlus(parentObject);
		this._correctLine(parentObject);
		this._correctPlus(Nodes[Count]);
		if (parentObject.childsCount >= 2) {
			this._correctPlus(Nodes[parentObject.childsCount - 2]);
			this._correctLine(Nodes[parentObject.childsCount - 2]);
		}
		if (parentObject.childsCount != 2)
			this._correctPlus(Nodes[0]);
		if (this.tscheck)
			this._correctCheckStates(parentObject);
	}

	return Nodes[Count];
};

dhtmlXTreeObject.prototype.insertNewItem = function(parentId, itemId, itemText, leaf,
		itemActionHandler, image1, image2, image3, optionStr, childs) {
	var parentObject = this._globalIdStorageFind(parentId);
	if (!parentObject)
		return (-1);
	return this._attachChildNode(parentObject, itemId, itemText, leaf,
			itemActionHandler, image1, image2, image3, optionStr, childs);
};

dhtmlXTreeObject.prototype._parseXMLTree = function(dhtmlObject, node,
		parentId, level) {
	dhtmlObject.XMLloadingWarning = 1;
	var nodeAskingCall = "";
	if (!node) {
		node = dhtmlObject.XMLLoader.getXMLTopNode("tree");
		parentId = node.getAttribute("id");
		dhtmlObject.setCheckList = "";
	}

	for ( var i = 0; i < node.childNodes.length; i++) {
		if ((node.childNodes[i].nodeType == 1)
				&& (node.childNodes[i].tagName == "item")) {
			var name = node.childNodes[i].getAttribute("text");
			var cId = node.childNodes[i].getAttribute("id");

			var im0 = node.childNodes[i].getAttribute("im0");
			var im1 = node.childNodes[i].getAttribute("im1");
			var im2 = node.childNodes[i].getAttribute("im2");

			var aColor = node.childNodes[i].getAttribute("aCol");
			var sColor = node.childNodes[i].getAttribute("sCol");

			var chd = node.childNodes[i].getAttribute("child");

			var atop = node.childNodes[i].getAttribute("top");
			var aopen = node.childNodes[i].getAttribute("open");
			var aselect = node.childNodes[i].getAttribute("select");
			var acall = node.childNodes[i].getAttribute("call");
			var achecked = node.childNodes[i].getAttribute("checked");
			var closeable = node.childNodes[i].getAttribute("closeable");
			
			var leaf = node.childNodes[i].getAttribute("leaf");
			
			var zST = "";
			if (aselect)
				zST += ",SELECT";
			if (atop)
				zST += ",TOP";
			if (acall)
				nodeAskingCall = cId;
			if (achecked)
				zST += ",CHECKED";
			if ((aopen) && (aopen != "0"))
				zST += ",OPEN";

			var temp = dhtmlObject._globalIdStorageFind(parentId);
			temp.XMLload = 1;
			dhtmlObject.insertNewItem(parentId, cId, name, leaf, 0, im0, im1, im2,
					zST, chd);
			if (dhtmlObject.parserExtension)
				dhtmlObject.parserExtension._parseExtension(node.childNodes[i],
						dhtmlObject.parserExtension, cId, parentId);
			dhtmlObject.setItemColor(cId, aColor, sColor);
			
			if ((closeable == "0") || (closeable == "1"))
				dhtmlObject.setItemCloseable(cId, closeable);
			
			/*if ((leaf == "0") || (leaf == "1"))
				dhtmlObject.setItemLeaf(cId, leaf);*/
			
			var zcall = dhtmlObject._parseXMLTree(dhtmlObject,
					node.childNodes[i], cId, 1);
			if (zcall != "")
				nodeAskingCall = zcall;
		} else if ((node.childNodes[i].nodeType == 1)
				&& (node.childNodes[i].tagName == "userdata")) {
			var name = node.childNodes[i].getAttribute("name");
			if ((name) && (node.childNodes[i].childNodes[0])) {
				dhtmlObject.setUserData(parentId, name,
						node.childNodes[i].childNodes[0].data);
			};
		};
	};

	if (!level) {
		dhtmlObject.lastLoadedXMLId = parentId;
		dhtmlObject._redrawFrom(dhtmlObject);
		dhtmlObject.XMLloadingWarning = 0;
		var chArr = dhtmlObject.setCheckList.split(",");
		for ( var n = 0; n < chArr.length; n++)
			if (chArr[n])
				dhtmlObject.setCheck(chArr[n], 1);
		if (nodeAskingCall != "")
			dhtmlObject.selectItem(nodeAskingCall, true);
		
		if ( dhtmlObject.parseXmlCallback ) dhtmlObject.parseXmlCallback();
	}

	return nodeAskingCall;
};

dhtmlXTreeObject.prototype._redrawFrom = function(dhtmlObject, itemObject) {
	if (!itemObject) {
		var tempx = dhtmlObject
				._globalIdStorageFind(dhtmlObject.lastLoadedXMLId);
		dhtmlObject.lastLoadedXMLId = -1;
		if (!tempx)
			return 0;
	} else
		tempx = itemObject;
	for ( var i = 0; i < tempx.childsCount; i++) {
		if (!itemObject)
			tempx.childNodes[i].htmlNode.parentNode.parentNode.style.display = "";
		if (tempx.childNodes[i].openMe == 1)
			for ( var zy = 0; zy < tempx.childNodes[i].childNodes.length; zy++)
				tempx.childNodes[i].htmlNode.childNodes[0].childNodes[zy + 1].style.display = "";
		dhtmlObject._redrawFrom(dhtmlObject, tempx.childNodes[i]);
		dhtmlObject._correctLine(tempx.childNodes[i]);
		dhtmlObject._correctPlus(tempx.childNodes[i]);
	}
	;
	dhtmlObject._correctLine(tempx);
	dhtmlObject._correctPlus(tempx);
};

dhtmlXTreeObject.prototype._createSelf = function() {
	var div = document.createElement('div');
	div.className = "containerTableStyle";
	div.style.width = this.width;
	div.style.height = this.height;
	this.parentObject.appendChild(div);
	return div;
};

dhtmlXTreeObject.prototype._xcloseAll = function(itemObject) {
	if (this.rootId != itemObject.id)
		this._HideShow(itemObject, 1);
	for ( var i = 0; i < itemObject.childsCount; i++)
		this._xcloseAll(itemObject.childNodes[i]);
};

dhtmlXTreeObject.prototype._xopenAll = function(itemObject) {
	this._HideShow(itemObject, 2);
	for ( var i = 0; i < itemObject.childsCount; i++)
		this._xopenAll(itemObject.childNodes[i]);
};

dhtmlXTreeObject.prototype._correctPlus = function(itemObject) {
	var workArray = this.lineArray;
	if ((this.XMLsource) && (!itemObject.XMLload)) {
		var workArray = this.plusArray;
		itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src = this.imPath
				+ itemObject.images[2];
	} else
		try {
			if (itemObject.childsCount) {
				if (itemObject.htmlNode.childNodes[0].childNodes[1].style.display != "none") {
					var workArray = this.minusArray;
					itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src = this.imPath
							+ itemObject.images[1];
				} else {
					var workArray = this.plusArray;
					itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src = this.imPath
							+ itemObject.images[2];
				}
			} else {
				itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src = this.imPath
						+ itemObject.images[0];
			}
		} catch (e) {
		}
	;

	var tempNum = 2;
	if (!itemObject.treeNod.treeLinesOn)
		itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[0].childNodes[0].src = this.imPath
				+ workArray[3];
	else {
		if (itemObject.parentObject)
			tempNum = this._getCountStatus(itemObject.id,
					itemObject.parentObject);
		itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[0].childNodes[0].src = this.imPath
				+ workArray[tempNum];
	}
};

dhtmlXTreeObject.prototype._correctLine = function(itemObject) {
	var sNode = itemObject.parentObject;
	try {
		if (sNode)
			if ((this._getLineStatus(itemObject.id, sNode) == 0)
					|| (!this.treeLinesOn)) {
				for ( var i = 1; i <= itemObject.childsCount; i++) {
					itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundImage = "";
					itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundRepeat = "";
				}
			} else
				for ( var i = 1; i <= itemObject.childsCount; i++) {
					itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundImage = "url("
							+ this.imPath + "line1.gif)";
					itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundRepeat = "repeat-y";
				}
	} catch (e) {
	}
	;
};

dhtmlXTreeObject.prototype._getCountStatus = function(itemId, itemObject) {
	try {
		if (itemObject.childsCount <= 1) {
			if (itemObject.id == this.rootId)
				return 4;
			else
				return 0;
		}

		if (itemObject.htmlNode.childNodes[0].childNodes[1].nodem.id == itemId)
			if (!itemObject.id)
				return 2;
			else
				return 1;
		if (itemObject.htmlNode.childNodes[0].childNodes[itemObject.childsCount].nodem.id == itemId)
			return 0;
	} catch (e) {
	}
	;
	return 1;
};

dhtmlXTreeObject.prototype._getLineStatus = function(itemId, itemObject) {
	if (itemObject.htmlNode.childNodes[0].childNodes[itemObject.childsCount].nodem.id == itemId)
		return 0;
	return 1;
}

dhtmlXTreeObject.prototype._HideShow = function(itemObject, mode) {
	if (((this.XMLsource) && (!itemObject.XMLload)) && (!mode)) {
		itemObject.XMLload = 1;
		this.loadXML(this.XMLsource + getUrlSymbol(this.XMLsource) + "id="
				+ escape(itemObject.id));
		return;
	}
	;
	var Nodes = itemObject.htmlNode.childNodes[0].childNodes;
	var Count = Nodes.length;
	if (Count > 1) {
		if (((Nodes[1].style.display != "none") || (mode == 1)) && (mode != 2))
			nodestyle = "none";
		else
			nodestyle = "";
		for ( var i = 1; i < Count; i++)
			Nodes[i].style.display = nodestyle;
	}
	this._correctPlus(itemObject);
}

dhtmlXTreeObject.prototype._getOpenState = function(itemObject) {
	var z = itemObject.htmlNode.childNodes[0].childNodes;
	if (z.length <= 1)
		return 0;
	if (z[1].style.display != "none")
		return 1;
	else
		return -1;
}

dhtmlXTreeObject.prototype.onRowClick2 = function() {
	if (this.parentObject.treeNod.dblclickFuncHandler)
		if (!this.parentObject.treeNod
				.dblclickFuncHandler(this.parentObject.id))
			return 0;
	if ((this.parentObject.closeble) && (this.parentObject.closeble != "0"))
		this.parentObject.treeNod._HideShow(this.parentObject);
	else
		this.parentObject.treeNod._HideShow(this.parentObject, 2);
};

dhtmlXTreeObject.prototype.onRowClick = function() {
	if (this.parentObject.treeNod.openFuncHandler)
		if (!this.parentObject.treeNod.openFuncHandler(this.parentObject.id,
				this.parentObject.treeNod._getOpenState(this.parentObject)))
			return 0;
	if ((this.parentObject.closeble) && (this.parentObject.closeble != "0"))
		this.parentObject.treeNod._HideShow(this.parentObject);
	else
		this.parentObject.treeNod._HideShow(this.parentObject, 2);
};

dhtmlXTreeObject.prototype.onRowSelect = function(e, htmlObject, mode) {
	if (!htmlObject)
		htmlObject = this;
	htmlObject.childNodes[0].className = "selectedTreeRow";
	if (htmlObject.parentObject.scolor)
		htmlObject.parentObject.span.style.color = htmlObject.parentObject.scolor;
	if ((htmlObject.parentObject.treeNod.lastSelected)
			&& (htmlObject.parentObject.treeNod.lastSelected != htmlObject)) {
		htmlObject.parentObject.treeNod.lastSelected.childNodes[0].className = "standartTreeRow";
		if (htmlObject.parentObject.treeNod.lastSelected.parentObject.acolor)
			htmlObject.parentObject.treeNod.lastSelected.parentObject.span.style.color = htmlObject.parentObject.treeNod.lastSelected.parentObject.acolor;
	}
	htmlObject.parentObject.treeNod.lastSelected = htmlObject;
	if (!mode) {
		if (htmlObject.parentObject.actionHandler)
			htmlObject.parentObject.actionHandler(htmlObject.parentObject.id);
	}
};

dhtmlXTreeObject.prototype._correctCheckStates = function(dhtmlObject) {
	if (!this.tscheck)
		return;
	if (dhtmlObject.id == this.rootId)
		return;
	var act = dhtmlObject.htmlNode.childNodes[0].childNodes;
	var flag1 = 0;
	var flag2 = 0;
	if (act.length < 2)
		return;
	for ( var i = 1; i < act.length; i++)
		if (act[i].nodem.checkstate == 0)
			flag1 = 1;
		else if (act[i].nodem.checkstate == 1)
			flag2 = 1;
		else {
			flag1 = 1;
			flag2 = 1;
			break;
		}

	if ((flag1) && (flag2))
		this._setCheck(dhtmlObject, "notsure");
	else if (flag1)
		this._setCheck(dhtmlObject, false);
	else
		this._setCheck(dhtmlObject, true);

	this._correctCheckStates(dhtmlObject.parentObject);
}

dhtmlXTreeObject.prototype.onCheckBoxClick = function(e) {
	if (this.treeNod.tscheck)
		if (this.parentObject.checkstate == 1)
			this.treeNod._setSubChecked(false, this.parentObject);
		else
			this.treeNod._setSubChecked(true, this.parentObject);
	else if (this.parentObject.checkstate == 1)
		this.treeNod._setCheck(this.parentObject, false);
	else
		this.treeNod._setCheck(this.parentObject, true);
	this.treeNod._correctCheckStates(this.parentObject.parentObject);
	if (this.treeNod.checkFuncHandler)
		return (this.treeNod.checkFuncHandler(this.parentObject.id,
				this.parentObject.checkstate));
	else
		return true;
};

dhtmlXTreeObject.prototype._createItem = function(acheck, itemObject, mode) {
	var table = document.createElement('table');
	table.cellSpacing = 0;
	table.cellPadding = 0;
	table.border = 0;
	table.className = "dhtmlX";
	if (this.hfMode)
		table.style.tableLayout = "fixed";
	table.style.margin = 0;
	table.style.padding = 0;

	var tbody = document.createElement('tbody');
	var tr = document.createElement('tr');
	var td1 = document.createElement('td');
	
	
	var td2 = document.createElement('td');
	
	
	td1.className = "standartTreeImage";
	var img0 = document.createElement("img");
	img0.border = "0";

	td1.appendChild(img0);
	img0.style.padding = 0;
	var td11 = document.createElement('td');
	var inp = document.createElement("img");
	inp.checked = 0;
	inp.src = this.imPath + this.checkArray[0];
	inp.style.width = "16px";
	inp.style.height = "16px";
	//alert(itemObject.label);
	// Hack here
	if (!acheck)
		inp.style.display = "none";

	nodelevel = this._getNodeLevel(itemObject, 0);
	if (this._getNodeLevel(itemObject, 0) == this.levelCheckBoxesOff)
		inp.style.display = "none";
	//alert(nodelevel);
	// Hack here
	//itemObject.leaf = 123;
	//alert(itemObject.leaf);
	if (itemObject.leaf == 1
			&& nodelevel == 2
			&& this.offCheckBoxOnLeaf == true)
		inp.style.display = "none";

	td11.appendChild(inp);
	td11.width = "16px";
	inp.onclick = this.onCheckBoxClick;
	inp.treeNod = this;
	inp.parentObject = itemObject;

	var td12 = document.createElement('td');
	td12.className = "standartTreeImage";
	var img = document.createElement("img");
	img.onmousedown = this._preventNsDrag;
	img.border = "0";
	// MEGA!!! Hack Image Off :)
	/*
	 * if(!mode)
	 * 	img.src=this.imPath+this.imageArray[0];
	 * td12.appendChild(img);
	 * img.style.padding=0;
	 * img.style.margin=0;
	 */

	if (this.timgen) {
		img.style.width = "18px";
		img.style.height = "18px";
	} else {
		img.style.width = "0px";
		img.style.height = "0px";
	}

	var td2 = document.createElement('td');
	td2.noWrap = true;
	itemObject.span = document.createElement('span');
	itemObject.span.className = "standartTreeRow";
	td2.style.width = "100%";
	
	
	var td3 = document.createElement('td');
	td3.noWrap = true;
	itemObject.span = document.createElement('span');
	itemObject.span.className = "standartTreeRow";
	td3.style.width = "200px";
	td3.style.borderBottom = "1px solid";
	td3.innerHTML = "123";
	td3.align = "right";
	
	
	itemObject.span.appendChild(document.createTextNode(itemObject.label));
	td2.appendChild(itemObject.span);
	td2.parentObject = itemObject;
	td1.parentObject = itemObject;
	td2.onclick = this.onRowSelect;
	td1.onclick = this.onRowClick;	
	td2.onclick = this.onRowClick2;

	if (this.dragAndDropOff)
		this.dragger.addDraggableItem(td2, this);

	td2.style.verticalAlign = "";
	td2.style.cursor = this.style_pointer;
	tr.appendChild(td1);
	tr.appendChild(td11);
	tr.appendChild(td12);
	tr.appendChild(td2);
	
	//tr.appendChild(td3);
	
	tbody.appendChild(tr);
	table.appendChild(tbody);
	return table;
};

dhtmlXTreeObject.prototype.setImagePath = function(newPath) {
	this.imPath = newPath;
};

dhtmlXTreeObject.prototype.setOnClickHandler = function(func) {
	if (typeof (func) == "function")
		this.aFunc = func;
	else
		this.aFunc = eval(func);
};

dhtmlXTreeObject.prototype.setXMLAutoLoading = function(filePath) {
	this.XMLsource = filePath;
};

dhtmlXTreeObject.prototype.setOnCheckHandler = function(func) {
	if (typeof (func) == "function")
		this.checkFuncHandler = func;
	else
		this.checkFuncHandler = eval(func);
};

dhtmlXTreeObject.prototype.setOnOpenHandler = function(func) {
	if (typeof (func) == "function")
		this.openFuncHandler = func;
	else
		this.openFuncHandler = eval(func);
};

dhtmlXTreeObject.prototype.setOnDblClickHandler = function(func) {
	if (typeof (func) == "function")
		this.dblclickFuncHandler = func;
	else
		this.dblclickFuncHandler = eval(func);
};

dhtmlXTreeObject.prototype.openAllItems = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	this._xopenAll(temp);
};

dhtmlXTreeObject.prototype.getOpenState = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return "";
	return this._getOpenState(temp);
};

dhtmlXTreeObject.prototype.closeAllItems = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	this._xcloseAll(temp);
};

dhtmlXTreeObject.prototype.setUserData = function(itemId, name, value) {
	var sNode = this._globalIdStorageFind(itemId);
	if (!sNode)
		return;
	if (name == "hint")
		sNode.htmlNode.childNodes[0].childNodes[0].title = value;
	sNode[name] = value;
};

dhtmlXTreeObject.prototype.getUserData = function(itemId, name) {
	var sNode = this._globalIdStorageFind(itemId);
	if (!sNode)
		return;
	return eval("sNode." + name);
};

dhtmlXTreeObject.prototype.getSelectedItemId = function() {
	if (this.lastSelected)
		if (this._globalIdStorageFind(this.lastSelected.parentObject.id))
			return this.lastSelected.parentObject.id;
	return ("");
};

dhtmlXTreeObject.prototype.getItemColor = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;

	var res = new Object();
	if (temp.acolor)
		res.acolor = temp.acolor;
	if (temp.acolor)
		res.scolor = temp.scolor;
	return res;
};

dhtmlXTreeObject.prototype.setItemColor = function(itemId, defaultColor,
		selectedColor) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	else {
		if ((this.lastSelected)
				&& (temp.tr == this.lastSelected.parentObject.tr)) {
			if (selectedColor)
				temp.span.style.color = selectedColor;
		} else {
			if (defaultColor)
				temp.span.style.color = defaultColor;
		}

		if (selectedColor)
			temp.scolor = selectedColor;
		if (defaultColor)
			temp.acolor = defaultColor;
	}
};

dhtmlXTreeObject.prototype.getItemText = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	return (temp.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0].innerHTML);
};

dhtmlXTreeObject.prototype.getParentId = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if ((!temp) || (!temp.parentObject))
		return "";
	return temp.parentObject.id;
};

dhtmlXTreeObject.prototype.changeItemId = function(itemId, newItemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	temp.id = newItemId;
	for ( var i = 0; i < this._globalIdStorageSize; i++)
		if (this._globalIdStorage[i] == itemId) {
			this._globalIdStorage[i] = newItemId;
		}
};

dhtmlXTreeObject.prototype.doCut = function() {
	if (this.nodeCut)
		this.clearCut();
	this.nodeCut = this.lastSelected;
	if (this.nodeCut) {
		var tempa = this.nodeCut.parentObject;
		this.cutImg[0] = tempa.images[0];
		this.cutImg[1] = tempa.images[1];
		this.cutImg[2] = tempa.images[2];
		tempa.images[0] = tempa.images[1] = tempa.images[2] = this.cutImage;
		this._correctPlus(tempa);
	}
};

dhtmlXTreeObject.prototype.doPaste = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	if (this.nodeCut) {
		if ((!this._checkParenNodes(this.nodeCut.parentObject.id, temp))
				&& (id != this.nodeCut.parentObject.parentObject.id))
			this._moveNode(temp, this.nodeCut.parentObject);
		this.clearCut();
	}
};

dhtmlXTreeObject.prototype.clearCut = function() {
	if (this.nodeCut) {
		var tempa = this.nodeCut.parentObject;
		tempa.images[0] = this.cutImg[0];
		tempa.images[1] = this.cutImg[1];
		tempa.images[2] = this.cutImg[2];
		if (tempa.parentObject)
			this._correctPlus(tempa);
		if (tempa.parentObject)
			this._correctLine(tempa);
		this.nodeCut = 0;
	}
};

dhtmlXTreeObject.prototype._moveNode = function(itemObject, targetObject) {
	if (this.dragFunc)
		if (!this.dragFunc(itemObject.id, targetObject.id))
			return false;
	if ((targetObject.XMLload == 0) && (this.XMLsource)) {
		targetObject.XMLload = 1;
		this.loadXML(this.XMLsource + getUrlSymbol(this.XMLsource) + "id="
				+ escape(targetObject.id));
	}
	this.openItem(targetObject.id);
	var oldTree = itemObject.treeNod;
	var c = itemObject.parentObject.childsCount;
	var z = itemObject.parentObject;
	var Count = targetObject.childsCount;
	var Nodes = targetObject.childNodes;
	Nodes[Count] = itemObject;
	itemObject.treeNod = targetObject.treeNod;
	targetObject.childsCount++;

	var tr = this._drawNewTr(Nodes[Count].htmlNode);
	targetObject.htmlNode.childNodes[0].appendChild(tr);

	itemObject.parentObject.htmlNode.childNodes[0].removeChild(itemObject.tr);

	for ( var i = 0; i < z.childsCount; i++)
		if (z.childNodes[i].id == itemObject.id) {
			z.childNodes[i] = 0;
			break;
		}
	oldTree._compressChildList(z.childsCount, z.childNodes);
	z.childsCount--;
	itemObject.tr = tr;
	tr.nodem = itemObject;

	itemObject.parentObject = targetObject;
	if (oldTree != targetObject.treeNod) {
		if (itemObject.treeNod._registerBranch(itemObject, oldTree))
			return;
		this._clearStyles(itemObject);
	}
	;

	if (c > 1) {
		oldTree._correctPlus(z.childNodes[c - 2]);
		oldTree._correctLine(z.childNodes[c - 2]);
	}
	this._correctPlus(targetObject);
	this._correctLine(targetObject);
	oldTree._correctPlus(z);
	this._correctLine(itemObject);
	this._correctPlus(Nodes[Count]);
	if (targetObject.childsCount >= 2) {
		this._correctPlus(Nodes[targetObject.childsCount - 2]);
		this._correctLine(Nodes[targetObject.childsCount - 2]);
	}
	if (this.tscheck)
		this._correctCheckStates(targetObject);
	if (oldTree.tscheck)
		oldTree._correctCheckStates(z);
	return true;
};

dhtmlXTreeObject.prototype._checkParenNodes = function(itemId, htmlObject,
		shtmlObject) {
	if (shtmlObject) {
		if (shtmlObject.parentObject.id == htmlObject.id)
			return 1;
	}
	if (htmlObject.id == itemId)
		return 1;
	if (htmlObject.parentObject)
		return this._checkParenNodes(itemId, htmlObject.parentObject);
	else
		return 0;
};

dhtmlXTreeObject.prototype._clearStyles = function(itemObject) {
	var td1 = itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[1];
	var td3 = td1.nextSibling.nextSibling;
	// Hack Andrew if tlevel where checkboxes is off
	if (this.checkBoxOff) {
		td1.childNodes[0].style.display = "";
		td1.childNodes[0].onclick = this.onCheckBoxClick;
	} else
		td1.childNodes[0].style.display = "none";
	td1.childNodes[0].treeNod = this;

	this.dragger.removeDraggableItem(td3);
	if (this.dragAndDropOff)
		this.dragger.addDraggableItem(td3, this);
	td3.childNodes[0].className = "standartTreeRow";
	td3.onclick = this.onRowSelect;
	td3.ondblclick = this.onRowClick2;
	td1.previousSibling.onclick = this.onRowClick;

	this._correctLine(itemObject);
	this._correctPlus(itemObject);
	for ( var i = 0; i < itemObject.childsCount; i++)
		this._clearStyles(itemObject.childNodes[i]);
};

dhtmlXTreeObject.prototype._registerBranch = function(itemObject, oldTree) {

	itemObject.id = this._globalIdStorageAdd(itemObject.id, itemObject);
	itemObject.treeNod = this;
	if (oldTree)
		oldTree._globalIdStorageSub(itemObject.id);
	for ( var i = 0; i < itemObject.childsCount; i++)
		this._registerBranch(itemObject.childNodes[i], oldTree);
	return 0;
};

dhtmlXTreeObject.prototype.enableThreeStateCheckboxes = function(mode) {
	this.tscheck = convertStringToBoolean(mode);
};

dhtmlXTreeObject.prototype.enableTreeImages = function(mode) {
	this.timgen = convertStringToBoolean(mode);
};

dhtmlXTreeObject.prototype.enableFixedMode = function(mode) {
	this.hfMode = convertStringToBoolean(mode);
};

dhtmlXTreeObject.prototype.enableCheckBoxes = function(mode) {
	this.checkBoxOff = convertStringToBoolean(mode);
};

dhtmlXTreeObject.prototype.levelCheckBoxesOff = function(level) {
	this.levelCheckBoxesOff = level;
};

dhtmlXTreeObject.prototype.offCheckBoxOnLeaf = function(mode) {
	this.offCheckBoxOnLeaf = (convertStringToBoolean(mode));
};

dhtmlXTreeObject.prototype.setStdImages = function(image1, image2, image3) {
	this.imageArray[0] = image1;
	this.imageArray[1] = image2;
	this.imageArray[2] = image3;
};

dhtmlXTreeObject.prototype.enableTreeLines = function(mode) {
	this.treeLinesOn = convertStringToBoolean(mode);
}

dhtmlXTreeObject.prototype.setImageArrays = function(arrayName, image1, image2,
		image3, image4, image5) {
	switch (arrayName) {
	case "plus":
		this.plusArray[0] = image1;
		this.plusArray[1] = image2;
		this.plusArray[2] = image3;
		this.plusArray[3] = image4;
		this.plusArray[4] = image5;
		break;
	case "minus":
		this.minusArray[0] = image1;
		this.minusArray[1] = image2;
		this.minusArray[2] = image3;
		this.minusArray[3] = image4;
		this.minusArray[4] = image5;
		break;
	}
};

dhtmlXTreeObject.prototype.openItem = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	this._HideShow(temp, 2);
	if ((temp.parentObject) && (this._getOpenState(temp.parentObject) < 0))
		this.openItem(temp.parentObject.id);
};

dhtmlXTreeObject.prototype.closeItem = function(itemId) {
	if (this.rootId == itemId)
		return 0;
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	if (temp.closeble)
		this._HideShow(temp, 1);
};

dhtmlXTreeObject.prototype.getLevel = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	return this._getNodeLevel(temp, 0);
};

dhtmlXTreeObject.prototype.setItemCloseable = function(itemId, flag) {
	flag = convertStringToBoolean(flag);
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	temp.closeble = flag;
};

dhtmlXTreeObject.prototype.setItemLeaf = function(itemId, flag) {
	flag = convertStringToBoolean(flag);
	var temp = this._globalIdStorageFind(itemId);// alert(temp.leaf);
	if (!temp)
		return 0;
	temp.leaf = flag;	
};


dhtmlXTreeObject.prototype._getNodeLevel = function(itemObject, count) {
	if (itemObject.parentObject)
		return this._getNodeLevel(itemObject.parentObject, count + 1);
	return (count);
};

dhtmlXTreeObject.prototype.hasChildren = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	else {
		if ((this.XMLsource) && (!temp.XMLload))
			return true;
		else
			return temp.childsCount;
	}
	;
};

dhtmlXTreeObject.prototype.setItemText = function(itemId, newLabel) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	temp.label = newLabel;
	temp.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0].innerHTML = newLabel;
};

dhtmlXTreeObject.prototype.refreshItem = function(itemId) {
	if (!itemId)
		itemId = this.rootId;
	var temp = this._globalIdStorageFind(itemId);
	this.deleteChildItems(itemId);
	this.loadXML(this.XMLsource + getUrlSymbol(this.XMLsource) + "id="
			+ escape(itemId));
};

dhtmlXTreeObject.prototype.setItemImage2 = function(itemId, image1, image2,
		image3) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	temp.images[1] = image2;
	temp.images[2] = image3;
	temp.images[0] = image1;
	this._correctPlus(temp);
};

dhtmlXTreeObject.prototype.setItemImage = function(itemId, image1, image2) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	if (image2) {
		temp.images[1] = image1;
		temp.images[2] = image2;
	} else
		temp.images[0] = image1;
	this._correctPlus(temp);
};

dhtmlXTreeObject.prototype.getSubItems = function(itemId) {
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;

	var z = "";
	for (i = 0; i < temp.childsCount; i++)
		if (!z)
			z = temp.childNodes[i].id;
		else
			z += "," + temp.childNodes[i].id;
	return z;
};

dhtmlXTreeObject.prototype.getAllSubItems = function(itemId) {
	return this._getAllSubItems(itemId);
}

dhtmlXTreeObject.prototype._getAllSubItems = function(itemId, z, node) {
	if (node)
		temp = node;
	else {
		var temp = this._globalIdStorageFind(itemId);
	}
	;
	if (!temp)
		return 0;

	z = "";
	for ( var i = 0; i < temp.childsCount; i++) {
		if (!z)
			z = temp.childNodes[i].id;
		else
			z += "," + temp.childNodes[i].id;
		var zb = this._getAllSubItems(0, z, temp.childNodes[i])
		if (zb)
			z += "," + zb;
	}
	return z;
};

dhtmlXTreeObject.prototype.selectItem = function(itemId, mode) {
	mode = convertStringToBoolean(mode);
	var temp = this._globalIdStorageFind(itemId);
	if (!temp)
		return 0;
	if (this._getOpenState(temp.parentObject) == -1)
		this.openItem(itemId);
	if (mode)
		this.onRowSelect(0,
				temp.htmlNode.childNodes[0].childNodes[0].childNodes[3], false);
	else
		this.onRowSelect(0,
				temp.htmlNode.childNodes[0].childNodes[0].childNodes[3], true);
};

dhtmlXTreeObject.prototype.getSelectedItemText = function() {
	if (this.lastSelected)
		return this.lastSelected.parentObject.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0].innerHTML;
	else
		return ("");
};

dhtmlXTreeObject.prototype._compressChildList = function(Count, Nodes) {
	Count--;
	for ( var i = 0; i < Count; i++) {
		if (Nodes[i] == 0) {
			Nodes[i] = Nodes[i + 1];
			Nodes[i + 1] = 0;
		}
	}
	;
};

dhtmlXTreeObject.prototype._deleteNode = function(itemId, htmlObject, skip) {

	if (!skip) {
		this._globalIdStorageRecSub(htmlObject);
	}

	if ((!htmlObject) || (!htmlObject.parentObject))
		return 0;
	var tempos = 0;
	var tempos2 = 0;
	if (htmlObject.tr.nextSibling)
		tempos = htmlObject.tr.nextSibling.nodem;
	if (htmlObject.tr.previousSibling)
		tempos2 = htmlObject.tr.previousSibling.nodem;

	var sN = htmlObject.parentObject;
	var Count = sN.childsCount;
	var Nodes = sN.childNodes;
	for ( var i = 0; i < Count; i++) {
		if (Nodes[i].id == itemId) {
			if (!skip)
				sN.htmlNode.childNodes[0].removeChild(Nodes[i].tr);
			Nodes[i] = 0;
			break;
		}
	}
	this._compressChildList(Count, Nodes);
	if (!skip) {
		sN.childsCount--;
	}

	if (tempos) {
		this._correctPlus(tempos);
		this._correctLine(tempos);
	}
	if (tempos2) {
		this._correctPlus(tempos2);
		this._correctLine(tempos2);
	}
	if (this.tscheck)
		this._correctCheckStates(sN);
};

dhtmlXTreeObject.prototype.setCheck = function(itemId, state) {
	state = convertStringToBoolean(state);
	var sNode = this._globalIdStorageFind(itemId);
	if (!sNode)
		return;
	// Andrew hack
	
	// if(!this.tscheck) return this._setSubChecked(state,sNode); else
	 
	this._setCheck(sNode, state);
	this._correctCheckStates(sNode.parentObject);
};

dhtmlXTreeObject.prototype._setCheck = function(sNode, state) {
	var z = sNode.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0];
	if (state == "notsure")
		sNode.checkstate = 2;
	else if (state)
		sNode.checkstate = 1;
	else
		sNode.checkstate = 0;

	z.src = this.imPath + this.checkArray[sNode.checkstate];
};

dhtmlXTreeObject.prototype.setSubChecked = function(itemId, state) {
	var sNode = this._globalIdStorageFind(itemId);
	this._setSubChecked(state, sNode);
	this._correctCheckStates(sNode.parentObject);
}

dhtmlXTreeObject.prototype._setSubChecked = function(state, sNode) {
	state = convertStringToBoolean(state);
	if (!sNode)
		return;
	for ( var i = 0; i < sNode.childsCount; i++) {
		this._setSubChecked(state, sNode.childNodes[i]);
	}
	;
	var z = sNode.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0];
	if (state)
		sNode.checkstate = 1;
	else
		sNode.checkstate = 0;
	z.src = this.imPath + this.checkArray[sNode.checkstate];
};

dhtmlXTreeObject.prototype.isItemChecked = function(itemId) {
	var sNode = this._globalIdStorageFind(itemId);
	if (!sNode)
		return;
	return sNode.checkstate;
};

dhtmlXTreeObject.prototype.getAllChecked = function() {
	return this._getAllChecked("", "", 1);
}

dhtmlXTreeObject.prototype.getAllCheckedBranches = function() {
	return this._getAllChecked("", "", 0);
}

dhtmlXTreeObject.prototype._getAllChecked = function(htmlNode, list, mode) {
	if (!htmlNode)
		htmlNode = this.htmlNode;
	if (((mode) && (htmlNode.checkstate == 1))
			|| ((!mode) && (htmlNode.checkstate > 0))) {
		if (list)
			list += "," + htmlNode.id;
		else
			list = htmlNode.id;
	}
	var j = htmlNode.childsCount;
	for ( var i = 0; i < j; i++) {
		list = this._getAllChecked(htmlNode.childNodes[i], list, mode);
	}
	;
	if (list)
		return list;
	else
		return "";
};

dhtmlXTreeObject.prototype.deleteChildItems = function(itemId) {
	var sNode = this._globalIdStorageFind(itemId);
	if (!sNode)
		return;
	var j = sNode.childsCount;
	for ( var i = 0; i < j; i++) {
		this._deleteNode(sNode.childNodes[0].id, sNode.childNodes[0]);
	}
	;
};

dhtmlXTreeObject.prototype.deleteItem = function(itemId, selectParent) {
	this._deleteItem(itemId, selectParent);
}

dhtmlXTreeObject.prototype._deleteItem = function(itemId, selectParent, skip) {
	selectParent = convertStringToBoolean(selectParent);
	var sNode = this._globalIdStorageFind(itemId);
	if (!sNode)
		return;
	if (selectParent)
		this.selectItem(this.getParentId(this.getSelectedItemId()), 1);
	if (!skip) {
		this._globalIdStorageRecSub(sNode);
	}
	;
	var zTemp = sNode.parentObject;
	this._deleteNode(itemId, sNode, skip);
	this._correctPlus(zTemp);
	this._correctLine(zTemp);
};

dhtmlXTreeObject.prototype._globalIdStorageRecSub = function(itemObject) {
	for ( var i = 0; i < itemObject.childsCount; i++) {
		this._globalIdStorageRecSub(itemObject.childNodes[i]);
		this._globalIdStorageSub(itemObject.childNodes[i].id);
	}
	;
	this._globalIdStorageSub(itemObject.id);
};

dhtmlXTreeObject.prototype.insertNewNext = function(parentItemId, itemId,
		itemName, itemActionHandler, image1, image2, image3, optionStr, childs) {
	var sNode = this._globalIdStorageFind(parentItemId);
	var leaf = 0;
	if (!sNode)
		return (0);
	this._attachChildNode(0, itemId, itemName, leaf, itemActionHandler, image1,
			image2, image3, optionStr, childs, sNode);
};

dhtmlXTreeObject.prototype.getItemIdByIndex = function(itemId, index) {
	var z = this._globalIdStorageFind(itemId);
	if (!z)
		return 0;
	var temp = z.htmlNode.childNodes[0].childNodes[0];
	while (index > 0) {
		temp = temp.nextSibling;
		if ((!temp) || (!temp.nodem))
			return 0;
		index--;
	}
	return temp.nodem.id;
};

dhtmlXTreeObject.prototype.getChildItemIdByIndex = function(itemId, index) {
	var sNode = this._globalIdStorageFind(itemId);
	if (!sNode)
		return (0);
	if (this.hasChildren(itemId) < index)
		return 0;
	return sNode.htmlNode.childNodes[0].childNodes[index].nodem.id;
};

dhtmlXTreeObject.prototype.setDragHandler = function(func) {
	if (typeof (func) == "function")
		this.dragFunc = func;
	else
		this.dragFunc = eval(func);
};

dhtmlXTreeObject.prototype._clearMove = function(htmlNode) {
	if (htmlNode.parentObject.span) {
		htmlNode.parentObject.span.className = 'standartTreeRow';
		if (htmlNode.parentObject.acolor)
			htmlNode.parentObject.span.style.color = htmlNode.parentObject.acolor;
	}
};

dhtmlXTreeObject.prototype.enableDragAndDrop = function(mode) {
	this.dragAndDropOff = convertStringToBoolean(mode);
};

dhtmlXTreeObject.prototype._setMove = function(htmlNode) {
	if (htmlNode.parentObject.span) {
		htmlNode.parentObject.span.className = 'selectedTreeRow';
		if (htmlNode.parentObject.scolor)
			htmlNode.parentObject.span.style.color = htmlNode.parentObject.scolor;
	}
};

dhtmlXTreeObject.prototype._createDragNode = function(htmlObject) {
	dhtmlObject = htmlObject.parentObject;
	if (this.lastSelected)
		this._clearMove(this.lastSelected);
	var dragSpan = document.createElement('div');
	dragSpan.appendChild(document.createTextNode(dhtmlObject.label));
	dragSpan.style.position = "absolute";
	dragSpan.className = "dragSpanDiv";
	return dragSpan;
}

dhtmlXTreeObject.prototype._preventNsDrag = function(e) {
	if ((e) && (e.preventDefault)) {
		e.preventDefault();
		return false;
	}
}

dhtmlXTreeObject.prototype._drag = function(sourceHtmlObject, dhtmlObject,
		targetHtmlObject) {
	if (!targetHtmlObject.parentObject) {
		targetHtmlObject = this.htmlNode.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0];
	} else
		this._clearMove(targetHtmlObject);
	if (dhtmlObject.lastSelected)
		dhtmlObject._setMove(dhtmlObject.lastSelected);
	if ((!this.dragMove) || (this.dragMove()))
		this._moveNode(sourceHtmlObject.parentObject,
				targetHtmlObject.parentObject);

}

dhtmlXTreeObject.prototype._dragIn = function(htmlObject, shtmlObject) {
	if (!htmlObject.parentObject) {

		return htmlObject;
	}
	if ((!this._checkParenNodes(shtmlObject.parentObject.id,
			htmlObject.parentObject, shtmlObject.parentObject))
			&& (htmlObject.parentObject.id != shtmlObject.parentObject.id)) {
		this._setMove(htmlObject);
		if (this._getOpenState(htmlObject.parentObject) < 0)
			this._autoOpenTimer = window.setTimeout(new callerFunction(
					this._autoOpenItem, this), 1000);
		this._autoOpenId = htmlObject.parentObject.id;
		return htmlObject;
	} else
		return 0;
}
dhtmlXTreeObject.prototype._autoOpenItem = function(e, treeObject) {
	treeObject.openItem(treeObject._autoOpenId);
};
dhtmlXTreeObject.prototype._dragOut = function(htmlObject) {
	if (!htmlObject.parentObject)
		return 0;
	this._clearMove(htmlObject);
	if (this._autoOpenTimer)
		clearTimeout(this._autoOpenTimer);
}

