// Original script by Altan (Snow@altan.hr), copyright 1999 Altan d.o.o.
// http://www.altan.hr/snow/index.html 
// Modified by Paul Anderson, copyright 2001 CNET Builder.com

var snowflake = "http://www.lap.pl/gfx/snow1b.png";
var snowflake2 = "http://www.lap.pl/gfx/snow2b.png";
var no = 20; // 9; // number of snowflakes on the screen
var speed = 12; // smaller numbers make the snow fall faster
var dx, xp, yp; // coordinate and position variables
var am, stx, sty; // amplitude and step variables
var obj, i, doc_width = 800, doc_height = 600;
var d = new Date();
var sec = (d.getHours() * 60 * 60) + (d.getMinutes() * 60) + d.getSeconds();

function winSize() {
	doc_width = window.innerWidth ? window.innerWidth : document.body.clientWidth;
	doc_height = window.innerHeight ? window.innerHeight : document.body.clientHeight;
}

dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();

document.write("<STYLE type=\"text/css\">.flake {position:absolute; top: -200px; z-index: 10; }</STYLE>");

for (i = 0; i < no; i++) { 
	document.write("<div id=\"dot"+ i +"\" class=\"flake\"><img src=\"");
	document.write((((i % 2) == 0) ? snowflake : snowflake2) + "\" border=\"0\" alt=\"\"></div>");
}

function init_snow() {
	winSize();

	for (i = 0; i < no; i++) { 
		dx[i] = 0; // set coordinate variables
		xp[i] = Math.random() * (doc_width - 74) + 10; // set position variables
		yp[i] = Math.random() * doc_height;
		am[i] = Math.random() * 20; // set amplitude variables
		stx[i] = 0.02 + Math.random() / 10; // set step variables
		sty[i] = 0.7 + Math.random(); // set step variables
	}

	d = new Date();
	sec = (d.getHours() * 60 * 60) + (d.getMinutes() * 60) + d.getSeconds();

	snow();
}

function destruct_snow() {
	for (i = 0; i < no; i++) {
		snowMove("dot" + i, -100, -100);
	}
}

function snowMove(id, left, top) {
	obj = document.getElementById ? document.getElementById(id).style : document.all ? document.all[id].style : document.layers ? document.layers[id] : null;
	if (obj) {
		obj.left = left+"px";
		obj.top = top+"px";
	}
}

function snow() {
	winSize();
	doc_scroll = (window.pageYOffset!=null) ? window.pageYOffset : document.body.scrollTop;
	for (i = 0; i < no; ++ i) { // iterate for every dot
		yp[i] += sty[i];
		if (yp[i] > doc_height + doc_scroll - 50) {
			xp[i] = Math.random() * (doc_width - am[i] - 60);
			yp[i] = doc_scroll;
			stx[i] = 0.02 + Math.random() / 10;
			sty[i] = 0.7 + Math.random();
		}
		dx[i] += stx[i];
		snowMove("dot" + i, xp[i] + am[i] * Math.sin(dx[i]), yp[i]);
	}

	var dc = new Date();
	var secc = (dc.getHours() * 60 * 60) + (dc.getMinutes() * 60) + dc.getSeconds();

	if (secc - sec > 100) {
		destruct_snow();
	}
	else {
		setTimeout("snow()", speed);
	}
}

