function initHelpers() {
  if (!document.getElementsByTagName) return;
	
	// Attach the hover widget to simulate :hover for IE
	var listitems = $('menu').getElementsByTagName('li');
	for (var i=0; i<listitems.length; i++) {
		listitems[i].onmouseover=function() {
			this.className='hover';
		}
		listitems[i].onmouseout=function() {
			this.className='';
		}
	}
	
	var as, popfun;
	as = $('main').getElementsByTagName('a');
	for (var i=0; i<as.length; i++) {
		if(as[i].target && as[i].target=='popup') {
			var width = as[i].getAttribute('popwidth') ? as[i].getAttribute('popwidth') : 600;
			var height = as[i].getAttribute('popheight') ? as[i].getAttribute('popheight') : 450;
			var left = (screen.width - width) / 3;
			var top = (screen.height - height) / 3;
			var windowAttributes = 'width='+width+',height='+height+',left='+left+',top='+top+',scrollbars=yes,location=no,toolbar=no, resizable=yes';
			
			popfun=function(){
				var theWindow = window.open(this.href,this.target,windowAttributes);
				theWindow.focus();
				return false;
			}			
			as[i].onclick=popfun;
		}
	}
}

addEvent(window, 'load', initHelpers, true);  


// Utility functions - mostly pinched from elsewhere // 
   
function addEvent(elm, evType, fn, useCapture) {
  if (elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent){
    var r = elm.attachEvent('on'+evType, fn);
    return r;
  }
} 

function getTarget(e) {
  var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
  return targ;
}

function $() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    if (arguments.length == 1)
      return element;
    elements.push(element);
  }
  return elements;
}

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)
}