/*Version $Id: domextension.js 1568 2006-01-09 18:33:41Z ray $*/

document.getElementsByClass = function (needle)
{
  var         my_array = document.getElementsByTagName("*");
  var         retvalue = new Array();
  var        i = 0;
  var        j = 0;

  for (i = 0, j= 0; i < my_array.length; i++)
  {
    var c = " " + my_array[i].className + " ";
    if (c.indexOf(" " + needle + " ") != -1)
      retvalue[j++] = my_array[i];
  }
  return retvalue;
}

function isChild(parentObj, testObj) {
	var i = 0;
	
	for (i = 0; i < parentObj.childNodes.length; i++) {
		if ((parentObj.childNodes[i] == testObj) || (isChild(parentObj.childNodes[i], testObj))) {
			return true;
		}
	}	
	return false;
}

function isParent(childObj, testObj) {
	
	if (testObj == childObj.parentNode) {
		return true;
	} else {
		if (childObj.parentNode.tagName == 'BODY') {
			return false;
		}
		return isParent(childObj.parentNode, testObj);
	}	
	return false;
}

function isSibling(first, second) {
	var i = 0;
	var parent = null;
	
	if (first == null || second == null) {
		return false;
	} else if (first.tagName == 'BODY' || second.tagName == 'BODY') {
		return false;
	} else {
		parent = first.parentNode;	
		for (i = 0; i < parent.childNodes.length; i++) {
			if (parent.childNodes[i] == second) return true;
		}		
		return false;
	}
}

/**********************************************/
/* nicked from: http://phrogz.net/JS/AttachEvent_js.txt*/
/**********************************************/

function AttachEvent(obj,evt,fnc,useCapture){
	if (!useCapture) useCapture=false;
	if (obj.addEventListener){
		obj.addEventListener(evt,fnc,useCapture);
		return true;
	} else if (obj.attachEvent) return obj.attachEvent("on"+evt,fnc);
	else{
		MyAttachEvent(obj,evt,fnc);
		obj['on'+evt]=function(){ MyFireEvent(obj,evt) };
	}
} 

//The following are for browsers like NS4 or IE5Mac which don't support either
//attachEvent or addEventListener
function MyAttachEvent(obj,evt,fnc){
	if (!obj.myEvents) obj.myEvents={};
	if (!obj.myEvents[evt]) obj.myEvents[evt]=[];
	var evts = obj.myEvents[evt];
	evts[evts.length]=fnc;
}
function MyFireEvent(obj,evt){
	if (!obj || !obj.myEvents || !obj.myEvents[evt]) return;
	var evts = obj.myEvents[evt];
	for (var i=0,len=evts.length;i<len;i++) evts[i]();
}
