
function showObjectById(id) {

	var obj = null;

	if (document.getElementById) {
	
		obj = document.getElementById(id);
		obj.style.visibility = 'visible';
	}
	
	return obj;

}

function showObject(obj) {

	obj.style.visibility = 'visible';

	return obj;

}

function showObject(obj) {

	if (obj != null) {

		obj.style.visibility = 'visible';
	
	}
	
	return obj;

}

function hideObjectById(id) {

	var obj = null;

	if (document.getElementById) {
	
		obj = document.getElementById(id);
		obj.style.visibility = 'hidden';
		
	}
	
	return obj;

}

function hideObject(obj) {

	if (obj != null) {

		obj.style.visibility = 'hidden';
	
	}

	return obj;

}

function getObjectById(id) {

	var obj = null;

	if (document.getElementById) {
	
		obj = document.getElementById(id);
		
	}
	
	return obj;

}

function swapImageById(id, imageUrl)
{

	var obj = document.getElementById(id);
	
	if(obj != null && obj.src)
	{
	
		obj.src = imageUrl;
	
	}

}

// variables
var dropdownMenuTag;
var imageBase;
var imageHover;
var imageRest;
var imageExtension;
var restColor;
var hoverColor;
var alignLastRight;

function initDropdownMenu(menuId, buttonTag, menuTag, alignLastMenuRight, restLinkColor, hoverLinkColor, imgBase, imgRest, imgHover, imgExtension)
{

	// set dropdown menu tag
	dropdownMenuTag = menuTag;
	imageBase = imgBase;
	imageRest = imgRest;
	imageHover = imgHover;
	imageExtension = imgExtension;
	restColor = restLinkColor;
	hoverColor = hoverLinkColor;
	alignLastRight = alignLastMenuRight;
	
	var last = false;

	var objButtonCollection = document.getElementById(menuId).getElementsByTagName(buttonTag);  
	// iterate backwards      
	for(var i = objButtonCollection.length - 1; i >= 0; i--)
	{        
		var objButton = objButtonCollection[i];
		var objLink = null;
		var objImage = null;
		var objMenu = null; 
		 
		for(var j = 0; j < objButton.childNodes.length; j++)
		{
		
			var child;
			child = objButton.childNodes.item(j);
			
			if(child.nodeName == dropdownMenuTag)
			{
				objMenu = child;
			}
			else if(child.nodeName == "A")
			{
				objLink = child;
				// find image
				for(var k = 0; k < objLink.childNodes.length; k++)
				{
				
					if(objLink.childNodes.item(k).nodeName == "IMG")
					{
						objImage = objLink.childNodes.item(k)
					}
				
				}
			}
			
		}
		
		if(objMenu != null)
		{
		
			if(!last && alignLastMenuRight)
			{
			
				var buttonLeftOffset = objButton.offsetLeft;
				var widthDiff = objMenu.offsetWidth - objButton.offsetWidth;
				var offset = 0;
				if(widthDiff > 0)
				{
					offset = (buttonLeftOffset < widthDiff) ? (buttonLeftOffset) : (widthDiff);
				}
				//var offset = (objButton.offsetWidth < objMenu.offsetWidth) ? (widthDiff) : 0;
				
				//alert("New left = " + (objMenu.offsetLeft + offset));
				
				//alert("Button Width = " + objButton.offsetWidth + ", Button Left = " + objButton.offsetLeft + ", Menu Width = " + objMenu.offsetWidth + ", Menu Left = " + objMenu.offsetLeft + ", Offset = " + offset);
				
				// set left
				//objMenu.style.position = "absolute";
				objMenu.style.left = (objMenu.offsetLeft - offset) + "px";
				//alert("Left = " + objMenu.style.left + ", Offset left = " + objMenu.offsetLeft);
				objMenu.style.width = objMenu.offsetWidth + "px";
				
				//alert("Button Width = " + objButton.offsetWidth + ", Button Left = " + objButton.offsetLeft + ", Menu Width = " + objMenu.offsetWidth + ", Menu Left = " + objMenu.offsetLeft);
			
				
				last = true;
			
			}
		
			// assign events
			objButton.onmouseover = doHover;
			objButton.onmouseout = doRest;
			
			// init to rest state
			restState(objMenu, objLink, objImage);
		
		}
		
	}
	
}

function doHover()
{

	var objButton = this;	
	
	var objLink = null;
	var objImage = null;
	var objMenu = null;   
	for(var j = 0; j < objButton.childNodes.length; j++)
	{
	
		var child;
		child = objButton.childNodes.item(j);
		
		if(child.nodeName == dropdownMenuTag)
		{
			objMenu = child;
		}
		else if(child.nodeName == "A")
		{
			objLink = child;
			// find image
			for(var k = 0; k < objLink.childNodes.length; k++)
			{
			
				if(objLink.childNodes.item(k).nodeName == "IMG")
				{
					objImage = objLink.childNodes.item(k)
				}
			
			}
		}
		
	}
	
	// state
	hoverState(objMenu, objLink, objImage);

}

function doRest()
{

	var objButton = this;	
	
	var objLink = null;
	var objImage = null;
	var objMenu = null;   
	for(var j = 0; j < objButton.childNodes.length; j++)
	{
	
		var child;
		child = objButton.childNodes.item(j);
		
		if(child.nodeName == dropdownMenuTag)
		{
			objMenu = child;
		}
		else if(child.nodeName == "A")
		{
			objLink = child;
			// find image
			for(var k = 0; k < objLink.childNodes.length; k++)
			{
			
				if(objLink.childNodes.item(k).nodeName == "IMG")
				{
					objImage = objLink.childNodes.item(k)
				}
			
			}
		}
		
	}
	
	// state
	restState(objMenu, objLink, objImage);

}

function restState(menu, link, image)
{

	if(link != null)
	{
		if(restColor != "")
		{
			link.style.color = restColor;
		}
	}
	if(image != null)
	{
		image.setAttribute("src", imageBase + imageRest + imageExtension);
	}
	if(menu != null)
	{
		//menu.style.visibility = "hidden";
		menu.style.display = "none";
	}

}

function hoverState(menu, link, image)
{

	if(link != null)
	{
		if(hoverColor != "")
		{
			link.style.color = hoverColor;
		}
	}
	if(image != null && menu != null)
	{
		if(menu.childNodes.length > 0)
		{
			image.setAttribute("src", imageBase + imageHover + imageExtension);
		}
	}
	if(menu != null)
	{
		//menu.style.visibility = "visible";
		menu.style.display = "block";
	}

}



function showDropdownMenu()
{
	var objThis = this;	

	for(var i = 0; i < objThis.childNodes.length; i++)
	{
	
		var child = objThis.childNodes.item(i);
	
		if(child.nodeName == dropdownMenuTag)			
		{							
			child.style.display = "block";
			//break;            
		}
		else if(child.nodeName == "A")
		{
		
			// set color
			if(hoverColor != "")
			{
				
				child.style.color = hoverColor;
			
			}
			
			if(imageBase != "")
			{
		
				// search link for image
				for(var j = 0; j < child.childNodes.length; j++)
				{
				
					if(child.childNodes.item(j).nodeName == "IMG")
					{
					
						// found image
						child.childNodes.item(j).setAttribute("src", imageBase + imageHover + imageExtension);
						//break;
					
					}
				
				}
			
			}
		
		}
	}

}

function hideDropdownMenu()
{								
	var objThis = this;	
	
	for(var i = 0; i  < objThis.childNodes.length; i++)			
	{
	
		var child = objThis.childNodes.item(i);
	
		if(child.nodeName == dropdownMenuTag)
		{				
			objThis.childNodes.item(i).style.display = "none";			
			//break;
		}
		else if(child.nodeName == "A")
		{
		
			// set color
			if(restColor != "")
			{
				
				child.style.color = restColor;
			
			}
			
			if(imageBase != "")
			{
		
				// search link for image
				for(var j = 0; j < child.childNodes.length; j++)
				{
				
					if(child.childNodes.item(j).nodeName == "IMG")
					{
					
						// found image
						child.childNodes.item(j).setAttribute("src", imageBase + imageRest + imageExtension);
						//break;
					
					}
				
				}
			
			}
		
		}	
	}	
}

function goToUrlOnChange(defaultUrl, urlBase, defaultStartIndex, defaultEndIndex)
{

	var list = event.srcElement;
	
	if(list.selectedIndex >= defaultStartIndex && list.selectedIndex <= defaultEndIndex)
	{
	
		window.location = defaultUrl;
	
	}
	else
	{
	
		window.location = urlBase + list.options.item(list.selectedIndex).value;
	
	}

}

function openWindowOnChange(reset, ignoreIndex)
{

	var list = event.srcElement;
	
	if(list.selectedIndex != ignoreIndex && list.options.item(list.selectedIndex).value != "")
	{
	
		eval("window.open(" + list.options.item(list.selectedIndex).value + ")");
	
	}
	
	if(reset)
	{
	
		list.selectedIndex = 0;
	
	}

}