var imgBase = 'images/';
function initializeMenu(name, left, top, width, height) {
	var menu = new ypSlideOutMenu(name, "down", left, top, width, height);
		
	menu.hover_img = new Image();
	// by me //menu.hover_img.src = "img/home/nav/" + name + "3.gif";
	menu.hover_img.src = imgBase + name + "3.gif";
	menu.img = new Image();
	//src to be determined in menuActivated
	//menu.img.src = "img/home/nav/" + name + "1.gif";

	menu.onactivate = menuActivated;
	menu.ondeactivate = menuDeactivated;
}

function menuActivated() {
	var doc = document.layers && document.layers["menu"] ? document.layers["menu"].document : document;
	var img = doc.images["menu_" + this.id];
	this.img.src = img.src;
	img.src = this.hover_img.src;
}

function menuDeactivated() {
	var doc = document.layers && document.layers["menu"] ? document.layers["menu"].document : document;
	var img = doc.images["menu_" + this.id];
	img.src = this.img.src;
}


(new Image()).src = "menu_dingbat.gif";
var oHome1 = new Image();
var oHome2 = new Image();
oHome1.src = "home1.gif";
oHome2.src = "home2.gif";



function menuItemOver(el) {
	if (document.all || document.getElementsByTagName) {
		var tbody = getAncestorByTagName(el, "TBODY");
		var marker = getElementsByClassName(tbody, "marker");
		var text = getElementsByClassName(tbody, "text");
			
		for (var i = 0; i < marker.length; i++) addClass(marker[i], "active");
		//for (var i = 0; i < text.length; i++) addClass(text[i], "active");
}	}

function menuItemOut(el) {
	if (document.all || document.getElementsByTagName) {
		var tbody = getAncestorByTagName(el, "TBODY");
		var marker = getElementsByClassName(tbody, "marker");
		var text = getElementsByClassName(tbody, "text");
			
		for (var i = 0; i < marker.length; i++) removeClass(marker[i], "active");
		//for (var i = 0; i < text.length; i++) removeClass(text[i], "active");
}	}



//=============================================================================
// getElementByClassName, getAncestorByTagName
//=============================================================================
// some simple utility DOM functions. getElementsByClassName is probably not
// dash-safe. eg, classNames like "foo-bar" might cause errors. note that 
// getAncestorByTagName considers the first element and may return it if it is 
// an instance of tn.
//=============================================================================
	
function getElementsByClassName(el, cn) {
	var re = new RegExp("\\b" + cn + "\\b");
	var a = new Array();
	for (var i = 0, o = null; (o = (el.all ? el.all : getElementsByTagName("*"))[i]); i++) {
		if (o.className.match(re)) {
			a[a.length] = o;
		}
	}
	return a;
}

	
function getAncestorByTagName(elm, tn) {
	tagname = tn.toUpperCase();
	while (elm.parentNode) {
		if (elm.tagName && elm.tagName == tagname) return elm;
		elm = elm.parentNode;
	}
	return null;
}



//=============================================================================
// addClass, removeClass
//=============================================================================
// functions for modifying the current list of classes defined on an element.
// currently using split() and join(), as this seems the fastest and most 
// reliable way to do it.
//=============================================================================

// addClass does not add the class if it is already in place. 
function addClass(el, sClass) {
	var a = el.className.split(" ");
	for (var i = 0; i < a.length; i++) {
		if (a[i] == sClass) return;
	}
	a[a.length] = sClass;
	el.className = a.join(" ");
}

// removeClass is ok to use, even if the element does not have the given class.
function removeClass(el, sClass) {
	var a = el.className.split(" ");
	var b = new Array();
	for (var i = 0; i < a.length; i++) {
		if (a[i] != sClass) b[b.length] = a[i];
	}
	el.className = b.join(" ");
}
