// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax = 35;

// Set the colors for the snow. Add as many colors as you like
var snowcolor = new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF");

// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowtype = new Array("Arial Black","Arial Narrow","Times","Comic Sans MS");

// Set the letter that creates your snowflake (recommended: * )
var snowletter = "*";

// Set the speed of sinking (recommended values range from 0.3 to 2)
var sinkspeed = 1;

// Set the maximum-size of your snowflakes
var snowmaxsize = 22;

// Set the minimal-size of your snowflakes
var snowminsize = 8;

///////////////////////////////////////////////////////////////////////////
// CONFIGURATION ENDS HERE
///////////////////////////////////////////////////////////////////////////


// Do not edit below this line
var snow = new Array();
var marginbottom;
var marginright;
var timer;
var i_snow = 0;
var x_mv = new Array();
var crds = new Array();
var lftrght = new Array();
var browserinfos = navigator.userAgent; 
var ie5 = document.all&&document.getElementById&&!browserinfos.match(/Opera/);
var ns6 = document.getElementById&&!document.all;
var opera = browserinfos.match(/Opera/);  
var browserok = ie5||ns6||opera;

function randommaker(range) 
{        
    rand = Math.floor(range*Math.random());
    return rand;
}

function initsnow() 
{
    if (ie5 || opera) 
    {
        marginbottom = document.body.clientHeight;     
        marginright = document.body.clientWidth;
    }
    else if (ns6) 
    {
        marginbottom = window.innerHeight;
        marginright = window.innerWidth;
    }
    
    var snowsizerange=snowmaxsize-snowminsize; 

    for (i=0;i<=snowmax;i++) 
    {
        crds[i] = 0;                      
        lftrght[i] = Math.random() * 15;         
        x_mv[i] = 0.03 + Math.random() / 10;
        
        pSnowflake = document.createElement('span');    
        pSnowflake.id = 'snow'+i;
        pSnowflake.innerHTML = '*';
        pSnowflake.style.position = 'absolute';
        //pSnowflake.style.top = 0;
        //pSnowflake.style.left = (20 * i) + 'px'; 
        pSnowflake.style.fontFamily = snowtype[randommaker(snowtype.length)];
        pSnowflake.size = randommaker(snowsizerange) + snowminsize;
        pSnowflake.style.fontSize = randommaker(snowsizerange) + snowminsize; 
        pSnowflake.style.color = snowcolor[randommaker(snowcolor.length)];    
        
        pSnowflake.sink = sinkspeed * pSnowflake.size / 5;
        pSnowflake.posx = randommaker(marginright - pSnowflake.size); 
        pSnowflake.posy = randommaker(2 * marginbottom - marginbottom - 2 * pSnowflake.size);
        pSnowflake.style.left = pSnowflake.posx + 'px';
        pSnowflake.style.top = pSnowflake.posy + 'px';
        
        document.body.appendChild(pSnowflake); 
        snow[i] = pSnowflake;
    }
    movesnow();
}

function movesnow() 
{
    for (i = 0; i <= snowmax; i++) 
    {
        crds[i] += x_mv[i];
        snow[i].posy += snow[i].sink;
        snow[i].style.left = snow[i].posx + lftrght[i] * Math.sin(crds[i])  + 'px';
        snow[i].style.top = snow[i].posy + 'px';
        
        if (snow[i].posy >= marginbottom -2 * snow[i].size || parseInt(snow[i].style.left) > (marginright -3 * lftrght[i]))
        {
            snow[i].posx = randommaker(marginright - snow[i].size);
            snow[i].posy = 0;
        }
    }                                                    
    var timer = setTimeout("movesnow()", 100);
}

if (browserok) 
{
    window.onload = initsnow;
}
