ppp={
canvas:false,
circle:{},
disabled:false,
dt:0.1,
mousetimeout:0,
p:false,

points: function(c){
	var b={};
	b.mousePos=ppp.Vector(0,0,0);
	b.points=c;
	var a=function(e,g,f){
	var d=ppp.Circle(e,g,f);
	b.points.push(d);
	return d
	};
	b.update=function(){
		if(ppp.disabled){return false}
		var k=this.points.length;
		for(var j=0;j<k;j++){
			var f=this.points[j];
			if(f==null){continue}
			var h=b.mousePos.x-f.curPos.x;
			var g=b.mousePos.y-f.curPos.y;
			var e=(h*h)+(g*g);
			var l=Math.sqrt(e);
			if(l<150){
				f.targetPos.x=(b.mousePos.x<f.curPos.x)?f.curPos.x-h:f.curPos.x-h;
				f.targetPos.y=(b.mousePos.y<f.curPos.y)?f.curPos.y-g:f.curPos.y-g;
			}else{
				f.targetPos.x=f.originalPos.x;
				f.targetPos.y=f.originalPos.y;
			}

			f.update();
		}
	};
	b.draw=function(){
		var f=this.points.length;
		for(var e=0;e<f;e++){
			var d=this.points[e];
			if(d==null){continue}
			d.draw();
		}
	};

	return b
},

Circle:function(c,b,e,d){
	var a={};
	a.curPos=ppp.Vector(b,e,d);
	a.friction=ppp.circle.friction;
	a.originalPos=ppp.Vector(b,e,d);
	a.radius=ppp.circle.radius;
	a.size=ppp.circle.size;
	a.springStrength=ppp.circle.spring;
	a.targetPos=ppp.Vector(b,e,d);
	a.velocity=ppp.Vector(0,0,0);
	a.update=function(){
		var o=a.targetPos.x-a.curPos.x;
		var f=o*a.springStrength;
		a.velocity.x+=f;
		a.velocity.x*=a.friction;
		a.curPos.x+=a.velocity.x;
		var m=a.targetPos.y-a.curPos.y;
		var n=m*a.springStrength;
		a.velocity.y+=n;
		a.velocity.y*=a.friction;
		a.curPos.y+=a.velocity.y;
		var k=a.originalPos.x-a.curPos.x;
		var h=a.originalPos.y-a.curPos.y;
		var i=(k*k)+(h*h);
		var g=Math.sqrt(i);
		a.targetPos.z=g/100+1;
		var j=a.targetPos.z-a.curPos.z;
		var l=j*a.springStrength;
		a.velocity.z+=l;
		a.velocity.z*=a.friction;
		a.curPos.z+=a.velocity.z;
		a.radius=a.size*a.curPos.z;
		if(a.radius<1){a.circle.radius=1}
	};

	a.draw=function(){
		ppp.canvas.fillStyle="#"+c;
		ppp.canvas.beginPath();
		ppp.canvas.arc(this.curPos.x,this.curPos.y,this.radius,0,Math.PI*2,true);
		ppp.canvas.fill();
	};
	return a;
},

Vector:function(a,d,c){
	var b={};
	b.x=a;
	b.y=d;
	b.z=c;
	b.addX=function(e){b.x+=e};
	b.addY=function(e){b.y+=e};
	b.addZ=function(e){b.z+=e};
	b.set=function(e,g,f){b.x=e;b.y=g;b.z=f};
	return b;
},
onMove:function(a){
	ppp.mousetimeout=0;
	ppp.p.mousePos.set(a.pageX,a.pageY);
},
timeout:function(){
	ppp.canvas.clearRect(0,0,window.innerWidth,window.innerHeight);
	ppp.p.draw();
	ppp.p.update();
	ppp.mousetimeout=ppp.mousetimeout+1;
	setTimeout(function(){ppp.timeout()},30);
},
load:function(d){
	ppp.circle=d.circle;
	var a=document.getElementById(d.canvas);
	a.width=window.innerWidth;
	a.height=window.innerHeight;
	var b=[
		ppp.Circle("00bdf4",d.pos.x+805-88,d.pos.y+40,0),
		ppp.Circle("01f47a",d.pos.x+805-66,d.pos.y+40+8,0),
		ppp.Circle("f54700",d.pos.x+805,d.pos.y+40,0),
		ppp.Circle("f3e100",d.pos.x+805-22,d.pos.y+40+8,0),
		ppp.Circle("bff700",d.pos.x+805-44,d.pos.y+40+13,0)
		];
	ppp.p=ppp.points(b);
	if(!a.getContext){return false;}
	ppp.canvas=a.getContext("2d");
	window.onmousemove=ppp.onMove;
	ppp.timeout();
},
enable:function(a){
	ppp.disabled=false;
	$(a).text("Disable Logo");
	$(a).unbind("click");
},
disable:function(a){
	ppp.disabled=true;
	$(a).text("Enable Logo");
	$(a).click(function(){
		ppp.enable(this);
		document.cookie="ppplogo=true;expires="+(new Date()).toGMTString()+";;";
	},
	function(){ppp.disable(this)}
	)
}
};

