/* declare global variable so IE works */
var content;

function initRain()
{
	addMarkupToPoem();

	var ss    = document.styleSheets[0];
	var i;
	var crules;
	
	if (ss.cssRules)
	{
		crules = ss.cssRules;
	}
	else
	{
		crules = ss.rules;
	}
	
	idx = new Array(4);
	
	for (i = 0; i < 4; i++)
	{
		idx[i] = 0;
	}
	
	for (w = 0;w<4;w++)
	{
		for (i = 0; i < crules.length;i++)
		{
			if (crules[i].selectorText == ".w"+w )
			{
				idx[w] = i;
			}
		}
	}
}

function addMarkupToPoem()
{
	content = document.getElementById("content");
	
	wspan = new Array(4);
	
	for (var i=0;i<4;i++)
	{
		wspan[i] = document.createElement("span");
		wspan[i].className = "w" + i;
	}
	
	var kids    = content.childNodes;
	var numKids = kids.length;
	
	var df = document.createDocumentFragment();
	
	for (var i=0;i < numKids;i++)
	{
		if (kids[i].nodeType == 3)
		{
			var txt      = kids[i].data;
			var words    = txt.split(/\s+/);
			var numWords = words.length;
			
			for (var j=0;j<numWords;j++)
			{
				wspan = document.createElement("span");
				wspan.className = "w" + Math.round(Math.random()*3);
				tn = document.createTextNode(words[j]+" ");
				wspan.appendChild(tn);
				df.appendChild(wspan);
			}
		}
		else
		{
			df.appendChild(kids[i].cloneNode(true));
		}
	}
	
	while(content.hasChildNodes())
	{
		content.removeChild(content.lastChild);
	}
	
	content.appendChild(df);
}

function rain()
{
	var ss  = document.styleSheets[0];
    var max = 400;

	var val, strval;
	
	var crules;
	
	if (ss.cssRules)
	{
		crules = ss.cssRules;
	}
	else
	{
		crules = ss.rules;
	}
	
	for (var i = 0; i<4; i++)
	{
		strval = crules[idx[i]].style["top"];
		
		val = parseInt(strval);
		
		if (val > max)
		{
			crules[idx[i]].style["top"] = max + 1 + "px";
			/* ss.cssRules[idx[i]].style["top"] = "0px"; */
		}
		else
		{
			crules[idx[i]].style["top"] = (val + i + 2) + "px";
		}
	}
}

function backToTop()
{
    var ss  = document.styleSheets[0];
	
	if (ss.cssRules)
	{
		crules = ss.cssRules;
	}
	else
	{
		crules = ss.rules;
	}
	
	for (var i = 0; i<4; i++)
	{
		crules[idx[i]].style["top"] = "0px";
	
	}
}

function startRain()
{
	intID = setInterval(rain,50);
}

function stopRain()
{
	clearInterval(intID);
}