window.addEvent("domready", function() {
	var space = new Space(30);
	space.relaxations = 2;
	space.gravity.y = 1000;
	
	var update_node = function(particle) {
		var node = $(particle.element_id);
		if(!isNaN(particle.position.x) && !isNaN(particle.position.y)) {
			node.setStyle("left", parseInt(particle.position.x)+"px");
			node.setStyle("top", parseInt(particle.position.y)+"px");
		}
	};
	
	var node_mouse = new Particle(new Vector(100,100), 99999, update_node);
	var node0 = new Particle(new Vector(100,100), 1, update_node);
	var node1 = new Particle(new Vector(100,125), 1, update_node);
	var node2 = new Particle(new Vector(100,150), 1, update_node);
	var node3 = new Particle(new Vector(100,175), 1, update_node);
	var node4 = new Particle(new Vector(100,200), 1, update_node);
	var node5 = new Particle(new Vector(100,225), 1, update_node);
	var node6 = new Particle(new Vector(100,250), 1, update_node);
	var node7 = new Particle(new Vector(100,275), 1, update_node);
	
	node_mouse.fixed = true;
	
	node_mouse.element_id = "node_mouse";
	node0.element_id = "node0";
	node1.element_id = "node1";
	node2.element_id = "node2";
	node3.element_id = "node3";
	node4.element_id = "node4";
	node5.element_id = "node5";
	node6.element_id = "node6";
	node7.element_id = "node7";
	
	window.addEvent("mousemove", function(ev) {
		var pos = new Vector(parseInt(ev.page.x), parseInt(ev.page.y));
		node_mouse.set_position(pos);
	});
	
	space.add_particle(node_mouse);
	space.add_particle(node0);
	space.add_particle(node1);
	space.add_particle(node2);
	space.add_particle(node3);
	space.add_particle(node4);
	space.add_particle(node5);
	space.add_particle(node6);
	space.add_particle(node7);
	
	space.add_constraint(new Joint(node_mouse,node0));
	space.add_constraint(new Joint(node0,node1));
	space.add_constraint(new Joint(node1,node2));
	space.add_constraint(new Joint(node2,node3));
	space.add_constraint(new Joint(node3,node4));
	space.add_constraint(new Joint(node4,node5));
	space.add_constraint(new Joint(node5,node6));
	space.add_constraint(new Joint(node6,node7));
	
	space.run();
});

