var snowStorm=null;function SnowStorm(){var s=this;var storm=this;this.timers=[];this.flakes=[];this.disabled=false;this.terrain=[];var usePNG=false;var imagePath="http://i.cdn.promodeejay.net/snow/";var flakeTypes=6;var flakesMax=60;var flakesMaxActive=60;var vMax=2.5;var flakeWidth=5;var flakeHeight=5;var flakeBottom=null;var snowCollect=false;var showStatus=false;var isIE=(navigator.appName.toLowerCase().indexOf("internet explorer")+1);var isWin9X=(navigator.appVersion.toLowerCase().indexOf("windows 98")+1);var isOpera=(navigator.userAgent.toLowerCase().indexOf("opera ")+1||navigator.userAgent.toLowerCase().indexOf("opera/")+1);if(isOpera){isIE=false}var screenX=null;var screenY=null;var scrollY=null;var vRndX=null;var vRndY=null;function rnd(n,min){if(isNaN(min)){min=0}return(Math.random()*n)+min}this.randomizeWind=function(){vRndX=plusMinus(rnd(vMax,0.2));vRndY=rnd(vMax,0.2);if(this.flakes){for(var i=0;i<this.flakes.length;i++){if(this.flakes[i].active){this.flakes[i].setVelocities()}}}};function plusMinus(n){return(parseInt(rnd(2))==1?n*-1:n)}this.resizeHandler=function(){if(window.innerWidth||window.innerHeight){screenX=window.innerWidth-(!isIE?24:2);screenY=(flakeBottom?flakeBottom:window.innerHeight)}else{screenX=(document.documentElement.clientWidth||document.body.clientWidth||document.body.scrollWidth)-(!isIE?8:0);screenY=flakeBottom?flakeBottom:(document.documentElement.clientHeight||document.body.clientHeight||document.body.scrollHeight)}s.scrollHandler()};this.scrollHandler=function(){scrollY=(flakeBottom?0:parseInt(window.scrollY||document.documentElement.scrollTop||document.body.scrollTop));if(isNaN(scrollY)){scrollY=0}if(!flakeBottom&&s.flakes){for(var i=0;i<s.flakes.length;i++){if(s.flakes[i].active==0){s.flakes[i].stick()}}}};this.freeze=function(){if(!s.disabled){s.disabled=1}else{return false}if(!isWin9X){clearInterval(s.timers)}else{for(var i=0;i<s.timers.length;i++){clearInterval(s.timers[i])}}};this.resume=function(){if(s.disabled){s.disabled=0}else{return false}s.timerInit()};this.stop=function(){this.freeze();for(var i=0;i<this.flakes.length;i++){this.flakes[i].o.style.display="none"}removeEventHandler(window,"scroll",this.scrollHandler,false);removeEventHandler(window,"resize",this.resizeHandler,false)};this.SnowFlake=function(parent,type,x,y){var s=this;var storm=parent;this.type=type;this.x=x||parseInt(rnd(screenX-12));this.y=(!isNaN(y)?y:-12);this.vX=null;this.vY=null;this.vAmpTypes=[2,1,1.25,1,1.5,1.75];this.vAmp=this.vAmpTypes[this.type];this.active=1;this.o=document.createElement("img");this.o.style.position="absolute";this.o.style.width=flakeWidth+"px";this.o.style.height=flakeHeight+"px";this.o.style.fontSize="1px";this.o.style.zIndex=2;this.o.src=imagePath+this.type+(pngHandler.supported&&usePNG?".png":".gif");document.body.appendChild(this.o);if(pngHandler.supported&&usePNG){pngHandler.transform(this.o)}this.refresh=function(){this.o.style.left=this.x+"px";this.o.style.top=this.y+"px"};this.stick=function(){s.o.style.top=(screenY+scrollY-flakeHeight-storm.terrain[Math.floor(this.x)])+"px"};this.vCheck=function(){if(this.vX>=0&&this.vX<0.2){this.vX=0.2}else{if(this.vX<0&&this.vX>-0.2){this.vX=-0.2}}if(this.vY>=0&&this.vY<0.2){this.vY=0.2}};this.move=function(){this.x+=this.vX;this.y+=(this.vY*this.vAmp);this.refresh();if(this.vX&&screenX-this.x<flakeWidth+this.vX){this.x=0}else{if(this.vX<0&&this.x<0-flakeWidth){this.x=screenX-flakeWidth}}var yDiff=screenY+scrollY-this.y-storm.terrain[Math.floor(this.x)];if(yDiff<flakeHeight){this.active=0;if(snowCollect){var height=[0.75,1.5,0.75];for(var i=0;i<2;i++){storm.terrain[Math.floor(this.x)+i+2]+=height[i]}}this.o.style.left=((this.x-(!isIE?flakeWidth:0))/screenX*100)+"%";if(!flakeBottom){this.stick()}}};this.animate=function(){this.move()};this.setVelocities=function(){this.vX=vRndX+rnd(vMax*0.12,0.1);this.vY=vRndY+rnd(vMax*0.12,0.1)};this.recycle=function(){this.setVelocities();this.vCheck();this.x=parseInt(rnd(screenX-flakeWidth-1));this.y=parseInt(rnd(640)*-1)-flakeHeight;this.active=1};this.recycle();this.refresh()};this.snow=function(){var active=0;var used=0;var waiting=0;for(var i=this.flakes.length-1;i>0;i--){if(this.flakes[i].active==1){this.flakes[i].animate();active++}else{if(this.flakes[i].active==0){used++}else{waiting++}}}if(snowCollect&&!waiting){this.createSnow(flakesMaxActive,true)}if(active<flakesMaxActive){with(this.flakes[parseInt(rnd(this.flakes.length))]){if(!snowCollect&&active==0){recycle()}else{if(active==-1){active=1}}}}};this.createSnow=function(limit,allowInactive){if(showStatus){window.status="Creating snow..."}for(var i=0;i<limit;i++){this.flakes[this.flakes.length]=new this.SnowFlake(this,parseInt(rnd(flakeTypes)));if(allowInactive||i>flakesMaxActive){this.flakes[this.flakes.length-1].active=-1}}if(showStatus){window.status=""}};this.timerInit=function(){this.timers=(!isWin9X?setInterval("snowStorm.snow()",20):[setInterval("snowStorm.snow()",75),setInterval("snowStorm.snow()",25)])};this.init=function(){for(var i=0;i<8192;i++){this.terrain[i]=0}this.randomizeWind();this.createSnow(snowCollect?flakesMaxActive:flakesMaxActive*2);addEventHandler(window,"resize",this.resizeHandler,false);addEventHandler(window,"scroll",this.scrollHandler,false);this.timerInit()};this.resizeHandler();if(screenX&&screenY&&!this.disabled){this.init()}}function snowStormInit(){setTimeout("snowStorm = new SnowStorm()",500)}var addEventHandler=null;var removeEventHandler=null;function postLoadEvent(A){return((A.toLowerCase().indexOf("load")>=0)&&document.body)}function addEventHandlerDOM(C,B,A,D){if(!postLoadEvent(B)){C.addEventListener(B,A,D)}else{A()}}function removeEventHandlerDOM(C,B,A,D){C.removeEventListener(B,A,D)}function addEventHandlerIE(C,B,A){if(!B.indexOf("on")+1){B="on"+B}if(!postLoadEvent(B)){C.attachEvent(B,A)}else{A()}}function removeEventHandlerIE(C,B,A){if(!B.indexOf("on")+1){B="on"+B}C.detachEvent(B,A)}function addEventHandlerOpera(C,B,A,D){if(!postLoadEvent(B)){(C==window?document:C).addEventListener(B,A,D)}else{A()}}function removeEventHandlerOpera(C,B,A,D){(C==window?document:C).removeEventListener(B,A,D)}if(navigator.userAgent.toLowerCase().indexOf("opera ")+1||navigator.userAgent.toLowerCase().indexOf("opera/")+1){addEventHandler=addEventHandlerOpera;removeEventHandler=removeEventHandlerOpera}else{if(document.addEventListener){addEventHandler=addEventHandlerDOM;removeEventHandler=removeEventHandlerDOM}else{if(document.attachEvent){addEventHandler=addEventHandlerIE;removeEventHandler=removeEventHandlerIE}else{addEventHandler=function(C,B,A,D){C["on"+B]=A};removeEventHandler=function(C,B,A,D){}}}}function PNGHandler(){var A=this;this.na=navigator.appName.toLowerCase();this.nv=navigator.appVersion.toLowerCase();this.isIE=this.na.indexOf("internet explorer")+1?1:0;this.isWin=this.nv.indexOf("windows")+1?1:0;this.isIEMac=(this.isIE&&!this.isWin);this.isIEWin=(this.isIE&&this.isWin);this.ver=this.isIE?parseFloat(this.nv.split("msie ")[1]):parseFloat(this.nv);this.isMac=this.nv.indexOf("mac")+1?1:0;this.isOpera=(navigator.userAgent.toLowerCase().indexOf("opera ")+1||navigator.userAgent.toLowerCase().indexOf("opera/")+1);if(this.isOpera){this.isIE=false}this.filterID="DXImageTransform.Microsoft.AlphaImageLoader";this.supported=false;this.transform=A.doNothing;this.filterMethod=function(E){if(E.nodeName!="IMG"){var B=E.currentStyle.backgroundImage.toString();E.style.backgroundImage="none";var D=B.indexOf('url("')+5;var C=B.substr(D,B.length-D-2).replace(".gif",".png");E.style.writingMode="lr-tb";E.style.filter="progid:"+A.filterID+"(src='"+C+"',sizingMethod='"+(E.className.indexOf("scale")+1?"scale":"crop")+"')"}else{if(E.nodeName=="IMG"){var C=E.getAttribute("src").replace(".gif",".png");E.src="image/none.gif";E.style.filter="progid:"+A.filterID+"(src='"+C+"',sizingMethod="+(E.className.indexOf("scale")+1?"scale":"crop")+"')";E.style.writingMode="lr-tb"}}};this.pngMethod=function(B){bgImage=this.getBackgroundImage(B);if(bgImage){B.style.backgroundImage="url("+bgImage.replace(".gif",".png")+")"}else{if(B.nodeName=="IMG"){B.src=B.src.replace(".gif",".png")}else{if(!bgImage){}}}};this.getBackgroundImage=function(E){var B,D;var C=null;if(E.nodeName!="IMG"&&!(this.isIE&&this.isMac)){if(document.defaultView){if(document.defaultView.getComputedStyle){B=document.defaultView.getComputedStyle(E,"").getPropertyValue("background-image");D=B.indexOf("url(")+4;C=B.substr(D,B.length-D-1)}else{return false}}else{return false}}return C};this.doNothing=function(){};this.supportTest=function(){if(this.isIE&&this.isWin&&this.ver>=5.5){A.transform=A.filterMethod}else{if(!this.isIE&&this.ver<5){A.transform=null;return false}else{if(!this.isIE&&this.ver>=5||(this.isIE&&this.isMac&&this.ver>=5)){A.transform=A.pngMethod}else{A.transform=null;return false}}}return true};this.init=function(){this.supported=this.supportTest()}}function getElementsByClassName(C,F){var E=(F||document);var D=[];var A=E.all||E.getElementsByTagName("*");for(var B=0;B<A.length;B++){if(A[B].className==C||A[B].className.indexOf(C)+1||A[B].className.indexOf(C+" ")+1||A[B].className.indexOf(" "+C)+1){D[D.length]=A[B]}}return D}var pngHandler=new PNGHandler();pngHandler.init();addEventHandler(window,"load",snowStormInit,false);