/******************************************************************************/
/*  @name    vw drop menu javascript functions
/*  @date    Jan 19, 2007
/*  @version 2.0.0
/******************************************************************************/
//=============================================================================
// CONSTRUCTOR (create singleton instance of the vwDropMenu object)
//=============================================================================
if(typeof vwDropMenu=="undefined")
{
	var vwDropMenu = {};
}
//=============================================================================
// public methods
//=============================================================================
vwDropMenu =
{
	addMenu : function(inMenu, inDropMenu, inWidth, inDynamic, inDisplay, inDisplayColor)
	{
		vwDropMenu.menu.add(inMenu, inDropMenu, inWidth, inDynamic, inDisplay, inDisplayColor);
	},
	addItem : function(inMenu, inLabel, inHref)
	{
		vwDropMenu.item.add(inMenu, inLabel, inHref);
	},
	clear : function(inMenu)
	{
		vwDropMenu.item.clear(inMenu);
	},
	enable : function(inMenu)
	{
		if(vwDropMenu.state.get(inMenu) != "disableError")
		{
			if(vwDropMenu.state.get(inMenu) == "init")
				pngpong.serve(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+vwDropMenu.menu.data[inMenu].width.split("idth")[1]+"_enabled.png");
			else
				pngpong.swapImage(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+vwDropMenu.menu.data[inMenu].width.split("idth")[1]+"_enabled.png");
			vwDropMenu.state.set(inMenu, "enable");
		}
		else
		{
			if(vwDropMenu.state.get(inMenu) == "init")
				pngpong.serve(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+vwDropMenu.menu.data[inMenu].width.split("idth")[1]+"_error.png");
			else
				pngpong.swapImage(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+vwDropMenu.menu.data[inMenu].width.split("idth")[1]+"_error.png");
			vwDropMenu.state.set(inMenu, "error");
		}
		vwDropMenu.display.setDefault(inMenu);
		vwDropMenu.menu.addMouseEvent(inMenu);
		vwDropMenu.display.enable(inMenu);
	},
	disable : function(inMenu)
	{
		if(vwDropMenu.state.get(inMenu) != "disableError")
		{
			if(vwDropMenu.state.get(inMenu) == "init")
				pngpong.serve(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+vwDropMenu.menu.data[inMenu].width.split("idth")[1]+"_disabled.png");
			else
				pngpong.swapImage(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+vwDropMenu.menu.data[inMenu].width.split("idth")[1]+"_disabled.png");
			vwDropMenu.state.set(inMenu, "disable");
			vwDropMenu.display.setDefault(inMenu);
			vwDropMenu.menu.removeMouseEvent(inMenu);
			vwDropMenu.display.disable(inMenu);
		}
	},
	error : function(inMenu)
	{
		if(vwDropMenu.state.get(inMenu) == "disable" || vwDropMenu.state.get(inMenu) == "disableError")
		{
			// show diabled error
			vwDropMenu.state.set(inMenu, "disable");
			pngpong.swapImage(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+vwDropMenu.menu.data[inMenu].width.split("idth")[1]+"_disabled.png");
		}
		else
		{
			// show error
			vwDropMenu.state.set(inMenu, "error");
			pngpong.swapImage(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+vwDropMenu.menu.data[inMenu].width.split("idth")[1]+"_error.png");
		}
		//vwDropMenu.display.setDefault(inMenu);
	}
}
//=============================================================================
// ADD AND REMOVE DISPLAY FOR THE MENU OBJECT
vwDropMenu.display =
{
	update : function(inMenu, inLabel)
	{
		//util.getNode(inMenu+"_display_e").innerHTML = inLabel;
		util.getNode(inMenu+"_display_d").innerHTML = inLabel;
	},
	getValue : function(inMenu)
	{
		return util.getNode(inMenu+"_display_d").innerHTML;
	},
	setDefault : function(inMenu)
	{
		this.update(inMenu, vwDropMenu.menu.data[inMenu].defaultDisplay);
	},
	enable : function(inMenu)
	{
		//util.setStyle(inMenu+"_display_e", "visibility", "visible");
		util.setStyle(inMenu+"_display_d", "visibility", "visible");
		util.changeClass(inMenu, vwDropMenu.util.joinClassName(inMenu));
	},
	disable : function(inMenu)
	{
		//util.setStyle(inMenu+"_display_e", "visibility", "hidden");
		util.setStyle(inMenu+"_display_d", "visibility", "visible");
		// remove hand cursor and swap rollover color
		var items = vwDropMenu.menu.data[inMenu].classItems;
		var newClass = "";
		for(var i=0; i<items.length; i++)
		{
			if(items[i] != "vw_handCursor")
				newClass += items[i] + " ";
		}
		util.changeClass(inMenu, newClass + "vw_noCursor");
	}
}
//=============================================================================
// private methods
// INITIALIZE vwDropMenu
//=============================================================================
vwDropMenu.init = function()
{
	vwDropMenu.menu.init();
	vwDropMenu.scroll.init();
};
vwDropMenu.state =
{
	get : function(inItem)
	{
		return vwDropMenu.menu.data[inItem].state;
	},
	set : function(inItem, inState)
	{
		vwDropMenu.menu.data[inItem].state = inState;
	}
}
//=============================================================================
// CONTROLERS FOR THE MENU OBJECT
//=============================================================================
vwDropMenu.menu =
{
	//=========================================================================
	// initialize function
	init : function()
	{
		this.timeout = null;
		this.timeout_show = null;
		this.hideDelay = 250;
		this.speed = 0.4;
		this.data = new Object();
		// preload roll over images for up/down arrows
		this.up_out = new Image();
		this.up_over = new Image();
		this.dn_out = new Image();
		this.dn_over = new Image();
		this.up_blank = new Image();
		this.dn_blank = new Image();
		this.dm_item_over = new Image();
		this.up_out.src = "/global/images/vwDropMenu/vw_dropMenu_arrow_up_out.gif";
		this.up_over.src = "/global/images/vwDropMenu/vw_dropMenu_arrow_up_over.gif";
		this.dn_out.src = "/global/images/vwDropMenu/vw_dropMenu_arrow_down_out.gif";
		this.dn_over.src = "/global/images/vwDropMenu/vw_dropMenu_arrow_down_over.gif";
		this.up_blank.src = "/global/images/vwDropMenu/vw_dropMenu_arrow_up_blank.gif";
		this.dn_blank.src = "/global/images/vwDropMenu/vw_dropMenu_arrow_down_blank.gif";
		this.dm_item_over.src = "/global/images/vwDropMenu/vw_dropMenu_item_over.gif";
	},
	//=========================================================================
	// add item as a menu item
	add : function(inMenu, inDropMenu, inWidth, inDynamic, inDisplay, inDisplayColor)
	{
		var menu = util.getNode(inMenu);
		var dropMenu = util.getNode(inDropMenu);
		var isDynamic = false;
		// fix dropMenu position for all browsers
		var menuXY = YAHOO.util.Dom.getXY(inMenu);
		menuXY[0] += 0;
		menuXY[1] += 0;
		YAHOO.util.Dom.setXY(inDropMenu, menuXY);
		// check for number of items in drop menu
		// if 1 or less then do not let menu drop down
		var itemCount = 0;
		for(var i=0; i<dropMenu.childNodes.length; i++)
		{
			if(dropMenu.childNodes[i].nodeName == "A")
			{
				itemCount += 1;
			}
		}
		if(inDynamic != true)
			isDynamic = false;
		else
			isDynamic = true;
		// add all menu items to data object for reference
		this.data[inMenu] = new Object();
		this.data[inMenu].dropMenu = inDropMenu;
		this.data[inMenu].width = inWidth;
		this.data[inMenu].isDynamic = isDynamic;
		this.data[inMenu].itemCount = itemCount;
		this.data[inMenu].defaultDisplay = (inDisplay == undefined)?"SELECT":inDisplay;
		this.data[inMenu].state = "init";
		this.data[inMenu].classItems = vwDropMenu.util.splitClassName(inMenu);
		var scrollerBgWidth = Number(inWidth.split("idth")[1])-12;
		var scrollerArrowY = Math.floor((scrollerBgWidth-32+12)/2);
		// create new div's to handle menu styling and control
		if(inDisplayColor == null)
			displayColor = "text_grey_light";
		else
			displayColor = inDisplayColor;
		var newMenu = '<div id="'+inMenu+'_img" class="vw_menu_'+inWidth+'"></div>';
		//newMenu += '<a id="'+inMenu+'_display_e" href="javascript:void(0);" class="vw_menu vw_menu_'+inWidth+' '+displayColor+'"></a>';
		newMenu += '<div id="'+inMenu+'_display_d" class="vw_menu vw_menu_'+inWidth+' '+displayColor+'"></div>';
		menu.innerHTML = newMenu;
		pngpong.serve(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+inWidth.split("idth")[1]+"_inactive.png");
		// create new div's to handle drop menu styling and control
		var newDropMenu = '<div id="vw_dropMenu_'+inMenu+'" class="vw_dropMenu_container vw_menu_'+inWidth+'">';
		newDropMenu += '<div id="vw_dropMenu_scrollDown_'+inMenu+'" class="vw_dropMenu_scroller vw_dropMenu_scrollDown vw_dropMenu_'+inWidth+'">';
			newDropMenu += '<div class="vw_dropMenu_scroller_cap_left"><img src="/global/images/vwDropMenu/vw_dropMenu_scroller_top_left.gif" /></div>';
			newDropMenu += '<div class="vw_dropMenu_scroller_cap_right"><img src="/global/images/vwDropMenu/vw_dropMenu_scroller_top_right.gif" /></div>';
			newDropMenu += '<div class="vw_dropMenu_scroller_arrow" style="left:'+scrollerArrowY+'px"><img id="vw_dropMenu_arrowDn_'+inMenu+'" name="vw_dropMenu_arrowDn_'+inMenu+'" src="/global/images/vw_dropMenu_arrow_down_out.gif" /></div>';
			newDropMenu += '<div class="vw_dropMenu_scroller_top_bg" style="width:'+scrollerBgWidth+'px;"></div>';
		newDropMenu +='</div>';
		newDropMenu += '<div id="vw_dropMenu_mask_'+inMenu+'" class="vw_dropMenu_mask vw_menu_'+inWidth+'">';
		newDropMenu += '<div id="vw_dropMenu_content_'+inMenu+'" class="vw_dropMenu_content vw_menu_'+inWidth+'">';
		newDropMenu += dropMenu.innerHTML;
		newDropMenu += '</div>';
		newDropMenu += '<div id="vw_dropMenu_border_left_'+inMenu+'" class="vw_dropMenu_border_left"></div>';
		newDropMenu += '<div id="vw_dropMenu_border_right_'+inMenu+'" class="vw_dropMenu_border_right"></div>';
		newDropMenu += '<div id="vw_dropMenu_bg_'+inMenu+'" class="vw_dropMenu_bg "></div>';
		newDropMenu += '</div>';
		newDropMenu += '<div id="vw_dropMenu_scrollUp_'+inMenu+'" class="vw_dropMenu_scroller vw_dropMenu_scrollUp vw_menu_'+inWidth+'">';
			newDropMenu += '<div class="vw_dropMenu_scroller_cap_left"><img src="/global/images/vwDropMenu/vw_dropMenu_scroller_bottom_left.gif" /></div>';
			newDropMenu += '<div class="vw_dropMenu_scroller_cap_right"><img src="/global/images/vwDropMenu/vw_dropMenu_scroller_bottom_right.gif" /></div>';
			newDropMenu += '<div class="vw_dropMenu_scroller_arrow" style="left:'+scrollerArrowY+'px"><img id="vw_dropMenu_arrowUp_'+inMenu+'" name="vw_dropMenu_arrowUp_'+inMenu+'" src="/global/images/vw_dropMenu_arrow_up_out.gif" /></div>';
			newDropMenu += '<div class="vw_dropMenu_scroller_bottom_bg" style="width:'+scrollerBgWidth+'px;"></div>';
		newDropMenu += '</div>';
		newDropMenu += '</div>';
		dropMenu.innerHTML = newDropMenu;
		vwDropMenu.scroll.addDnEvents(inMenu, true);
		vwDropMenu.scroll.addUpEvents(inMenu, true);
		vwDropMenu.dropMenu.redraw(inMenu);
		// if there are 2 or more items in the drop menu
		// then allow selection and create drop menu
		if(itemCount >= 2 || isDynamic == true)
		{
			vwDropMenu.enable(inMenu);
			if(isDynamic == false)
				vwDropMenu.menu.addMouseEvent(inMenu);
		}
		else
		{
			vwDropMenu.disable(inMenu);
		}
	},
	addMouseEvent : function(inMenu)
	{
		var menu = util.getNode(inMenu);
		menu.onmousedown = function()
		{
			vwDropMenu.scroll.reset(inMenu);
			vwDropMenu.dropMenu.show(inMenu, vwDropMenu.menu.data[inMenu].dropMenu, vwDropMenu.menu.data[inMenu].width);
			vwDropMenu.dropMenu.addMouseEvent(inMenu, vwDropMenu.menu.data[inMenu].dropMenu, vwDropMenu.menu.data[inMenu].width);
		}
	},
	removeMouseEvent : function(inMenu)
	{
		var menu = util.getNode(inMenu);
		menu.onmousedown = null;
	}
}
//=============================================================================
// CONTROLERS FOR THE DROP MENU OBJECT
//=============================================================================
vwDropMenu.dropMenu =
{
	// set the vw_dropMenu_scrollUp to the bottom of the content
	redraw : function(inMenu)
	{
		var contentHeight = YAHOO.util.Dom.get("vw_dropMenu_content_"+inMenu).offsetHeight;
		var maskHeight = YAHOO.util.Dom.get("vw_dropMenu_mask_"+inMenu).offsetHeight;
		if(contentHeight < maskHeight)
		{
			var maskY = YAHOO.util.Dom.getY("vw_dropMenu_mask_"+inMenu);
			YAHOO.util.Dom.setY("vw_dropMenu_scrollUp_"+inMenu, maskY+contentHeight);
			util.setStyle(vwDropMenu.menu.data[inMenu].dropMenu, "height", (contentHeight+18+18), "px");
			util.setStyle("vw_dropMenu_"+inMenu, "height", (contentHeight+18), "px");
			util.setStyle("vw_dropMenu_border_left_"+inMenu, "height", (contentHeight), "px");
			util.setStyle("vw_dropMenu_border_right_"+inMenu, "height", (contentHeight), "px");
			util.setStyle("vw_dropMenu_bg_"+inMenu, "height", (contentHeight), "px");
		}
	},
	addMouseEvent : function(inMenu, inDropMenu, inWidth)
	{
		var dropMenu = util.getNode(inDropMenu);
		dropMenu.onmouseout = function()
		{
			clearInterval(vwDropMenu.menu.timeout);
			vwDropMenu.menu.timeout = setInterval("vwDropMenu.dropMenu.hide('"+inMenu+"', '"+inDropMenu+"', '"+inWidth.split("idth")[1]+"');", vwDropMenu.menu.hideDelay);
		};
		dropMenu.onmouseover = function()
		{
			if(vwDropMenu.menu.timeout != undefined)
				clearInterval(vwDropMenu.menu.timeout);
		};
		dropMenu.onmousedown = function()
		{
			clearInterval(vwDropMenu.menu.timeout);
			vwDropMenu.menu.timeout = setInterval("vwDropMenu.dropMenu.hide('"+inMenu+"','"+inDropMenu+"', '"+inWidth.split("idth")[1]+"');", vwDropMenu.menu.hideDelay);
		};
	},
	//=========================================================================
	// show / hide functions
	/*show : function(inMenu, inDropMenu, inWidth)
	{
		if(vwDropMenu.state.get(inMenu) == "error")
			pngpong.swapImage(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+vwDropMenu.menu.data[inMenu].width.split("idth")[1]+"_enabled.png");
		var w = inWidth.split("idth")[1];
		// move dropmenu up
		var containerHeight = YAHOO.util.Dom.get("vw_dropMenu_"+inMenu).offsetHeight;
		var containerHomeY = YAHOO.util.Dom.getY("vw_dropMenu_"+inMenu);
		YAHOO.util.Dom.setY("vw_dropMenu_"+inMenu, containerHomeY-containerHeight);
		// make sure that the x and y positions is aligned properly if something else
		// on the page moves the menu after initialization	
		var menuXY = YAHOO.util.Dom.getXY(inMenu);
		menuXY[0] += 0;
		menuXY[1] += 0;
		YAHOO.util.Dom.setXY(inDropMenu, menuXY);
		// make dropmenu visible
		util.setStyle(inDropMenu, "visibility", "visible");
		// animate dropmenu down
		myAnimObj = new YAHOO.util.Anim("vw_dropMenu_"+inMenu, {top:{by: containerHeight}}, vwDropMenu.menu.speed, YAHOO.util.Easing.easeOut);
		myAnimObj.animate();
	},*/
	show : function(inMenu, inDropMenu, inWidth)
	{
		if(vwDropMenu.state.get(inMenu) == "error")
			pngpong.swapImage(inMenu+"_img", "/global/images/vwDropMenu/dropMenuBg_w"+vwDropMenu.menu.data[inMenu].width.split("idth")[1]+"_enabled.png");
		var w = inWidth.split("idth")[1];
		// move dropmenu up
		var containerHomeY = YAHOO.util.Dom.getY("vw_dropMenu_"+inMenu);
		YAHOO.util.Dom.setY("vw_dropMenu_"+inMenu, containerHomeY);
		// make sure that the x and y positions is aligned properly if something else
		// on the page moves the menu after initialization	
		var menuXY = YAHOO.util.Dom.getXY(inMenu);
		menuXY[0] += 0;
		menuXY[1] += 0;
		YAHOO.util.Dom.setXY(inDropMenu, menuXY);
		// make dropmenu visible
		util.setStyle(inDropMenu, "visibility", "visible");
	},
	hide : function(inMenu, inDropMenu, inWidth)
	{
		clearInterval(vwDropMenu.menu.timeout);
		util.setStyle(inDropMenu, "visibility", "hidden");
	}
}
//=============================================================================
// ADD AND REMOVE ITEMS FOR THE DROP MENU OBJECT
//=============================================================================
vwDropMenu.item =
{
	add : function(inMenu, inLabel, inHref)
	{
		var dropMenu = util.getNode("vw_dropMenu_content_"+inMenu);
		dropMenu.innerHTML += '<a href="'+inHref+'" onmousedown="vwDropMenu.display.update(\''+inMenu+'\', \''+inLabel+'\');">'+inLabel+'</a>';
		vwDropMenu.menu.data[inMenu].itemCount += 1;
		if(vwDropMenu.menu.data[inMenu].itemCount == 1)
		{
			vwDropMenu.enable(inMenu);
			if(vwDropMenu.display.getValue(inMenu).length < 1)
			{
				vwDropMenu.display.update(inMenu, "SELECT");
				vwDropMenu.menu.addMouseEvent(inMenu);
			}
		}
		vwDropMenu.dropMenu.redraw(inMenu);
	},
	remove : function()
	{
	},
	clear : function(inMenu)
	{
		var dropMenu = util.getNode("vw_dropMenu_content_"+inMenu);
		dropMenu.innerHTML = "";
		vwDropMenu.menu.removeMouseEvent(inMenu);
		vwDropMenu.menu.data[inMenu].itemCount = 0;
		vwDropMenu.display.update(inMenu, vwDropMenu.menu.data[inMenu].defaultDisplay);
	}
}
//=============================================================================
// UTILITY FUNCTIONS
//=============================================================================
vwDropMenu.util = 
{
	//=========================================================================
	swapImage : function(inName, inImage)
	{
		try{
			document[inName].src = inImage;
		}catch(e){
			//alert("catch: " + e + " | " + inName + " | " + inImage);
		}
	},
	//=========================================================================
	splitClassName : function(inName)
	{
		return util.getNode(inName).className.split(" ");
	},
	joinClassName : function(inName)
	{
		return vwDropMenu.menu.data[inName].classItems.join(" ");
	}
}
//=============================================================================
// SCROLLING FUNCTIONS
//=============================================================================
vwDropMenu.scroll =
{
	//=========================================================================
	// initialize variables
	init : function()
	{
		//=====================================================================
		// private variables used for scrolling features
		this.element = null;
		this.mask = null;
		this.dn = null;
		this.up = null;
		this.timeout = 0;
		this.speed = 17;
		this.interval = 200;
		this.element_height = 0;
		this.mask_height = 0;
		this.diff = 0;
	},
	//=========================================================================
	// reset content to zero position
	reset : function(inMenu)
	{
		this.element = "vw_dropMenu_content_" + inMenu;
		this.mask = "vw_dropMenu_mask_" + inMenu;
		this._name = inMenu;
		this.element_height = YAHOO.util.Dom.get(this.element).offsetHeight;
		this.mask_height = YAHOO.util.Dom.get(this.mask).offsetHeight;
		this.diff = this.element_height - this.mask_height;
		YAHOO.util.Dom.setY("vw_dropMenu_content_"+inMenu, YAHOO.util.Dom.getY("vw_dropMenu_mask_" + inMenu));
		vwDropMenu.scroll.addDnEvents(inMenu, false);
		if(this.diff <= 0)
			vwDropMenu.scroll.addUpEvents(inMenu, false);
		else
			vwDropMenu.scroll.addUpEvents(inMenu, true);
	},
	//=========================================================================
	// public event handlers to start and top the scrolling feature
	animateUp : function(inName)
	{
		this.start(inName, "up");
	},
	animateDown : function(inName)
	{
		this.start(inName, "down");
	},
	//=========================================================================
	// private methods to start and stop the scrolling feature
	start : function(inName, inType)
	{
		if(inType == "up")
			this.timeout = setInterval("vwDropMenu.scroll.animationUp();", this.interval);
		else
			this.timeout = setInterval("vwDropMenu.scroll.animationDown();", this.interval);
	},
	stop : function()
	{
		clearInterval(this.timeout);
	},
	//=========================================================================
	// private methods to control the scrolling animation
	animationUp : function()
	{
		var elementPositionY = YAHOO.util.Dom.getY(this.mask) - YAHOO.util.Dom.getY(this.element);
		if(elementPositionY > 0)
		{
			vwDropMenu.scroll.addUpEvents(this._name, true);
			YAHOO.util.Dom.setY(this.element, YAHOO.util.Dom.getY(this.element)+this.speed);
		}
		else
		{
			vwDropMenu.scroll.addDnEvents(this._name, false);
			this.stop();
		}
	},
	animationDown : function()
	{
		var elementPositionY = YAHOO.util.Dom.getY(this.mask) - YAHOO.util.Dom.getY(this.element);
		if(elementPositionY < this.diff)
		{
			vwDropMenu.scroll.addDnEvents(this._name, true);
			YAHOO.util.Dom.setY(this.element, YAHOO.util.Dom.getY(this.element)-this.speed);
		}
		else
		{
			vwDropMenu.scroll.addUpEvents(this._name, false);
			this.stop();
		}
	},
	addDnEvents : function(inName, inBool)
	{
		var d = util.getNode("vw_dropMenu_scrollDown_"+inName);
		if(inBool == true)
		{
			vwDropMenu.util.swapImage("vw_dropMenu_arrowDn_"+inName, vwDropMenu.menu.dn_out.src);
			d.onmouseover = function()
			{
				vwDropMenu.util.swapImage("vw_dropMenu_arrowDn_"+inName, vwDropMenu.menu.dn_over.src);
				vwDropMenu.scroll.animateUp(inName);
			};
			d.onmouseout = function()
			{
				vwDropMenu.scroll.stop();
				vwDropMenu.util.swapImage("vw_dropMenu_arrowDn_"+inName, vwDropMenu.menu.dn_out.src);
			};
		}
		else
		{
			d.onmouseover = null;
			d.onmouseout = null;
			vwDropMenu.util.swapImage("vw_dropMenu_arrowDn_"+inName, vwDropMenu.menu.dn_blank.src);
		}
	},
	addUpEvents : function(inName, inBool)
	{
		var d = util.getNode("vw_dropMenu_scrollUp_"+inName);
		if(inBool == true)
		{
			vwDropMenu.util.swapImage("vw_dropMenu_arrowUp_"+inName, vwDropMenu.menu.up_out.src);
			d.onmouseover = function()
			{
				vwDropMenu.util.swapImage("vw_dropMenu_arrowUp_"+inName, vwDropMenu.menu.up_over.src);
				vwDropMenu.scroll.animateDown(inName);
			};
			d.onmouseout = function()
			{
				vwDropMenu.scroll.stop();
				vwDropMenu.util.swapImage("vw_dropMenu_arrowUp_"+inName, vwDropMenu.menu.up_out.src);
			};
		}
		else
		{
			d.onmouseover = null;
			d.onmouseout = null;
			vwDropMenu.util.swapImage("vw_dropMenu_arrowUp_"+inName, vwDropMenu.menu.up_blank.src);
		}
	}
}
//=============================================================================
// TOOLTIP FUNCTIONS
//=============================================================================
vwDropMenu.tooltip =
{
	add : function(inName)
	{
		try{
			var d = util.getNode(inName);
			d.onmouseover = function()
			{
				vwLeftNav.tooltip.show(inName);
			};
			d.onmouseout = function()
			{
				vwLeftNav.tooltip.hide();
			};
		}catch(e){}
	},
	get : function(inName)
	{
		var tooltip = util.getNode(inName);
		if(tooltip == null)
		{
			util.createNode("body", inName, inName);
			pngpong.serve(inName, "/global/images/comingSoon.png");
		}
		var tooltip = util.getNode(inName);
		return tooltip;
	},
	show : function(inTarget)
	{
		var tooltip = vwLeftNav.tooltip.get("comingSoon");
		var newX = YAHOO.util.Dom.getX(inTarget)-20;
		var newY = YAHOO.util.Dom.getY(inTarget)-28;
		YAHOO.util.Dom.setX("comingSoon", newX);
		YAHOO.util.Dom.setY("comingSoon", newY);
		util.setStyle("comingSoon", "visibility", "visible");
		util.setStyle("comingSoon_img", "visibility", "visible");
	},
	hide : function()
	{
		util.setStyle("comingSoon", "visibility", "hidden");
		util.setStyle("comingSoon_img", "visibility", "hidden");
	}
}
//=============================================================================
// TRACE FUNCTIONS
//=============================================================================
vwDropMenu.trace = 
{
	get : function(inName)
	{
		var out = util.getNode(inName);
		if(out == null)
		{
			util.createNode("body", inName, "traceDiv");
			out = util.getNode(inName);
		}
		return out;
	},
	write : function(inStr)
	{
		vwDropMenu.trace.get("traceDiv").innerHTML += inStr + "<br>";
	},
	clear : function()
	{
		vwDropMenu.trace.get("traceDiv").innerHTML = "";
	}
}
vwDropMenu.init();