$(function() {
	$().jSnow({ });  
});  

// jSnow, a jQuery Plugin v1.2.1
// Licensed under GPL licenses.
// Copyright (C) 2009 Nikos "DuMmWiaM" Kontis, dummwiam@gmail.com
// http://www.DuMmWiaM.com/jSnow
// bugfixed by Vitaliy Stepanenko, nayjest.ru, mail@vitaliy.in 
(function ($)
{
    $.fn.jSnow = function (h)
    {
        if (!navigator.userAgent.toLowerCase().match(/iPhone/))
        {
            var j = $.extend({}, $.fn.jSnow.defaults, h);
            var k, WIN_HEIGHT;
            setWaH();
            var l = j.flakes;
            var m = j.flakeCode;
            var n = j.flakeColor;
            var o = j.flakeMinSize;
            var p = j.flakeMaxSize;
            var q = j.fallingSpeedMin;
            var r = j.fallingSpeedMax;
            var s = j.swingMin;
            var t = j.swingMax;
            var u = j.interval;
            var v = j.zIndex;
            if ($.browser.msie && (parseFloat($.browser.version) < 8) && v == "auto") {
                v = 0
            }
            var w = $("<div \/>");
            w.css(
            {
                width : k + "px", height : 1, display : "block", overflow : "visible", position : "absolute", 
                top : $("html").scrollTop() + 1 + "px", left : "1px"
            });
            $("html").css({
                "overflow-y":"scroll", "overflow-x":"hidden", height : "100%"
            });
            $("body").prepend(w).css({
                "overflow" : "hidden"
            });
            var x = Array();
            generateFlake(l, false);
            var u = setInterval(animateFlakes, u);
            window.onresize = setWaH
        }
        function setWaH()
        {
            k = $('body').width();
            WIN_HEIGHT = (window.innerHeight  || document.documentElement.clientHeight)-(j.flakeMaxSize*2+j.fallingSpeedMax);            
			if ($.browser.safari || $.browser.chrome) {
				WIN_HEIGHT = document.body.offsetHeight-15;     
			}
        };
        this.kill = function ()
        {
            clearInterval(u);
            u = null;
            for (var i = 0; i < x.length; i++) {
                var f = x[i];
                jQuery.removeData(f);
                f.remove()
            }
            x = null;
            w.remove()
        };
        window.onscroll = function ()
        {
            w.css({
                top : $("html").scrollTop() + "px"
            })
        };
        function generateFlake(a, b)
        {
            a = a || 1;
            b = b || false;
            var i = 0;
            for (i = 0; i < a; i++)
            {
                var c = $("<span \/>");
                var d = o + Math.floor(Math.random() * p);
                var e = m[Math.floor(Math.random() * m.length)];
                if (e.indexOf(".gif") !=- 1 || e.indexOf(".png") !=- 1) {
                    var f = new Image();
                    f.src = e;
                    e = "<img src='" + e + "' alt=' '>"
                }
                c.html(e).css(
                {
                    color : n[Math.floor(Math.random() * n.length)], fontSize : d + "px", display : "block", 
                    position : "absolute", cursor : "default", "z-index" : v
                });
                $(w).append(c);
                f_left = Math.floor(Math.random() * (k - c.width() - 50)) + 25;
                f_top = (b) ?- 1 * c.height() : Math.floor(Math.random() * (WIN_HEIGHT - 50));
                var g = Math.floor(Math.random() * (t - s)) + s;
                jQuery.data(c, "posData", 
                {
                    top : f_top, left : f_left, rad : Math.random() * 50, i : Math.ceil(q + Math.random() * (r - q)), 
                    swingRange : g
                });
                c.css({
                    top : f_top + "px", left : f_left + "px"
                });
                x.push(c)
            }
        };
        function animateFlakes()
        {
            var i = 0;
            for (i = x.length - 1; i >= 0; i--)
            {
                var f = x[i];
                var a = jQuery.data(f, "posData");
                a.top += a.i;
                var b = Number();
                b = Math.cos((a.rad / 180) * Math.PI);
                a.rad += 2;
                var X = a.left - b * a.swingRange;
                f.css({
                    top : a.top + "px", left : X + "px"
                });
                if (a.top > WIN_HEIGHT) {
                    jQuery.removeData(f);
                    f.remove();
                    x.splice(i, 1);
                    generateFlake(1, true)
                }
            }
        };
        return this;
    };
    $.fn.jSnow.defaults = 
    {
        flakes : 15, fallingSpeedMin : 0, fallingSpeedMax : 2, flakeMaxSize : 20, flakeMinSize : 10, flakeCode : ["http://katalog-ukraine.com.ua/images/sneg2.gif"], 
        flakeColor : ["#fff"], zIndex : "65535", interval : 30, swingMin : 0, swingMax : 200
    }//zIndex : "auto"
})(jQuery);

