//***********************************************
// Global Load events
//***********************************************


//***********************************************
// Gets all elements with the given class
//***********************************************
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}
//*******************************************************
// Determines if a number is an integer
//*******************************************************
function isInt(myNum){
	// get the modulus: if it's 0, then it's an integer
	var myMod = myNum % 1;
	if(myMod == 0){
		return true;
	}else{
		return false;
	}
}
//***********************************************
// removes all child nodes from the passed object
//***********************************************
function clearNodes(obj){
	if(obj){
		while(obj.hasChildNodes()){
			obj.removeChild(obj.childNodes[0]);
		}
	}
}
//*******************************************************
// Adds alternating highlights to a table
//*******************************************************
function setHighlights(tbl,col1,col2){
	var trs=tbl.getElementsByTagName('tr')
	var len=trs.length;
	for(var i=0;i<len;i++){
		if(i%2){
			trs[i].style.backgroundColor=col1;
			trs[i].style.color="#000000";
		}
		else{
			trs[i].style.backgroundColor=col2;
			trs[i].style.color="#000000";
		}
	}
}
//*******************************************************
// Adds an event listener to an object without removing
// current events.
//*******************************************************
function XBrowserAddHandler(target,eventName,handlerName) {
  if ( target.addEventListener ) {
    target.addEventListener(eventName, function(e){target[handlerName](e);}, false);
  } else if ( target.attachEvent ) {
    target.attachEvent("on" + eventName, function(e){target[handlerName](e);});
  } else {
    var originalHandler = target["on" + eventName];
    if ( originalHandler ) {
      target["on" + eventName] = function(e){originalHandler(e);target[handlerName](e);};
    } else {
      target["on" + eventName] = target[handlerName];
    }
  }
}
//*******************************************************
// Adds an onload event without removing declared load events
//*******************************************************
function addLoadEvent(func){
	varoldonload=window.onload;
	if(typeof window.onload!='function'){
		window.onload=func;
	}else{
		window.onload=function(){
			if(oldonload){
				oldonload();
			}
			func();
		}
	}
}