var graph;

jQuery(document).ready(function(){
	graph =	buildTree();
	graph.paddingScale = new Vector(.2, .1);
	var canvas = $('#springydemo');
	canvas.springy(graph);
	//sizeMe();
});
/*
var sizeMe = function(){
		var ctx = document.getElementById("springydemo").getContext("2d");
	    ctx.canvas.width  = window.innerWidth;
  		ctx.canvas.height = window.innerHeight;
		if (graph != null) graph.notify();
};

$(window).resize(sizeMe);
*/


icons = new Array();


function addIcon(label, src){
	icons[label] = makeImage(src);
}

function makeImage(src){
	var img = new Image();
	img.src = src;
	return img;
}


function addChildren(graph, parent, element){
	var added = false;
	$("> ul > li", element).each(function(i, node){
		var label;
		var href = null;
		/* Extract the label - node may be a link. */
		var linkNode = $(node).children('a')[0];
		if (linkNode != null) {
			label = getDirectTextContent(linkNode);
			href = $(linkNode).attr('href');
		} else {
			var label = getDirectTextContent(node);
		}
		var child = graph.newNode({label: label, img:icons[label], font:"13px Georgia", href:href});
		graph.newEdge(parent, child, {color:'#FF0000', weight:2});
		var childrenAdded = addChildren(graph, child, node);
		if (childrenAdded) child.data.font = "bold 13px Georgia";
		added = true;
		
	});
	return added;
}

function getDirectTextContent(element) {
    var text= [];
    for (var i= 0; i<element.childNodes.length; i++) {
        var child= element.childNodes[i];
        if (child.nodeType==3)  
            text.push(child.data);
    }
    return $.trim(text.join(''));
}


function buildTree(){
	
	var graph = new Graph();
	var ul = document.getElementById('content');
	var nodeName = "Projects";
	var root = graph.newNode({label: nodeName, img: icons[nodeName], font: "bold 16px Georgia"});
	addChildren(graph, root, ul, 3);
	return graph;
}




