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: // <tbody>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 <tr> 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>