(function($){$.fn.jSnow=function(h){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.interval;var t=j.zIndex;var y=true;if($.browser.msie&&(parseFloat($.browser.version)<8)&&t=="auto"){t=0}
var u=$("<div \/>");u.css({width:k+"px",height:1,display:"block",overflow:"visible",position:"absolute",top:$("html").scrollTop()+1+"px",left:"1px"});$("body").prepend(u);$("html").css({"overflow-y":"scroll","overflow-x":"hidden",height:"100%"});var v=Array();generateFlake(l,false);var interval=setInterval(animateFlakes,s);window.onresize=setWaH;$("#togglesnow").click(function(ev){ev.preventDefault();if(y){clearInterval(interval);y=false;}else{interval=setInterval(animateFlakes,s);y=true;}});function setWaH(){k=$('body').width();WIN_HEIGHT=parseInt($('html').height());WIN_HEIGHT-=20;}
window.onscroll=function(){u.css({top:(parseInt($("html").scrollTop())-20)+"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='jSnowFlake'>"}
c.html(e).css({color:n[Math.floor(Math.random()*n.length)],fontSize:d+"px",display:"block",position:"absolute",cursor:"default","z-index":t,textShadow:"0 0 3px black"});$(u).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()*200);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"});v.push(c)}}
function animateFlakes(){var i=0;for(i=v.length-1;i>=0;i--){var f=v[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();v.splice(i,1);generateFlake(1,true)}}}
return this}
$.fn.jSnow.defaults={flakes:30,fallingSpeedMin:1,fallingSpeedMax:3,flakeMaxSize:20,flakeMinSize:10,flakeCode:["•"],flakeColor:["#fff"],zIndex:"auto",interval:100}})(jQuery);