var snowflakes = new Array();  
var originalWidth;  

function snowInit() {
  var htmlSource = '';
  originalWidth = document.body.clientWidth;
  for (i = 0; i < 30; i++) {
    snowflakes[i] = new Array();
    snowflakes[i]['left'] = 30+Math.random()*(document.body.clientWidth-80);
    snowflakes[i]['top'] = Math.random()*document.body.clientHeight;
    snowflakes[i]['amplitude'] = 10+Math.random()*20;
    snowflakes[i]['shift'] = Math.random()*20;
    snowflakes[i]['tilt_speed'] = Math.random()*30;
    snowflakes[i]['fall_speed'] = 0.7+Math.random()*2;
    snowflakeLeft = Math.floor(snowflakes[i]['left'] + snowflakes[i]['amplitude']*Math.sin((snowflakes[i]['top']+snowflakes[i]['shift'])/(20+snowflakes[i]['tilt_speed'])));
    htmlSource += '<div id="sf'+i+'" style="position:absolute;z-index:1;left:'+Math.floor(snowflakeLeft)+';top:'+Math.floor(snowflakes[i]['top'])+'"><img src="http://www.danceplanet.ru/snow.gif"></div>';
  }
  document.getElementById('snowsource').innerHTML = htmlSource;
  moveSnow();
}

function moveSnow() {
  for (i = 0; i < 30; i++) {
    if (snowflakes[i]['top'] >= document.body.clientHeight - 30) {
      snowflakes[i]['top'] = 0;
      snowflakes[i]['left'] = 30+Math.random()*(document.body.clientWidth-80);
      snowflakes[i]['amplitude'] = 10+Math.random()*20;
      snowflakes[i]['shift'] = Math.random()*20;
      snowflakes[i]['tilt_speed'] = Math.random()*30;
      snowflakes[i]['fall_speed'] = 0.7+Math.random()*2;          
    } else {
      if (document.body.clientWidth != originalWidth) {
        snowflakes[i]['left'] = snowflakes[i]['left'] * (document.body.clientWidth / originalWidth);
      }
      snowflakes[i]['top'] = (snowflakes[i]['top'] + snowflakes[i]['fall_speed']) % (document.body.clientHeight - 30);
    }
    snowflakeLeft = snowflakes[i]['left'] + snowflakes[i]['amplitude']*Math.sin((snowflakes[i]['top']+snowflakes[i]['shift'])/(20+snowflakes[i]['tilt_speed']));
    document.getElementById('sf'+i).style.pixelLeft = Math.floor(snowflakeLeft);
    document.getElementById('sf'+i).style.pixelTop = Math.floor(snowflakes[i]['top']);
    document.getElementById('sf'+i).style.left = Math.floor(snowflakeLeft);
    document.getElementById('sf'+i).style.top = Math.floor(snowflakes[i]['top']);
  }
  if (document.body.clientWidth != originalWidth) originalWidth = document.body.clientWidth;
  setTimeout('moveSnow()', 50);
}
