
var curLinkDisplay = "none";
var curTarget = null;

function findTarget(e, targetType, argDebugStr) {
  // Begin the DOM events part
  // alert("In findTarget()...");
  var target = null;
  var debugStr = "In findTarget()\nLooking for target type= " +
  	targetType + "\nargDebugStr= " + argDebugStr;
  if (window.event && window.event.srcElement)
    target = window.event.srcElement;  // this works in IE
  else if (e && e.target)
    // target = e.target;    // this works in Firefox (etc.)
    target = e.currentTarget;    // this works in Firefox (etc.)
  var counter = 0;
  var nameTag = '';
  if (target) {
      debugStr = debugStr +
        "\ntarget was not null";
      nameTag = target.nodeName.toLowerCase();
      while (target && (target != document.body) &&
    	   nameTag && (target.nodeName) && (nameTag != targetType)) {
    	counter = counter + 1;
        debugStr = debugStr +
          "\nFound nameTag= " + nameTag + 
          "\ncounter= " + counter;
        target = target.parentNode;
        if (target.nodeName) {
          nameTag = target.nodeName.toLowerCase();
        }
      }
  }
  if (target) {
    debugStr = debugStr +
          "\nUltimately found nameTag= " + nameTag;
  }
  else {
    debugStr = debugStr +
      "\ndid not find a target";
  }
  //alert(debugStr);
  return target;
}

function toggleTag(toggleTarget,displayVal) {
  var debugStr = "In toggleTag()";
  if (toggleTarget) {
    debugStr = debugStr +
      	"\ntoggleTarget was not null" +
      	"\ntoggleTarget.id= " +
      	toggleTarget.id +
      	"\ntoggleTarget.src= " +
      	toggleTarget.src;
    if (toggleTarget.src) {
        debugStr = debugStr +
    	  "\ntoggleTarget.src= " + toggleTarget.src;
	// Take the "src", which names an image called "something.ext",
	if (displayVal == "block") {
	  // Make it point to "something_over.ext"
	  // This is done with a regular expression
	  toggleTarget.src = toggleTarget.src.replace(/(\.[^.]+)$/, '_over$1');
	  curLinkDisplay = "block"
	}
	else {
    	  // Make it point to "something.ext"
    	  // This is done with a regular expression
    	  toggleTarget.src = toggleTarget.src.replace(/_over(\.[^.]+)$/, '$1');
	  curLinkDisplay = "none"
   	}
    }
  }
  //alert(debugStr);
}

function getChildElement(parentEl, idSuffix) {
  var debugStr = "In getChildElement()";
  var childEl = null;
  if (parentEl) {
    var imgElId = parentEl.id + idSuffix;
    debugStr = debugStr +
      "\nSearching for image using parentEl.id= " +
      parentEl.id +
      "\nimgElId= " +
      imgElId;
    childEl = document.getElementById(imgElId);
  }
  //alert(debugStr);
  return childEl;
}

function changeTarget(target,overOut) {
  var debugStr = "In changeTarget()";
  if ((target) && (overOut == 'over') && (target != curTarget)) {
    debugStr = debugStr +
      "\nNew target found!" +
      "\ntarget.id = " +
      target.id;
    var curWindowImage = getChildElement(curTarget, "img");
    var curBannerDiv = getChildElement(curTarget, "div");
    var newWindowImage = getChildElement(target, "img");
    var newBannerDiv = getChildElement(target, "div");
    if (curTarget) {
      toggleTag(curWindowImage,"none");
      curBannerDiv.style.display = "none";
    }
    if (target) {
      toggleTag(newWindowImage,"block");
      newBannerDiv.style.display = "block";
      curTarget = target;
    }
  }
  //alert(debugStr);
}

function mouseover(e) {
  // alert("In mouseover()...");
  var target = findTarget(e,'a','mouseover()');
  if (target) {
    changeTarget(target,'over');
  }
}


function mouseout(e) {
  // alert("In mouseout()...");
  var target = findTarget(e,'a','mouseout()');
  if (target) {
    changeTarget(target,'out');
  }
}

function setupRollovers() {
  //alert("In setupRollovers()...");
  if (!document.getElementsByTagName)
    return;
  var all_links = document.getElementsByTagName('a');
  var debugStr = "In setupRollovers()\n";
  for (var i = 0; i < all_links.length; i++) {
    var link = all_links[i];
    if (link.className &&
        (' ' + link.className + ' ').indexOf(' rollover ') != -1)
    {
        // alert("In setupRollovers()\nIncrementing through link #" + i + "\nclass = rollover\nlink.childNodes &&\nlink.childNodes.length = " +
	debugStr = debugStr +
	    "\nlink.childNodes.length= " +
            link.childNodes.length + 
            "\nlink.childNodes= " +
            link.childNodes +
            "\nlink.childNodes[0] = " +
            link.childNodes[0] +
            "\nlink.childNodes[0].nodeName.toLowerCase() = " +
            link.childNodes[0].nodeName.toLowerCase();

      if (link.childNodes &&
            link.childNodes.length >= 1 &&
            (link.childNodes[0].nodeName.toLowerCase() == 'img') ||     // IE
            (link.childNodes[0].nodeName.toLowerCase() == '#text')) {   // Firefox
	debugStr = debugStr +
          "\nassigning mouseover and mouseout" +
	  "\nlink.childNodes[0].nodeValue = " +
	  link.childNodes[0].nodeValue +
	  "\nlink.childNodes[0].nodeType = " +
	  link.childNodes[0].nodeType;
        link.onmouseover = mouseover;
        link.onmouseout = mouseout;
      }
    }
  }
  //alert(debugStr);
}

// When the page loads, set up the rollovers
window.onload = setupRollovers;

