﻿// JScript File

var tree;
var xmlDoc;

function importXML()
{
	if (document.implementation && document.implementation.createDocument)
	{
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.onload = treeInit;
		
		//treeInit();
			
	}
	else if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4) treeInit()
		};
		xmlDoc.validateOnParse = false;
        xmlDoc.resolveExternals = false;
        //xmlDoc.load("xbel.xml");
	}
	else
	{
		alert('Your browser can\'t handle this script');
		return;
	}
    xmlDoc.load("http://iancartwright.com/bookmarks/xbel.xml");
}

function addBookmarks(folderNode, docNode)
{
    //var bookmarks = docNode.getElementsByTagName('bookmark');
    var bookmarks = docNode.childNodes;
	for (var i = 0 ; i < bookmarks.length ; i++) 
	{
	    var bookmark = bookmarks[i];
	    if ( bookmark.nodeName == "bookmark" ) 
	    {
	        if (window.ActiveXObject)
	        {    
	            var name = bookmark.getElementsByTagName("title")[0].text;
	        } 
	        else
	        {
	            var name = bookmark.getElementsByTagName("title")[0].textContent;
	        }
	        var url = bookmark.getAttribute("href");
    	    
	        var node = new YAHOO.widget.TextNode(name, folderNode, false);
	        node.href = url;
	    }
	}
}

function addFolders(parentTreeNode, docNode) 
{
    //alert("addFolders");
    //var folders = docNode.getElementsByTagName('folder');
    if (docNode==null || !docNode.hasChildNodes()) return;
    
    var folders = docNode.childNodes;
    for (var i = 0 ; i < folders.length ; i++) 
    {
        var folder = folders[i];
        if ( folder.nodeName == "folder" ) 
        {
            if (window.ActiveXObject)
	        {
                folderName = folder.getElementsByTagName("title")[0].text;
            } else
            {
                folderName = folder.getElementsByTagName("title")[0].textContent;
            }
            folderNode = new YAHOO.widget.TextNode(folderName, parentTreeNode, false);
                
            addFolders(folderNode, folder);
        }  
    }
    addBookmarks(parentTreeNode, docNode);
}

function treeInit() {

	tree = new YAHOO.widget.TreeView("xbeltree");
	
	var treeRoot = tree.getRoot();
	treeRoot.name = "Bookmarks";
	folderNode = new YAHOO.widget.TextNode("Bookmarks", treeRoot, false);

    if (document.implementation && document.implementation.createDocument)
	{
	    //throw xmlDoc.documentElement.nodeName;
	    addFolders(folderNode, xmlDoc.documentElement );
	} else
	{
	    addFolders(folderNode, xmlDoc.documentElement);
	}
    
	tree.draw();
}

