// DESCRIPTION:
//	Dynamic navigation bar for left side of Med Center Templates.
//	Each site requires a leftnav_content.js file specifying the menu items.
// AUTHORS: 
//	Tyler Bittner 4/2004
//	Joanna Honikman 2/2004

var txt = "";

function leftnavBuild( leftnav ) {

	// Get current URL
	var path = window.location.pathname;
	
	// Ignore to the right of a "#" sign in the URL
	var pathArray = path.split("#");
	path = pathArray[0];
	
	// Ignore the filename in the URL
	var pathDir = path.replace(/(^\/.*\/)(.*$)/, '$1');

	//
	// Detect which items/levels to show
	//

	// Process level 0
	for ( var i=0; i < leftnav.length; i++ ) {
		if ( leftnav[i] != null ) {
			if ( leftnav[i].url.valueOf() == pathDir.valueOf() ) {
				leftnav[i].viz = 1;
				
				// If it has children, set flag to display all one level down.
				if ( leftnav[i][0] ) leftnav[i].isContainer = true;
				// TODO: Else if this is an end-node, display all its peers
				
			}else {
				leftnav[i].viz = 0;
			}
		}

//document.write('<tr><td width="150" wrap colspan="3">url: '+ leftnav[i][j].url.valueOf() + ' <br>path:' + path.valueOf() + '</td></tr>');

		// Process level 1
		for ( var j=0; leftnav[i][j] != null; j++ ) {
			
			if ( leftnav[i].isContainer ) {
				leftnav[i][j].viz = 1;
			}else if ( leftnav[i][j].url.valueOf() == pathDir.valueOf() ) {
				leftnav[i][j].viz = 1;
				leftnav[i].viz = 1;
				// If it has children, set flag to display all one level down.
				if ( leftnav[i][j][0] ) {
					leftnav[i][j].isContainer = true;
				}
				// Set viz=2 if focus is on this page
				
				// Display all level 1 under this level 0.
				for ( var x=0; leftnav[i][x] != null; x++) {
					// Don't modify this level 1
					if (x == j) continue;
					leftnav[i][x].viz = 1;
				}
				
			}else {
				if (! leftnav[i][j].viz ) {
					leftnav[i][j].viz = 0;
				}
			}
            if ( leftnav[i][j].url.valueOf() == path.valueOf() ) {
					leftnav[i][j].viz = 2;
			}
			// Process level 2
			for ( var k=0; leftnav[i][j][k] != null; k++ ) {

				if ( leftnav[i][j].isContainer ) {
					leftnav[i][j][k].viz = 1;
				}else if ( leftnav[i][j][k].url.valueOf() == pathDir.valueOf() ) {
					leftnav[i][j][k].viz = 1;
					leftnav[i][j].viz = 1;
					leftnav[i].viz = 1;
					
					// If it has children, set flag to display all one level down.
					if ( leftnav[i][j][k][0] ) {
						leftnav[i][j][k].isContainer = true;
					}

				}else {
					leftnav[i][j][k].viz = 0;
				}

				// Set viz=2 if focus is on this page
				if ( leftnav[i][j][k].url.valueOf() == path.valueOf() ) {
					leftnav[i][j][k].viz = 2;
				}

			}  // End 2
		}  // End 1
	}  // End 0

	//
	// Print all the items
	//
	for ( var i=0; i < leftnav.length; i++ ) {
		// ** Don't print level 0
		leftnavDisplay( 0, leftnav[i].text, leftnav[i].url, 0 );

		var j=0;
		while ( leftnav[i][j] != null ) {
			leftnavDisplay( 1, leftnav[i][j].text, leftnav[i][j].url, leftnav[i][j].viz );

			var k=0;
			while ( leftnav[i][j][k] != null ) {
				leftnavDisplay( 2, leftnav[i][j][k].text, leftnav[i][j][k].url, leftnav[i][j][k].viz );

				k++;
			}  // End 2
			j++;
		}  // End 1
	}  // End 0
}

function leftnavDisplay(level, displayText, turl, viz, onclText) {

/*
 Values to control visibility of left nav menu items (var viz):
 0 = hide
 1 = show, no focus
 2 = show, with focus (highlighted)
*/

if ( (level == 0) || (level == 1) ) {
	var focusClassStart = '';
	var focusClassEnd = '';
	if ( viz == 0 ) {
		txt = "";
		var caretText = '';
	}else {
	
	//this is the non selected bullet items 
		var focusClassText = 'class="navleft' + level + 'inner"';
		var caretText = '>&nbsp;';
		
		if ( viz == 2 ) {
			caretText = '>&nbsp;';
			focusClassStart = '<span class="navleft' + level + 'focus">';
			focusClassEnd = '</span>';
		}
		
		txt = '<tr><td class="navleft' + level + '" width="100%" valign="middle" align="left">'
		+ '<table width="100%" border="0" cellspacing="0" cellpadding="0">'
		+ '<tr><td ' + focusClassText + 'align="left" valign="top"><a href="' + turl + '">'
		+ focusClassStart + caretText + focusClassEnd + '</a></td>'
		+ '<td width="100%"' + focusClassText + 'align="left" valign="top"><a href="' + turl + '">'
		+ focusClassStart + displayText + focusClassEnd 
		+ '</a></td></tr></table></td></tr>';
	}

} else if (level == 2) {

	if ( viz == 0 ) {
		txt = "";
	}else {
		
		var focusClassStart = '';
		var focusClassEnd = '';
		if ( viz == 2 ) {
			focusClassStart = '<span class="navleft' + level + 'focus">';
			focusClassEnd = '</span>';
		}
		//caretText = '<img src="/images/bullet_index.gif">&nbsp;';
		var caretText = '>&nbsp;';

		txt = '<tr><td class="navleft' + level + '" width="100%" valign="middle" align="left">'
		+ '<table width="100%" border="0" cellspacing="0" cellpadding="0">'
		+ '<tr><td class="navleft' + level + 'inner" valign="top"><a href="' + turl + '">'
		+ focusClassStart + caretText + focusClassEnd + '</a></td>'
		+ '<td width="100%" class="navleft' + level + 'inner" valign="top"><a href="' + turl + '">'
		+ focusClassStart + displayText + focusClassEnd
		+ '</a></td></tr></table></td></tr>';
	}

} else if (level > 2) { 
	txt = 'JavaScript Error [Left Nav]: Levels above 3 deep are not currently supported';
} else { 
	txt = 'JavaScript Error [Left Nav]: Unspecified menu level';
}

document.write(txt)
return ""
}	// End function leftnavDisplay()

function createMenuTop() {
	document.write('<table width="100%" border="0" cellspacing="0" cellpadding="0" class="navleft">')
	return ""
}

function createMenuEnd() {
	document.write('</table>')
	return ""
}

//initialize arrays for open/close settings
//default is 1 (show menu item)
var top, one, two, three
var menuarray = new Array(5)
for ( var i=0; i < menuarray.length; i++ ) {
	menuarray[i] = new Array(5);
	for ( var j=0; j < menuarray[i].length; j++ ) {	
		menuarray[i][j] = new Array(5);
		for ( var k=0; k < menuarray[i][j].length; k++ ) {
			menuarray[i][j][k] = new Array(5);
		}
	}
}
