m=Math;k=document.getElementById('c');k.height=300;k.width=500;c=k.getContext('2d');ep={x:250,y:150};mp=ep;k.onmousemove=q;k.onclick=z;p=[];g={x:0,y:.1};for(i=0;i<20;i++){b()};function b(){p.push({x:ep.x,y:ep.y,c:e(),a:d(),b:d(),s:r()*4+1})};setInterval(a,30);function e(){return [f(),f(),f()]};function f(){return m.round(r()*255)};function d(){return r()*3*2-3};function r(){return m.random()};function z(){g={x:r()/3-1/6,y:r()/3-1/6}};function a(){c.fillStyle="rgba(0,0,0,.1)";c.fillRect(0,0,500,300);for(i=p.length-1;i>=0;i--){c.fillStyle="rgb("+p[i].c[0]+","+p[i].c[1]+","+p[i].c[2]+")";c.beginPath();c.arc(p[i].x,p[i].y,p[i].s,0,m.PI*2,true);c.fill();p[i].x+=p[i].a;p[i].y+=p[i].b;p[i].a+=g.x;p[i].b+=g.y;if(p[i].x>500||p[i].x<0||p[i].y>300||p[i].y<0){p.splice(i,1)};}for(i=0;i<8;i++){b();};ep.x+=(mp.x-ep.x)/20;ep.y+=(mp.y-ep.y)/20;}function q(e){var x,y;if(e.offsetX){x=e.offsetX;y=e.offsetY;}else if(e.layerX){x=e.layerX;y=e.layerY;}mp={x:x,y:y};}
bT1NYXRoO2s9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKTtrLmhlaWdodD0zMDA7ay53aWR0aD01MDA7Yz1rLmdldENvbnRleHQoJzJkJyk7ZXA9e3g6MjUwLHk6MTUwfTttcD1lcDtrLm9ubW91c2Vtb3ZlPXE7ay5vbmNsaWNrPXo7cD1bXTtnPXt4OjAseTouMX07Zm9yKGk9MDtpPDIwO2krKyl7YigpfTtmdW5jdGlvbiBiKCl7cC5wdXNoKHt4OmVwLngseTplcC55LGM6ZSgpLGE6ZCgpLGI6ZCgpLHM6cigpKjQrMX0pfTtzZXRJbnRlcnZhbChhLDMwKTtmdW5jdGlvbiBlKCl7cmV0dXJuIFtmKCksZigpLGYoKV19O2Z1bmN0aW9uIGYoKXtyZXR1cm4gbS5yb3VuZChyKCkqMjU1KX07ZnVuY3Rpb24gZCgpe3JldHVybiByKCkqMyoyLTN9O2Z1bmN0aW9uIHIoKXtyZXR1cm4gbS5yYW5kb20oKX07ZnVuY3Rpb24geigpe2c9e3g6cigpLzMtMS82LHk6cigpLzMtMS82fX07ZnVuY3Rpb24gYSgpe2MuZmlsbFN0eWxlPSJyZ2JhKDAsMCwwLC4xKSI7Yy5maWxsUmVjdCgwLDAsNTAwLDMwMCk7Zm9yKGk9cC5sZW5ndGgtMTtpPj0wO2ktLSl7Yy5maWxsU3R5bGU9InJnYigiK3BbaV0uY1swXSsiLCIrcFtpXS5jWzFdKyIsIitwW2ldLmNbMl0rIikiO2MuYmVnaW5QYXRoKCk7Yy5hcmMocFtpXS54LHBbaV0ueSxwW2ldLnMsMCxtLlBJKjIsdHJ1ZSk7Yy5maWxsKCk7cFtpXS54Kz1wW2ldLmE7cFtpXS55Kz1wW2ldLmI7cFtpXS5hKz1nLng7cFtpXS5iKz1nLnk7aWYocFtpXS54PjUwMHx8cFtpXS54PDB8fHBbaV0ueT4zMDB8fHBbaV0ueTwwKXtwLnNwbGljZShpLDEpfTt9Zm9yKGk9MDtpPDg7aSsrKXtiKCk7fTtlcC54Kz0obXAueC1lcC54KS8yMDtlcC55Kz0obXAueS1lcC55KS8yMDt9ZnVuY3Rpb24gcShlKXt2YXIgeCx5O2lmKGUub2Zmc2V0WCl7eD1lLm9mZnNldFg7eT1lLm9mZnNldFk7fWVsc2UgaWYoZS5sYXllclgpe3g9ZS5sYXllclg7eT1lLmxheWVyWTt9bXA9e3g6eCx5Onl9O30=
Original source not submitted