var ns6 = document.getElementById && !document.all;
var ie  = document.all;

function changeto( e, highlightcolor ) {
  source = ie ? event.srcElement : e.target;
  if (source.tagName == "TR" || source.tagName == "TABLE") {
    return
  }
  while ( source.tagName != "TD" && source.tagName != "HTML" ) {
    source = ns6 ? source.parentNode : source.parentElement;
  }
  if ( source.style.backgroundColor != highlightcolor && source.id != "ignore" ) {
    source.style.backgroundColor = highlightcolor;
  }
}

function contains_ns6( master, slave ) { //check if slave is contained by master
  while ( slave.parentNode ) {
    if ( ( slave = slave.parentNode ) == master ) {
      return true;
    }
    else {
      return false;
    }
  }
}

function changeback( e, originalcolor ) {
  if ( ie && ( event.fromElement.contains( event.toElement ) || source.contains( event.toElement ) || source.id == "ignore" ) || source.tagName == "TR" || source.tagName == "TABLE" ) {
    return;
  }
  else {
    if ( ns6 && ( contains_ns6( source, e.relatedTarget ) || source.id == "ignore" ) ) {
      return;
    }
    if ( ie && event.toElement != source || ns6 && e.relatedTarget != source ) {
      source.style.backgroundColor = originalcolor;
    }
  }
}
