YAHOO.namespace('phpmanual');
YAHOO.phpmanual.tree = function(id) {

	this.tree = new YAHOO.widget.TreeView(id);

	YAHOO.phpmanual.tree.prototype.mkTreeByArray = function (treeData,treeNode){
		if(!treeNode)treeNode = this.tree.getRoot(); 
		for (var i = 0, l = treeData.length; i < l; i++) {
			if(!(treeData[i][0]=="_open"||treeData[i][0]=="_close"||treeData[i][0]=="_load")){

				if(treeData[i][0]){
					var tmpNode = new YAHOO.widget.TextNode("" + treeData[i][0],treeNode, false);

					if(typeof treeData[i][1] == "string"){ tmpNode.href= treeData[i][1]; }
					else if(typeof treeData[i][1] == "object"){
						YAHOO.phpmanual.loadTreeData(this,tmpNode,treeData[i]);
					}
				}
			}
		}
		this.tree.draw();
	}
}

getResponse = function(oj) {
	data = eval("(" + oj.responseText + ")");
	this.mkTreeByArray(data,oj.argument.node); 
} 

YAHOO.phpmanual.loadTreeData = function(oj,tmpNode,treeDataFrg){
	if (!!YAHOO.util.Connect) {
		if (treeDataFrg[1][1]) {
			tmpNode.method = "GET";
			tmpNode.url = treeDataFrg[1][1];
		}

		tmpNode.setDynamicLoad(
				function (node,onCompleteCallback ) {
					var delay = YAHOO.phpmanual.loadTreeData.delay;
					setTimeout(onCompleteCallback, delay);
				}
		);

		oj.tree.onExpand = function(node) {
				if (node.children.length <= 0) {
					if (tree_data_for_recursive[node.url]) {
						test1.mkTreeByArray(tree_data_for_recursive[node.url], node);
					} else {
						YAHOO.util.Connect.asyncRequest(node.method,node.url, {
								argument:{'node':node}, scope:oj, success: getResponse
							},null);
					}
				}
		}

		tmpNode.loadComplete = function() {

			this.getChildrenEl().innerHTML = this.completeRender();
			this.dynamicLoadComplete = true;
			this.isLoading = false;
			this.expand();
			this.tree.locked = false;

			if (recursive_list[recursive_count]) {
				YAHOO.widget.TreeView.getNode(tree_id, recursive_list[recursive_count]).toggle();
				recursive_count++;
			} else {
				if (category_num) {
					var obj = document.getElementById('ygtv' + category_num);

					document.getElementById(tree_id).scrollTop = Position.cumulativeOffset(obj)[1] - Position.cumulativeOffset(document.getElementById(tree_id))[1];
					document.getElementById('ygtvlabelel' + category_num).style.color = 'red';
					category_num = 0;
				}
			}
		}
	}
}

function add_note() {
	document.getElementById('usernote-add-box').style.display = 'block';
}

function popup_phpmanual_func (func_name, ev) {
	var div_el = document.getElementById('popup_phpmanual_func');
	if (!div_el) {
		div_el = document.createElement('div');
		document.body.appendChild(div_el);
		div_el.id = 'popup_phpmanual_func';
		div_el.style.position = 'absolute';

		// new Draggable('popup_phpmanual_func');

	}
	div_el.style.display = 'none';

	if (!window.createPopup) {
		x = ev.pageX;
		y = ev.pageY + 10;
	} else {
		x = ev.clientX + document.documentElement.scrollLeft;
		y = ev.clientY + document.documentElement.scrollTop + 10;
	}
	div_el.style.top = y + "px";
	div_el.style.left = x + "px";

	var desc = phpmanual_func_list[func_name];
	if (desc) {
		popup_phpmanual_func_set_desc(func_name, desc['body']);
		div_el.style.display = 'block';
	} else {
		  $.ajax( {
			    type : "GET",
			    url : "/phpmanual/php_ajax_func/" + func_name + ".html",
			    success : function(txt) {
			  popup_phpmanual_func_success(txt);
 		        },
 		        error : function() {
 		           alert('Function Read Error!');
 		         } 		        
			  });
    
		// new Ajax.Request(
		// 	'../php_ajax_func/' + func_name + '.html',
		// 	{
		// 		method: 'get', 
		// 		onComplete: popup_phpmanual_func_success
		// 	}
		// );
	}
}

function popup_phpmanual_func_close() {
	var div_el = document.getElementById('popup_phpmanual_func');
	div_el.style.display = 'none';
}

function popup_phpmanual_func_success(request) {
	var div_el = document.getElementById('popup_phpmanual_func');

	var data = eval("("+request.responseText+")");
	if (data) {
		if (data['func_name'] && data['desc']) {
			phpmanual_func_list[data['func_name']] = data['desc'];
			popup_phpmanual_func_set_desc(data['func_name'], data['desc']);
			div_el.style.display = 'block';
		}
	}
}

function popup_phpmanual_func_set_desc(func_name, desc) {
  document.getElementById('popup_phpmanual_func').innerHTML = '<h4>' + func_name + '<a href="#" onClick="popup_phpmanual_func_close();return false;"><img src="/img/close.png"></h4></a><p>' + desc +  "</p>";
	//document.getElementById('popup_phpmanual_func').innerHTML = 
	//	'<h4>' + func_name + '</h4><p>' + desc +  "</p>";
}

