var oMarquees = [], oMrunning,
	oMInterv = 20,     //interval between increments
	oMStep = 1,      //number of pixels to move between increments
	oStopMAfter = 0,     //how many seconds should marquees run (0 for no limit)
	oResetMWhenStop = false,  //set to true to allow linewrapping when stopping
	oMDirection = 'left'; //'left' for LTR text, 'right' for RTL text

/***     Do not edit anything after here     ***/

function doMStop() {
    clearInterval(oMrunning);
    for (var i = 0; i < oMarquees.length; i++) {
        oDiv = oMarquees[i];
        oDiv.mchild.style[oMDirection] = '0px';
        if (oResetMWhenStop) {
            oDiv.mchild.style.cssText = oDiv.mchild.style.cssText.replace(/;white-space:nowrap;/g, '');
            oDiv.mchild.style.whiteSpace = '';
            oDiv.style.height = '';
            oDiv.style.overflow = '';
            oDiv.style.position = '';
            oDiv.mchild.style.position = '';
            oDiv.mchild.style.top = '';
        }
    }
    oMarquees = [];
}
function doDMarquee() {
    if (oMarquees.length || !document.getElementsByTagName) { return; }
    var oDivs = document.getElementsByTagName('div');
    for (var i = 0, oDiv; i < oDivs.length; i++) {
        oDiv = oDivs[i];
        if (oDiv.className && oDiv.className.match(/\bdmarquee\b/)) {
            if (!(oDiv = oDiv.getElementsByTagName('div')[0])) { continue; }
            if (!(oDiv.mchild = oDiv.getElementsByTagName('div')[0])) { continue; }
            oDiv.mchild.style.cssText += ';white-space:nowrap;';
            oDiv.mchild.style.whiteSpace = 'nowrap';
            oDiv.style.height = oDiv.offsetHeight + 'px';
            oDiv.style.overflow = 'hidden';
            oDiv.style.position = 'relative';
            oDiv.mchild.style.position = 'absolute';
            oDiv.mchild.style.top = '0px';
            oDiv.mchild.style[oMDirection] = oDiv.offsetWidth + 'px';
            oMarquees[oMarquees.length] = oDiv;
            i += 2;
        }
    }
    oMrunning = setInterval('aniMarquee()', oMInterv);
    if (oStopMAfter) { setTimeout('doMStop()', oStopMAfter * 1000); }
}
function aniMarquee() {
    var oDiv, oPos;
    for (var i = 0; i < oMarquees.length; i++) {
        oDiv = oMarquees[i].mchild;
        oPos = parseInt(oDiv.style[oMDirection]);
        if (oPos <= -1 * oDiv.offsetWidth) {
            oDiv.style[oMDirection] = oMarquees[i].offsetWidth + 'px';
        } else {
            oDiv.style[oMDirection] = (oPos - oMStep) + 'px';
        }
    }
}
if (window.addEventListener) {
    window.addEventListener('load', doDMarquee, false);
} else if (document.addEventListener) {
    document.addEventListener('load', doDMarquee, false);
} else if (window.attachEvent) {
    window.attachEvent('onload', doDMarquee);
}