//================//
// Simple Nav v1.0
//----------------
// Simple two level DHTML navigation system.
//----------------
// Requires: Layer Handler v1.2 (layers.js)
//================//


function simpleNav(left,top) {

	// Properties.
	this.menuList = new Array();
	this.menuLeft = left;
	this.menuTop = top;
	this.visible = true;
	this.menuSpacing = 13;
	
	// Public methods.
	this.openFolder = simpleNav_openFolder;
	this.closeFolder = simpleNav_closeFolder;
	this.createFolder = simpleNav_createFolder;
	this.setTop = simpleNav_setTop;
	this.setLeft = simpleNav_setLeft;
	this.setPosition = simpleNav_setPosition;
	this.top = simpleNav_top;
	this.left = simpleNav_left;
	this.show = simpleNav_show;
	this.hide = simpleNav_hide;
	this.setSpacing = simpleNav_setSpacing;
	this.spacing = simpleNav_spacing;

	// Private methods.
	this.folderPosition = simpleNav_folderPosition;
	this.updateFolders = simpleNav_updateFolders;

}

function simpleNav_setSpacing(spacing) {

	this.menuSpacing = spacing;
	this.updateFolders();

}

function simpleNav_spacing() {

	return this.menuSpacing;

}

function simpleNav_setTop(top) {

	this.menuTop = top;
	this.updateFolders();
	
}

function simpleNav_setLeft(left) {

	this.menuLeft = left;
	this.updateFolders();
	
}

function simpleNav_setPosition(left,top) {

	this.menuLeft = left;
	this.menuTop = top;
	this.updateFolders();

}

function simpleNav_top() {

	return this.menuTop;

}

function simpleNav_left() {

	return this.menuLeft;

}

function simpleNav_show() {

	this.visible = true;

	for (i = 0 ; i < this.menuList.length ; i++) {
	
		if (this.menuList[i].state == "folded") {
			this.menuList[i].folded.show();
		} else {
			this.menuList[i].expanded.show();
		}
		
	}
	
}

function simpleNav_hide() {

	this.visible = false;

	for (i = 0 ; i < this.menuList.length ; i++) {
		this.menuList[i].folded.hide();
		this.menuList[i].expanded.hide();
	}

}

function simpleNav_folderPosition(name) {
	
	var result = -1;
	
	for (i = 0 ; i < this.menuList.length ; i++) {
		if (name == this.menuList[i].name) {
			result = i;
		}
	}
	
	return result;
}
	
function simpleNav_openFolder(name) {

	if (this.visible == true) {
		this.menuList[this.folderPosition(name)].folded.hide();
		this.menuList[this.folderPosition(name)].expanded.show();
	}
	this.menuList[this.folderPosition(name)].state = "expanded";
	this.updateFolders();
	
}

function simpleNav_closeFolder(name) {

	if (this.visible == true) {
		this.menuList[this.folderPosition(name)].folded.show();
		this.menuList[this.folderPosition(name)].expanded.hide();
	}
	this.menuList[this.folderPosition(name)].state = "folded";
	this.updateFolders();
	
}


function simpleNav_updateFolders() {

	for (i = 0 ; i < this.menuList.length ; i++) {
		if (i != 0) {	
		
			if (this.menuList[i - 1].state == "folded") {			
				this.menuList[i].folded.setTop(this.menuList[i - 1].folded.top() + this.menuSpacing);
				this.menuList[i].expanded.setTop(this.menuList[i - 1].folded.top() + this.menuSpacing);
			} else {
				this.menuList[i].folded.setTop(this.menuList[i - 1].expanded.top() + this.menuList[i - 1].expanded.height());
				this.menuList[i].expanded.setTop(this.menuList[i - 1].expanded.top() + this.menuList[i - 1].expanded.height());
			}
			
			this.menuList[i].folded.setLeft(this.menuList[i - 1].folded.left());
			this.menuList[i].expanded.setLeft(this.menuList[i - 1].expanded.left());
			
		} else {
		
			this.menuList[i].folded.setPosition(this.menuLeft,this.menuTop);
			this.menuList[i].expanded.setPosition(this.menuLeft,this.menuTop);
			
		}
	}
}

function simpleNav_createFolder(name) {

	var currentFolder = this.menuList.length;
	var newTop;
	var newLeft;

	this.menuList[currentFolder] = new Object;
	this.menuList[currentFolder].name = name;
	this.menuList[currentFolder].state = "folded";
	this.menuList[currentFolder].folded = new layerHandler(name + "Folded");
	this.menuList[currentFolder].expanded = new layerHandler(name + "Expanded");

	if (currentFolder == 0) {
		this.menuList[currentFolder].folded.setPosition(this.menuLeft,this.menuTop);
		this.menuList[currentFolder].expanded.setPosition(this.menuLeft,this.menuTop);
	} else {
		newTop = this.menuList[currentFolder - 1].folded.top() + this.menuSpacing;
		newLeft = this.menuList[currentFolder - 1].folded.left();
		this.menuList[currentFolder].folded.setPosition(newLeft,newTop);
		this.menuList[currentFolder].expanded.setPosition(newLeft,newTop);
	}
	
}