// padací funkce, standardně sníh
// některé mírné upravy dodány by stupe@wo.cz

var snowflakes=15, gravity=3/*1=pomalu*/, wind=3/*1=mírný*/,
 w3c=(document.getElementById)?true:false,
 ns4=(document.layers)?true:false,
 ie4=(document.all && !w3c)?true:false,
 ie5=(document.all && w3c)?true:false,
 ns6=(w3c && navigator.appName.indexOf("Netscape")>=0)?true:false,
 maxgravity=9, // a taky velikost objektů
 maxwind=8,
 t='', w_x, w_y, snow=new Array();
 if(cssAvail){ // a objekty mohou být pozicovány absolutně
  for(i=1;i<=snowflakes;i++)
   t+='<div id="snow'+i+'" class="snow"></div>';
  document.write(t);
 }


function getstartpos(obj){
  obj.size=Math.floor(Math.random()*maxgravity)+1;
  // rád bych objekty větší jak 3 body viděl ve velikostech 5,7,9,11...
  if((obj.size>3) && (obj.size/2)==Math.round(obj.size/2)) obj.size=obj.size-1;
  obj.ystep=obj.size*gravity;
  obj.xstep=obj.ystep/maxgravity*wind;
  if(ns4)obj.clip.width=obj.clip.height=obj.size;
  else obj.style.width=obj.style.height=obj.size;
  moveidto(obj,Math.floor(Math.random()*w_x)-obj.size,0);
}

function movedrop(){
 for(i=1;i<=snowflakes;i++){
  var l=(ns4)?snow[i].left:parseInt(snow[i].style.left),
  t=(ns4)?snow[i].top:parseInt(snow[i].style.top),
  pxo=(ie4||ie5)?document.body.scrollLeft:pageXOffset,
  pyo=(ie4||ie5)?document.body.scrollTop:pageYOffset;
  if( (t+snow[i].ystep+snow[i].size>=w_y+pyo) || (snow[i].xpos-snow[i].size<pxo)) getstartpos(snow[i]);
  else moveidto(snow[i], l-snow[i].xstep, t+snow[i].ystep);
 }
}

function getwindowdims(){
 w_x=(ie4||ie5)?document.body.clientWidth:window.innerWidth;
 w_y=(ie4||ie5)?document.body.clientHeight:window.innerHeight;
}

function moveidto(id,x,y){
 if(ns4)id.moveTo(x,y);
 else{
  id.style.left=x+'px';
  id.style.top=y+'px';}
}

if(cssAvail && padapada)
 window.onresize=function(){
  if(ns4)setTimeout('history.go(0)',400);
  else {
    getwindowdims();
    // nelíbí se mi ten scrollbar dole (pokud okno zúžím)
    for(i=1;i<=snowflakes;i++){
     if(parseInt(snow[i].style.left)>w_x) getstartpos(snow[i]);}
  }
 }

//window.onload=function(){
function padaci(){
 gravity=Math.max(Math.min(maxgravity,gravity),1)
 maxwind=Math.max(Math.min(maxwind,wind),1)
 getwindowdims();
 for(i=1;i<=snowflakes;i++){
  snow[i]=(ns4)?document.layers['snow'+i]:(ie4)?document.all['snow'+i]:document.getElementById('snow'+i);
  getstartpos(snow[i]);
  moveidto(snow[i],Math.floor(Math.random()*(w_x-10)),Math.floor(Math.random()*(w_y-10)));
 }
 setInterval('movedrop()',maxgravity*12);
}

