/*
	Left Nav Variables
*/
	var generic = new Array();
	var xItems = 0;
	
	var base = "";	//"http://www.peelregion.ca";
	var current = 0;

	var currentLoc = location.href;
	currentLoc = currentLoc.replace("http://", "");
	currentLoc = currentLoc.substr(currentLoc.indexOf("/"));
	
	var partialMatch = 0;
	var exactMatch = -1;

/*
	Left Nav Functions
*/
	function printMe(text){
		document.write(text);
	}
	
	// Menu Class 
	var Class_Menu = {

		add : function(item){
			this.array.push(item);
		},
		
		score : function (){
			var est = "";
			var tabs = "";
			
			var menu = new Array();
			
			var whatPrint;

			if (this.array && this.array.length > 0){
				whatPrint = this;
			} else if (this.parent && this.parent.array && this.parent.array.length > 0){
				whatPrint = this.parent;
			}
			
			if (whatPrint.parent){
				var grandArray = new Array();
				var parent = whatPrint.parent;
				
				while (parent){
					grandArray.push("<a href=\"" + base + parent.link + "\">" + parent.text + "</a>");
					parent = parent.parent;
				}
				
				for (var i = 0; i < grandArray.length; i++){
					var header = 3;
					if (i == 0){
						header = 1;
					}
					est += "<h" + header + ">" + grandArray[grandArray.length - 1 - i] + "</h" + header + ">\n";
				}
			}

			if (typeof(whatPrint) == "object"){
				var jack = "";
				if (whatPrint == generic[0]){
					est += "<h1><a href=\"" + base + whatPrint.link + "\">" + whatPrint.text + "</a></h1>\n";
				} else {
					est += "<h2><a href=\"" + base + whatPrint.link + "\">" + whatPrint.text + "</a></h2>\n";
				}

				est += "<ul>\n";
				for (var i = 0; i < whatPrint.array.length; i++){
					est += tabs + "<li><a href=\"" + base + whatPrint.array[i].link +
							"\">" + whatPrint.array[i].text + "</a></li>\n";
				}
				est += "</ul>\n";
			}
	
			return est;
		}
	};
	
	// Constructor Function
	function Menu (title, link, parent){
		obj = this;
		obj.text = title;
		obj.link = link;
		obj.parent = parent;
		
		obj.array = new Array();
		
		obj.add = Class_Menu.add;
		obj.score = Class_Menu.score;
	}
	
		function getData(parent, item, text, error){
		var alertMessage = "";

		if (typeof(parent) == "undefined" || typeof(item) == "undefined"){
			alertMessage = "Error in code on " + error + "\n";
			return alertMessage;
		}
		
		if (typeof(text) == "undefined"){
			text = "";
		} else {
			text += "\t";
			current = xItems-1;
		}
		
		if (typeof(error) == "undefined"){
			error = "";
		} else {
			error += " ";
		}
		
		for (var i = 0; i < item.length; i++){
			if (typeof(item[i]) == "string" && i == 0){

				generic[xItems] = new Menu(item[0], item[1], generic[parent]);
				generic[parent].add(generic[xItems]);

				for (var k = 1; k < item.length; k++){
					if (item[k] == currentLoc){
						exactMatch = xItems;
					}
					if (currentLoc.indexOf(item[k]) >= 0){
						partialMatch = xItems;
					}
				}
								
				xItems++;
			} else if (typeof(item[i]) == "object" && item[i].length > 0){
				var temp = current;
				alertMessage += getData(current, item[i], text, error + i);
				current = temp;
			} else if (typeof(item[i]) == "string" && item.length != 2){
				//alertMessage = "Error in item " + error + "\n";
			}
		}
		return alertMessage;
	}

	function setRoot(name, link){
		generic[0] = new Menu(name, link);
		xItems++;
	}
	
	function showMenu(){
		var alertMessage = getData(0, MenuArray);
		
		if (alertMessage != ""){
			alert(alertMessage);
		}
		
		if (exactMatch >= 0){
			printMe (generic[exactMatch].score());
		} else {
			printMe (generic[partialMatch].score());
		}
	}
