var snowStorm=(function(n,t){this.flakesMax=128;this.flakesMaxActive=64;this.animationInterval=100;this.excludeMobile=true;this.flakeBottom=null;this.followMouse=true;this.snowColor="#fff";this.snowCharacter="&bull;";this.snowStick=true;this.targetElement=null;this.useMeltEffect=true;this.useTwinkleEffect=false;this.usePositionFixed=false;this.freezeOnBlur=true;this.flakeLeftOffset=0;this.flakeRightOffset=0;this.flakeWidth=12;this.flakeHeight=12;this.vMaxX=3;this.vMaxY=4;this.zIndex=0;this.bas_fonts=["Comic Sans MS","Calibri","Arial Black","Arial Narrow","Tahoma","Times"];var p=this,f=this,z,v=navigator.userAgent.match(/msie/i),u=navigator.userAgent.match(/msie 6/i),h=navigator.appVersion.match(/windows 98/i),r=navigator.userAgent.match(/mobile/i),d=(v&&t.compatMode==="BackCompat"),o=(r||d||u),b=null,w=null,C=null,x=null,c=null,a=null,B=1,k=2,j=6,l=false,A=(function(){try{t.createElement("div").style.opacity="0.5"}catch(i){return false}return true}()),q=false,e=t.createDocumentFragment();this.timers=[];this.flakes=[];this.disabled=false;this.active=false;this.meltFrameCount=20;this.meltFrames=[];this.events=(function(){var s=(n.attachEvent),H=Array.prototype.slice,i={add:(s?"attachEvent":"addEventListener"),remove:(s?"detachEvent":"removeEventListener")};function F(K){var J=H.call(K),I=J.length;if(s){J[1]="on"+J[1];if(I>3){J.pop()}}else{if(I===3){J.push(false)}}return J}function D(I,K){var J=I.shift()[i[K]];if(s){J(I[0],I[1])}else{J.apply(this,I)}}function E(){D(F(arguments),"add")}function G(){D(F(arguments),"remove")}return{add:E,remove:G}}());function m(s,i){if(isNaN(i)){i=0}return(Math.random()*s)+i}function y(i){return(parseInt(m(2),10)===1?i*-1:i)}this.randomizeWind=function(){c=y(m(p.vMaxX,0.2));a=m(p.vMaxY,0.2);if(this.flakes){for(var s=0;s<this.flakes.length;s++){if(this.flakes[s].active){this.flakes[s].setVelocities()}}}};this.scrollHandler=function(){x=(p.flakeBottom?0:parseInt(n.scrollY||t.documentElement.scrollTop||t.body.scrollTop,10));if(isNaN(x)){x=0}if(!l&&!p.flakeBottom&&p.flakes){for(var s=p.flakes.length;s--;){if(p.flakes[s].active===0){p.flakes[s].stick()}}}};this.resizeHandler=function(){if(n.innerWidth||n.innerHeight){b=n.innerWidth-(!v?16:2)-p.flakeRightOffset;C=(p.flakeBottom?p.flakeBottom:n.innerHeight)}else{b=(t.documentElement.clientWidth||t.body.clientWidth||t.body.scrollWidth)-(!v?8:0)-p.flakeRightOffset;C=p.flakeBottom?p.flakeBottom:(t.documentElement.clientHeight||t.body.clientHeight||t.body.scrollHeight)}w=parseInt(b/2,10)};this.resizeHandlerAlt=function(){b=p.targetElement.offsetLeft+p.targetElement.offsetWidth-p.flakeRightOffset;C=p.flakeBottom?p.flakeBottom:p.targetElement.offsetTop+p.targetElement.offsetHeight;w=parseInt(b/2,10)};this.freeze=function(){if(!p.disabled){p.disabled=1}else{return false}for(var s=p.timers.length;s--;){clearInterval(p.timers[s])}};this.resume=function(){if(p.disabled){p.disabled=0}else{return false}p.timerInit()};this.toggleSnow=function(){if(!p.flakes.length){p.start()}else{p.active=!p.active;if(p.active){p.show();p.resume()}else{p.stop();p.freeze()}}};this.stop=function(){this.freeze();for(var s=this.flakes.length;s--;){this.flakes[s].o.style.display="none"}p.events.remove(n,"scroll",p.scrollHandler);p.events.remove(n,"resize",p.resizeHandler);if(p.freezeOnBlur){if(v){p.events.remove(t,"focusout",p.freeze);p.events.remove(t,"focusin",p.resume)}else{p.events.remove(n,"blur",p.freeze);p.events.remove(n,"focus",p.resume)}}};this.show=function(){for(var s=this.flakes.length;s--;){this.flakes[s].o.style.display="block"}};this.SnowFlake=function(G,F,i,H){var E=this,D=G;this.type=F;this.x=i||parseInt(m(b-20),10);this.y=(!isNaN(H)?H:-m(C)-12);this.vX=null;this.vY=null;this.vAmpTypes=[1,1.2,1.4,1.6,1.8];this.vAmp=this.vAmpTypes[this.type];this.melting=false;this.meltFrameCount=D.meltFrameCount;this.meltFrames=D.meltFrames;this.meltFrame=0;this.twinkleFrame=0;this.active=1;this.fontSize=(10+(this.type/5)*8);this.o=t.createElement("div");this.o.innerHTML=D.snowCharacter;this.o.style.color=D.snowColor;this.o.style.position=(l?"fixed":"absolute");this.o.style.width=D.flakeWidth+"px";this.o.style.height=D.flakeHeight+"px";this.o.style.fontFamily=bas_fonts[Math.floor(Math.random()*bas_fonts.length)]+",arial,verdana";this.o.style.overflow="hidden";this.o.style.fontWeight="normal";this.o.style.zIndex=D.zIndex;e.appendChild(this.o);this.refresh=function(){if(isNaN(E.x)||isNaN(E.y)){return false}E.o.style.left=E.x+"px";E.o.style.top=E.y+"px"};this.stick=function(){if(o||(D.targetElement!==t.documentElement&&D.targetElement!==t.body)){E.o.style.top=(C+x-D.flakeHeight)+"px"}else{if(D.flakeBottom){E.o.style.top=D.flakeBottom+"px"}else{E.o.style.display="none";E.o.style.top="auto";E.o.style.bottom="0px";E.o.style.position="fixed";E.o.style.display="block"}}};this.vCheck=function(){if(E.vX>=0&&E.vX<0.2){E.vX=0.2}else{if(E.vX<0&&E.vX>-0.2){E.vX=-0.2}}if(E.vY>=0&&E.vY<0.2){E.vY=0.2}};this.move=function(){var s=E.vX*B,I;E.x+=s;E.y+=(E.vY*E.vAmp);if(E.x>=b||b-E.x<D.flakeWidth){E.x=0}else{if(s<0&&E.x-D.flakeLeftOffset<0-D.flakeWidth){E.x=b-D.flakeWidth-1}}E.refresh();I=C+x-E.y;if(I<D.flakeHeight){E.active=0;if(D.snowStick){E.stick()}else{E.recycle()}}else{if(D.useMeltEffect&&E.active&&E.type<3&&!E.melting&&Math.random()>0.998){E.melting=true;E.melt()}if(D.useTwinkleEffect){if(!E.twinkleFrame){if(Math.random()>0.9){E.twinkleFrame=parseInt(Math.random()*20,10)}}else{E.twinkleFrame--;E.o.style.visibility=(E.twinkleFrame&&E.twinkleFrame%2===0?"hidden":"visible")}}}};this.animate=function(){E.move()};this.setVelocities=function(){E.vX=c+m(D.vMaxX*0.12,0.1);E.vY=a+m(D.vMaxY*0.12,0.1)};this.setOpacity=function(I,s){if(!A){return false}I.style.opacity=s};this.melt=function(){if(!D.useMeltEffect||!E.melting){E.recycle()}else{if(E.meltFrame<E.meltFrameCount){E.meltFrame++;E.setOpacity(E.o,E.meltFrames[E.meltFrame]);E.o.style.fontSize=E.fontSize-(E.fontSize*(E.meltFrame/E.meltFrameCount))+"px";E.o.style.lineHeight=D.flakeHeight+2+(D.flakeHeight*0.75*(E.meltFrame/E.meltFrameCount))+"px"}else{E.recycle()}}};this.recycle=function(){E.o.style.display="none";E.o.style.position=(l?"fixed":"absolute");E.o.style.bottom="auto";E.setVelocities();E.vCheck();E.meltFrame=0;E.melting=false;E.setOpacity(E.o,1);E.o.style.padding="0px";E.o.style.margin="0px";E.o.style.fontSize=E.fontSize+"px";E.o.style.lineHeight=(D.flakeHeight+2)+"px";E.o.style.textAlign="center";E.o.style.verticalAlign="baseline";E.x=parseInt(m(b-D.flakeWidth-20),10);E.y=parseInt(m(C)*-1,10)-D.flakeHeight;E.refresh();E.o.style.display="block";E.active=1};this.recycle();this.refresh()};this.snow=function(){var F=0,E=0,G=0,s=null,D;for(D=p.flakes.length;D--;){if(p.flakes[D].active===1){p.flakes[D].move();F++}else{if(p.flakes[D].active===0){E++}else{G++}}if(p.flakes[D].melting){p.flakes[D].melt()}}if(F<p.flakesMaxActive){s=p.flakes[parseInt(m(p.flakes.length),10)];if(s.active===0){s.melting=true}}};this.mouseMove=function(s){if(!p.followMouse){return true}var i=parseInt(s.clientX,10);if(i<w){B=-k+(i/w*k)}else{i-=w;B=(i/w)*k}};this.createSnow=function(s,E){for(var D=0;D<s;D++){p.flakes[p.flakes.length]=new p.SnowFlake(p,parseInt(m(j),10));if(E||D>p.flakesMaxActive){p.flakes[p.flakes.length-1].active=-1}}f.targetElement.appendChild(e)};this.timerInit=function(){p.timers=(!h?[setInterval(p.snow,p.animationInterval)]:[setInterval(p.snow,p.animationInterval*3),setInterval(p.snow,p.animationInterval)])};this.init=function(){for(var s=0;s<p.meltFrameCount;s++){p.meltFrames.push(1-(s/p.meltFrameCount))}p.randomizeWind();p.createSnow(p.flakesMax);p.events.add(n,"resize",p.resizeHandler);p.events.add(n,"scroll",p.scrollHandler);if(p.freezeOnBlur){if(v){p.events.add(t,"focusout",p.freeze);p.events.add(t,"focusin",p.resume)}else{p.events.add(n,"blur",p.freeze);p.events.add(n,"focus",p.resume)}}p.resizeHandler();p.scrollHandler();if(p.followMouse){p.events.add(v?t:n,"mousemove",p.mouseMove)}p.animationInterval=Math.max(20,p.animationInterval);p.timerInit()};this.start=function(s){if(!q){q=true}else{if(s){return true}}if(typeof p.targetElement==="string"){var i=p.targetElement;p.targetElement=t.getElementById(i);if(!p.targetElement){throw new Error('Snowstorm: Unable to get targetElement "'+i+'"')}}if(!p.targetElement){p.targetElement=(!v?(t.documentElement?t.documentElement:t.body):t.body)}if(p.targetElement!==t.documentElement&&p.targetElement!==t.body){p.resizeHandler=p.resizeHandlerAlt}p.resizeHandler();p.usePositionFixed=(p.usePositionFixed&&!o);l=p.usePositionFixed;if(b&&C&&!p.disabled){p.init();p.active=true}};function g(){if((this.excludeMobile&&!r)||!this.excludeMobile){n.setTimeout(function(){p.start(true)},20)}p.events.remove(n,"load",g)}p.events.add(n,"load",g,false);return this}(window,document));
