function get_element_by_id(sTagID, oWindow)
{
	// allow alternative window object to be passed in
	if ((oWindow == null) || (oWindow == undefined)) oWindow = window;
	
	if (typeof(sTagID) == "object")
	{
		return sTagID; // return existing object references unchanged
	}
	else if(typeof(sTagID) == "string")
	{
		// get an element reference from its id attribute
		if (document.getElementById) var oTag = oWindow.document.getElementById(sTagID); // standards
		else if (document.all) var oTag = oWindow.document.all[sTagID]; // IE4
		if (oTag) return oTag;
	}
	return false;
}

// onchange event handler for dropdown list navigation
function OnListChange() { document.location.href = this.options[this.selectedIndex].value; }

// add event handler to page load
function AddLoadEvent(func)
{
	var mmOldHandler = window.onload;
  
	if (typeof window.onload != 'function') 
	{
		window.onload = func;
	}
	else
	{
		window.onload = function() 
		{
			mmOldHandler();
			func();
		}
	}
}

// add event handler to control's click event
// existing handlers fire only if new handler returns true
function InsertClickEvent(sId, func) 
{
  oElement = get_element_by_id(sId);
  if (oElement)
  {
	var mOldHandler = oElement.onclick;
	if (typeof oElement.onclick != 'function') 
	{
		oElement.onclick = func;
	} 
	else
	{
		oElement.onclick = function()
		{
			bResult = func();
			if (bResult) mOldHandler();
			return bResult;			
		}
	}
  }
}