		window.gOpenDefinition = null;
		window.gGasPrice = 2;
		window.gGasMileage = 20;
		window.gOpenPicture = "default";
		window.isLoaded = false;
		window.IMAGE_PATH = "images/nav/";
		
		
		function getDefinition( sWord, iTop, iLeft )
		{
			closeDefinition();
			var oDef = document.getElementById( "def_" + sWord );
			
			if ( oDef != null )
			{
				gOpenDefinition = sWord;
				oDef.style.visibility = "visible";
				oDef.style.left = iLeft + "px";
				oDef.style.top = iTop + "px";
			}
			
			return false;
		}
		
		function closeDefinition()
		{
			if ( gOpenDefinition != null )
			{
				var oDef = document.getElementById( "def_" + gOpenDefinition );
				oDef.style.visibility = 'hidden';
				
				gOpenDefinition = null;
			}
		}

		function preLoad( sRollovers )
		{
			var sImage = "";
			window.oRollImages = new Array();
			window.oRollObj = new Array();
		
			for ( var x = 0; x < sRollovers.length; x++ )
			{	
				sImage = sRollovers[ x ];
				oRollImages[ "hh" + sImage ] = new Image();
				oRollImages[ "hh" + sImage ].src = IMAGE_PATH + sImage + "_off.jpg";
				oRollObj[ "hh" + sImage ] = document.images[ "hh" + sImage ];
			}	
		}
	
		function rollOn( sImage, iCalculation )
		{
			if (isLoaded)
			{


				if (gOpenPicture!=null)
				{
					document.getElementById("desc_" + gOpenPicture).style.visibility = "hidden";
					
					if ( gOpenPicture != 'default' )
					{
						oRollObj[ "hh" + gOpenPicture ].src = oRollImages[ "hh" + gOpenPicture ].src;
						oRollObj[ "hh" + gOpenPicture ].style.borderColor="#ffffff"
					}
				}
				
				closeDefinition()

				if ( sImage != 'default' )
				{
					if ( sImage != 'own' )
					{
						oRollObj[ "hh" + sImage ].src = IMAGE_PATH + sImage + "_on.jpg";
						oRollObj[ "hh" + sImage ].style.borderColor="#ff0000";
					}
					document.forms["calculator"].elements["density"].value = iCalculation;
					eYourOwn.value = iCalculation;
					calculate( iCalculation )
				}

				if ( sImage == 'own' )
				{
					 sImage = 'default'
				}

				gOpenPicture = sImage;
				document.getElementById("desc_" + gOpenPicture).style.visibility = "visible";

			}	
		}
		function rollOff( sImage )
		{
			if (isLoaded && sImage != 'default' && sImage != 'own')
			{
				oRollObj[ "hh" + sImage ].src = oRollImages[ "hh" + sImage ].src;
				//gOpenPicture = null;
			}
		}
		function calculate( sDensity )
		{

				var oform = document.forms["automobile"];

				if (typeof oform != "undefined")
				{
					var oldPrice = gGasPrice;
					var oldmileage = gGasMileage
					
					gGasPrice = eval(oform.elements["gascost"].value)
					gGasMileage = eval(oform.elements["carmileage"].value)
					if (gGasPrice < 0 || gGasPrice > 30)
					{
						gGasPrice = 2
					}
					if (gGasMileage < 0 || gGasMileage > 500)
					{
						gGasMileage = 20
					}
					
					if (oldPrice != gGasPrice || oldmileage != gGasMileage)
					{
					caculateDefault()
					}
				}

			var iDensity = parseInt( sDensity );
			if ( iDensity > 2 && iDensity < 2000 )
			{
				with (document.forms["calculator"])
				{
					elements["landused" + sForm].value = formatnumber( 1000 / iDensity, true );
					elements["roads" + sForm].value = formatnumber( 1000 * 700 / iDensity, true );
					elements["shopping" + sForm].value = formatnumber( 0.4814 * iDensity + .1704, true );
					elements["water" + sForm].value= formatnumber( 167 + 2633.3 * Math.pow( iDensity, -1.0138 ), true );
					elements["transit" + sForm].value = formatnumber( ( 2.6905 * iDensity -8.2799 > 0) ? 2.6905 * iDensity - 8.2799 : 0, true );
				var iVehicles = -0.3749 * Math.log( iDensity ) + 2.4437;
					elements["vehicles" + sForm].value = formatnumber( iVehicles, false );
				var iParking = 7 * iVehicles;
					elements["parking" + sForm].value = formatnumber( iParking, true );
				var iMileage = 32237 * Math.pow( iDensity, -0.3135 );
					elements["mileage" + sForm].value = formatnumber( iMileage, true );
				var iFuel = iMileage / gGasMileage;
					elements["fuel" + sForm].value = formatnumber( iFuel, true );
					elements["gasoline" + sForm].value = "$" + formatnumber( iFuel * gGasPrice, true );
					elements["auto" + sForm].value = "$" + formatnumber( 2 + 0.49 * iMileage + 5534 * iVehicles, true );
					elements["vocs" + sForm].value = formatnumber( 0.0022 * 24 * iFuel, true );
					elements["nitrogen" + sForm].value = formatnumber( 0.0022 * 60 * iFuel, true );
					elements["particulates" + sForm].value = formatnumber( 0.012 * iFuel, false );
					elements["warming" + sForm].value = formatnumber( 0.014 * iFuel, false );
				}
			}
			else
			{
				with (document.forms["calculator"])
				{
					elements["landused" + sForm].value = "";
					elements["roads" + sForm].value = "";
					elements["shopping" + sForm].value = "";
					elements["water" + sForm].value= "";
					elements["transit" + sForm].value = "";
					elements["vehicles" + sForm].value = "";
					elements["parking" + sForm].value = "";
					elements["mileage" + sForm].value = "";
					elements["fuel" + sForm].value = "";
					elements["gasoline" + sForm].value = "";
					elements["auto" + sForm].value = "";
					elements["vocs" + sForm].value = "";
					elements["nitrogen" + sForm].value = "";
					elements["particulates" + sForm].value = "";
					elements["warming" + sForm].value = "";
				}
			}
			
			
			
			return false;
		}
		
		function formatnumber( iNumber, bRound )
		{
			iNumber += ""
			var iSplitNumber = iNumber.split(".");

			if (iSplitNumber.length<2) {
				iSplitNumber[1] = "00";
			}
			if (iSplitNumber[1].length<2) {
				iSplitNumber[1] += "0";
			}
			if (iSplitNumber[0].length>3) {
				var sTemp = iSplitNumber[0];
				var iCount = 0;
				var iLeftOver = sTemp.length%3;
				iSplitNumber[0] = sTemp.substr(0, iLeftOver);
				while (iLeftOver<sTemp.length) {
					if (iLeftOver != 0) {
						iSplitNumber[0] += ",";
					}
					iSplitNumber[0] += sTemp.substr(iLeftOver, 3);
					iLeftOver += 3;
				}
				for (x=iSplitNumber[0].length; x>=0; x--) {
					if (iCount == 2) {
						sTemp = iSplitNumber[0].substrlastIndexOf(x);
						iCount = 0;
					}
				}
			}
			
			if ( bRound )
			{
				var iNumber = iSplitNumber[0];
			}
			else
			{
				var iNumber = iSplitNumber[0]+"."+iSplitNumber[1].substr(0, 2);
			}
			
			return iNumber;		
		
		}
		
		function caculateDefault()
		{
			window.sForm = "1";
			calculate( 3 );
			window.sForm = "";
		}

		function init()
		{
			preLoad( new Array( "3", "50", "60-70", "60-600", "71", "90_1", "90_2", "90_3", "467", "536" ) );
			window.isLoaded = true;
			window.oCalculations = document.getElementById("calculations");

			window.eYourOwn = document.forms["automobile"].elements["owndensity"];
			
			caculateDefault();
			
			leaveDefinitions("res_acre");
			leaveDefinitions("roads");
			leaveDefinitions("water");
			leaveDefinitions("shopping");
			leaveDefinitions("transit");
			leaveDefinitions("vehicles");
			leaveDefinitions("parking");
			leaveDefinitions("traffic");
			leaveDefinitions("gas");
			leaveDefinitions("auto");
			leaveDefinitions("air");
			
			isLoaded = true;			
		}
			
		
		
		function leaveDefinitions(sWord)
		{
			var oDef = document.getElementById( "def_" + sWord );
			

			if ( oDef != null )
			{
				oDef.onclick = closeDefinition;
			}
		}
		

		
		
		