/****************************************************
EQUALIZE DIFERENCES IN REFERRING TO DIVS IN CODE

http://www.quirksmode.org/ > javascript > dhtml > 
	dhtml micro api > DHTMLMicroAPI.js
	
EXAMPLE
	var objHeader = new getObj("header"); //where header is the id of the div
	objHeader.obj.id = 'myID';
	objHeader.style.height = '300px';
****************************************************/
function getObj(name) {
  if (document.getElementById) {
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  } /*else if (document.all) {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  } else if (document.layers) {
	this.obj = getObjNN4(document,name);
	this.style = this.obj;
  }*/
}

function getObjNN4(obj,name) {
	var x = obj.layers;
	var foundLayer;
	for (var i=0; i<x.length; i++) {
		if (x[i].id == name) foundLayer = x[i];
		else if (x[i].layers.length) var tmp = getObjNN4(x[i],name);
		if (tmp) foundLayer = tmp;
	}
	return foundLayer;
}

/****************************************************
ADD A JAVASCRIPT EVENT TO AN OBJECT (avoid having to add as an attribute in the code)
should work for most objects w/events, must give the object an ID attrib
CODE FROM: http://www.sitepoint.com/article/structural-markup-javascript/
Thanks to Scott Andrew
(NOTE: onload event will not call from an external script if we simply do window.onload)
****************************************************/
function addEvent(obj, evType, fn){
     if (obj.addEventListener) {
	 	//added after any previously added functions
         obj.addEventListener(evType, fn, true);
         return true;
     } else if (obj.attachEvent) {
	 	//added ***before*** any previously added functions (every other browser adds new function after existing functions)
         var r = obj.attachEvent("on"+evType, fn);
         return r;
     } else {
	 	 //added this for backwards compat - jm
		 //added after any previously added functions
		 eval('obj.on' + evType.toLowerCase() + ' = function() {' + (obj.onload ? obj.onload + '(); ' : '') + fn.name + '();}');
		 if(obj.captureEvents) obj.captureEvents(eval('Event.' + evType.toUpperCase()));
     }
}

function removeEvent(obj, evType, fn) {
	if(obj.removeEventListener) {
		obj.removeEventListener(evType.toLowerCase(),fn,false);
	} else if(obj.detachEvent) {
		var r = obj.detachEvent(evType.toLowerCase(),fn);
		return r;
	}
	
	if(obj.releaseEvents)
		obj.releaseEvents(eval('Event.' + evType.toUpperCase()));
	eval('obj.on' + evType.toLowerCase() + ' = null');
}

/****************************************************
APPLICATION-SPECIFIC STUFF
****************************************************/