﻿var snowmax=15;
var snowcolor=['#c4bbcc','#ccddFF','#ccd6DD'];
var snowtype=['Arial Black','Arial Narrow','Times','Comic Sans MS'];
var snowletter=['<img src="http://cpanel.host.am/~compete/uploads/resources/snow1.gif"/>'];
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=22;	// Set the minimal-size of your snowflaxes
var snowingleft=0;	//левая граница присутствия снега
var snowingwidth=1;	//ширина присутствия снега в окне
var opac=1;			//непрозрачность снега (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;
var 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;
var snowmaxOld=0;
var snowflakes = 'snowZone';
var snowdrift = ['snow1','snow2','snow3','snow4'];
var snowControlOn = 'snowControlOn';
var snowControlOff = 'snowControlOff';

function createSnow() {
	var snowZone = document.getElementById("snowZone");
	var d=document;
	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 + 'px';
			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(){
    marginright = 1003;/*(window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));*/
    marginbottom = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
}

function checkPgDn(){scrltop=ns6?pageYOffset:document.body.scrollTop;}

function startSnow() {
	if(getCookie('snowFlag')!='0')	{
		if(browserok) setTimeout(snowRestart,99);
	}
}

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]=$("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].posy+=snow[i].sink+lftrght[i]*Math.sin(crds[i])/3;
		snow[i].style.top=snow[i].posy + 'px';
		crds[i] += x_mv[i];
		snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i]) + 'px';

		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();}*/

function	hideSnow()	{
	$(snowflakes).style.display = 'none';
	for(i=0;i<snowdrift.length;i++)	{
		var sd = $(snowdrift[i]);
		Object.Class.replace(sd, 'visible', 'invisible');
	}
	Object.Class.replace($(snowControlOff), 'visible', 'invisible');
	Object.Class.replace($(snowControlOn), 'invisible', 'visible');	
	setCookie('snowFlag', '0');
}

function	showSnow()	{
	$(snowflakes).style.display = 'block';
	for(i=0;i<snowdrift.length;i++)	{
		var sd = $(snowdrift[i]);
		Object.Class.replace(sd, 'invisible', 'visible');
	}
	Object.Class.replace($(snowControlOn), 'visible', 'invisible');
	Object.Class.replace($(snowControlOff), 'invisible', 'visible');
	setCookie('snowFlag', '1');
	
	startSnow();
	
}

function newwin(url, namewin, winopt) {
	window.open(url, namewin, winopt);
}