/* ########## eSnowFlake (copyright e2see.de) ##########
<script>
$(document).ready(function () {
    $.eSnowFlake({
        count  : 10,
        zIndex : 190
        });
});
</script>
*/

$.eSnowFlake = function (options) {

    $('body').append('<div id="e-snow-flakes"></div>');

    eSnowFlakeObs = {
        self: $('#e-snow-flakes')
    };


    eSnowFlakeFunc = {
        init: function (options) {
            elem = this;
            var settings = $.extend({
                count: 25,
                zIndex: 400
            }, options);



            eSnowFlakeObs.self.css('z-index', settings.zIndex);
            var i = 0
            do {
                var wh = ((parseInt($(document).height()) / settings.count) / 4) + 6;
                var mxSec = wh;
                var duration = Math.floor(Math.random() * (mxSec - 0 + 1) + 0);

                setTimeout(function () {
                    eSnowFlakeFunc.addFlake();
                }, duration * 1000);

                i++;
            }
            while (i < settings.count);

        },
        addFlake: function (initElem) {

            var size = Math.floor(Math.random() * 10);
            var from = 1;
            var to = 99;
            var speed = 5.5;
            var dh = parseInt($(window).height());

            if (typeof initElem != 'undefined') {
                var $flake = initElem;
                $flake.attr('data-size', size);
            } else {
                var $flake = $('<div class="e-snow-flake" data-size="' + size + '" data-status="init">');
                eSnowFlakeObs.self.append($flake);

                $flake.on('init', function () {
                    eSnowFlakeFunc.addFlake($(this));
                });

            }

            var fHeight = parseInt($flake.css('height'));
            var additionalH = parseInt(fHeight);
            var duration = ((dh + additionalH) * speed) * ((size + 2) / 2);
            var leftPosRandom = Math.floor(Math.random() * to) + from;

            $flake.css({
                top: '-' + fHeight + 'px',
                marginLeft: '-' + fHeight + 'px'
            });

            setTimeout(function () {

                $flake.css({
                    top: '',
                    left: leftPosRandom + '%',
                    transition: 'top ' + (duration) + 'ms linear'
                }).attr('data-status', 'run');

                setTimeout(function () {
                    $flake.attr('data-status', 'init').trigger('init');
                }, duration);

            }, 150);

            return this;
        }



    }


    eSnowFlakeFunc.init(options);


}





/* cdn 1ms */