/*
 Snow Fall 1 - no images - Java Script
 Visit http://rainbow.arch.scriptmania.com/scripts/
 for this script and many more
 */

// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax = 30

// Set the colors for the snow. Add as many colors as you like
var snowcolor = new Array("#b9dff5", "#b9dff5", "#b9dff5", "#b9dff5", "#b9dff5")

// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowtype = new Array("Times")

// 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 = 0.6

// Set the maximum-size of your snowflakes
var snowmaxsize = 35

// Set the minimal-size of your snowflakes
var snowminsize = 8

// Set the snowing-zone
// Set 1 for all-over-snowing, set 2 for left-side-snowing
// Set 3 for center-snowing, set 4 for right-side-snowing
var snowingzone = 1

///////////////////////////////////////////////////////////////////////////
// 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();

function randommaker(range) {
    return Math.floor(range * Math.random());
}

function initsnow() {
    var el;
    var body = $(document.body);
    var size = body.getSize();
    snowmax = 10 + randommaker(20);
    marginbottom = size.y;
    marginright = size.x;
    var snowsizerange = snowmaxsize - snowminsize;

    for (var i = 0; i <= snowmax; i++) {
        el = new Element('span', {
            id: 's'+i,
            styles: {
                position: 'fixed',
                top: -snowmaxsize
            },
            html: snowletter
        });
        el.inject(body);
        snow[i] = el;

        crds[i] = 0;
        lftrght[i] = Math.random() * 15;
        x_mv[i] = 0.03 + Math.random() / 10;

        snow[i].size = randommaker(snowsizerange) + snowminsize;
        snow[i].sink = sinkspeed * snow[i].size / 5;

        if (snowingzone == 1) {
            snow[i].posx = randommaker(marginright - snow[i].size);
        }
        if (snowingzone == 2) {
            snow[i].posx = randommaker(marginright / 2 - snow[i].size);
        }
        if (snowingzone == 3) {
            snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 4;
        }
        if (snowingzone == 4) {
            snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 2;
        }
        snow[i].posy = randommaker(2 * marginbottom - marginbottom - 2 * snow[i].size);

        snow[i].setStyles({
            fontFamily: snowtype[randommaker(snowtype.length)],
            fontSize: snow[i].size,
            color: snowcolor[randommaker(snowcolor.length)],
            zIndex: 1000,
            left: snow[i].posx,
            top: snow[i].posy
        });
    }
    movesnow();
}

function movesnow() {
    for (i = 0; i <= snowmax; i++) {
        crds[i] += x_mv[i];
        snow[i].posy += snow[i].sink;
        snow[i].setStyles({
            left: snow[i].posx + lftrght[i] * Math.sin(crds[i]),
            top: snow[i].posy
        });

        if (snow[i].posy >= marginbottom - 2 * snow[i].size || parseInt(snow[i].style.left) > (marginright - 3 * lftrght[i])) {
            if (snowingzone == 1) {
                snow[i].posx = randommaker(marginright - snow[i].size)
            }
            if (snowingzone == 2) {
                snow[i].posx = randommaker(marginright / 2 - snow[i].size)
            }
            if (snowingzone == 3) {
                snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 4
            }
            if (snowingzone == 4) {
                snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 2
            }
            snow[i].posy = 0
        }
    }
    setTimeout(movesnow, 50);
}

window.addEvent('domready', function () {
    initsnow();
});
