function Snowing() {
     jQuery('body').append("<span class='snow' style='font-family:\"Arial Unicode MS\",\"Lucida Sans Unicode\",\"Lucida Grande\",sans-serif;font-size:50px'>*\u2217\u2744\u2733\u2734\u2735\u2736<\/span>");
     var w = jQuery('.snow').width();
     jQuery('.snow').remove();
     var hasUnicodeFonts = (w == 224 || w == 236);



     function random(range) {
         return Math.floor(range * Math.random())
     }

     function move() {
         snow.each(function(i, s) {
             s.crds += s.x_mv;
             s.posy += s.sink;
             s.style.left = s.posx + s.lftrght * Math.sin(s.crds) + "px";
             s.style.top = s.posy + "px";
             if (s.posy >= marginBottom - 6 * s.size || parseInt(s.style.left) > (marginRight - 3 * s.lftrght)) {
                 s.posx = random(marginRight - s.size);
                 s.posy = 0;
             }
         });
     }

     var marginRight;
     var marginBottom;
     function setMargins() {
         marginRight = $(document).width();
         marginBottom = $(document).height();
     }
     setMargins();

     var conf = {
         // Set the number of snowflakes (more than 30 - 40 not recommended)
         maxCount: 20,

         // Set the colors for the snow. Add as many colors as you like
         color: ["#aac", "#ddf", "#ccd"],

         // Set the letter that creates your snowflake (recommended:*)
         letters: hasUnicodeFonts ? "*\u2217\u2744\u2733\u2734\u2735\u2736" : '*',

         // Set the speed of sinking (recommended values range from 0.3 to 2)
         sinkSpeed: 0.6,

         // Set the maximal-size of your snowflaxes
         maxSize: 16,

         // Set the minimal-size of your snowflaxes
         minSize: 6
     };

     var sizeRange = conf.maxSize - conf.minSize;

     var snow = '';
     for (var i = 0; i < conf.maxCount; i++) {
         snow += "<span class='snow' style='font-family:\"Arial Unicode MS\",\"Lucida Sans Unicode\",\"Lucida Grande\",sans-serif;position:absolute'>"
                 + conf.letters.charAt(i % conf.letters.length) + "<\/span>";
     }
     jQuery('body').append(snow);
     snow = $('.snow');
     snow.each(function(i, s) {
         s.crds = 0;
         s.lftrght = Math.random() * 10;
         s.x_mv = 0.03 + Math.random() / 10;
         var sz = s.size = random(sizeRange) + conf.minSize;
         s.sink = conf.sinkSpeed * sz / 5;
         s.posx = random(marginRight - sz)
         s.posy = random(6 * marginBottom - marginBottom - 6 * sz);
         var st = s.style;
         st.fontSize = sz+'px';
         st.color = conf.color[random(conf.color.length)];
         st.left = s.posx+'px';
         st.top = s.posy+'px';
     });
     setInterval(move, 50);
     $(window).resize(setMargins);
 }
jQuery(document).ready(function() {
    window.snow = new Snowing();
});

