
function CLASS (obj)
 {
  if (obj.getAttributeNode("class") != null)
    return obj.getAttributeNode("class").value;
  else
    return false;
 }   

function ID (obj)
 {
  if (obj.getAttributeNode("id") != null)
    return obj.getAttributeNode("id").value;
  else
    return false;
 }

function DoStripe()
 {
  var even = false;
  var evenColor = arguments[0] ? arguments[1] : "#fff";
  var oddColor = arguments[1] ? arguments[2] : "#edf3fe";

  var items = new Array();

  // Getting valid TABLEs
  var tables = document.getElementsByTagName("table");

  for (var i = 0; i < tables.length; i++)
    if (ID(tables[i]) == "striped")
     {
      // getting TD needed to be striped
      var trs = tables[i].getElementsByTagName("tr");

      for (var j = 0; j < trs.length; j++)
        if (!CLASS(trs[j]))
          items.push(trs[j].getElementsByTagName("td"));
     }

  // Getting valid ULs
  var lists = document.getElementsByTagName("ul");

  for (var i = 0; i < lists.length; i++)
    if (ID(lists[i]) == "striped")
     {
      var lis = lists[i].getElementsByTagName("li");

      for (var j = 0; j < lis.length; j++)
        if (!CLASS(lis[j]))
          items.push(lis[j]);
     }

  // Striping items
  for (var i = 0; i < items.length; i++)
   {
    if (items[i].length)
     {
      for (var j = 0; j < items[i].length; j++)
        items[i][j].style.backgroundColor = even ? evenColor : oddColor;
     }
    else
      items[i].style.backgroundColor = even ? evenColor : oddColor;

    even = !even;
   }
 }
