var snow = new Array();
var maxSnow = 50;
var maxX = 1200;
var maxY = 300;
var maxSpeed = 1.4;
var minSpeed = 0.7;

var minXSpeed = -0.4;
var maxXSpeed = 0.4;
var maxAmpl = 20;
var minOpCoef = 0.4;
var maxOpCoef = 1;

function initSnow(snow) {
snow.ampl = Math.random() * maxAmpl;
snow.x = Math.round(Math.random() * maxX) - snow.ampl;
snow.y = Math.round(Math.random() * maxY);
snow.speed = minSpeed + Math.random() * (maxSpeed - minSpeed);
snow.phase = Math.random() * Math.PI;

snow.opcoef = minOpCoef + Math.random() * (maxOpCoef - minOpCoef);
snow.xspeed = minXSpeed + Math.random() * (maxXSpeed - minXSpeed);
return snow;
}

function initt() {
	var i;
	sresize();
	var wr = document.getElementById("wrapper");
	for(i = 0; i < maxSnow; i++) {
		var image = new Image();
		var x = Math.random();
		image.src = (x < 0.3) ? "http://gplyceum.org.ua/images/snow.gif" : (x < 0.66) ? "http://gplyceum.org.ua/images/snow2.gif" : "http://gplyceum.org.ua/images/snow3.gif";
		image.className = "snow";
		snow[i] = initSnow({});
		snow[i].img = image;
		updateSnow(i);
		wr.appendChild(image);
	}
	setInterval("step()", 100);
}

function updateSnow(i) {
	var s = snow[i];
	var img = s.img;
	img.style.top = Math.round(s.y) + "px";
	img.style.left = Math.round(s.x + s.ampl * Math.cos(s.phase)) + "px";
}

function step() {
	var i;
	for(i = 0; i < maxSnow; i++) {
		var s = snow[i];
		s.phase += s.speed / 10;
		s.y += s.speed;
		s.x += s.xspeed;
		
		if (((s.x + s.ampl >= maxX) && (s.xspeed > 0)) || (s.x < 0 && s.xspeed < 0)) {
			s.xspeed = -s.xspeed;
		}
		
		if (s.y > maxY) {
			s = initSnow(s);
			s.y = 0;
		}
		
		s.img.style.opacity = s.opcoef * (maxY - s.y) / 100;
		s.img.opacity = s.img.style.opacity;
		s.img.style.filter = "alpha(opacity=" + Math.round(s.img.opacity * 100) +")";
		
		updateSnow(i);
	}
}

function sresize() {
	maxX = document.body.clientWidth;
	var i;
	for(i = 0; i < snow.length; i++) {
		var s = snow[i];
		
		if (s.x + s.ampl >= maxX) {
			s.x = Math.round(Math.random() * maxX) - s.ampl;
			updateSnow(i);
		}
	}
}

