var xmlHttp = createXmlHttpRequestObject();
var stylesheetDoc;
var xsltFileUrl = "tree_xml.xsl";
var feedGridUrl = "tree_xml.php";
var gridDivId = "gridDiv";


function init_tree_xml(dbType)
{
	if(window.XMLHttpRequest && window.XSLTProcessor && window.DOMParser)
	{
		loadStylesheet(dbType);
		loadGridPage(dbType);
		return;
	}


	if (window.ActiveXObject)//&& createMsxml2DOMDocumentObject()
	{
		loadStylesheet(dbType);
		//loadGridPage();
		return;
	}
	alert("The browser you have doesn't support the necessary functionality.");
}

function createXmlHttpRequestObject()
{
	var xmlHttp;
	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
		"MSXML2.XMLHTTP.5.0",
		"MSXML2.XMLHTTP.4.0",
		"MSXML2.XMLHTTP.3.0",
		"MSXML2.XMLHTTP",
		"Microsoft.XMLHTTP");
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
		{
			try
			{
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch (e) {}
		}
	}
	if (!xmlHttp)
	alert("Error creating the XMLHttpRequest object.");
	else
	return xmlHttp;
}



function loadStylesheet(dbType)
{
	xmlHttp.open("GET", xsltFileUrl, false);
	xmlHttp.send(null);
	if (this.DOMParser)
	{
		var dp = new DOMParser();
		stylesheetDoc = dp.parseFromString(xmlHttp.responseText, "text/xml");
	}
	else if (window.ActiveXObject)
	{

		var xml  = new ActiveXObject("Microsoft.XMLDOM")
		xml.async = false
		xml.load("tree_xml.php?TbType="+dbType)

		var xsl = new ActiveXObject("Microsoft.XMLDOM")
		xsl.async = false
		xsl.load("tree_xml.xsl")

		//var Div = document.getElementById('asdDiv');
		var res = xml.transformNode(xsl);
		//Div.innerHTML = res;
		
		//var Div = document.getElementById('left_navigation');
		//Div.innerHTML = '<div id="testlDIV" class="scorlDIV" >'+res+'</div>' ;
		
		document.write('<div id="left_navigation"> <div id="gridDiv" class="scorlDIV" >'+res+'</div></div>');

	}
}

function loadGridPage(dbType)
{
	editableId = false;
	if (xmlHttp && (xmlHttp.readyState == 4 || xmlHttp.readyState == 0))
	{
		var query = feedGridUrl+'?TbType='+dbType;
		xmlHttp.open("GET", query, true);
		xmlHttp.onreadystatechange = handleGridPageLoad;
		xmlHttp.send(null);
	}
}

function handleGridPageLoad()
{
	if (xmlHttp.readyState == 4)
	{
		if (xmlHttp.status == 200)
		{
			response = xmlHttp.responseText;
			if (response.indexOf("ERRNO") >= 0
			|| response.indexOf("error") >= 0
			|| response.length == 0)
			{
				alert(response.length == 0 ? "Server serror." : response);
				return;
			}
			xmlResponse = xmlHttp.responseXML;
			if (window.XMLHttpRequest && window.XSLTProcessor &&
			window.DOMParser)
			{
				var xsltProcessor = new XSLTProcessor();
				xsltProcessor.importStylesheet(stylesheetDoc);
				page = xsltProcessor.transformToFragment(xmlResponse, document);
				var gridDiv = document.getElementById(gridDivId);
				gridDiv.innerHTML = "";
				gridDiv.appendChild(page);
			}
			else if (window.ActiveXObject)
			{

				/*
				var xsl = new ActiveXObject("Microsoft.XMLDOM"); //createMsxml2DOMDocumentObject();
				xsl.async = false;
				xsl.load("tree_xml.xsl");

				//var gridDiv = document.getElementById(gridDivId);
				document.write(xsl.transformNode(stylesheetDoc));
				//gridDiv.innerHTML = xsl.transformNode(stylesheetDoc);
				*/
			}
		}
		else
		{
			alert("Error reading server response.")
		}
	}
}