/* These functions are adapted from one written by Simon Willison 
   (http://www.incutio.com/) and taken from Jeremy Keith's excellent book 
   "DOM Scripting", Friends of Ed, 2005
*/
function addLoadEvent(p_fn) {
  var l_fnOldOnLoad = window.onload;
  if(typeof window.onload != "function") {
    window.onload = p_fn;
  }
  else {
    window.onload = function () {
      l_fnOldOnLoad();
      p_fn();
    }
  }
}

function addLoadListener(p_fn) {
	if(typeof window.addEventListener != 'undefined') {
		window.addEventListener('load', p_fn, false);
	}
	else if(typeof document.addEventListener != 'undefined') {
	  document.addEventListener('load', p_fn, false);
	}
	else if(typeof window.attachEvent != 'undefined') {
		window.attachEvent('onload', p_fn);
	}
	else {
	  var l_fnOld = window.onload;
	  if(typeof window.onload != 'function') {
	    window.onload = p_fn;
	  }
	  else {
	  	window.onload = function() {
	  	  l_fnOld();
	  	  p_fn();
	  	}
	  }
	}
}

function attachEventListener(p_target, p_eventType, p_functionRef, p_capture) {
	
	if(typeof p_target.addEventListener != 'undefined') {
		p_target.addEventListener(p_eventType, p_functionRef, p_capture);
	}
	else if(typeof p_target.attachEvent != 'undefined') {
	  p_target.attachEvent('on' + p_eventType, p_functionRef);
	}
	else {
		p_eventType = 'on' + p_eventType;
		
		if(typeof p_target[p_eventType] == 'function') {
			var l_oldListener = p_target[p_eventType];
			p_target[p_eventType] = function() {
				l_oldListener();
				return p_functionRef();
			}
		}
		else {
			p_target[p_eventType] = p_functionRef;
		}
	}
}

function addResizeEvent(p_fn) {
  var l_fnOldOnResize = window.onresize;
  if(typeof window.onresize != "function") {
    window.onresize = p_fn;
  }
  else {
    window.onresize = function () {
      l_fnOldOnResize();
      p_fn();
    }
  }
}

