// cross-browser event handling for IE5+, NS6+ and Mozilla/Gecko
// By Scott Andrew
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;
  } else {
    elm['on' + evType] = fn;
  }
}

function findTarget(e) {
  var target;
  if (window.event && window.event.srcElement) target = window.event.srcElement;
  else if (e && e.target) target = e.target;
  if (!target) return null;
  while (target != document.body && target.nodeName.toLowerCase() != 'a') target = target.parentNode;
  if (target.nodeName.toLowerCase() != 'a') return null;
  return target;
}

function findTargetDiv(e) {
  var target;
  if (window.event && window.event.srcElement) target = window.event.srcElement;
  else if (e && e.target) target = e.target;
  if (!target) return null;
  while (target != document.body && target.nodeName.toLowerCase() != 'div') target = target.parentNode;
  if (target.nodeName.toLowerCase() != 'div') return null;
  return target;
}

function toggleVisibility(divId,action) {
	var divObj = findObj (divId);
	if (action == 'hide') {
	  divObj.style.visibility = 'hidden';
	} else if (action == 'show') {
	  divObj.style.visibility = 'visible';
	} else if (!action) {
  	if (divObj.style.visibility == 'hidden') {
  		divObj.style.visibility = 'visible';
  	} else {
  		divObj.style.visibility = 'hidden';
  	}
	}
}

function swapDisplay(spanid) {
	var spanObj = findObj (spanid);
	if (spanObj.style.display == 'none') {
		spanObj.style.display = 'inline';
	} else {
		spanObj.style.display = 'none';
	}
}

