function RollObj(){
  //areaId
  //classTargeted
  return this;
}

function ccRollOver(id, tagName) {
  var obj = document.getElementById(id);
  var hilit = "ccHover";
  if (arguments[2]) { hilit = arguments[2];}
  var objs = obj.getElementsByTagName(tagName);
  for (var i =0; i<objs.length; i++) {
    ccSetRollOver(objs[i], hilit);
  }
} 

function ccAreaRollOver(rollObj) {
  var obj = document.getElementById(rollObj.areaId);
  if (obj==null) return;
  var classTargeted = rollObj.classTarget;
  var hilit = "ccHover";
  if (rollObj.hilit) {hilit = rollObj.hilit;}
  if (obj.hasChildNodes()) {
    for (var i = 0; i < obj.childNodes.length; i++) {
      var ccNode = obj.childNodes[i];
      ccClassRollOver(ccNode, classTargeted, hilit);
    }
  }
} 

function ccClassRollOver(obj, classTargeted, hilit) {
  if (obj.className==classTargeted) {
    ccSetRollOver(obj, hilit);
  } else {
    if (obj.hasChildNodes()) {
      for (var i = 0; i < obj.childNodes.length; i++) {
        var ccNode = obj.childNodes[i];
        ccClassRollOver(ccNode, classTargeted, hilit);
      }
    }
  }
} 

function ccSetRollOver(obj, hilit) {
  var origClassName = obj.className;
  if (origClassName==null) {origClassName="";}
  else {origClassName = obj.className;}
  if (document.all) {
    try {
      obj.onmouseover   = function() { obj.className=origClassName + " " + hilit; }
      obj.onmouseout   = function() { obj.className=origClassName; }
    } catch (e) {}
  
  } else if (document.getElementById){ // special for Netscape 7.1 and sisters
    try {
      obj.addEventListener("mouseover", function(event) { obj.className=origClassName + " " + hilit;}, true);
      obj.addEventListener("mouseout", function(event) {obj.className=origClassName;}, true);
    } catch (e) {}
  }
}