Grid, Springs and Chagres(Raphael)

JavaScript

var ctx = Raphael(0, 0, 640, 480);
var dt = 0.01;
var timeFrame = 10;
var width2 = 320,
    height2 = 240,
    scaleX = 1,
    scaleY = 1;
var centerX = width2;
var centerY = height2;
var radiusBall = 10;

var rtext = ctx.text(width2, 10, "Visible FPS: - Max FPS: -");

//var arrayBalls = [
//new ball(100, 100, 1000, "0"),
//new ball(400, 150, 1000, "1")];
// var arraySprings = [
// new spring(0, 1, 10)];


//var arrayBalls = [
//new ball("0", 1000, 100, 100),
//new ball("1", 1000, 300, 150),
//new ball("2", 1000, 400, 100)];

//var arraySprings = [
//new spring("0", "1", 1),
//new spring("1", "2", 1),
//new spring("0", "2", 1)];

var arrayBalls = [
new ball(1, 1.000, 9.985285, 8.823873),
new ball(10, 1.000, 7.905390, 7.792477),
new ball(11, 1.000, 5.291587, 7.810202),
new ball(12, 1.000, 3.512660, 6.676054),
new ball(13, 1.000, 2.848387, 5.390772),
new ball(14, 1.000, 2.311177, 4.326659),
new ball(15, 1.000, 1.622048, 3.264550),
new ball(16, 1.000, 0.864816, 2.486092),
new ball(17, 1.000, 7.578889, 4.648953),
new ball(18, 1.000, 6.969821, 5.749377),
new ball(19, 1.000, 4.961640, 7.189286),
new ball(2, 1.000, 8.690748, 8.996515),
new ball(20, 1.000, 3.556436, 7.908809),
new ball(21, 1.000, 2.537188, 7.779252),
new ball(22, 1.000, 1.724301, 7.009165),
new ball(23, 1.000, 1.110612, 6.018438),
new ball(24, 1.000, 0.332130, 5.415339),
new ball(25, 1.000, 8.462597, 4.200174),
new ball(26, 1.000, 7.899139, 5.485920),
new ball(27, 1.000, 6.550674, 7.821706),
new ball(28, 1.000, 4.423056, 9.841635),
new ball(29, 1.000, 3.266487, 10.231663),
new ball(3, 1.000, 6.007623, 8.498511),
new ball(30, 1.000, 2.226284, 10.131976),
new ball(31, 1.000, 1.493764, 9.371593),
new ball(32, 1.000, 0.636837, 9.338010),
new ball(33, 1.000, 9.602882, 4.897362),
new ball(34, 1.000, 9.070342, 6.545641),
new ball(35, 1.000, 7.610553, 8.968997),
new ball(36, 1.000, 6.124685, 10.631741),
new ball(37, 1.000, 4.474723, 12.125851),
new ball(38, 1.000, 3.603963, 12.734021),
new ball(39, 1.000,...