////////////////////////////////////////////////////////////////////////////////////

// Script erweitert und angepasst damit es auch unter FireFox laueft von Michael
// Konfiguration

// Anzahl der Schneeflocken (sollten nicht zuviele sein, 30 - 40 geht aber locker)
var flocken;

// Sinkgeschwindigkeit (zwischen 0,3 und 2 einfach mal testen was gut aussieht)
var geschwindigkeit;
   

// Korrekturwert um bei scrollbaren Seiten auch noch weiter nach unten zu schneien
// Muss entsprechend der verwendeten Seite angepasst werden. 
var scrolldown = 100


// Konfiguration 
////////////////////////////////////////////////////////////////////////////////////

// Do not edit below this line
var schnee = new Array();
var unterer_rand;
var rechter_rand;
var timer;
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;
var tag = new Date();
var jahreszeit = "";
var schneeflocke;
var bewegung;


function zufall(range)
{
        return Math.floor(range * Math.random());
}

function starte_schnee()
{

        if (ie5 || opera)
        {
                unterer_rand = document.body.clientHeight + scrolldown;
                rechter_rand  = document.body.clientWidth - 30; 
        }
        else if (ns6)
        {
                unterer_rand = window.innerHeight + scrolldown;
                rechter_rand  = window.innerWidth - 40;
        }

        for (var i = 0; i <= flocken; i++)
        {
                crds[i] = 0;
                lftrght[i] = Math.random() * bewegung;
                x_mv[i] = 0.03 + Math.random() / 10;
                schnee[i] = document.getElementById('s' + i);
                schnee[i].sink = geschwindigkeit;
                schnee[i].posx = zufall(rechter_rand);
                schnee[i].posy = zufall(2 * unterer_rand - unterer_rand);
                schnee[i].style.left = schnee[i].posx;
                schnee[i].style.top = schnee[i].posy;
        }

        bewege_schnee();
}

function bewege_schnee()
{
        for (var i = 0; i <= flocken; i++)
        {
                crds[i] += x_mv[i];
                schnee[i].posy += schnee[i].sink;
                schnee[i].style.left = schnee[i].posx + lftrght[i] * Math.sin(crds[i]);
                schnee[i].style.top = schnee[i].posy;

                if ((schnee[i].posy >= (unterer_rand)) || (parseInt(schnee[i].style.left) > (rechter_rand - 3* lftrght[i])))
                {
                schnee[i].posx = zufall(rechter_rand);
                schnee[i].posy = 0;
                }
        }

        var timer = setTimeout('bewege_schnee();', 30); // Wert von 10 bis 100 
//  Je höher der eingestellte Wert hier ist, desto mehr ruckeln die Flocken,
//  allerdings werden dadurch auch weniger CPU-Ressourcen vom Browser gefressen.
//  Hier sollte jeder die für sich passende Balance zwischen Sinkgeschwindigkeit und Timer finden.
//  Einfach mal ein paar Kombinationen testen und im Browser und Taskmanager die Wirkung beobachten.
        
}

// if ((tag.getMonth()==9 && tag.getDate()>15) || (tag.getMonth()==10 && tag.getDate()<=10)) jahreszeit="Herbst";
if (tag.getMonth()==11 && tag.getDate()<=26) jahreszeit="Winter";

if (jahreszeit=="Herbst")
   {schneeflocke = "blatt.gif";
    flocken = 2;
    bewegung = 150;
    geschwindigkeit = 0.3;}

if (jahreszeit=="Winter")
   {document.writeln("<p><img src=\"gruss.gif\"></p>");
    schneeflocke = "schnee.gif";
    flocken = 25;
    bewegung = 15;
    geschwindigkeit = 1.3;}

for (var i = 0; i <= flocken; i++)
        document.write('<span id="s' + i +'" style="position: absolute">' + '<IMG SRC="' + schneeflocke + '">' + '</span>');

if (browserok && jahreszeit!="")
        window.onload = starte_schnee;
