var snowmax=40	// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowcolor=["#c4bbcc","#ccddFF","#ccd6DD"]
	// Set the colors for the snow. Add as many colors as you like
var snowtype=["Arial Black","Arial Narrow","Times","Comic Sans MS"]
	// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowletter=["*", "<img src=/images/snow21.gif>","<img src=/images/snow1.gif>","<img src=/images/snow2.gif>","<img src=/images/snow3.gif>","<img src=/images/snow4.gif>","<img src=/images/snow5.gif>","<img src=/images/snow6.gif>","<img src=/images/snow7.gif>","<img src=/images/snow8.gif>","<img src=/images/snow9.gif>"];
	// Set the letter that creates your snowflake (recommended:*)
var sinkspeed=0.6	// Set the speed of sinking (recommended values range from 0.3 to 2)
var snowmaxsize=45	// Set the maximal-size of your snowflaxes
var snowminsize=15	// Set the minimal-size of your snowflaxes
var snowingleft=0.0	//левая граница присутствия снега
var snowingwidth=1.0	//ширина присутствия снега в окне
var opac=0.55		//непрозрачность снега (0.0-1.0), при 1.0 в 2 раза быстрее работает.
var stepTime=120	//шаг покадровой анимации (мсек). При менее 100 сильно нагружает процессор
var snow=new Array()
var marginbottom
var marginright
var timer
var x_mv=[];	var crds=[];	var lftrght=[];
var browserinfos=navigator.userAgent 
d=document
var isOpera=self.opera  
var ie5=d.all&&d.getElementById&&!isOpera
var ns6=d.getElementById&&!d.all
var browserok=ie5||ns6||isOpera
var ww=0;
var timer=0;
d.write('<div id=snowZone style=position:absolute></div>');
var snowmaxOld=0;
function createSnow(){
for(i=0;i<Math.max(snowmax,snowmaxOld);i++){if(i<snowmax){
	var o=d.createElement('SPAN');
	if(d.getElementById('s'+i)){snowZone.replaceChild(o,d.getElementById('s'+i));}
	else{snowZone.appendChild(o);}	
	o.setAttribute('id','s'+i);
	o.style.position='absolute';
	o.style.top=0-snowmaxsize;
	if(ns6)o.style.MozOpacity=opac;
	if(ie5){o.style.filter='alpha';o.filters[0].opacity=opac*100;}
	snowZone.childNodes[i].innerHTML=snowletter[Math.floor(snowletter.length*Math.random())];
}else{snowZone.removeChild(d.getElementById('s'+i));}
}snowmaxOld=snowmax;}
function randommaker(range){return Math.floor(range*Math.random())}

function botRight(){	if(ie5||isOpera){marginbottom=d.body.clientHeight;	marginright=d.body.clientWidth;
	}else if(ns6){marginbottom=innerHeight;	marginright=innerWidth;}}
function checkPgDn(){scrltop=ns6?pageYOffset:document.body.scrollTop;}
function snowRestart(s){ if(s)eval(s);
	createSnow();
	snowsizerange=snowmaxsize-snowminsize;
	clearInterval(ww);clearTimeout(timer);
	checkPgDn();if(ns6)ww=setInterval(checkPgDn,999);
	botRight();
	for (i=0;i<snowmax;i++) {	crds[i] = 0;                      
    			lftrght[i] = Math.random()*20;         
    			x_mv[i] = 0.03 + Math.random()/10;
		snow[i]=d.getElementById("s"+i)
		snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)]
		snow[i].style.fontSize=snow[i].size=randommaker(snowsizerange)+snowminsize
		snow[i].style.color=snowcolor[randommaker(snowcolor.length)]
		snow[i].sink=sinkspeed*snow[i].size/5
		newPosSnow(randommaker(marginbottom-3*snow[i].size),i);
	}if(snowmax)movesnow();else{clearTimeout(timer);clearInterval(ww);} 
}
function newPosSnow(y,i){var o;
	snow[i].posy=y+(ns6?pageYOffset:d.body.scrollTop);
	snow[i].posx=randommaker(marginright*snowingwidth-2*snow[i].size)+marginright*snowingleft
	snow[i].size=randommaker(snowsizerange)+snowminsize;
	if(snow[i].hasChildNodes()&&(o=snow[i].childNodes[0]).tagName=='IMG')o.width=o.height=randommaker(snowsizerange/1.6)+snowminsize;
	if(ie5)snow[i].filters[0].opacity=opac*100;if(ns6)snow[i].style.MozOpacity=opac;
	setTimeout("snow["+i+"].style.visibility='visible';",250);
}
function movesnow() {
	for (i=0;i<snowmax;i++) {
		snow[i].style.top=snow[i].posy+=snow[i].sink+lftrght[i]*Math.sin(crds[i])/3;
		crds[i] += x_mv[i];
		snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i]);
		var a=marginbottom+scrltop-1.5*snow[i].size-snow[i].posy;
		if(a<=9.5*snow[i].size){if(ie5)snow[i].filters[0].opacity=opac*a/(9.5*snow[i].size)*100;else snow[i].style.MozOpacity=opac*a/(9.5*snow[i].size);}
		if(a<=0 || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){snow[i].style.visibility='hidden';newPosSnow(-1.5*snow[i].size,i);}
	}
	timer=setTimeout(movesnow,stepTime)
}
onload=function(){if(browserok)setTimeout(snowRestart,99);}
onmousewheel=onscroll=function(){checkPgDn()}
onresize=function(){botRight();}