( function() {
	var tree; // will hold our TreeView instance

	function treeInit() {
		// Hand off ot a method that randomly generates tree nodes:
		buildTextNodeTree();

		// handler for collapsing all nodes
		YAHOO.util.Event.on("collapse", "click", function(e) {
			tree.collapseAll();
			YAHOO.util.Event.preventDefault(e);
		});
	}

	function buildTextNodeTree() {
		tree = new YAHOO.widget.TreeView("treeDiv1");
		
		var root = tree.getRoot();

		var p1obj = {
			label :"Online Tutorial",
			link :"services/tutorials.html"
		}

		var p2obj = {
			label: "System Requirements",
			link: "supports/sysrequirements.html"
		}
		
		var p3obj = {
			label: "Distributed Servers",
			link: "supports/distributedsystem.html"
		}
		
		var p4obj = {
			label :"FAQ",
			link :"#"
		}

		var p5obj = {
			label :"User Manual",
			link :"services/usermanual.html"
		}

		var p6obj = {
			label :"After Services",
			link :"services/afterservices.html"
		}

		var p7obj = {
			label :"Training",
			link :"services/training.html"
		}
		


		var p1 = new YAHOO.widget.TextNode(p1obj, root, false);
		var p2 = new YAHOO.widget.TextNode(p2obj, root, false);
		var p3 = new YAHOO.widget.TextNode(p3obj, root, false);
		var p4 = new YAHOO.widget.TextNode(p4obj, root, false);
		var p5 = new YAHOO.widget.TextNode(p5obj, root, false);
		var p6 = new YAHOO.widget.TextNode(p6obj, root, false);
		var p7 = new YAHOO.widget.TextNode(p7obj, root, false);

		/** build all sub menu for FAQ * */
		var p4_1obj = {
			label :"Operation",
			link :"#"
		};
		var p4_2obj = {
			label :"Hardware",
			link :"services/faq/hardware.html"
		};
		var p4_3obj = {
			label :"Installation",
			link :"services/faq/installation.html"
		};
		var p4_4obj = {
			label :"Others",
			link :"services/faq/others.html"
		};
		var p4_1 = new YAHOO.widget.TextNode(p4_1obj, p4, false);
		var p4_2 = new YAHOO.widget.TextNode(p4_2obj, p4, false);
		var p4_3 = new YAHOO.widget.TextNode(p4_3obj, p4, false);
		var p4_4 = new YAHOO.widget.TextNode(p4_4obj, p4, false);

		/** build operations submenu * */
		var p4_1_1obj = {
			label :"Email",
			link :"services/faq/emails.html"
		};
		var p4_1_2obj = {
			label :"Address Book",
			link :"services/faq/addressbook.html"
		};
		var p4_1_3obj = {
			label :"WebHD",
			link :"services/faq/webhd.html"
		};
		var p4_1_4obj = {
			label :"Calendar",
			link :"services/faq/calendar.html"
		};
		var p4_1_5obj = {
			label :"Job List",
			link :"services/faq/joblist.html"
		};
		var p4_1_6obj = {
			label :"Project",
			link :"services/faq/project.html"
		};
		var p4_1_7obj = {
			label :"Bullet Board",
			link :"services/faq/bulletinboard.html"
		};
		var p4_1_8obj = {
			label :"Web Meeting",
			link :"services/faq/webmeeting.html"
		};
		var p4_1_9obj = {
			label :"Workflow",
			link :"services/faq/workflow.html"
		};
		var p4_1_10obj = {
			label :"System Administration",
			link :"services/faq/systemadministration.html"
		};
		var p4_1_11obj = {
			label :"Web Messenger",
			link :"services/faq/webmessenger.html"
		};
		var p4_1_12obj = {
			label :"Kiwi",
			link :"services/faq/kiwi.html"
		};
		var p4_1_13obj = {
			label :"Setting",
			link :"services/faq/setting.html"
		};
		var p4_1_14obj = {
			label :"Login Page",
			link :"services/faq/loginpage.html"
		};

		var p4_1_1 = new YAHOO.widget.TextNode(p4_1_1obj, p4_1, false);
		var p4_1_2 = new YAHOO.widget.TextNode(p4_1_2obj, p4_1, false);
		var p4_1_3 = new YAHOO.widget.TextNode(p4_1_3obj, p4_1, false);
		var p4_1_4 = new YAHOO.widget.TextNode(p4_1_4obj, p4_1, false);
		var p4_1_5 = new YAHOO.widget.TextNode(p4_1_5obj, p4_1, false);
		var p4_1_6 = new YAHOO.widget.TextNode(p4_1_6obj, p4_1, false);
		var p4_1_7 = new YAHOO.widget.TextNode(p4_1_7obj, p4_1, false);
		var p4_1_8 = new YAHOO.widget.TextNode(p4_1_8obj, p4_1, false);
		var p4_1_9 = new YAHOO.widget.TextNode(p4_1_9obj, p4_1, false);
		var p4_1_10 = new YAHOO.widget.TextNode(p4_1_10obj, p4_1, false);
		var p4_1_11 = new YAHOO.widget.TextNode(p4_1_11obj, p4_1, false);
		var p4_1_12 = new YAHOO.widget.TextNode(p4_1_12obj, p4_1, false);
		var p4_1_13 = new YAHOO.widget.TextNode(p4_1_13obj, p4_1, false);
		var p4_1_14 = new YAHOO.widget.TextNode(p4_1_14obj, p4_1, false);

		// setup the event listeners
		tree.subscribe("labelClick", function(node) {
			if (node.data.link != "#")
			{
				updateContents(node);
			}
		});


		// render default page
		// document.getElementById("contents").innerHTML =
		// YAHOO.util.Connect.asyncRequest("GET", o.data.link, callback);

		// render the tree
		tree.draw();
	}

	function updateContents(o) {
		var content = document.getElementById("contents");

		var callback = {
			success : function(a) {
				content.innerHTML = a.responseText;
				content.style.visibility = "visible";
			},
			failure : function(a) {
				content.innerHTML = "CONNECTION FAILED";
				content.style.visibility = "visible";
			}
		};

		var conn = YAHOO.util.Connect
				.asyncRequest("GET", o.data.link, callback);
	}

	//When the DOM is done loading, we can initialize our TreeView
	//instance:
	YAHOO.util.Event.onDOMReady(treeInit);
})();