function duha()
{
    var eAll = document.getElementsByTagName("span");
    for(var i = 0; i < eAll.length; i++)
    {
        var cur = eAll[i];
        var classes = cur.className.split(/\s+/);
        var replace = false;
		var limit = NaN;
        for(var j = 0; j < classes.length; j++)
        {
            if(classes[j].substr(0, 4) == "duha")
            { 
                replace = true;
				var tmp = classes[j].substr(5);
				if(tmp != "")
				{
					limit = parseInt("0x" + classes[j].substr(5));
				}
                break;
            }
        }
		if(isNaN(limit)) limit = 0xCC;
        
        if(replace)
        {
            var src = cur.textContent;
            if(typeof(src) != "undefined")
            {
                cur.textContent = "";
            }
            else
            {
                src = cur.innerText;
                cur.innerText = "";
            }

            var dst = "";
            var colStep = 2 * limit / src.length;
            var col = 0;
            for(var j = 0; j < src.length; j++)
            {
                var chr = src.charAt(j);
                if(chr == ' ')
                {
                    var space = document.createTextNode(" ");
                    cur.appendChild(space);
                }
                else
                {
                    var item = document.createElement("span");
                    item.innerHTML = chr;
                    item.style.color = "rgb(255, " + Math.round(col) + ", 0)";
                    cur.appendChild(item);
                }
                
                col = col + (colStep * ((j <= src.length / 2) ? 1 : -1));
                if(col > limit) col = limit;
                if(col < 0) col = 0;
            }
        }
    }
}

window.onload = duha;