// this function is needed to work around
// a bug in IE related to element attributes
function hasClass(obj) {
   var result = false;
   if (obj.getAttributeNode("class") != null) {
       result = obj.getAttributeNode("class").value;
   }
   return result;
}

function stripe(id) {

  // the flag we'll use to keep track of
  // whether the current row is odd or even
  var even = false;

  // if arguments are provided to specify the colours
  // of the even & odd rows, then use the them;
  // otherwise use the following defaults:
  var evenColor = arguments[1] ? arguments[1] : "#fff";
  var oddColor = arguments[2] ? arguments[2] : "#eee";

  // obtain a reference to the desired table
  // if no such table exists, abort
  var table = document.getElementById(id);
  if (! table) { return; }

  // by definition, tables can have more than one tbody
  // element, so we'll have to get the list of child
  // &lt;tbody&gt;s
  var tbodies = table.getElementsByTagName("tbody");

  // and iterate through them...
  for (var h = 0; h < tbodies.length; h++) {

   // find all the &lt;tr&gt; elements...
    var trs = tbodies[h].getElementsByTagName("tr");

    // ... and iterate through them
    for (var i = 0; i < trs.length; i++) {

      // avoid rows that have a class attribute
      // or backgroundColor style
      if (! hasClass(trs[i]) &&
          ! trs[i].style.backgroundColor) {

        // get all the cells in this row...
        var tds = trs[i].getElementsByTagName("td");

        // and iterate through them...
        for (var j = 0; j < tds.length; j++) {

          var mytd = tds[j];

          // avoid cells that have a class attribute
          // or backgroundColor style
          //if (! hasClass(mytd) &&
          //    ! mytd.style.backgroundColor) {

            mytd.style.backgroundColor =
              even ? evenColor : oddColor;

          //}
        }
      }
      // flip from odd to even, or vice-versa
      even =  ! even;
    }
  }
}

/*
   tableruler()
   written by Chris Heilmann for alistapart.
   enables a rollover of rows for each table with the classname
"hlrows"
*/

function tableruler()
{
   if (document.getElementById && document.createTextNode)
   {
      var tables=document.getElementsByTagName('table');
      for (var i=0;i<tables.length;i++)
      {
         if(tables[i].className=='ruler')
         {
            var trs=tables[i].getElementsByTagName('tr');
            for(var j=0;j<trs.length;j++)
            {
               if(trs[j].parentNode.nodeName=='TBODY')
               {

trs[j].onmouseover=function(){this.className='ruled';return
false}
                  trs[j].onmouseout=function(){this.className='';return
false}
               }
            }
         }
      }
   }

}

/************************************************************************************************************
(C) www.dhtmlgoodies.com, November 2005

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland
************************************************************************************************************/
var arrayOfRolloverClasses = new Array();
var arrayOfClickClasses = new Array();
var activeRow = false;
var activeRowClickArray = new Array();

function highlightTableRow()
{
  var tableObj = this.parentNode;
  if(tableObj.tagName!='TABLE')tableObj = tableObj.parentNode;

  if(this!=activeRow){
  	this.setAttribute('origCl',this.className);
  	this.origCl = this.className;
  }
  this.className = arrayOfRolloverClasses[tableObj.id];

  activeRow = this;
}

function clickOnTableRow()
{
  var tableObj = this.parentNode;
  if(tableObj.tagName!='TABLE')tableObj = tableObj.parentNode;

  if(activeRowClickArray[tableObj.id] && this!=activeRowClickArray[tableObj.id]){
  	activeRowClickArray[tableObj.id].className='';
  }
  this.className = arrayOfClickClasses[tableObj.id];

  activeRowClickArray[tableObj.id] = this;
}

function resetRowStyle()
{
  var tableObj = this.parentNode;
  if(tableObj.tagName!='TABLE')tableObj = tableObj.parentNode;

  if(activeRowClickArray[tableObj.id] && this==activeRowClickArray[tableObj.id]){
  	this.className = arrayOfClickClasses[tableObj.id];
  	return;
}

var origCl = this.getAttribute('origCl');
if(!origCl)origCl = this.origCl;
this.className=origCl;
}

function addTableRolloverEffect(tableId,whichClass,whichClassOnClick)
{
  arrayOfRolloverClasses[tableId] = whichClass;
  arrayOfClickClasses[tableId] = whichClassOnClick;

  var tableObj = document.getElementById(tableId);
  var tBody = tableObj.getElementsByTagName('TBODY');
  if(tBody){
  	var rows = tBody[0].getElementsByTagName('TR');
  }else{
  	var rows = tableObj.getElementsByTagName('TR');
  }
  for(var no=0;no<rows.length;no++){
  	rows[no].onmouseover = highlightTableRow;
  	rows[no].onmouseout = resetRowStyle;

  	if(whichClassOnClick){
  		rows[no].onclick = clickOnTableRow;
  	}
  }
}
