function track(){
  document.getElementById('error').value = '';
  var url = document.getElementById('track').value;
  urlArray = url.split("@@");
  if(url!=0){
    window.open(urlArray[1],'track','location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=800,height=600'); 
    document.getElementById('prefix').value = urlArray[0];
  }
}
function tracksea(){
  var url = document.getElementById('tracksea').value;
  if(url!=0){
    window.open(url,'track','location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=800,height=600'); 
  }
}

function pref(e,errormes){

  var numcheck;
  var prefix = document.getElementById('prefix').value;
  if(window.event) // IE
  {
    keynum = e.keyCode
  }
  else if(e.which) // Netscape/Firefox/Opera
  {
    keynum = e.which
  }
  if(keynum==13 || !keynum || prefix){
    var urlLenght = document.getElementById('track').options.length;
    for (var i = 0; i < urlLenght; i++){
      var urlOption = document.getElementById('track').options[i].value;
      urlArray = urlOption.split("@@");
      if (urlArray[0]==prefix){
        document.getElementById('track').value = urlOption;
        document.getElementById('error').value = '';
        window.open(urlArray[1],'track','location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=800,height=600'); 
      }
      else{
        document.getElementById('error').value = errormes;
      }
    }
  }
}

function download(){
    window.open('http://www.cargo-office.nl/download/CargoOffice1.3NL.zip','download','location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=40'); 
}
function download2(){
    window.open('http://www.cargo-office.nl/download/mysql-odbc-3.51.12-win32.zip','download','location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=40'); 
}
function demo(){
    window.open('http://www.cargo-office.nl/download/CargoOfficeDemo.zip','download','location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=40'); 
}

function convert(){
    //alert('ererer');
    var ccy1 = document.getElementById('ccy1').value;
    var ccy2 = document.getElementById('ccy2').value;
    var amount = document.getElementById('amount').value;
    
    //http://www.ozforex.com.au/tools/convertMain.asp?NC_ID1=AUD&NC_ID2=USD&amount=1000
    
    convertFrame.location.href= "http://www.ozforex.com.au/tools/conversion.asp?NC_ID1=" + ccy1 + "&NC_ID2=" + ccy2 + "&amount="+ amount;
    //conversion.asp?ccy1=" + ccy1 + "&ccy2=" + ccy2 + "&amount="+ amount ;
}
function selectType(){
    //alert('ererer');
    var type = document.getElementById('type').value;
    location.href= "http://www.cargoguide.nl/nl/products/utilities/dimension/"+type+"/" ;
}


function searchApt(){
  var language = document.getElementById('language').value;
  var aptCode = document.getElementById('selectApt').value;
  document.getElementById('inputApt').value = aptCode;
  document.getElementById('inputCity').value = '';
  document.getElementById('inputCountry').value = '';
  
  document.getElementById('selectCity').value = '';
  document.getElementById('selectCountry').value = '';
  
  destFrame.location.href= "http://www.cargoguide.nl/dest.php?language="+language+"&aptCode=" + aptCode  ;
}
function searchCity(){
  var cityCode = document.getElementById('selectCity').value;
  var language = document.getElementById('language').value;
  document.getElementById('inputApt').value = '';
  document.getElementById('inputCity').value = cityCode;
  document.getElementById('inputCountry').value = '';
  
  document.getElementById('selectApt').value = '';
  document.getElementById('selectCountry').value = '';
  
  destFrame.location.href= "http://www.cargoguide.nl/dest.php?language="+language+"&cityCode=" + cityCode  ;
}
function searchCountry(){
  var countryCode = document.getElementById('selectCountry').value;
  var language = document.getElementById('language').value;
  document.getElementById('inputApt').value = '';
  document.getElementById('inputCity').value = '';
  document.getElementById('inputCountry').value = countryCode;
  
  document.getElementById('selectApt').value = '';
  document.getElementById('selectCity').value = '';
  
  destFrame.location.href= "http://www.cargoguide.nl/dest.php?language="+language+"&countryCode=" + countryCode  ;
}

function inputApt(e,errormes){
  var numcheck
  var inputApt = document.getElementById('inputApt').value.toUpperCase();
  var language = document.getElementById('language').value;
  if(window.event) // IE
  {
    keynum = e.keyCode
  }
  else if(e.which) // Netscape/Firefox/Opera
  {
    keynum = e.which
  }
  if(keynum==13 || !keynum){
    document.getElementById('selectApt').value = inputApt;
    document.getElementById('selectCity').value = '';
    document.getElementById('selectCountry').value = '';
    
    document.getElementById('inputCity').value = '';
    document.getElementById('inputCountry').value = '';
    
    destFrame.location.href= "http://www.cargoguide.nl/dest.php?language="+language+"&aptCode=" + inputApt  ;
  }
}
function inputCity(e,errormes){
  var numcheck
  var inputCity = document.getElementById('inputCity').value.toUpperCase();
  var language = document.getElementById('language').value;
  if(window.event) // IE
  {
    keynum = e.keyCode
  }
  else if(e.which) // Netscape/Firefox/Opera
  {
    keynum = e.which
  }
  if(keynum==13 || !keynum){
    document.getElementById('selectApt').value = '';
    document.getElementById('selectCity').value = inputCity;
    document.getElementById('selectCountry').value = '';
    
    document.getElementById('inputApt').value = '';
    document.getElementById('inputCountry').value = '';
    
    destFrame.location.href= "http://www.cargoguide.nl/dest.php?language="+language+"&cityCode=" + inputCity  ;
  }
}
function inputCountry(e,errormes){
  var numcheck
  var inputCountry = document.getElementById('inputCountry').value.toUpperCase();
  var language = document.getElementById('language').value;
  if(window.event) // IE
  {
    keynum = e.keyCode
  }
  else if(e.which) // Netscape/Firefox/Opera
  {
    keynum = e.which
  }
  if(keynum==13 || !keynum){
    document.getElementById('selectApt').value = '';
    document.getElementById('selectCity').value = '';
    document.getElementById('selectCountry').value = inputCountry;
    
    document.getElementById('inputApt').value = '';
    document.getElementById('inputCity').value = '';
    
    destFrame.location.href= "http://www.cargoguide.nl/dest.php?language="+language+"&countryCode=" + inputCountry  ;
  }
}

























var gFrom = 0
var gTo  = 0
var gInput  = 0
var gOutput = 0
var gAnswer = 0
var gValue = 0
var gSgn = 1
var I = 0
var gLen = 0
var gOldLen= 0
var gIndex = 0
var gLastSig = 0
var gFirstSig = 0
var gZeroFlag=0
var gExpInd= 0
var gMid= 0
var gDigits=15
var gWhich=2
var gSelect= 0
var gFormName= 0
var gArrayName= 0
var gAbZeroC= -273.15
var gAbZeroF= -459.67
var gAbZeroRe= -218.52

var gZeros="0000000000000000"
var gString=""
var gFirstString=""
var gExp = ""
var s= ""


function makeArray(n) {
    this.length = n
    for (var i=1; i <= n; i++){
        this[i] = null
    }
    return this
}

var gLength = new makeArray(23)

gLength[0]= 12
gLength[1]= 20
gLength[2]= 1/91238400
gLength[3]= 880
gLength[4]= 2
gLength[5]= 3
gLength[6]= 12
gLength[7]= 254000000
gLength[8]= .1
gLength[9]= 1
gLength[10]= .001
gLength[11]= 1
gLength[12]= .001
gLength[13]= .1
gLength[14]= .1
gLength[15]= .1
gLength[16]= .1
gLength[17]= .1
gLength[18]= .1
gLength[19]= .1
gLength[20]= 1 / 946052840487.94
gLength[21]= 1 / 0.00001581285
gLength[22]= 1 / 206264.806


var gWeight = new makeArray(16)

gWeight[0] = 2000.0
gWeight[1] = 16.0
gWeight[2] = .91145833333333333333
gWeight[3] = 1/12
gWeight[4] = 240
gWeight[5] = 24.0
gWeight[6] = 64.798910
gWeight[7] = .1
gWeight[8] = .1
gWeight[9] = .1
gWeight[10] = 5
gWeight[11] = .02
gWeight[12] = .01
gWeight[13] = .001
gWeight[14] = 980665000.00
gWeight[15] = .00001


var gArea = new makeArray(21)

gArea[0]= 4840 / 3097600
gArea[1]= 774400
gArea[2]= 4
gArea[3]= 9
gArea[4]= 144
gArea[5]= 64516000000000000
gArea[6]= .01
gArea[7]= 1
gArea[8]= .000001
gArea[9]= 1
gArea[10]= .000001
gArea[11]= .01
gArea[12]= .01
gArea[13]= .01
gArea[14]= .01
gArea[15]= .01
gArea[16]= .01
gArea[17]= .01
gArea[18]= (1 / 946052840487.94)*(1 / 946052840487.94)
gArea[19]= (1 / 0.00001581285)*(1 / 0.00001581285)
gArea[20]= (1 / 206264.806)*(1 / 206264.806)

var gDryVolume = new makeArray(13)

gDryVolume[0]= 0.0081844476892886
gDryVolume[1]= 3.28125
gDryVolume[2]= 4
gDryVolume[3]= 8
gDryVolume[4]= 2
gDryVolume[5]= .000720171307013031
gDryVolume[6]= 27
gDryVolume[7]= 1728
gDryVolume[8]= 0.000016387064
gDryVolume[9]= 1000000
gDryVolume[10]= 0.00000611025651817654
gDryVolume[11]= 36
gDryVolume[12]= 1 / 8


var gWetvolume = new makeArray(24)

gWetvolume[0]= 27
gWetvolume[1]= 1728
gWetvolume[2]= .004329004329004329004329
gWetvolume[3]= 4
gWetvolume[4]= 2
gWetvolume[5]= 2
gWetvolume[6]= 8
gWetvolume[7]= 2
gWetvolume[8]= 3
gWetvolume[9]= 4.928921593750
gWetvolume[10]= 1.0
gWetvolume[11]= .1
gWetvolume[12]= .1
gWetvolume[13]= .1
gWetvolume[14]= 1
gWetvolume[15]= .1
gWetvolume[16]= .1
gWetvolume[17]= .1
gWetvolume[18]= 1.0
gWetvolume[19]= 1 / 1.20095 / 0.003785411784
gWetvolume[20]= 4
gWetvolume[21]= 2
gWetvolume[22]= 4
gWetvolume[23]= 5

var gVelocity = new makeArray(7)

gVelocity[0]= 1.150779448023542705
gVelocity[1]= 1.46666666666666666666
gVelocity[2]= 60.0
gVelocity[3]= .5080
gVelocity[4]= .60
gVelocity[5]= .06
gVelocity[6]= .27777777777777777777

var gTime = new makeArray(9)

gTime[0]= 12
gTime[1]= 4.348252258333332952
gTime[2]= 7
gTime[3]= 24
gTime[4]= 60
gTime[5]= 60
gTime[6]= 1000
gTime[7]= 1000
gTime[8]= 1000

var gMetric = new makeArray(20)

gMetric[0]= 1000
gMetric[1]= 1000
gMetric[2]= 1000
gMetric[3]= 1000
gMetric[4]= 1000
gMetric[5]= 1000
gMetric[6]= 1000
gMetric[7]= 10
gMetric[8]= 10
gMetric[9]= 10
gMetric[10]= 10
gMetric[11]= 10
gMetric[12]= 10
gMetric[13]= 1000
gMetric[14]= 1000
gMetric[15]= 1000
gMetric[16]= 1000
gMetric[17]= 1000
gMetric[18]= 1000
gMetric[19]= 1000

var gFunctions = new makeArray(15)

gFunctions[0]= "Length"
gFunctions[1]= "Weight"
gFunctions[2]= "Area"
gFunctions[5]= "DryVolume"
gFunctions[6]= "Wetvolume"
gFunctions[7]= "Velocity"
gFunctions[10]= "Time"
gFunctions[13]= "Metric"
gFunctions[14]= "Temperature"


var gTemperature = new makeArray(1)

gTemperature[0]= 1


function OutIn(Convert) {

	if (Convert.Output.value == "Select Conversion ->") {
	}

	else

	{
		Convert.Input.value = Convert.Output.value;
		Convert.Output.value = "";
		Convert.From.selectedIndex = Convert.To.selectedIndex;
		Convert.Output.value = "Select Conversion ->";
		Convert.Input.focus();
	}
}

function Clear(Convert) {
	Convert.Input.value = "";
	Convert.Output.value = "";
	Convert.Input.focus();
}


function ToAI() {

	var x=0

	gWhich = 2

	for (x=0;x<15;++x) {

		gFormName= eval("self.document.forms."+gFunctions[x])
		gArrayName= eval("g"+gFunctions[x])
		gFormName.Browser.checked= false
		gFormName.Rounder.checked= true

		if (gFormName.Input.value != "") {
			DoIt(gFormName,gArrayName)
		}
	}
}


function ToBrowser() {

	var x=0

	gWhich = 1

	for (x=0;x<15;++x) {

		gFormName= eval("self.document.forms."+gFunctions[x])
		gArrayName= eval("g"+gFunctions[x])
		gFormName.Rounder.checked= false
		gFormName.Browser.checked= true

		if (gFormName.Input.value != "") {
			DoIt(gFormName,gArrayName)
		}
	}
}


function NotLower(Num) {

	alert("Can't go lower than absolute zero")
	gAnswer= parseFloat(Num)

}


function DoIt(Convert,Array) {

	gFrom = Convert.From.selectedIndex;
	gTo = Convert.To.selectedIndex;

	gInput = parseFloat(Convert.Input.value)

     if ( (gSelect==0) || ((gSelect==1) && (Convert.Input.value != "")) ) {

	if (isNaN(gInput)) {gInput= 0}

	if (gFrom == gTo) {

		Convert.Output.value = "Select Conversion ->";
	}

	else

	{
		if (Convert.Name.value == "Temperature") {

			if (gInput == 0) {Convert.Input.value = 0}

			if (gFrom == 0) {

				if (gTo == 1) {

					// F to C

					gAnswer = 5/9 *(gInput - 32)
if ((gAnswer > gAbZeroC-1e-13)&&(gAnswer<gAbZeroC)) gAnswer=gAbZeroC

					if (gAnswer < gAbZeroC) {NotLower(gAbZeroC)}
				}

				else if (gTo == 2) {

					// F to K

					gAnswer = (5/9 * (gInput - 32)) -gAbZeroC
					if(gAnswer <-1e-15) gAnswer=0
					if(gAnswer < 0) {NotLower(0)}
				}

				else if(gTo == 3) {

					// F to R

					gAnswer = gInput-gAbZeroF
					if(gAnswer < 0) {NotLower(0)}
				}

				else if(gTo == 4) {

					// F to Re *

					gAnswer = .8*(5/9*(gInput-32))
					if ((gAnswer > gAbZeroRe-1e-13)&&(gAnswer<gAbZeroRe)) gAnswer=gAbZeroRe
					if(gAnswer < gAbZeroRe) {NotLower(gAbZeroRe)}
				}

			}


			else if (gFrom == 1) {

				if (gTo == 0) {

					// C to F

					gAnswer = (9/5 * gInput) + 32
					if (gAnswer < gAbZeroF) {NotLower(gAbZeroF)}
				}

				else if (gTo == 2) {

					// C to K

					gAnswer = -(gAbZeroC)+gInput
					if(gAnswer < 0) {NotLower(0)}
				}

				else if(gTo == 3) {

					// C to R

					gAnswer =(9/5 * gInput) +491.67
					if ((gAnswer>0)&&(gAnswer<1e-13)) gAnswer=0
					if(gAnswer < 0) {NotLower(0)}
				}

				else if(gTo == 4) {

					// C to Re

					gAnswer = .8*gInput
					if(gAnswer < gAbZeroRe) {NotLower(gAbZeroRe)}
				}

			}

			else if (gFrom == 2) {


				if (gTo == 0) {

					// K to F

					gAnswer = (9/5  * (gInput + gAbZeroC)) +32
					if (gAnswer < gAbZeroF) {NotLower(gAbZeroF)}
				}

				else if (gTo == 1) {

					// K to C

					gAnswer = gInput + gAbZeroC
					if(gAnswer < gAbZeroC) {NotLower(gAbZeroC)}
				}

				else if(gTo == 3) {

					// K to R

					gAnswer = 9/5 * gInput
					if(gAnswer < 0) {NotLower(0)}
				}

				else if(gTo == 4) {

					// K to Re

					gAnswer = .8*( gInput + gAbZeroC)
					if(gAnswer < gAbZeroRe) {NotLower(gAbZeroRe)}
				}

			}

			else if(gFrom == 3) {

				if (gTo == 0) {

					// R to F

					gAnswer = gInput+gAbZeroF
					if (gAnswer < gAbZeroF) {NotLower(gAbZeroF)}
				}

				else if (gTo == 1) {

					// R to C

					gAnswer = (5/9*gInput) + gAbZeroC
					if ((gAnswer>0)&&(gAnswer<1e-13)) gAnswer=0
					if(gAnswer < gAbZeroC) {NotLower(gAbZeroC)}
				}

				else if(gTo == 2) {

					// R to K

					gAnswer = (5/9 * gInput)
					if(gAnswer < 0) {NotLower(0)}
				}

				else if(gTo == 4) {

					// R to Re

					gAnswer= .8*(5/9*gInput+gAbZeroC)
					if ((gAnswer>0)&&(gAnswer<1e-13)) gAnswer=0
					if(gAnswer < gAbZeroRe) {NotLower(gAbZeroRe)}
				}

			}

			else if(gFrom == 4) {

				if (gTo == 0) {

					// Re to F

					gAnswer = 2.25*gInput+32
					if (gAnswer < gAbZeroF) {NotLower(gAbZeroF)}
				}

				else if (gTo == 1) {

					// Re to C

					gAnswer= 1.25*gInput
					if(gAnswer < gAbZeroC-.01) {NotLower(gAbZeroC)}
				}

				else if(gTo == 2) {

					// Re to K

					gAnswer = 1.25*gInput-gAbZeroC
					if((gAnswer <0)&&(gAnswer >1e13)) gAnswer=0
					if(gAnswer < 0) {NotLower(0)}
				}

				else if(gTo == 3) {

					// Re to R

					gAnswer = 2.25*gInput+491.67
					if(gAnswer < 0) {NotLower(0)}
				}
			}
		}

		else

		{
			if (gInput == 0) {
				gInput= 1
				Convert.Input.value = 1
			}

			gAnswer = gInput;

			if (gFrom < gTo) {

				for(I=gFrom; I<=gTo-1;++I) {
					gAnswer = gAnswer * Array[I];
				}
			}

			else

			{
				for(I=gFrom-1; I>=gTo;--I) {
					gAnswer = gAnswer * (1/Array[I]);
				}
			}

		}

		if (gWhich==2) FixAnswer();
		Convert.Output.value=gAnswer;
	}
     }
}

function FixAnswer() {
	if (gAnswer < 0) {

		gSgn=-1
		gAnswer= -(gAnswer)

	}

	else gSgn=1

	s= ""+gAnswer
	gFirstSig = 0
	gLastSig = 0
	gLen = s.length
	gOldLen= gLen
	gMid= 0
	gExp= ""
	gExpInd= 0
	gFirstString= ""
	gString= ""
	gIndex = s.indexOf(".")
	gZeroFlag = 0
	if (gIndex == 0) gZeroFlag = 1
	if ((gIndex == 1) && (s.charAt(0)=="0")) gZeroFlag = 2

	/*** Determine first significant digit ***/

	for (I=0;I<gLen;++I) {
		if ((s.charAt(I) != "0") && (s.charAt(I) != ".")) {

			gFirstSig=I
			break
		}
	}

	/*** Guess last significant digit ***/


	/*** PRESERVE SCIENTIFIC NOTATION ***/

	gExpInd= s.indexOf("E")
	if (gExpInd == -1) gExpInd= s.indexOf("e")
	if (gExpInd != -1) {

		gExp= s.substring(gExpInd, gLen)
		gOldLen= gExpInd
		gLen= gExpInd
	}

	gLastSig = gFirstSig+gDigits

	if ((gIndex > gFirstSig) && (gIndex < gLastSig)) {

		++gLastSig
		gMid=1
	}


	/*** Now, lets see if the last digit is past the end ***/

	if (gLastSig > gLen-1) gLastSig=gLen-1

	if (gLastSig-gFirstSig < gDigits ) gLastSig=gLen-1
	
	if ((gLen-gZeroFlag-1 - gMid) >= gDigits) {

		gValue= gAnswer

		if (gIndex == -1) {

			/*** NO DECIMAL POINT ***/
			
			gString= s.substring(0,gLastSig+1)
			gString = ""+Math.round(gString*.1)/.1
			if (gOldLen != gString.length) {

				gString= gString+gZeros.substring(0,gOldLen-gString.length)

			}

		}

		else

		{

			if (s.charAt(gLastSig-1) == "0") {

				for (I=gLastSig; I>0; --I) {

					if (s.charAt(I) != "0") {

						gLastSig= I
						break
					}
				}
			}


			/*** DECIMAL POINT ***/

			if (gZeroFlag >0) {

				/*** .XXXX... OR 0.XXXX... ***/

				gFirstString= s.substring(0,gFirstSig)

				gString= s.substring(gFirstSig,gLastSig+1)

				if (gLastSig-gFirstSig == gDigits) {

					gString=""+Math.round(gString*.1) /.1

				}
			}

			else

			{
				/* NON-ZERO DECIMAL */

				gFirstString= s.substring(0,gIndex+1)

				gString= s.substring(gIndex+1,gLastSig+1)

				if (gLastSig-gFirstSig-gMid == gDigits) {

					gOldLen= gString.length
		
					gString=""+Math.round(gString*.1) / .1

					if (gString.length != gOldLen) {

						if (gString.length > gOldLen) {

						gValue = Math.round(parseFloat(gFirstString)+.5)
							gFirstString = ""+gValue+"."
							gString= gString.substring(1,gString.length)
							if (gString.length != gOldLen) alert("Tell Gary there's a problem with rounding, and specify which conversion type you were using at the time, and with what value.")
						}

						else gString = gZeros.substring(0,gOldLen-gString.length)+gString
					}
				}
			}
		}

		/*** REMOVE ALL TRAILING NINES ***/

		gExpInd= 0

		for (I=(gString.length)-1; I>0;--I) {

			if (gString.charAt(I) != "9") {

				if (gExpInd == 0) break

				gString= ""+Math.round(gString*Math.pow(10,(-gExp)))/Math.pow(10,(-gExp))
				gLastSig = I
				break
			}

		++gExpInd
		}

		gValue = (gSgn*(gFirstString+gString+gExp))
		gAnswer=gAnswer*gSgn

		/*alert("\n *** Am changing browser value. ***\n\n  Browser's = "+gAnswer+"\n\n  AI's Guess =  "+gValue)*/
		gAnswer = gValue
	}

	else {gAnswer = gSgn*gAnswer}

}

