﻿var oMarquees = [], oMrunning,
	oMInterv = 10,     //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);
}
