function addEvent(obj,type,fn) {

    if (obj.addEventListener) {
         obj.addEventListener(type,fn,false);
         return true;
    } else if (obj.attachEvent) {
         obj['e'+type+fn] = fn;
         obj[type+fn] = function() { obj['e'+type+fn]( window.event );}
         var r = obj.attachEvent('on'+type, obj[type+fn]);
         return r;
    } else {
         obj['on'+type] = fn;
         return true;
    }

}

function getElementsByClassName(oElm, strTagName, strClassName) {
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

function stripe(tbIndex) {

    var toStripe = getElementsByClassName(document, '*', 'altrows');
    for (var j=0; j<toStripe.length; j++) {
        var tRows = document.getElementById(toStripe[j].id).getElementsByTagName('li');
        if (tRows.length < 1) {
            tRows = document.getElementById(toStripe[j].id).getElementsByTagName('tr');
        }

        // var i=0 for odd rows
        // var i=1 for even rows
        for (var i=0, thisRow; thisRow=tRows[i]; i+=2) { // increment by 2
            thisRow.className += (thisRow.className) ? ' odd' : 'odd';
        }
    }

}

addEvent(window,'load',stripe);

