/* version 0.2 2005-12-25, kotoff */
/* version 0.1, vita */

//-- globals --

var snowsnumber = 10;
var left = new Array(snowsnumber);
var top = new Array(snowsnumber);
var pathlen = new Array(snowsnumber);
var sign = new Array(snowsnumber);
var speed = 1;
var gravity = 1;
var delay = 50;
var length = 50;
var snowflakewidth = 14, snowflakeheight = 15;
var imgsrc = '/i/sf2.gif';

//-- main --


//-- functions --

function initflakes()
{
	for(snowflake=1; snowflake <= snowsnumber; snowflake++)
	{
		var id = 'snowflake' + snowflake;
		var img = document.createElement("img");
		img.id = id;
		img.src = imgsrc;
		document.body.appendChild(img);
		
		/* Does not working in IE 6.0
		document.documentElement.appendChild(img);
		*/
		
		/* Old version
			document.write('<img id="snowflake' + snowflake + '" src="/_images/sf2.gif" >');
		*/
	
		left[snowflake] = Math.round(Math.random()*document.documentElement.clientWidth);
		top[snowflake] = Math.round(Math.random()*document.documentElement.clientHeight);

		document.getElementById(id).style.position = 'absolute';
		document.getElementById(id).style.left = left[snowflake] + "px";
		document.getElementById(id).style.top = top[snowflake] + "px";
		
		pathlen[snowflake] = 0;
		sign[snowflake] = 0;
	}
	move();
}
	
function move()
{
	for(snowflake=1; snowflake <= snowsnumber; snowflake++)
	{
		var id = 'snowflake' + snowflake;
		
		if (pathlen[snowflake] <= 0) 
		{
			pathlen[snowflake] = Math.round(Math.random()*length);
			if (Math.random() < 0.5)
			{
				sign[snowflake]= -1 * speed;
			}
			else
			{
				sign[snowflake] = 1 * speed;
			}
		}
		else
		{
			if((left[snowflake] + snowflakewidth > 0) && (left[snowflake] + snowflakewidth < document.documentElement.clientWidth))
			{
				left[snowflake] +=	sign[snowflake];
			}
			else
			{
				left[snowflake] = Math.round(Math.random()*document.documentElement.clientWidth);
				top[snowflake] = 0;
			}
			if(top[snowflake] < document.documentElement.clientHeight - snowflakeheight)
			{
				top[snowflake] += 1 * gravity;
			}
			else
			{
				top[snowflake] = 0;
			}

			document.getElementById(id).style.left = left[snowflake] + "px";
			document.getElementById(id).style.top = top[snowflake] + "px";
			
			pathlen[snowflake] = pathlen[snowflake] - 1;	
		}
	}
		
	setTimeout('move();', delay);
}
