/*
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=2 //maximum number of independant variables
var ynm=0 //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 1

calcnum=0

frm[calcnum]="spl"
scrp[calcnum]="Lspl"
ttlem[calcnum]="SPL"

xnme[calcnum][1]="LdB"
xtxt[calcnum][1]="Sound Pressure Level"
xunt[calcnum][1]="dB"
xnme[calcnum][2]="P"
xtxt[calcnum][2]="p"
xunt[calcnum][2]="Pa"


function Lspl(cm){

if (document.spl.LdB.value != "") {
	xvrb[cm][1]=parseFloat(document.spl.LdB.value)
	xvrb[cm][2]=Math.pow(10,xvrb[cm][1]/20)*2e-5

	document.spl.P.value=xvrb[cm][2]
}
else {

	xvrb[cm][2]=parseFloat(document.spl.P.value)
	xvrb[cm][1]=20*Math.log(xvrb[cm][2]/2e-5)/Math.log(10)
	document.spl.LdB.value=xvrb[cm][1]


}

}

// End calc 1
//+++++++++
// Start calc 2

calcnum=1

frm[calcnum]="acc"
scrp[calcnum]="Lacc"
ttlem[calcnum]="Acceleration Level"

xnme[calcnum][1]="La"
xtxt[calcnum][1]="Acceleration Level, L<sub>a</sub>"
xunt[calcnum][1]="dB"
xnme[calcnum][2]="a"
xtxt[calcnum][2]="a"
xunt[calcnum][2]="ms<sup>-2</sup>"


function Lacc(cm){

if (document.acc.La.value != "") {
	xvrb[cm][1]=parseFloat(document.acc.La.value)
	xvrb[cm][2]=Math.pow(10,xvrb[cm][1]/20)*1e-6

	document.acc.a.value=xvrb[cm][2]
}
else {

	xvrb[cm][2]=parseFloat(document.acc.a.value)
	xvrb[cm][1]=20*Math.log(xvrb[cm][2]/1e-6)/Math.log(10)
	document.acc.La.value=xvrb[cm][1]


}

}


// End calc 2
//+++++++++
// Start calc 3

calcnum=2

frm[calcnum]="vel"
scrp[calcnum]="Vlc"
ttlem[calcnum]="Velocity Level"

xnme[calcnum][1]="Lv"
xtxt[calcnum][1]="Velocity Level, L<sub>v</sub> &nbsp; &nbsp;"
xunt[calcnum][1]="dB"
xnme[calcnum][2]="v"
xtxt[calcnum][2]="v"
xunt[calcnum][2]="ms<sup>-1</sup>"


function Vlc(cm){

if (document.vel.Lv.value != "") {
	xvrb[cm][1]=parseFloat(document.vel.Lv.value)
	xvrb[cm][2]=Math.pow(10,xvrb[cm][1]/20)*1e-9

	document.vel.v.value=xvrb[cm][2]
}
else {

	xvrb[cm][2]=parseFloat(document.vel.v.value)
	xvrb[cm][1]=20*Math.log(xvrb[cm][2]/1e-9)/Math.log(10)
	document.vel.Lv.value=xvrb[cm][1]


}

}

// End calc 3
//+++++++++
// Start calc 4

calcnum=3

frm[calcnum]="force"
scrp[calcnum]="Frc"
ttlem[calcnum]="Force Level"

xnme[calcnum][1]="LF"
xtxt[calcnum][1]="Force Level, L<sub>F</sub> &nbsp; &nbsp;"
xunt[calcnum][1]="dB"
xnme[calcnum][2]="F"
xtxt[calcnum][2]="F"
xunt[calcnum][2]="N"


function Frc(cm){

if (document.force.LF.value != "") {
	xvrb[cm][1]=parseFloat(document.force.LF.value)
	xvrb[cm][2]=Math.pow(10,xvrb[cm][1]/20)*1e-6

	document.force.F.value=xvrb[cm][2]
}
else {

	xvrb[cm][2]=parseFloat(document.force.F.value)
	xvrb[cm][1]=20*Math.log(xvrb[cm][2]/1e-6)/Math.log(10)
	document.force.LF.value=xvrb[cm][1]


}

}

// End calc 4
//+++++++++
// Start calc 5

calcnum=4

frm[calcnum]="power"
scrp[calcnum]="Pwr"
ttlem[calcnum]="Power Level"

xnme[calcnum][1]="LP"
xtxt[calcnum][1]="Power Level, L<sub>W</sub> &nbsp; &nbsp;"
xunt[calcnum][1]="dB"
xnme[calcnum][2]="Pw"
xtxt[calcnum][2]="P"
xunt[calcnum][2]="W"


function Pwr(cm){

if (document.power.LP.value != "") {
	xvrb[cm][1]=parseFloat(document.power.LP.value)
	xvrb[cm][2]=Math.pow(10,xvrb[cm][1]/10)*1e-12

	document.power.Pw.value=xvrb[cm][2]
}
else {

	xvrb[cm][2]=parseFloat(document.power.Pw.value)
	xvrb[cm][1]=10*Math.log(xvrb[cm][2]/1e-12)/Math.log(10)
	document.power.LP.value=xvrb[cm][1]


}

}
// End calc 5
//+++++++++
// Start calc 6

calcnum=5

frm[calcnum]="inten"
scrp[calcnum]="Inty"
ttlem[calcnum]="Intensity Level"

xnme[calcnum][1]="LI"
xtxt[calcnum][1]="Intensity Level, L<sub>I</sub> &nbsp; &nbsp;"
xunt[calcnum][1]="dB"
xnme[calcnum][2]="I"
xtxt[calcnum][2]="I"
xunt[calcnum][2]="Wm<sup>-2</sup>"


function Inty(cm){

if (document.inten.LI.value != "") {
	xvrb[cm][1]=parseFloat(document.inten.LI.value)
	xvrb[cm][2]=Math.pow(10,xvrb[cm][1]/10)*1e-12

	document.inten.I.value=xvrb[cm][2]
}
else {

	xvrb[cm][2]=parseFloat(document.inten.I.value)
	xvrb[cm][1]=10*Math.log(xvrb[cm][2]/1e-12)/Math.log(10)
	document.inten.LI.value=xvrb[cm][1]


}

}

// End calc 6
//+++++++++
// Start calc 7

calcnum=6

frm[calcnum]="edens"
scrp[calcnum]="EnergD"
ttlem[calcnum]="Energy Density Level"

xnme[calcnum][1]="LED"
xtxt[calcnum][1]="Energy Density Level, L<sub>w</sub>"
xunt[calcnum][1]="dB"
xnme[calcnum][2]="ED"
xtxt[calcnum][2]="w"
xunt[calcnum][2]="Jm<sup>-3</sup>"


function EnergD(cm){

if (document.edens.LED.value != "") {
	xvrb[cm][1]=parseFloat(document.edens.LED.value)
	xvrb[cm][2]=Math.pow(10,xvrb[cm][1]/10)*1e-12

	document.edens.ED.value=xvrb[cm][2]
}
else {

	xvrb[cm][2]=parseFloat(document.edens.ED.value)
	xvrb[cm][1]=10*Math.log(xvrb[cm][2]/1e-12)/Math.log(10)
	document.edens.LED.value=xvrb[cm][1]


}

}

// End calc 7
//+++++++++
// Start calc 8

calcnum=7

frm[calcnum]="energ"
scrp[calcnum]="Energ"
ttlem[calcnum]="Energy Level"

xnme[calcnum][1]="LE"
xtxt[calcnum][1]="Energy Level, L<sub>E</sub> &nbsp; &nbsp;"
xunt[calcnum][1]="dB"
xnme[calcnum][2]="E"
xtxt[calcnum][2]="E"
xunt[calcnum][2]="J"


function Energ(cm){

if (document.energ.LE.value != "") {
	xvrb[cm][1]=parseFloat(document.energ.LE.value)
	xvrb[cm][2]=Math.pow(10,xvrb[cm][1]/10)*1e-12

	document.energ.E.value=xvrb[cm][2]
}
else {

	xvrb[cm][2]=parseFloat(document.energ.E.value)
	xvrb[cm][1]=10*Math.log(xvrb[cm][2]/1e-12)/Math.log(10)
	document.energ.LE.value=xvrb[cm][1]


}

}
