
function start() {
	loadData();
	drawTree();
}

function drawTree() {
	outputFrame = window.treeFrame.window.document;
   outputFrame.open("text/html");
   outputFrame.write("<HTML><HEAD>");
   outputFrame.write("<style>BODY {background: white url('images/LeftTop.png') no-repeat;} A {text-decoration:none;color:navy} A:hover {text-decoration:underline; color:red;}</style>");
   outputFrame.write("</HEAD><BODY>");
//   outputFrame.write("<HTML><BODY BGCOLOR='" + bgColor + "' BACKGROUND='" + bgImage + "' LINK='" + linkColor + "' ALINK='" + aLinkColor + "' VLINK='" + vLinkColor + "'>");
   outputFrame.write("<FONT FACE='" + treeFont + "' SIZE=" + treeFontSize + " COLOR='" + textColor + "'>");
   outputFrame.write(prefixHTML + "<NOBR>");
	if (treeData[1].target == "") {var targetFrame = defTargetFrame} else {var targetFrame = treeData[1].target}
  	if (treeData[1].icon == "") {var imageString = defImageURL + 'img-globe-' + treeStyle + '.gif'} else {imageString = defImageURL + treeData[1].icon}
	outputFrame.write("<A HREF='" + treeData[1].url + "' TARGET='" + targetFrame + "' onMouseOver=\"window.status='" + treeData[1].url + "'; return true\"><IMG SRC='" + imageString + "' WIDTH=16 HEIGHT=16 ALIGN=TEXTTOP BORDER=0 ALT='" + treeData[1].url + "'></A>&nbsp;<B>" + treeData[1].name + "</B><BR>\n");
	drawBranch("root","");
	outputFrame.write("</NOBR>" + suffixHTML + "</FONT></BODY></HTML>");
	outputFrame.close();
	//window.status="(c) 2010, Xb2.NET inc.";
}

function drawBranch(startNode,structureString) {
	var children = extractChildrenOf(startNode);
	var i = 0;
	while (++i <= children.length) {
		outputFrame.write(structureString);
		if (children[i].type == 'link') {
			if (children[i].icon == "") {
				var imageString = defImageURL + defLinkIcon;
			}
			else {var imageString = defImageURL + children[i].icon}
			if (children[i].target == "") {
				var targetFrame = defTargetFrame;
			}
			else {var targetFrame = children[i].target}
			if (i != children.length) {
				outputFrame.write("<IMG SRC='" + defImageURL + "img-branch-cont-" + treeStyle + ".gif' WIDTH=19 HEIGHT=16 ALIGN=TEXTTOP>")
			}
			else {
				outputFrame.write("<IMG SRC='" + defImageURL + "img-branch-end-" + treeStyle + ".gif' WIDTH=19 HEIGHT=16 ALIGN=TEXTTOP>")
			}
//			outputFrame.write("<A HREF='" + children[i].url + "' TARGET='" + targetFrame + "'" + setMouse(children[i].url) + "><IMG SRC='" + imageString + "' WIDTH=16 HEIGHT=16 ALIGN=TEXTTOP BORDER=0 ALT='" + children[i].url + "'>&nbsp;" + children[i].name + "</A><BR>")
			outputFrame.write("<A HREF='" + children[i].url + "' TARGET='" + targetFrame + "' onMouseOver=\"window.status='" + children[i].url + "'; return true\"><IMG SRC='" + imageString + "' WIDTH=16 HEIGHT=16 ALIGN=TEXTTOP BORDER=0 ALT='" + children[i].url + "'></A>&nbsp;" + children[i].name + "<BR>")
		}
		else {
			var newStructure = structureString;
			if (children[i].iconClosed == "") {var iconClosed = "img-folder-closed-" + treeStyle + ".gif"} else {var iconClosed = children[i].iconClosed}
			if (children[i].iconOpen == "") {var iconOpen = "img-folder-open-" + treeStyle + ".gif"} else {var iconOpen = children[i].iconOpen}
			if (i != children.length) {
				if (children[i].open == 0) {
					outputFrame.write("<A HREF=\"javascript:parent.toggleFolder('" + children[i].id + "',1)\" onMouseOver=\"window.status='Click to open this folder'; return true\"><IMG SRC='" + defImageURL + "img-plus-cont-" + treeStyle + ".gif' WIDTH=19 HEIGHT=16 ALT='Click to open this folder' ALIGN=TEXTTOP BORDER=0>")
					outputFrame.write("<IMG SRC='" + defImageURL + iconClosed + "' WIDTH=16 HEIGHT=16 ALT='Click to open this folder' ALIGN=TEXTTOP BORDER=0></A>&nbsp;" + children[i].name + "<BR>")
				}
				else {
					outputFrame.write("<A HREF=\"javascript:parent.toggleFolder('" + children[i].id + "',0)\" onMouseOver=\"window.status='Click to close this folder'; return true\"><IMG SRC='" + defImageURL + "img-minus-cont-" + treeStyle + ".gif' WIDTH=19 HEIGHT=16 ALT='Click to close this folder' ALIGN=TEXTTOP BORDER=0>");
					outputFrame.write("<IMG SRC='" + defImageURL + iconOpen + "' WIDTH=16 HEIGHT=16 ALT='Click to close this folder' ALIGN=TEXTTOP BORDER=0></A>&nbsp;" + children[i].name + "<BR>");
					newStructure = newStructure + "<IMG SRC='" + defImageURL + "img-vert-line-" + treeStyle + ".gif' WIDTH=19 HEIGHT=16 ALIGN=TEXTTOP>";
					drawBranch(children[i].id,newStructure);
				}
			}
			else {
				if (children[i].open == 0) {
					outputFrame.write("<A HREF=\"javascript:parent.toggleFolder('" + children[i].id + "',1)\" onMouseOver=\"window.status='Click to open this folder'; return true\"><IMG SRC='" + defImageURL + "img-plus-end-" + treeStyle + ".gif' WIDTH=19 HEIGHT=16 ALT='Click to open this folder' ALIGN=TEXTTOP BORDER=0>")
					outputFrame.write("<IMG SRC='" + defImageURL + iconClosed + "' WIDTH=16 HEIGHT=16 ALT='Click to open this folder' ALIGN=TEXTTOP BORDER=0></A>&nbsp;" + children[i].name + "<BR>\n")
				}
				else {
					outputFrame.write("<A HREF=\"javascript:parent.toggleFolder('" + children[i].id + "',0)\" onMouseOver=\"window.status='Click to close this folder'; return true\"><IMG SRC='" + defImageURL + "img-minus-end-" + treeStyle + ".gif' WIDTH=19 HEIGHT=16 ALT='Click to close this folder' ALIGN=TEXTTOP BORDER=0>");
					outputFrame.write("<IMG SRC='" + defImageURL + iconOpen + "' WIDTH=16 HEIGHT=16 ALT='Click to close this folder' ALIGN=TEXTTOP BORDER=0></A>&nbsp;" + children[i].name + "<BR>\n");
					newStructure = newStructure + "<IMG SRC='" + defImageURL + "img-blank.gif' WIDTH=19 HEIGHT=16 ALIGN=TEXTTOP>";
					drawBranch(children[i].id,newStructure);
				}
			}
		}
	}
}

// open/close folder node
function toggleFolder(id,status) {
	var j = indexOfNode(id);
	treeData[j].open = status;
	timeOutId = setTimeout("drawTree()",30)}

function indexOfNode(id) {
	var i = 0;
	while (++i <= treeData.length) {
		if ((treeData[i].type == 'root') || (treeData[i].type == 'folder')) {
			if (treeData[i].id == id) {return i}}
		}
	return -1}

function extractChildrenOf(node) {
	var children = new Collection();
	var i = 0;
	while (++i <= treeData.length) {
		if ((treeData[i].type == 'folder') || (treeData[i].type == 'link')) {
			if (treeData[i].parent == node) {
				children.add(treeData[i])}}
		}
	return children}

function Collection() {
	this.length = 0;
	this.add = add;
	return this}

function add(object) {
	this.length++;
	this[this.length] = object}

function RootNode(id,name,url,target,icon) {
	this.id = id;
	this.name = name;
	this.url = url;
	this.target = target;
	this.icon = icon;
	this.type = 'root';
	return this}

function FolderNode(id,parent,name,iconClosed,iconOpen) {
	this.id = id;
	this.parent = parent;
	this.name = name;
	this.iconClosed = iconClosed;
	this.iconOpen = iconOpen;
	this.type = 'folder';
	this.open = 0;
	return this}

function LinkNode(parent,name,url,target,icon) {
	this.parent = parent;
	this.name = name;
	this.url = url;
	this.target = target;
	this.icon = icon;
	this.type = 'link';
	return this}

function loadData() {
	treeData = new Collection();

  	treeData.add(new RootNode('root','<A HREF=home.htm TARGET=pageFrame>Home</a>','home.htm','','img-home.gif'));

	treeData.add(new FolderNode('dc','root','DivertCode','',''));
   	treeData.add(new LinkNode('dc','Conveyors','http://divertcode.xb2.net/conveyors.htm','',''));
   	treeData.add(new LinkNode('dc','Carousels','http://divertcode.xb2.net/carousels.htm','',''));
   	treeData.add(new LinkNode('dc','Integration','http://divertcode.xb2.net/integration.htm','',''));
   	treeData.add(new LinkNode('dc','Customers','http://divertcode.xb2.net/customers.htm','',''));
      treeData.add(new LinkNode('dc','Contact','mailto:info%40xb2.net?subject=DivertCode Warehouse Automation Software','','img-email.gif'));

	treeData.add(new FolderNode('docs','root','SQLExpress','',''));
		treeData.add(new LinkNode('docs','Documentation','sqlxpp/sqlxpp.htm','','img-help.gif'));
		treeData.add(new FolderNode('sqlc','docs','Primary SQL classes','',''));
   		treeData.add(new LinkNode('sqlc','SQLConnection','sqlxpp/sqlxpp.htm#SQLConnection','',''));
	   	treeData.add(new LinkNode('sqlc','SQLStatement' ,'sqlxpp/sqlxpp.htm#SQLStatement','',''));
		   treeData.add(new LinkNode('sqlc','SQLSelect'    ,'sqlxpp/sqlxpp.htm#SQLSelect','',''));
		   treeData.add(new LinkNode('sqlc','SQLDataSet'   ,'sqlxpp/sqlxpp.htm#SQLDataSet','',''));
   		treeData.add(new LinkNode('sqlc','SQLColumn'    ,'sqlxpp/sqlxpp.htm#SQLColumn','',''));
   		treeData.add(new LinkNode('sqlc','SQLValue'     ,'sqlxpp/sqlxpp.htm#SQLValue','',''));
   		treeData.add(new LinkNode('sqlc','SQLError'     ,'sqlxpp/sqlxpp.htm#SQLError','',''));
		treeData.add(new FolderNode('catq','docs','Catalog query classes','',''));
   		treeData.add(new LinkNode('catq','SQLCatalogQuery'        ,'sqlxpp/sqlxpp.htm#SQLCatalogQuery','',''));
   		treeData.add(new LinkNode('catq','SQLListColumnPrivileges','sqlxpp/sqlxpp.htm#SQLListColumnPrivileges','',''));
   		treeData.add(new LinkNode('catq','SQLListColumns'         ,'sqlxpp/sqlxpp.htm#SQLListColumns','',''));
   		treeData.add(new LinkNode('catq','SQLListForeignKeys'     ,'sqlxpp/sqlxpp.htm#SQLListForeignKeys','',''));
   		treeData.add(new LinkNode('catq','SQLListPrimaryKeys'     ,'sqlxpp/sqlxpp.htm#SQLListPrimaryKeys','',''));
   		treeData.add(new LinkNode('catq','SQLListProcedureColumns','sqlxpp/sqlxpp.htm#SQLListProcedureColumns','',''));
   		treeData.add(new LinkNode('catq','SQLListProcedures'      ,'sqlxpp/sqlxpp.htm#SQLListProcedures','',''));
   		treeData.add(new LinkNode('catq','SQLListSpecialColumns'  ,'sqlxpp/sqlxpp.htm#SQLListSpecialColumns','',''));
   		treeData.add(new LinkNode('catq','SQLListStatistics'      ,'sqlxpp/sqlxpp.htm#SQLListStatistics','',''));
   		treeData.add(new LinkNode('catq','SQLListTablePrivileges' ,'sqlxpp/sqlxpp.htm#SQLListTablePrivileges','',''));
   		treeData.add(new LinkNode('catq','SQLListTables'          ,'sqlxpp/sqlxpp.htm#SQLListTables','',''));
   		treeData.add(new LinkNode('catq','SQLListTypeInfo'        ,'sqlxpp/sqlxpp.htm#SQLListTypeInfo','',''));

		treeData.add(new FolderNode('samp','docs','Samples','',''));
   		treeData.add(new LinkNode('samp','SQLTest.prg','sqlxpp/SQLTest.htm','','img-script.gif'));
	   	treeData.add(new LinkNode('samp','SQLBro.prg','sqlxpp/SQLBro.htm','','img-script.gif'));
  		   treeData.add(new LinkNode('samp','SQLTBro.prg','sqlxpp/SQLTBro.htm','','img-script.gif'));
   		treeData.add(new LinkNode('samp','SQLDbu (free SQL utility)','http://gogalthorp.com/sqldbu','','external.gif'));
   		treeData.add(new LinkNode('samp','live.xb2.net','http://live.xb2.net/login.htm','_window','external.gif'));
         treeData.add(new LinkNode('samp','Free SQLExpress demo','mailto:demo%40SQLExpress.net?subject=Send me SQLExpress demo','','img-email.gif'));

   	treeData.add(new LinkNode('docs','Tutorial','sqlxpp/SQLExpress.pdf','','pdf.gif'));
		treeData.add(new LinkNode('docs','ODBC error codes','sqlxpp/ErrCodes.htm','','bug.gif'));
   	treeData.add(new LinkNode('docs','Change log','sqlxpp/Changes.htm','','calendar.gif'));
   	treeData.add(new LinkNode('docs','Installation notes','sqlxpp/Install.htm','',''));
   	treeData.add(new LinkNode('docs','Download','Download.htm#SQLExpress','','down.gif'));
   	treeData.add(new LinkNode('docs','Buy It','http://live.xb2.net/shop?','','icon_shop.gif'));

	treeData.add(new FolderNode('xb2n','root','Xb2.NET','',''));

		treeData.add(new LinkNode('xb2n','How Fast?','xb2net/dataflow.htm','','img-page-help.gif'));
		treeData.add(new LinkNode('xb2n','Documentation','xb2net/xb2net.htm','','img-help.gif'));
		treeData.add(new FolderNode('xb2c','xb2n','Class Reference','',''));
   		treeData.add(new LinkNode('xb2c','xbSocket','xb2net/xb2net.htm#xbSocket','',''));
   		treeData.add(new LinkNode('xb2c','xbServer','xb2net/xb2net.htm#xbServer','',''));
   		treeData.add(new LinkNode('xb2c','xbHTTPServer','xb2net/xb2net.htm#xbHTTPServer','',''));
   		treeData.add(new LinkNode('xb2c','xbSocketThread','xb2net/xb2net.htm#xbSocketThread','',''));
   		treeData.add(new LinkNode('xb2c','xbHTTPThread','xb2net/xb2net.htm#xbHTTPThread','',''));
   		treeData.add(new LinkNode('xb2c','xbHTTPMessage','xb2net/xb2net.htm#xbHTTPMessage','',''));
   		treeData.add(new LinkNode('xb2c','xbHTTPRequest','xb2net/xb2net.htm#xbHTTPRequest','',''));
   		treeData.add(new LinkNode('xb2c','xbHTTPResponse','xb2net/xb2net.htm#xbHTTPResponse','',''));
   		treeData.add(new LinkNode('xb2c','xbHTTPClient','xb2net/xb2net.htm#xbHTTPClient','',''));
   		treeData.add(new LinkNode('xb2c','xbXMLDocument','xb2net/xb2net.htm#xbXMLDocument','',''));
   		treeData.add(new LinkNode('xb2c','xbSOAPEnvelope','xb2net/xb2net.htm#xbSOAPEnvelope','',''));
   		treeData.add(new LinkNode('xb2c','xbComplexType','xb2net/xb2net.htm#xbComplexType','',''));
   		treeData.add(new LinkNode('xb2c','xbForm','xb2net/xb2net.htm#xbForm','',''));
   		treeData.add(new LinkNode('xb2c','xbFTPClient','xb2net/xb2net.htm#xbFTPClient','',''));
   		treeData.add(new LinkNode('xb2c','xbPayload','xb2net/xb2net.htm#xbPayload','',''));
   		treeData.add(new LinkNode('xb2c','xbSSLContext','xb2net/xb2net.htm#xbSSLContext','',''));
   		treeData.add(new LinkNode('xb2c','xbSession','xb2net/xb2net.htm#xbSession','',''));
   		treeData.add(new LinkNode('xb2c','xbStream','xb2net/xb2net.htm#xbStream','',''));
   		treeData.add(new LinkNode('xb2c','xbTLog','xb2net/xb2net.htm#xbTLog','',''));
   		treeData.add(new LinkNode('xb2c','xbURI','xb2net/xb2net.htm#xbURI','',''));

		treeData.add(new FolderNode('xb2s','xb2n','Samples','',''));
   		treeData.add(new LinkNode('xb2s','GetWeb.prg','xb2net/GetWeb.htm','','img-script.gif'));
   		treeData.add(new LinkNode('xb2s','SOAPExec.prg','xb2net/SOAPExec.htm','','img-script.gif'));
   		treeData.add(new LinkNode('xb2s','TServer.prg','xb2net/TServer.htm','','img-script.gif'));
   		treeData.add(new LinkNode('xb2s','TClient.prg','xb2net/TClient.htm','','img-script.gif'));
   		treeData.add(new LinkNode('xb2s','FTPClient.prg','xb2net/FTPClient.htm','','img-script.gif'));
   		treeData.add(new LinkNode('xb2s','live.xb2.net','http://live.xb2.net/login.htm','_window','external.gif'));
         treeData.add(new LinkNode('xb2s','Free Xb2.NET demo','mailto:demo%40xb2.net?subject=Send me Xb2.NET demo','','img-email.gif'));

   	treeData.add(new LinkNode('xb2n','Tutorial','xb2net/xb2net.pdf','','pdf.gif'));
   	treeData.add(new LinkNode('xb2n','Change log','xb2net/changes.htm','','calendar.gif'));
   	treeData.add(new LinkNode('xb2n','Installation notes','xb2net/install.htm','',''));
   	treeData.add(new LinkNode('xb2n','SSL F.A.Q.','xb2net/SSL_FAQ.htm','',''));
	   treeData.add(new LinkNode('xb2n','Download','download.htm#Xb2.NET','','down.gif'));
   	treeData.add(new LinkNode('xb2n','Buy It','http://live.xb2.net/shop?','','icon_shop.gif'));

	treeData.add(new FolderNode('acew','root','ACE Wrappers','',''));
   	treeData.add(new LinkNode('acew','Installation notes','ace/index.htm','','img-help.gif'));
   	treeData.add(new LinkNode('acew','Tutorial','ace/AceWrappers.pdf','','pdf.gif'));
	   treeData.add(new LinkNode('acew','Download','download.htm#ACE','','down.gif'));
      treeData.add(new LinkNode('acew','Get Free DLL','mailto:demo%40SQLExpress.net?subject=Free SQLExpress demo + ACE Wrapper DLL','','img-email.gif'));
   	treeData.add(new LinkNode('acew','Buy It','http://live.xb2.net/shop?','','icon_shop.gif'));

	treeData.add(new FolderNode('down','root','Download','',''));
	   treeData.add(new LinkNode('down','Xb2.NET','download.htm#Xb2.NET','','down.gif'));
   	treeData.add(new LinkNode('down','SQLExpress','download.htm#SQLExpress','','down.gif'));
	   treeData.add(new LinkNode('down','ACE Wrappers','download.htm#ACE','','down.gif'));
	   treeData.add(new LinkNode('down','Xbase++ compiler','http://www.alaska-software.com/scripts/waa001.dll?WAA_PACKAGE=DemoReq&WAA_FORM=Demo_Req_form','','down.gif'));

	treeData.add(new FolderNode('books','root','Books','',''));
		treeData.add(new FolderNode('b-sql','books','SQL Programming','img-books.gif','img-books.gif'));
		treeData.add(new LinkNode('b-sql',"LAN Times Guide to SQL",'http://www.amazon.com/exec/obidos/ASIN/007882026X/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-sql',"The Practical SQL Handbook",'http://www.amazon.com/exec/obidos/ASIN/0201447878/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-sql',"Advanced SQL Programming",'http://www.amazon.com/exec/obidos/ASIN/1558605762/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-sql',"ODBC 3.5 Developer's Guide",'http://www.amazon.com/exec/obidos/ASIN/0070580871/sqlexpressnet-20/','','img-book.gif'));

		treeData.add(new FolderNode('b-db','books','Database Servers','img-books.gif','img-books.gif'));
		treeData.add(new LinkNode('b-db',"Advantage Database Server: The Official Guide",'http://www.amazon.com/exec/obidos/ASIN/0072230843/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Jet Database Engine Programmer's Guide",'http://www.amazon.com/exec/obidos/ASIN/1572313420/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Oracle: The Complete Reference",'http://www.amazon.com/exec/obidos/ASIN/0078822858/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Oracle SQL High Performance Tuning Kit",'http://www.amazon.com/exec/obidos/ASIN/0136142311/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Inside Microsoft SQL Server 7.0",'http://www.amazon.com/exec/obidos/ASIN/0735605173/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Learn Microsoft SQL Server 7.0",'http://www.amazon.com/exec/obidos/ASIN/155622639X/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Microsoft SQL Server 7 Administrator's Guide",'http://www.amazon.com/exec/obidos/ASIN/0761513892/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Mastering Sybase SQL Server II",'http://www.amazon.com/exec/obidos/ASIN/0070116628/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Sybase Developer's Handbook",'http://www.amazon.com/exec/obidos/ASIN/0127639500/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Sybase SQL Server 11 Unleashed",'http://www.amazon.com/exec/obidos/ASIN/0672309092/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"DB2 Developer's Guide",'http://www.amazon.com/exec/obidos/ASIN/0672311682/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"DB2 Universal Database",'http://www.amazon.com/exec/obidos/ASIN/1558604820/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Btrieve Complete",'http://www.amazon.com/exec/obidos/ASIN/0201483262/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Informix Guide to SQL Reference",'http://www.amazon.com/exec/obidos/ASIN/0131003631/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-db',"Informix Unleashed",'http://www.amazon.com/exec/obidos/ASIN/0672306506/sqlexpressnet-20/','','img-book.gif'));

		treeData.add(new FolderNode('b-prg','books','Software Development','img-books.gif','img-books.gif'));
		treeData.add(new LinkNode('b-prg',"Relational Database Design",'http://www.amazon.com/exec/obidos/ASIN/0123264251/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-prg',"Programming Windows",'http://www.amazon.com/exec/obidos/ASIN/157231995X/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-prg',"Code Complete: A Practical Handbook of Software Construction",'http://www.amazon.com/exec/obidos/ASIN/1556154844/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-prg',"Object-Oriented Software Construction",'http://www.amazon.com/exec/obidos/ASIN/0136291554/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-prg',"Object-Oriented Analysis & Design",'http://www.amazon.com/exec/obidos/ASIN/0805353402/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-prg',"The CRC Card Book",'http://www.amazon.com/exec/obidos/ASIN/0201895358/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-prg',"The Mythical Man-Month",'http://www.amazon.com/exec/obidos/ASIN/0201835959/sqlexpressnet-20/','','img-book.gif'));

		treeData.add(new FolderNode('b-java','books','JavaScript','img-books.gif','img-books.gif'));
		treeData.add(new LinkNode('b-java',"JavaScript Bible",'http://www.amazon.com/exec/obidos/ASIN/0764531883/sqlexpressnet-20/','','img-book.gif'));
		treeData.add(new LinkNode('b-java',"JavaScript: Definitive Guide",'http://www.amazon.com/exec/obidos/ASIN/1565923928/sqlexpressnet-20/','','img-book.gif'));

	treeData.add(new FolderNode('sql','root','SQL School','',''));
     	treeData.add(new LinkNode('sql','Tutorial (basic)','http://www.sqlcourse.com','','external.gif'));
     	treeData.add(new LinkNode('sql','Tutorial (advanced)','http://www.sqlcourse2.com','','external.gif'));
      treeData.add(new LinkNode('sql','SQL School','http://www.w3schools.com/sql/default.asp','','external.gif'));
     	treeData.add(new LinkNode('sql','SQL Team','http://www.sqlteam.com','','external.gif'));
     	treeData.add(new LinkNode('sql','SQL Server Central','http://www.sqlservercentral.com','','external.gif'));
     	treeData.add(new LinkNode('sql','Oracle Magazine','http://www.oracle.com/technology/oramag/oracle/index.html','','external.gif'));
     	treeData.add(new LinkNode('sql','DB2 Bookshelf','http://www-4.ibm.com/software/data/db2/os390/library.html','','external.gif'));
     	treeData.add(new LinkNode('sql','DB2 Magazine','http://www.db2mag.com','','external.gif'));
      treeData.add(new LinkNode('sql','Search','http://www.searchdatabase.com','','external.gif'));

	treeData.add(new FolderNode('favs','root','Favorites','img-folder-closed-fav.gif','img-folder-open-fav.gif'));
		treeData.add(new FolderNode('odbc','favs','ODBC Links','img-folder-closed-fav.gif','img-folder-open-fav.gif'));
   		treeData.add(new LinkNode('odbc','MDAC downloads','http://www.microsoft.com/downloads/details.aspx?familyid=78CAC895-EFC2-4F8E-A9E0-3A1AFBD5922E','','external.gif'));
   		treeData.add(new LinkNode('odbc','Microsoft Jet 4.0','http://support.microsoft.com/kb/239114','','external.gif'));
	   	treeData.add(new LinkNode('odbc','Data Direct','http://www.datadirect-technologies.com/','','external.gif'));
	   	treeData.add(new LinkNode('odbc','OpenLink Software','http://www.openlinksw.com','','external.gif'));
	   	treeData.add(new LinkNode('odbc','Oracle ODBC','http://www.oracle.com/technology/software/tech/windows/odbc/index.html','','external.gif'));
   	   treeData.add(new LinkNode('odbc','MySQL ODBC','http://www.mysql.com/downloads/connector/odbc/','','external.gif'));
 	   	treeData.add(new LinkNode('odbc','ODBC SDK documentation','http://msdn.microsoft.com/library/','_window','external.gif'));
 	   	treeData.add(new LinkNode('odbc','SQLite ODBC Driver','http://www.ch-werner.de/sqliteodbc/','','external.gif'));
		treeData.add(new LinkNode('favs','SQLDbu (free SQL utility)','http://gogalthorp.com/sqldbu','','external.gif'));
		treeData.add(new LinkNode('favs','Alaska Software','http://www.alaska-software.com','','external.gif'));
		treeData.add(new LinkNode('favs','DS-Datasoft','http://www.ds-datasoft.de','','external.gif'));
		treeData.add(new LinkNode('favs','Donnay Software','http://www.donnay-software.com','','external.gif'));
		treeData.add(new LinkNode('favs','knowleXbase','http://www.knowleXbase.com','','external.gif'));
		treeData.add(new LinkNode('favs','Top-Down Library','http://www.cjcom.net/tdcore.html','','external.gif'));
		treeData.add(new LinkNode('favs','The Oasis','http://www.the-oasis.net','_window','external.gif'));
		treeData.add(new LinkNode('favs','Advantage Database','http://www.advantagedatabase.com','','external.gif'));
		treeData.add(new LinkNode('favs','Xb2.NET Web Hosting','http://www.pbih.eu','','external.gif'));
		treeData.add(new LinkNode('favs','Xbase++ eXchange Platform','http://www.xxp.nl','','external.gif'));
		treeData.add(new LinkNode('favs','XbWin','http://www.xbwin.com','','external.gif'));
		treeData.add(new LinkNode('favs','Xbase++ DevCon','http://www.xbasedevcon.com','','external.gif'));

	treeData.add(new FolderNode('news','root','User Forums','',''));
		treeData.add(new LinkNode('news','SQLExpress','http://news.xb2.net/newsgroups.php?group=sqlexpress','','forum.gif'));
		treeData.add(new LinkNode('news','Xb2.NET','http://news.xb2.net/newsgroups.php?group=xb2net','','forum.gif'));
		treeData.add(new LinkNode('news','Alaska Software','http://news.alaska-software.com/','','forum.gif'));
		treeData.add(new LinkNode('news','XbWin (ot4xb)','http://news.xbwin.com/','','forum.gif'));
		treeData.add(new LinkNode('news','eXPress++','http://bb.donnay-software.com:8080/phpBB3','','forum.gif'));
		treeData.add(new LinkNode('news','IdXF++','http://xbaseforum.de/','','forum.gif'));
		treeData.add(new LinkNode('news','advantage.xbase++','news://solutions.advantagedatabase.com/advantage.xbase++','','forum.gif'));
		treeData.add(new LinkNode('news','advantage.odbc','news://solutions.advantagedatabase.com/advantage.odbc','','forum.gif'));
		treeData.add(new LinkNode('news','advantage.streamlineSQL','news://solutions.advantagedatabase.com/advantage.streamlineSQL','','forum.gif'));
		treeData.add(new LinkNode('news','Xnews news reader','http://xnews.newsguy.com/','','external.gif'));

   treeData.add(new LinkNode('root','Add Link','AddLink.htm','','external.gif'));
   treeData.add(new LinkNode('root','E-mail','mailto:info%40SQLExpress.net?subject=SQLExpress.net','','img-email.gif'));
  	treeData.add(new LinkNode('root','Shop','http://live.xb2.net/shop?','','icon_shop.gif'));

        treeStyle = 0;
          bgColor = '#000000';
        textColor = '#000000';
        linkColor = '#0000AA';
       aLinkColor = '#FF0000';
       vLinkColor = '#880088';
          bgImage = '';
   defTargetFrame = 'pageFrame';
      defImageURL = 'images/';
      defLinkIcon = 'icon_docs.gif';
         treeFont = 'MS Sans Serif,Arial,Helvetica';
     treeFontSize = 1;
       prefixHTML = '';
       //suffixHTML = '<br><font color=gray><hr>&#169; 1999-2010, Xb2.NET inc.<br>All rights reserved.</font>';
       suffixHTML = '';

}

//function setMouse(msg) {
//   return " onMouseOut=\"this.style.fontWeight='normal'; return true\" onMouseOver=\"this.style.fontWeight='bold'; window.status='" + msg + "'; return true\"" }



