
var urlFlocon="design/flocon.gif";


var flocons=new Array();
var nbFloconsMax=100;
var nbFlocons=0;
var neigetimeout;
var majtimeout;
var scrollY=0;

function addEvent(ou, eventName, quoi) {
if (ou.addEventListener)
ou.addEventListener(eventName, quoi, false);
else if (ou.attachEvent)
ou.attachEvent('on'+ eventName, quoi);
}

function createFlocons() {
	var posDX=4+Math.random()*wScreen;
	var posDY=1+scrollY;
	idflocon=flocons.length;
	var sizeflocon=3+Math.random()*13;
	var flocon=createDiv(posDX,posDY,idflocon,sizeflocon);
	flocons[flocons.length]= new Array(flocon,posDX,posDY,sizeflocon);
	nbFlocons++;
	neigetimeout= setTimeout("createFlocons()", 250);
}

function majFlocons() {
var incposy=1;
if (getScroll()) {

var limiteecran=(scrollY+hScreen)-3;
for (i=0; i<flocons.length; i++) {
var incposx=0;
incposy=parseInt(flocons[i][3]/3);
var sensposx=parseInt(1+Math.random()*3);
   switch (sensposx) {
   case 1: incposx= -1;
   break;
   case 2: incposx=0;
   break;
   case 3: incposx=1;
   }
  if (flocons[i][2]<limiteecran) { 
  var Fposx=flocons[i][1]+incposx;
  if (Fposx>wScreen) { Fposx=wScreen; }
  flocons[i][1]=Fposx;
  flocons[i][2]=flocons[i][2]+incposy;
  }
  else {

  var posDX=1+Math.random()*wScreen;
  flocons[i][1]=posDX;
  flocons[i][2]=scrollY;
    if (neigetimeout) {
	clearTimeout(neigetimeout);
    }
  }
  flocons[i][0].style.left=flocons[i][1]+"px";
  flocons[i][0].style.top=flocons[i][2]+"px";
}

  majtimeout=setTimeout("majFlocons()", 35);
  }
  else { cleanNeige(); }
}

function getScroll() {
var lastScrolly=scrollY;
  if (typeof(self.pageYOffset)=="number") {
    scrollY=self.pageYOffset;
  }
  else if (document.body.scrollTop) {
    scrollY=document.body.scrollTop;
  }
  else if (document.documentElement && document.documentElement.scrollTop) {
    scrollY=document.documentElement.scrollTop;
  }
  else {
    scrollY=0;
  }
  if (scrollY<lastScrolly) { return false; }
  else  {return true; }
}


function createDiv(posx,posy,id,sizeFlocon) {
  var div=document.createElement("div");
  var pzindex=1000+id;
  div.style.position="absolute";
  div.id="flc"+id;
  div.name="flc"+id;
  div.style.border="none";
  div.style.display="block";
  div.style.backgroundColor="transparent";
  div.style.left=posx+"px";
  div.style.top=posy+"px";  
  div.style.zindex=pzindex;
  document.body.appendChild(div);
  var retour =document.getElementById("flc"+id);
  var flocontype="<img border='0' src='"+ urlFlocon + "' style='width:"+sizeFlocon+"px;' />";
  retour.innerHTML=flocontype;
  return (retour);
}

function getSizeNavigateur() {
  if (typeof(self.innerWidth)=="number") {
    wScreen=self.innerWidth;
    hScreen=self.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientWidth) {
    wScreen=document.documentElement.clientWidth;
    hScreen=document.documentElement.clientHeight;
  }
  else if (document.body.clientWidth) {
    wScreen=document.body.clientWidth;
    hScreen=document.body.clientHeight;
  }
hScreen=hScreen-17;
wScreen=wScreen-17;
 }
 
function cleanNeige () {
getSizeNavigateur();
  if (neigetimeout) {
  clearTimeout(neigetimeout);
  }
  if (majtimeout) {
  clearTimeout(majtimeout);
  }  
    for (i=0; i<nbFlocons;i++) {
  var thisflocon=document.getElementById("flc"+i);
  var supprimerflocon = document.body.removeChild(thisflocon);  
  }
  nbFlocons=0;
  flocons=new Array();
  createFlocons();
  majFlocons();
}


function tombeLaNeige() {
getSizeNavigateur();
createFlocons();
setTimeout("majFlocons()", 40);
addEvent(window, "resize", cleanNeige);
 }

addEvent(window, "load", tombeLaNeige);
