// JavaScript Document
(function(a){a.snowfall=function(d,f){var n={flakeCount:35,flakeColor:"#ffffff",flakeIndex:999999,minSize:1,maxSize:2,minSpeed:1,maxSpeed:5,round:false,shadow:false,pic:false,picUrl:"",collection:false,collectionHeight:40,intTime:70},f=a.extend(n,f),b=function b(w,i){return Math.round(w+Math.random()*(i-w))};a(d).data("snowfall",this);function h(A,z,y,w,B){this.id=B;this.x=A;this.y=z;this.size=y;this.speed=w;this.step=0;this.stepSize=b(1,10)/100;if(f.collection){this.target=u[b(0,u.length-1)]}var C=Math.round(this.size);if(!f.pic){var i=a(document.createElement("div")).attr({"class":"snowfall-flakes",id:"flake-"+this.id}).css({width:C,height:C,position:"absolute",top:this.y,left:this.x,fontSize:C,zIndex:f.flakeIndex})}else{var i=a(document.createElement("img")).attr({"class":"snowfall-flakes",id:"flake-"+this.id}).css({width:C,height:C,position:"absolute",top:this.y,left:this.x,zIndex:f.flakeIndex,"-ms-interpolation-mode":"bicubic"}).attr("src",f.picUrl+"snow"+Math.floor(Math.random()*4)+".gif")}if(a(d).get(0).tagName===a(document).get(0).tagName){a("body").append(i);d=a("body")}else{a(d).append(i)}this.element=document.getElementById("flake-"+this.id);this.update=function(){this.y+=this.speed;if(this.y>(p)-(this.size+6)){this.reset()}this.element.style.top=this.y+"px";this.element.style.left=this.x+"px";this.step+=this.stepSize;this.x+=Math.cos(this.step);if(f.collection){if(this.x>this.target.x&&this.x<this.target.width+this.target.x&&this.y>this.target.y&&this.y<this.target.height+this.target.y){var F=this.target.element.getContext("2d"),E=this.x-this.target.x,D=this.y-this.target.y,G=this.target.colData;if(G[parseInt(E)][parseInt(D+this.speed+this.size)]!==undefined||D+this.speed+this.size>this.target.height){if(D+this.speed+this.size>this.target.height){while(D+this.speed+this.size>this.target.height&&this.speed>0){this.speed*=0.5}F.fillStyle="#fff";if(G[parseInt(E)][parseInt(D+this.speed+this.size)]==undefined){G[parseInt(E)][parseInt(D+this.speed+this.size)]=1;F.fillRect(E,(D)+this.speed+this.size,this.size,this.size)}else{G[parseInt(E)][parseInt(D+this.speed)]=1;F.fillRect(E,D+this.speed,this.size,this.size)}this.reset()}else{this.speed=1;this.stepSize=0;if(parseInt(E)+1<this.target.width&&G[parseInt(E)+1][parseInt(D)+1]==undefined){this.x++}else{if(parseInt(E)-1>0&&G[parseInt(E)-1][parseInt(D)+1]==undefined){this.x--}else{F.fillStyle="#fff";F.fillRect(E,D,this.size,this.size);G[parseInt(E)][parseInt(D)]=1;this.reset()}}}}}}if(this.x>(r)-k||this.x<k){this.reset()}};this.reset=function(){this.y=0;this.x=b(k,r-k);this.stepSize=b(1,10)/100;this.size=b((f.minSize*100),(f.maxSize*100))/100;this.speed=b(f.minSpeed,f.maxSpeed)}}var s=[],c=0,t=0,p=a(d).height(),r=a(d).width(),k=0,v=0;if(f.collection!==false){var g=document.createElement("canvas");if(!!(g.getContext&&g.getContext("2d"))){var u=[],q=a(f.collection),x=f.collectionHeight;for(var t=0;t<q.length;t++){var l=q[t].getBoundingClientRect(),e=document.createElement("canvas"),m=[];if(l.top-x>0){document.body.appendChild(e);e.style.position="absolute";e.height=x;e.width=l.width;e.style.left=l.left;e.style.top=l.top-x;for(var o=0;o<l.width;o++){m[o]=[]}u.push({element:e,x:l.left,y:l.top-x,width:l.width,height:x,colData:m})}}}else{f.collection=false}}if(a(d).get(0).tagName===a(document).get(0).tagName){k=25}a(window).bind("resize",function(){p=a(d).height();r=a(d).width()});for(t=0;t<f.flakeCount;t+=1){c=s.length;s.push(new h(b(k,r-k),b(0,p),b((f.minSize*100),(f.maxSize*100))/100,b(f.minSpeed,f.maxSpeed),c))}if(f.round){a(".snowfall-flakes").text(String.fromCharCode(9679)).css({color:f.flakeColor})}if(f.shadow){a(".snowfall-flakes").css({"-moz-box-shadow":"1px 1px 1px #555","-webkit-box-shadow":"1px 1px 1px #555","box-shadow":"1px 1px 1px #555"})}function j(){for(t=0;t<s.length;t+=1){s[t].update()}v=setTimeout(function(){j()},f.intTime)}j();this.clear=function(){a(d).children(".snowfall-flakes").remove();s=[];clearTimeout(v)}};a.fn.snowfall=function(b){if(typeof(b)=="object"||b==undefined){return this.each(function(c){(new a.snowfall(this,b))})}else{if(typeof(b)=="string"){return this.each(function(c){var d=a(this).data("snowfall");if(d){d.clear()}})}}}})(jQuery);


