Not logged in
048ea65e02 2011-04-10       crc: <?xml version='1.0' encoding='UTF-8'?>
048ea65e02 2011-04-10       crc: <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
048ea65e02 2011-04-10       crc: <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
048ea65e02 2011-04-10       crc: <head>
048ea65e02 2011-04-10       crc:   <title>Rancid: An IRC Log Viewer</title>
048ea65e02 2011-04-10       crc:   <link rel='stylesheet' href='%u/css' type='text/css'/>
048ea65e02 2011-04-10       crc: <script>
048ea65e02 2011-04-10       crc:   // this function is needed to work around
048ea65e02 2011-04-10       crc:   // a bug in IE related to element attributes
048ea65e02 2011-04-10       crc:   function hasClass(obj) {
048ea65e02 2011-04-10       crc:      var result = false;
048ea65e02 2011-04-10       crc:      if (obj.getAttributeNode("class") != null) {
048ea65e02 2011-04-10       crc:          result = obj.getAttributeNode("class").value;
048ea65e02 2011-04-10       crc:      }
048ea65e02 2011-04-10       crc:      return result;
048ea65e02 2011-04-10       crc:   }
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:  function stripe(id) {
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:     // the flag we'll use to keep track of
048ea65e02 2011-04-10       crc:     // whether the current row is odd or even
048ea65e02 2011-04-10       crc:     var even = false;
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:     // if arguments are provided to specify the colours
048ea65e02 2011-04-10       crc:     // of the even & odd rows, then use the them;
048ea65e02 2011-04-10       crc:     // otherwise use the following defaults:
048ea65e02 2011-04-10       crc:     var evenColor = arguments[1] ? arguments[1] : "#fff";
048ea65e02 2011-04-10       crc:     var oddColor = arguments[2] ? arguments[2] : "#eee";
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:     // obtain a reference to the desired table
048ea65e02 2011-04-10       crc:     // if no such table exists, abort
048ea65e02 2011-04-10       crc:     var table = document.getElementById(id);
048ea65e02 2011-04-10       crc:     if (! table) { return; }
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:     // by definition, tables can have more than one tbody
048ea65e02 2011-04-10       crc:     // element, so we'll have to get the list of child
048ea65e02 2011-04-10       crc:     // &lt;tbody&gt;s
048ea65e02 2011-04-10       crc:     var tbodies = table.getElementsByTagName("tbody");
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:     // and iterate through them...
048ea65e02 2011-04-10       crc:     for (var h = 0; h < tbodies.length; h++) {
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:      // find all the &lt;tr&gt; elements...
048ea65e02 2011-04-10       crc:       var trs = tbodies[h].getElementsByTagName("tr");
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:       // ... and iterate through them
048ea65e02 2011-04-10       crc:       for (var i = 0; i < trs.length; i++) {
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:         // avoid rows that have a class attribute
048ea65e02 2011-04-10       crc:         // or backgroundColor style
048ea65e02 2011-04-10       crc:         if (! hasClass(trs[i]) &&
048ea65e02 2011-04-10       crc:             ! trs[i].style.backgroundColor) {
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:           // get all the cells in this row...
048ea65e02 2011-04-10       crc:           var tds = trs[i].getElementsByTagName("td");
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:           // and iterate through them...
048ea65e02 2011-04-10       crc:           for (var j = 0; j < tds.length; j++) {
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:             var mytd = tds[j];
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:             // avoid cells that have a class attribute
048ea65e02 2011-04-10       crc:             // or backgroundColor style
048ea65e02 2011-04-10       crc:             if (! hasClass(mytd) &&
048ea65e02 2011-04-10       crc:                 ! mytd.style.backgroundColor) {
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:               mytd.style.backgroundColor =
048ea65e02 2011-04-10       crc:                 even ? evenColor : oddColor;
048ea65e02 2011-04-10       crc: 
048ea65e02 2011-04-10       crc:             }
048ea65e02 2011-04-10       crc:           }
048ea65e02 2011-04-10       crc:         }
048ea65e02 2011-04-10       crc:         // flip from odd to even, or vice-versa
048ea65e02 2011-04-10       crc:         even =  ! even;
048ea65e02 2011-04-10       crc:       }
048ea65e02 2011-04-10       crc:     }
048ea65e02 2011-04-10       crc:   }
048ea65e02 2011-04-10       crc: </script>
048ea65e02 2011-04-10       crc: </head>
048ea65e02 2011-04-10       crc: <body onload="stripe('log');">
048ea65e02 2011-04-10       crc: <h2>Rancid</h2>