
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}


function addClass(element,value) {
  if(!element.className) {
    element.className = value;
  } else {
    newClassName = element.className;
    newClassName += " ";
    newClassName += value;
    element.className = newClassName;
  }
}
    
function remove(s, t) {
  /*
  **  Remove all occurrences of a token in a string
  **    s  string to be processed
  **    t  token to be removed
  **  returns new string
  */
  i = s.indexOf(t);
  r = "";
  if (i == -1) return s;
  r += s.substring(0,i) + remove(s.substring(i + t.length), t);
  return r;
}


  

function stripeTables() {

  if(!document.getElementsByTagName) return false;
  var tables = document.getElementsByTagName("table");
  for (var i=0; i<tables.length; i++) {
    currentTable = tables[i].className;
    checkClass =  /striped/;
    if (checkClass.test(currentTable)) {

      var odd = false;
      var rows = tables[i].getElementsByTagName("tr");
      for(var j=0; j<rows.length; j++) {
        if (odd == false) {
          addClass(rows[j],"odd");
          odd = true;
        } else {
          odd = false;
        }
      }
    }
  }
}


function highlightRows() {
  if(!document.getElementsByTagName) return false;
  var tables = document.getElementsByTagName("table");
  for (var i=0; i<tables.length; i++) {
    currentTable = tables[i].className;
    checkClass =  /striped/;
    if (checkClass.test(currentTable)) {
      var rows = tables[i].getElementsByTagName("tr");
      for (var j=0; j<rows.length; j++) {
        rows[j].onmouseover = function() {
          addClass(this,"table-highlight");
        }
        rows[j].onmouseout = function(prevClass) {
          var updateClass = this.className;
          updateClass = remove(updateClass, "table-highlight");
          this.className = updateClass;
        }
      }
    }

  }
}

/*
function highlightRows() {
  if(!document.getElementsByTagName) return false;
  var rows = document.getElementsByTagName("tr");
  for (var i=0; i<rows.length; i++) {
    

    rows[i].onmouseover = function() {
      addClass(this,"table-highlight");
    }
    rows[i].onmouseout = function(prevClass) {
      var updateClass = this.className;
      updateClass = remove(updateClass, "table-highlight");
      this.className = updateClass;
    }
    
  }
}
*/

addLoadEvent(highlightRows);
addLoadEvent(stripeTables);
