/*
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=1 //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)
}


	function hexfromdec(num) {
		if (num > 65535) { return ("err!") }
		first = Math.round(num/4096 - .5);
		temp1 = num - first * 4096;
		second = Math.round(temp1/256 -.5);
		temp2 = temp1 - second * 256;
		third = Math.round(temp2/16 - .5);
		fourth = temp2 - third * 16;
		return (""+getletter(first)+getletter(second)+getletter(third)+getletter(fourth));
	}

	

	function getletter(num) {
		if (num < 10) {
			return num;
		} else {
			if (num == 10) { return "A" }
			if (num == 11) { return "B" }
			if (num == 12) { return "C" }
			if (num == 13) { return "D" }
			if (num == 14) { return "E" }
			if (num == 15) { return "F" }
		}
	}

	function decfromhex(num) {
		while (num.length < 4) {
			num = "0" + num;
		}
		
		return (eval(getnum(num.substring(3,4))) + eval(getnum(num.substring(2,3))) * 16 +eval(getnum(num.substring(1,2))) * 256 + eval(getnum(num.substring(0,1))) * 4096);
	}

	

	function getnum(letter) {
		if (letter <= "9") {
			return letter;
		} else {
			if ((letter == "a") || (letter == "A")) { return 10 }
			if ((letter == "b") || (letter == "B")) { return 11 }
			if ((letter == "c") || (letter == "C")) { return 12 }
			if ((letter == "d") || (letter == "D")) { return 13 }
			if ((letter == "e") || (letter == "E")) { return 14 }
			if ((letter == "f") || (letter == "F")) { return 15 }
			return 0;
		}
	}



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

//+++++++++
// Start calc 1

calcnum=0

frm[calcnum]="hx"
scrp[calcnum]="hxdc"
ttlem[calcnum]="Hexadecimal to Decimal"

xnme[calcnum][1]="Vhx"
xtxt[calcnum][1]="Hexadecimal"
xunt[calcnum][1]=""

xnme[calcnum][2]="dc"
xtxt[calcnum][2]="Decimal"
xunt[calcnum][2]=""


function hxdc(cm){

if (document.hx.Vhx.value != "") {
	xvrb[cm][1]=document.hx.Vhx.value
	xvrb[cm][2]=decfromhex(xvrb[cm][1])

	document.hx.dc.value=xvrb[cm][2]
}
else {

	xvrb[cm][2]=parseFloat(document.hx.dc.value)
	xvrb[cm][1]=hexfromdec(xvrb[cm][2])
	document.hx.Vhx.value=xvrb[cm][1]


}

}

// End calc 1
//+++++++++

