<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>DHTML Tree Special Technics</title>
</head>

<body>
<style>
	body {font-size:14px;line-height:18px;}
	.{font-family:arial;}
	h2 {cursor:pointer;font-size:20px;margin:30px 0px 40px 5px;line-height:10px}
	h3 {cursor:pointer;font-weight:normal;color:blue;text-decoration:underline;line-height:10px}
	h4 {cursor:pointer;font-weight:normal;color:black;text-decoration:underline;line-height:10px}
	.op {cursor:pointer;}
	div.block {margin-left:5px;}
	xmp {color:green;font-size:12px;margin:0px;font-family:courier;background-color:#e6e6fa;padding:2px}
	li {margin-top:2px;}
</style>
<h2 >DHTML Tree Special Technics</h2>
<div class="block">
<!--- Link functionality --->
	
	<a name="spec_link"><h3 >Links in tree</h3
	></a><div style="display:show" class="block">
	Xml for the tree:<br>
<xmp>
<tree..>
	<item ...>
		<userdata name=“myurl“>http://www.google.com</userdata>
		<item ...>
			<userdata name=“myurl“>http://groups.google.com</userdata>
		</item>
	</item>
</xmp>
<br>
there is an event handler for click processing: 
<xmp>
tree.setOnClickHandler(doOnClick);
function doOnClick(nodeId){
	var myUrl = tree.getUserData(nodeId,“myurl“);
	window.open(myUrl);// or frames[“someframe“].location.href = myUrl
}
</xmp>		
	</div>
<!--  -->	
	<a name="spec_dnd_out"><h3 >Drag-n-drop outside tree</h3
	></a><div style="display:show" class="block">
	Any page control can be set as “landing zone”. Here is an example:
<xmp> 
<div id="treeboxbox_tree" style="width:200;height:200"></div>
<input type="text" width="120px" id="sInput">
<script>
tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
tree.setImagePath("../imgs/");

//user defined drag and drop control with event handlers inside
function s_control(){
   	//action occures on drag
   	this._drag=function(sourceHtmlObject,dhtmlObject,targetHtmlObject){
		targetHtmlObject.style.backgroundColor="";
		targetHtmlObject.value=sourceHtmlObject.parentObject.label;
	}
	//action occures on drag moved in landing zone
	this._dragIn=function(htmlObject,shtmlObject){
		htmlObject.style.backgroundColor="#fffacd";
		return htmlObject;
	}
	//action occures on drag moved out landing zone
	this._dragOut=function(htmlObject){ 
		htmlObject.style.backgroundColor="";
		return this;
	}
}
//set input control as “landing zone”
tree.dragger.addDragLanding(document.getElementById('sInput'), new s_control); 
</script>
</xmp>
	</div>






</div>
</body>
</html>