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);
		div_el.style.display = 'block';
	} else {
		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 + '</h4><span id="btn-close" onclick="popup_phpmanual_func_close();"> </span><p>' + desc +  "</p>";
}
