DOM = (document.getElementById) ? 1 : 0;
NS4 = (document.layers) ? 1 : 0;

// Define some settings
var menuItemWidth=130; // Width of submenus
var menuItemHeight=30; // Height of submenus
var menuHideDelay=500; // milliseconds before menu hides after mouseout
var currentMenu=-1; // Global for keeping track of currently displayed menu so we can clear it
var menuTimeout; // timeout handle
var subOutBg = '#94718C'; //  Color for inactive menu items
var subOverBg = '#AE916F'; // Color for active menu items
var nsOverP = 0; // Netscape event handler is broken here.
var nsOverS = 0; // Sad but true.


// Define Top-level nav objects
function navMenuTopObj(itemName,linkUrl,outImgUrl,overImgUrl,hasNoSubMenu) {
	this.itemName = itemName; // Array slot in navMenuTop array, i.e. which top-level category
	this.linkUrl = linkUrl;
	this.outImgUrl = outImgUrl;
	this.outImg = new Image();
	this.outImg.src = outImgUrl;
	this.overImgUrl = overImgUrl;
	this.overImg = new Image();
	this.overImg.src = overImgUrl;
	this.hasNoSubMenu = hasNoSubMenu;
}

var navMenuTop = new Array(
	 new navMenuTopObj('Biography','/biography.php','images/biography_01.gif','images/biography_02.gif'),
	 new navMenuTopObj('News','/news.php','images/news_01.gif','images/news_02.gif'),
	 new navMenuTopObj('Music','/music.html','images/music_01.gif','images/music_02.gif'),
	 new navMenuTopObj('Tour','/tour.php','images/tour_01.gif','images/tour_02.gif'),
	 new navMenuTopObj('Connect','/connect.php','images/connect_01.gif','images/connect_02.gif'),
	 new navMenuTopObj('Multimedia','/media.html','images/media_01.gif','images/media_02.gif'),
	 new navMenuTopObj('Contact','/contact.php','images/contact_01.gif','images/contact_02.gif',1),
	 new navMenuTopObj('Home','/','images/home_01.gif','images/home_02.gif',1)
	);

// Define child menus
function navMenuLinkObj(menuNum,linkUrl,linkText) {
	this.menuNum = menuNum; // Array slot in navMenuTop array, i.e. which top-level category
	this.linkUrl = linkUrl;
	this.linkText = linkText;
}

// Every object has a ',' at the end except the last one
// the order is (menu#, location, link text)
var linkData = new Array(
	 new navMenuLinkObj(0,'/reviews.php','Reviews'),
	 new navMenuLinkObj(0,'/quotes.php','Quotes'),
	 new navMenuLinkObj(1,'/archive.php','Archive'),
	 new navMenuLinkObj(2,'/lyrics.html','Lyrics'),
	 new navMenuLinkObj(2,'/albums.html','Buy CDs'),
	 new navMenuLinkObj(2,'/free_downloads.php','Free Downloads'),
	 new navMenuLinkObj(3,'/tvradio.php','TV/Radio'),
	 new navMenuLinkObj(4,'/journal.php','Kristin\'s Journal'), // qoute escaping important ;)
	 new navMenuLinkObj(5,'/epk.html','EPK'),
	 //new navMenuLinkObj(5,'/downloads.html','MP3'),
	 new navMenuLinkObj(5,'/video.html','Video'),
	 new navMenuLinkObj(5,'/gallery.php','Gallery')
	);



function writeNoCompatNav () {
	var returnVal = '<table border="0" cellpadding="0" cellspacing="0" width="' + menuItemWidth + '">';
	returnVal += '<tr><td width="' + menuItemWidth + '">';
	for (x in navMenuTop) {
		returnVal += '<a href="' + navMenuTop[x].linkUrl + '"><img src="' + navMenuTop[x].outImgUrl + '" width="149" height="34" NAME="image' + x + '" border="0"></a><br>';
	}
	returnVal += '</td></tr></table>';
	document.write(returnVal);
}


function writeNav () {
	var returnVal = '<table border="0" cellpadding="0" cellspacing="0" width="' + menuItemWidth + '">';
	returnVal += '<tr><td width="' + menuItemWidth + '">';
	for (x in navMenuTop) {
		returnVal += '<a href="' + navMenuTop[x].linkUrl + '" onMouseOver="rollOver(' + x + ')" onMouseOut="rollOut(' + x + ')"><img src="' + navMenuTop[x].outImgUrl + '" width="149" height="34" NAME="image' + x + '" border="0"></a><br>';
	}
	returnVal += '</td></tr></table>';
	document.write(returnVal);
}

function writeMenuTop(slotNum,navLinks) {
	var imgLeft = getLeft(eval('document.images[\'image' + slotNum + '\']'));
	var imgTop = getTop(eval('document.images[\'image' + slotNum + '\']'));
	var divLeft = imgLeft - menuItemWidth + 5;
	var divTop = imgTop + 4;
	var divWidth = menuItemWidth + 2;
	if (NS4) {
		var theReturn = '<layer id="top'+slotNum+'" left="' + (-1 * (menuItemWidth + 10)) + '" top="' + divTop + '" width=' + divWidth + '" height="' + (menuItemHeight + navLinks.length * menuItemHeight + navLinks.length + 2) + '" bgcolor="#000000">';
		var subId='parent_item' + slotNum;
		theReturn += '<layer id="' + subId + '" width=' + menuItemWidth + '" top="1" left="1" bgcolor="' + subOutBg + '" height="' + (menuItemHeight - 2) + '" onmouseover="rollOverSub(\'' + subId + '\', ' + slotNum + ')" onmouseout="rollOutSub(\'' + subId + '\' ,' + slotNum + ')" onclick="window.location.href=\'' + navMenuTop[slotNum].linkUrl + '\'">';
		theReturn += '<table cellpadding=0 cellspacing=0 border=0 width=' + menuItemWidth + '<tr><td width=1><img src="images/blank_spacer.gif" width="1" height="' + menuItemHeight + '"></td><td align=center><a class="navLink" href="' + navMenuTop[slotNum].linkUrl + '">' + navMenuTop[slotNum].itemName + '</a></td></tr></table>';
		theReturn += '</layer>';
		if (navLinks.length == 0) return "";
		for (link=0; link < navLinks.length; link++) {
			var topVal = menuItemHeight + 2 + menuItemHeight*link + link;
			var subId = 'top' + slotNum + 'link' + link;
			theReturn += '<layer id="' + subId + '" width=' + menuItemWidth + '" top="' + topVal + '" bgcolor="' + subOutBg + '" left="1" height="' + (menuItemHeight - 2) + '" onmouseover="rollOverSub(\'' + subId + '\', ' + slotNum + ')" onmouseout="rollOutSub(\'' + subId + '\', ' + slotNum + ')" onclick="window.location.href=\'' + navLinks[link].linkUrl + '\'">';
			theReturn += '<table cellpadding=0 cellspacing=0 border=0 width=' + menuItemWidth + '<tr><td width=1><img src="images/blank_spacer.gif" width="1" height="' + menuItemHeight + '"></td><td align=center><a class="navLink" href="' + navLinks[link].linkUrl + '">' + navLinks[link].linkText + '</a></td></tr></table>';
			theReturn += '</layer>';
		}
		theReturn += '</layer>';
	} else {
		var theReturn = '<div id="top'+slotNum+'" style="visibility: hidden; position: absolute; left: ' + divLeft + 'px; top: ' + divTop + 'px; width: ' + divWidth + 'px;" class="topMenu">';
		var subId='parent_item' + slotNum;
		theReturn += '<div id="' + subId + '" style="position: relative; width: ' + menuItemWidth + 'px; height: ' + (menuItemHeight - 2) + '; margin: 1; background-color: #94718C" class="navLinkBox" onmouseover="rollOverSub(\'' + subId + '\')" onmouseout="rollOutSub(\'' + subId + '\')" onclick="window.location.href=\'' + navMenuTop[slotNum].linkUrl + '\'">';
		theReturn += '<table cellpadding=0 cellspacing=0 border=0 width=' + menuItemWidth + '<tr><td width=1><img src="images/blank_spacer.gif" width="1" height="' + menuItemHeight + '"></td><td align=center><a class="navLink" href="' + navMenuTop[slotNum].linkUrl + '">' + navMenuTop[slotNum].itemName + '</a></td></tr></table>';
		theReturn += '</div>';
		if (navLinks.length == 0) return "";
		for (link=0; link < navLinks.length; link++) {
			var subId = 'top' + slotNum + 'link' + link;
			theReturn += '<div id="' + subId + '" style="position: relative; width: ' + menuItemWidth + 'px; height: ' + (menuItemHeight - 2) + '; margin: 1; background-color: #94718C" class="navLinkBox" onmouseover="rollOverSub(\'' + subId + '\')" onmouseout="rollOutSub(\'' + subId + '\')" onclick="window.location.href=\'' + navLinks[link].linkUrl + '\'">';
			theReturn += '<table cellpadding=0 cellspacing=0 border=0 width=' + menuItemWidth + '<tr><td width=1><img src="images/blank_spacer.gif" width="1" height="' + menuItemHeight + '"></td><td align=center><a class="navLink" href="' + navLinks[link].linkUrl + '">' + navLinks[link].linkText + '</a></td></tr></table>';
			theReturn += '</div>';
		}
		theReturn += '</div>';
	}
	return theReturn;
}

function drawMenus() {
	var navCode = "";
	for (x in navMenuTop) {
		// write top-level item.
		var thisNavLinks = new Array();
		for (y in linkData) {
			if (x == linkData[y].menuNum) {
				thisNavLinks[thisNavLinks.length] = linkData[y];
			}
		}
		navCode += writeMenuTop(x,thisNavLinks);
	}

	document.write(navCode);
}


function rollOver(num) {
	if (currentMenu > -1) clearMenu(currentMenu);
	if (NS4) nsOverP=1;
	if (menuTimeout) clearTimeout(menuTimeout);
	currentMenu=num;
	if (document.images) {    
		var imageName = 'image' + num;
		document[imageName].src = navMenuTop[num].overImg.src;
	}
	if (!navMenuTop[num].hasNoSubMenu) {
		if (NS4) {
			var subLeft = getLeft(eval('document.images[\'image' + num + '\']')) - menuItemWidth;
			document.layers.eval('top' + num).left=subLeft;
		} else {
			document.getElementById('top'+num).style.visibility='visible';
		}
	}
}


function rollOut(num) {
	if (NS4) nsOverP=0;
	menuTimeout = setTimeout('clearMenu(currentMenu)',menuHideDelay);
}

function rollOutSub(subId, idNum) {
	if (NS4) {
		nsOverS=0;
		document.layers.eval('top' + idNum).document.layers.eval(subId).bgColor = subOutBg;
		if (nsOverP == 0) menuTimeout = setTimeout('clearMenu(currentMenu)',menuHideDelay);
	} else {
		document.getElementById(subId).style.backgroundColor=subOutBg;
		menuTimeout = setTimeout('clearMenu(currentMenu)',menuHideDelay);
	}
}


function rollOverSub(subId,idNum) {
	if (menuTimeout) clearTimeout(menuTimeout);
	if (NS4) {
		nsOverS=1;
		document.layers.eval('top' + idNum).document.layers.eval(subId).bgColor = subOverBg;
	} else {
		document.getElementById(subId).style.backgroundColor=subOverBg;
	}
}


function clearMenu(num) {
	if (document.images) {    
		var imageName = 'image' + num;
		document[imageName].src = navMenuTop[num].outImg.src;
	}
	if (!navMenuTop[num].hasNoSubMenu) {
		if (NS4) {
			document.layers.eval('top' + num).left=-1 * (10 + menuItemWidth);
		} else {
			document.getElementById(('top'+num)).style.visibility='hidden';
		}
	}
}


function getLeft(imgElem) {
	if (NS4) return imgElem.x;
	xPos = eval(imgElem).offsetLeft;
	tempEl = eval(imgElem).offsetParent;
  	while (tempEl != null) {
  		xPos += tempEl.offsetLeft;
  		tempEl = tempEl.offsetParent;
  	}
	return xPos;
}

function getTop(imgElem) {
	if (NS4) return imgElem.y;
	yPos = eval(imgElem).offsetTop;
	tempEl = eval(imgElem).offsetParent;
	while (tempEl != null) {
  		yPos += tempEl.offsetTop;
  		tempEl = tempEl.offsetParent;
  	}
	return yPos;
}

// Define popUp function - cross-browser window popper.
function popUp(u,n,w,h,f) {
	var features = "width=" + w + ",height=" + h;
	if (f) features += "," + f;
	var popped = this.open(u, n, features);
	if (!popped.opener) popped.opener = self;
	if (popped.focus) popped.focus();
}

// -->