// common.js Jason Boyer 7/07
// Helper functions

// addEvent(object element, string event, function handler, bool capture)
// cross browser event listener registration
function addEvent(elm, evt, hdl, cap)
{
    if (elm.addEventListener)
    {
        elm.addEventListener(evt, hdl, cap);
        return true;
    }
    
    if (elm.attachEvent)
    {
        return (elm.attachEvent("on" + evt, hdl)); // event names need "on" and cap is always true in IE
    }

    return false;
}

// removeEvent(object element, string event, function handler, bool capture)
// cross browser event listener de-registration
function removeEvent(elm, evt, hdl, cap)
{
    if (elm.removeEventListener)
    {
        elm.removeEventListener(evt, hdl, cap);
        return true;
    }

    if (elm.detachEvent)
    {
        return (elm.detachEvent("on" + evt, hdl)); // event names need "on" and cap is always true in IE
    }

    return false;
}

// stripe()
// adds the CSS classes "zebraEven" or "zebraOdd" to tables with the classname "zebra"
function stripe()
{
	var tables;
	var rows;
	var i;
	var j;
	var count = true;

	tables = document.getElementsByClassName("zebra");

	for(i = 0; i < tables.length; i++)
	{
		if(tables[i].nodeName.toLowerCase() == "table")
		{
			rows = tables[i].getElementsByTagName("tr");

			for(j = 0; j < rows.length; j++)
				{
					if(count)
						rows[j].className += " zebraEven";
					else
						rows[j].className += " zebraOdd";
						
					count = !count;
				}
		}
	}
}

// (C) Jason Boyer 6/2002 hitscan@hotmail.com
// This file is not to be redistributed or copied without this and the above line.

// getElementsByClassName(string titletext)
// utility function to select elements by classname (i.e. for event modification, further styling, etc.)
function getElementsByClassName(name)
{
	var allelems, retary, i;
	
	retary = new Array();
	
	allelems = document.getElementsByTagName("*");
	
	for(i = 0; i < allelems.length; i++)
		if(allelems[i].className)
			if(allelems[i].className.indexOf(name) != -1)
				retary.push(allelems[i]);
			
	return retary;

} // getElementsByClassName

// getElementByTitle(string titletext)
// utility function to select elements by title (i.e. for classname manipulation, etc.)
function getElementsByTitle(titletext)
{
	var allelems, retary, i;
	
	retary = new Array();
	
	allelems = document.getElementsByTagName("*");
	
	for(i = 0; i < allelems.length; i++)
		if(allelems[i].title == titletext)
			retary.push(allelems[i]);
			
	return retary;
	
} // getElementsByTitle

if(!document.getElementByClassName)
	document.getElementsByClassName = getElementsByClassName;

if(!document.getElementsByTitle)	
	document.getElementsByTitle = getElementsByTitle;
