/*
Science & Engineering Encyclopaedia. Copyright Dirac Delta Consultants Ltd. 2001-2002

No part of this document may be reproduced or transmitted in any form or by any mean, electronic or mechanical, including printing, placing on the internet or by any information storage and retrieval system without permission from the Publisher in writing
*/

//Set Up global variables of correct size

var numcalcs=8 //number of calculations on the page

var xnm=5 //maximum number of independant variables
var ynm=3 //maximum number of dependant variables

xnme=new Array(numcalcs)
ynme=new Array(numcalcs)

xtxt = new Array(numcalcs)
ytxt = new Array(numcalcs)

xunt = new Array(numcalcs)
yunt= new Array(numcalcs)

xvrb = new Array(numcalcs)
yvrb= new Array(numcalcs)

for (i=0;i<numcalcs;i++){
	xnme[i]=new Array(xnm)
	ynme[i]=new Array(ynm)
	
	xtxt[i] = new Array(xnm)
	ytxt[i] = new Array(ynm)

	xunt[i] = new Array(xnm)
	yunt[i] = new Array(ynm)

	xvrb[i] = new Array(xnm)
	yvrb[i] = new Array(ynm)
}

frm = new Array(numcalcs)
scrp = new Array(numcalcs)
ttlem = new Array(numcalcs)

//+++++++++
// Start calc 0
calcnum=0

frm[calcnum]="spr0"
scrp[calcnum]="spring0"
ttlem[calcnum]="Helical Spring"


xnme[calcnum][1]="G0"
xtxt[calcnum][1]="shear modulus, G"
xunt[calcnum][1]="Nm<sup>-2</sup>"
xnme[calcnum][2]="d0"
xtxt[calcnum][2]="wire diameter, d"
xunt[calcnum][2]="m"
xnme[calcnum][3]="DD0"
xtxt[calcnum][3]="mean coil diameter, D"
xunt[calcnum][3]="m"
xnme[calcnum][4]="n0"
xtxt[calcnum][4]="number of turns, n"
xunt[calcnum][4]=""

ynme[calcnum][1]="k0"
ytxt[calcnum][1]="stiffness, k"
yunt[calcnum][1]="Nm<sup>-1</sup>"

function spring0(cm){

	xvrb[cm][1]=parseFloat(document.spr0.G0.value)
	xvrb[cm][2]=parseFloat(document.spr0.d0.value)
	xvrb[cm][3]=parseFloat(document.spr0.DD0.value)
	xvrb[cm][4]=parseFloat(document.spr0.n0.value)
	
	
	yvrb[cm][1]=xvrb[cm][1]*xvrb[cm][2]*xvrb[cm][2]*xvrb[cm][2]*xvrb[cm][2]
	yvrb[cm][1]=yvrb[cm][1]/(8*xvrb[cm][4]*xvrb[cm][3]*xvrb[cm][3]*xvrb[cm][3])
	
	document.spr0.k0.value=yvrb[cm][1]
	
}

//+++++++++
// Start calc 1
calcnum=1

frm[calcnum]="spr1"
scrp[calcnum]="spring1"
ttlem[calcnum]="Rod Under Axial Load"


xnme[calcnum][1]="E1"
xtxt[calcnum][1]="Youngs modulus, E"
xunt[calcnum][1]="Nm<sup>-2</sup>"
xnme[calcnum][2]="A1"
xtxt[calcnum][2]="cross sectional area, A"
xunt[calcnum][2]="m"
xnme[calcnum][3]="l1"
xtxt[calcnum][3]="length, l"
xunt[calcnum][3]="m"

ynme[calcnum][1]="k1"
ytxt[calcnum][1]="stiffness, k"
yunt[calcnum][1]="Nm<sup>-1</sup>"

function spring1(cm){

	xvrb[cm][1]=parseFloat(document.spr1.E1.value)
	xvrb[cm][2]=parseFloat(document.spr1.A1.value)
	xvrb[cm][3]=parseFloat(document.spr1.l1.value)
		
	yvrb[cm][1]=xvrb[cm][1]*xvrb[cm][2]/xvrb[cm][3]
	
	
	document.spr1.k1.value=yvrb[cm][1]
	
}

//+++++++++
// Start calc 2
calcnum=2

frm[calcnum]="spr2"
scrp[calcnum]="spring2"
ttlem[calcnum]="Simply Supported Beam"


xnme[calcnum][1]="E2"
xtxt[calcnum][1]="Youngs modulus, E"
xunt[calcnum][1]="Nm<sup>-2</sup>"
xnme[calcnum][2]="I2"
xtxt[calcnum][2]="area moment of inertia, I"
xunt[calcnum][2]="m<sup>4</sup>"
xnme[calcnum][3]="l2"
xtxt[calcnum][3]="length, l"
xunt[calcnum][3]="m"

ynme[calcnum][1]="k2"
ytxt[calcnum][1]="stiffness, k"
yunt[calcnum][1]="Nm<sup>-1</sup>"

function spring2(cm){

	xvrb[cm][1]=parseFloat(document.spr2.E2.value)
	xvrb[cm][2]=parseFloat(document.spr2.I2.value)
	xvrb[cm][3]=parseFloat(document.spr2.l2.value)
		
	yvrb[cm][1]=48*xvrb[cm][1]*xvrb[cm][2]/(xvrb[cm][3]*xvrb[cm][3]*xvrb[cm][3])
	
	
	document.spr2.k2.value=yvrb[cm][1]
	
}

//+++++++++
// Start calc 3
calcnum=3

frm[calcnum]="spr3"
scrp[calcnum]="spring3"
ttlem[calcnum]="Tapered rod under axial load "


xnme[calcnum][1]="E3"
xtxt[calcnum][1]="Youngs modulus, E"
xunt[calcnum][1]="Nm<sup>-2</sup>"
xnme[calcnum][2]="d3"
xtxt[calcnum][2]="end diameter, d"
xunt[calcnum][2]="m"
xnme[calcnum][3]="DD3"
xtxt[calcnum][3]="end diameter, D"
xunt[calcnum][3]="m"
xnme[calcnum][4]="l3"
xtxt[calcnum][4]="length, l"
xunt[calcnum][4]="m"

ynme[calcnum][1]="k3"
ytxt[calcnum][1]="stiffness, k"
yunt[calcnum][1]="Nm<sup>-1</sup>"

function spring3(cm){

	xvrb[cm][1]=parseFloat(document.spr3.E3.value)
	xvrb[cm][2]=parseFloat(document.spr3.d3.value)
	xvrb[cm][3]=parseFloat(document.spr3.DD3.value)
	xvrb[cm][4]=parseFloat(document.spr3.l3.value)
	
		
	yvrb[cm][1]=Math.atan(1)*xvrb[cm][1]*xvrb[cm][2]*xvrb[cm][3]/(4*xvrb[cm][4])
	
	
	document.spr3.k3.value=yvrb[cm][1]
	
}

//+++++++++
// Start calc 4
calcnum=4

frm[calcnum]="spr4"
scrp[calcnum]="spring4"
ttlem[calcnum]="Beam Fixed at Each End, Load in Centre "


xnme[calcnum][1]="E4"
xtxt[calcnum][1]="Youngs modulus, E"
xunt[calcnum][1]="Nm<sup>-2</sup>"
xnme[calcnum][2]="I4"
xtxt[calcnum][2]="area moment of inertia, I"
xunt[calcnum][2]="m<sup>4</sup>"
xnme[calcnum][3]="l4"
xtxt[calcnum][3]="length, l"
xunt[calcnum][3]="m"

ynme[calcnum][1]="k4"
ytxt[calcnum][1]="stiffness, k"
yunt[calcnum][1]="Nm<sup>-1</sup>"

function spring4(cm){

	xvrb[cm][1]=parseFloat(document.spr4.E4.value)
	xvrb[cm][2]=parseFloat(document.spr4.I4.value)
	xvrb[cm][3]=parseFloat(document.spr4.l4.value)
		
	yvrb[cm][1]=192*xvrb[cm][1]*xvrb[cm][2]/(xvrb[cm][3]*xvrb[cm][3]*xvrb[cm][3])
	
	
	document.spr4.k4.value=yvrb[cm][1]
	
}

//+++++++++
// Start calc 5
calcnum=5

frm[calcnum]="spr5"
scrp[calcnum]="spring5"
ttlem[calcnum]="Cantilever Beam with Load at End"


xnme[calcnum][1]="E5"
xtxt[calcnum][1]="Youngs modulus, E"
xunt[calcnum][1]="Nm<sup>-2</sup>"
xnme[calcnum][2]="I5"
xtxt[calcnum][2]="area moment of inertia, I"
xunt[calcnum][2]="m<sup>4</sup>"
xnme[calcnum][3]="l5"
xtxt[calcnum][3]="length, l"
xunt[calcnum][3]="m"

ynme[calcnum][1]="k5"
ytxt[calcnum][1]="stiffness, k"
yunt[calcnum][1]="Nm<sup>-1</sup>"

function spring5(cm){

	xvrb[cm][1]=parseFloat(document.spr5.E5.value)
	xvrb[cm][2]=parseFloat(document.spr5.I5.value)
	xvrb[cm][3]=parseFloat(document.spr5.l5.value)
		
	yvrb[cm][1]=3*xvrb[cm][1]*xvrb[cm][2]/(xvrb[cm][3]*xvrb[cm][3]*xvrb[cm][3])
	
	
	document.spr5.k5.value=yvrb[cm][1]
	
}

//+++++++++
// Start calc 6
calcnum=6

frm[calcnum]="spr6"
scrp[calcnum]="spring6"
ttlem[calcnum]="Semi-elliptic laminated leaf spring"


xnme[calcnum][1]="E6"
xtxt[calcnum][1]="Youngs modulus, E"
xunt[calcnum][1]="Nm<sup>-2</sup>"
xnme[calcnum][2]="n6"
xtxt[calcnum][2]="number of leaves, n"
xunt[calcnum][2]=""
xnme[calcnum][3]="l6"
xtxt[calcnum][3]="span, l"
xunt[calcnum][3]="m"
xnme[calcnum][4]="b6"
xtxt[calcnum][4]="width of leaves, b"
xunt[calcnum][4]="m"
xnme[calcnum][5]="t6"
xtxt[calcnum][5]="thickness of leaves, t"
xunt[calcnum][5]="m"


ynme[calcnum][1]="k6"
ytxt[calcnum][1]="stiffness, k"
yunt[calcnum][1]="Nm<sup>-1</sup>"

function spring6(cm){

	xvrb[cm][1]=parseFloat(document.spr6.E6.value)
	xvrb[cm][2]=parseFloat(document.spr6.n6.value)
	xvrb[cm][3]=parseFloat(document.spr6.l6.value)
	xvrb[cm][4]=parseFloat(document.spr6.b6.value)
	xvrb[cm][5]=parseFloat(document.spr6.t6.value)
	
	yvrb[cm][1]=8*xvrb[cm][1]*xvrb[cm][2]*xvrb[cm][4]*xvrb[cm][5]*xvrb[cm][5]*xvrb[cm][5]/(3*xvrb[cm][3]*xvrb[cm][3]*xvrb[cm][3])
	
	
	document.spr6.k6.value=yvrb[cm][1]
	
}

//+++++++++
// Start calc 7
calcnum=7

frm[calcnum]="spr7"
scrp[calcnum]="spring7"
ttlem[calcnum]="Quarter-elliptic laminated leaf spring"


xnme[calcnum][1]="E7"
xtxt[calcnum][1]="Youngs modulus, E"
xunt[calcnum][1]="Nm<sup>-2</sup>"
xnme[calcnum][2]="n7"
xtxt[calcnum][2]="number of leaves, n"
xunt[calcnum][2]=""
xnme[calcnum][3]="l7"
xtxt[calcnum][3]="span, l"
xunt[calcnum][3]="m"
xnme[calcnum][4]="b7"
xtxt[calcnum][4]="width of leaves, b"
xunt[calcnum][4]="m"
xnme[calcnum][5]="t7"
xtxt[calcnum][5]="thickness of leaves, t"
xunt[calcnum][5]="m"


ynme[calcnum][1]="k7"
ytxt[calcnum][1]="stiffness, k"
yunt[calcnum][1]="Nm<sup>-1</sup>"

function spring7(cm){

	xvrb[cm][1]=parseFloat(document.spr7.E7.value)
	xvrb[cm][2]=parseFloat(document.spr7.n7.value)
	xvrb[cm][3]=parseFloat(document.spr7.l7.value)
	xvrb[cm][4]=parseFloat(document.spr7.b7.value)
	xvrb[cm][5]=parseFloat(document.spr7.t7.value)
	
	yvrb[cm][1]=xvrb[cm][1]*xvrb[cm][2]*xvrb[cm][4]*xvrb[cm][5]*xvrb[cm][5]*xvrb[cm][5]/(6*xvrb[cm][3]*xvrb[cm][3]*xvrb[cm][3])
	
	
	document.spr7.k7.value=yvrb[cm][1]
	
}
