/* Author: kha
 * www.kaihackl.de
*/

var VELOCITY=0.6;var PARTICLES=40;var mouse={x:125,y:300};var particles=[];var colors=["254,1,73","79,54,61","186,168,161"];var canvas=document.getElementById('projector');var context;if(canvas&&canvas.getContext){context=canvas.getContext('2d');for(var i=0;i<PARTICLES;i++){particles.push({x:Math.random()*window.innerWidth,y:Math.random()*250,vx:((Math.random()*(VELOCITY*2))-VELOCITY),vy:((Math.random()*(VELOCITY*2))-VELOCITY),size:1+Math.random()*3,opacity:Math.random(),color:colors[Math.floor(Math.random()*colors.length)]});}
Initialize();}
function Initialize(){window.addEventListener('resize',ResizeCanvas,false);setInterval(TimeUpdate,40);ResizeCanvas();}
function TimeUpdate(e){context.clearRect(0,0,window.innerWidth,250);var len=particles.length;var particle;for(var i=0;i<len;i++){particle=particles[i];if(!particle.frozen){particle.x+=particle.vx;particle.y+=particle.vy;if(particle.x>window.innerWidth){particle.vx=-VELOCITY-Math.random();}
else if(particle.x<0){particle.vx=VELOCITY+Math.random();}
else{particle.vx*=1+(Math.random()*0.005);}
if(particle.y>240){particle.vy=-VELOCITY-Math.random();}
else if(particle.y<0){particle.vy=VELOCITY+Math.random();}
else{particle.vy*=1+(Math.random()*0.005);}
var distanceFactor=DistanceBetween(mouse,particle);distanceFactor=Math.max(Math.min(15-(distanceFactor/10),10),1);particle.currentSize=particle.size*distanceFactor;}
context.fillStyle='rgba('+particle.color+','+particle.opacity+')';context.beginPath();context.arc(particle.x,particle.y,particle.currentSize,0,Math.PI*2,true);context.closePath();context.fill();}}
function ResizeCanvas(e){canvas.width=window.innerWidth;canvas.height=250;}
function DistanceBetween(p1,p2){var dx=p2.x-400;var dy=p2.y-20;return Math.sqrt(dx*dx+dy*dy);}
