// JavaScript Document
var XMLHttpFactories = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
	];

function getXMLHTTP() { //fuction to return the xml http object

		var xmlhttp = false;
		for (var i=0;i<XMLHttpFactories.length;i++) 
		{
			try 
			{
				xmlhttp = XMLHttpFactories[i]();
			}
			catch (e) 
			{
				continue;
			}
		break;
	}
	
	return xmlhttp;
}

function getMan() 
{
	var strURL="/findMan.php";
	var req = getXMLHTTP();
	
	if (req) 
	{
		req.onreadystatechange = function() 
		{
			if (req.readyState == 4) 
			{
				// only if "OK"
				if (req.status == 200) 
				{						
					document.getElementById('mandiv').innerHTML=req.responseText;						
				} else {
					alert("There was a problem while using XMLHTTP:\n" + req.statusText);
				}
			}
		}			
			req.open("GET", strURL, true);
			req.send(null);
	}		
}
	
function getRan(manId) 
{		
	var strURL="/findRan.php?id="+manId;
	var req = getXMLHTTP();
		
	if (req) 
	{
		req.onreadystatechange = function() 
		{
			if (req.readyState == 4) 
			{
				// only if "OK"
				if (req.status == 200) 
				{						
					document.getElementById('randiv').innerHTML=req.responseText;						
				} else {
					alert("There was a problem while using XMLHTTP:\n" + req.statusText);
				}
			}				
		}			
		req.open("GET", strURL, true);
		req.send(null);
	}		
}
	
function getBody(ranId) 
{		
	var strURL="/findBody.php?ranid="+ranId;
	var req = getXMLHTTP();
		
	if (req) 
	{
		req.onreadystatechange = function() 
		{
			if (req.readyState == 4) 
			{
					// only if "OK"
				if (req.status == 200) 
				{						
						document.getElementById('bodydiv').innerHTML=req.responseText;						
				} else {
						alert("There was a problem while using XMLHTTP:\n" + req.statusText);
				}
			}				
		}			
		req.open("GET", strURL, true);
		req.send(null);
	}		
}

function getFuel(ranId,bodyId) 
{		
	// findFuel
	var strURL="/findFuel.php?ranid="+ranId+"&bodyid="+bodyId;
	var req = getXMLHTTP();
		
	if (req) 
	{
		req.onreadystatechange = function() 
		{
			if (req.readyState == 4) 
			{
					// only if "OK"
				if (req.status == 200) 
				{						
						document.getElementById('fueldiv').innerHTML=req.responseText;						
				} else {
						alert("There was a problem while using XMLHTTP:\n" + req.statusText);
				}
			}				
		}			
		req.open("GET", strURL, true);
		req.send(null);
	}		
}

function getFuelType()
{
	// findFuelType
	var strURL="/findFuelType.php";
	var req = getXMLHTTP();
		
	if (req) 
	{
		req.onreadystatechange = function() 
		{
			if (req.readyState == 4) 
			{
					// only if "OK"
				if (req.status == 200) 
				{						
						document.getElementById('fueltypediv').innerHTML=req.responseText;						
				} else {
						alert("There was a problem while using XMLHTTP:\n" + req.statusText);
				}
			}				
		}			
		req.open("GET", strURL, true);
		req.send(null);
	}			
}

function getModel(ranId,bodyId,fuelId) 
{		
	var strURL="/findModel.php?ranid="+ranId+"&bodyid="+bodyId+"&fuelid="+fuelId;
	
	// change fuelType to match fuel
	for (var i=0; i < document.form1.fueltype.length; i++) {
	if (document.form1.fueltype[i].value == fuelId) {
	document.form1.fueltype[i].selected = true;
	}}
	
	var req = getXMLHTTP();
		
	if (req) 
	{
		req.onreadystatechange = function() 
		{
			if (req.readyState == 4) 
			{
					// only if "OK"
				if (req.status == 200) 
				{						
					document.getElementById('modeldiv').innerHTML=req.responseText;						
				} 
				else 
				{
					alert("There was a problem while using XMLHTTP:\n" + req.statusText);
				}
			}				
		}			
		req.open("GET", strURL, true);
		req.send(null);
	}		
}


function getOptions(capId)
{
	var strURL="/findOptions.php?capid="+capId;
	var req = getXMLHTTP();
		
	if (req) 
	{
		req.onreadystatechange = function() 
		{
			if (req.readyState == 4 || req.readyState=="complete") 
			{
				// only if "OK"
				if (req.status == 200) 
				{	
				
				//alert(req.responseText);	
							  
				var xmlString = req.responseText;
				var parser = new DOMParser();
				var doc = parser.parseFromString(xmlString, "text/xml");
				
				document.form1.retail.value = Number(doc.getElementsByTagName("otr")[0].childNodes[0].nodeValue).toFixed(2);
				
				document.getElementById("breakdown").innerHTML = "Basic : " + doc.getElementsByTagName("prbasic")[0].childNodes[0].nodeValue + "<br>";
				document.getElementById("breakdown").innerHTML += "V.A.T. : " + doc.getElementsByTagName("prvat")[0].childNodes[0].nodeValue + "<br>";
				document.getElementById("breakdown").innerHTML += "Additional Costs : " + doc.getElementsByTagName("additionalcosts")[0].childNodes[0].nodeValue + "<br>";
				
				document.form1.CO2.value = doc.getElementsByTagName("co2")[0].childNodes[0].nodeValue;
				
				document.form1.Consumption.value = doc.getElementsByTagName("consumption")[0].childNodes[0].nodeValue;
				
				} else {
						alert("There was a problem while using XMLHTTP:\n" + req.statusText);
				}
			}				
		}			
		req.open("GET", strURL, true);
		req.send(null);
	}	
}


function calc()
{
	
	document.getElementById("lbl_yr1").innerHTML = "2010/2011" ;
	var Year1_increaseStarts = Number(130);
    	var Year1_Entry = Number(120);
	var dif1 = 0;
	
	document.getElementById("lbl_yr2").innerHTML = "2011/2012" ;
	var Year2_increaseStarts = Number(125);
    	var Year2_Entry = Number(120);
	var dif2 = 0;

	document.getElementById("lbl_yr3").innerHTML = "2012/2013" ;
	var Year3_increaseStarts = Number(99);
    	var Year3_Entry = Number(76);
	var dif3 = 0;
	
	
	
	var a = Number(document.getElementById('retail').value);
	var b = Number(document.getElementById('options').value);
	var c = Number(document.getElementById('contribution').value);
	var d = 0;
	var capvalue = Number(80000); <!-- removed in 2011 -->
	var e = 0; <!-- used to calculate taxable value in 2011/2012 -->
	var excess = 0;
	var fuel;
	var noexcess = 0;
    
    var high = Number(35); 
    var low = Number(15);
    var green = Number(10);
    var ultralow = Number(5);
    var zero = Number(0);
	
	var Diesel_Supplement = Number(3);
	var Hybrid_Discount = Number(-3);
	var BiFuel_Discount = Number(-2); <!-- includes Gas -->
	
	// TaxableValue	
	if (a+b > capvalue)
	{
		excess = (capvalue - a - b);
		d = (a + b - c + excess) ;
		e = (a + b - c) ;
	}
	else
	{
		d = (a + b - c) ;
		e = (a + b - c) ;
	}
	
	document.getElementById("lblTaxVal1").innerHTML = d.toFixed(2);
	document.getElementById("lblTaxVal2").innerHTML = d.toFixed(2);
	document.getElementById("lblTaxVal3").innerHTML = e.toFixed(2);
	
	// getInfo
	document.getElementById('lblprice1').innerHTML = a.toFixed(2) ;
	document.getElementById('lblprice2').innerHTML = a.toFixed(2) ;
	document.getElementById('lblprice3').innerHTML = a.toFixed(2) ;

	document.getElementById('lblopt1').innerHTML = b.toFixed(2) ;
	document.getElementById('lblopt2').innerHTML = b.toFixed(2) ;
	document.getElementById('lblopt3').innerHTML = b.toFixed(2) ;

	document.getElementById('lblcont1').innerHTML = c.toFixed(2) ;
	document.getElementById('lblcont2').innerHTML = c.toFixed(2) ;
	document.getElementById('lblcont3').innerHTML = c.toFixed(2) ;

	document.getElementById('lblex1').innerHTML = excess.toFixed(2).replace(/-/,"") ;
	document.getElementById('lblex2').innerHTML = noexcess.toFixed(2) ;<!--excess.toFixed(2).replace(/-/,"") ;-->
	document.getElementById('lblex3').innerHTML = noexcess.toFixed(2) ;<!--excess.toFixed(2).replace(/-/,"") ;-->
	
	// find Tax Rate
	var co2 = Number(document.form1.CO2.value);
	
	// suplements
	var fuelID = document.form1.fuel.value;
	var fueltypeID = document.form1.fueltype.value;
	var suplement = 0;
	
	var add  = 0;
	var add2 = 0;
	var add3 = 0;
	
					
	if ((fuelID == "D") | (fueltypeID == "D"))
	{	
		suplement = Diesel_Supplement;
	}
	else if ((fuelID == "F") | (fueltypeID == "F") | (fuelID == "B") | (fueltypeID == "B"))  // F = BioPower  -- B = 
	{
		suplement = BiFuel_Discount;
	}
	
	else if ((fuelID == "H") | (fueltypeID == "H"))
	{
		suplement = Hybrid_Discount;
	}
			
			
	
    // Year 1
    if (co2 > Year1_Entry)
    {	
    	if (co2 >= Year1_increaseStarts)
        {
		dif1 = Math.floor((co2 - Year1_increaseStarts)/5);
        }

	add = low + dif1 + suplement ;

    }
    else
    {
	add = green + suplement ;
	if(add < green)
	{
  	  add = green;
	}	
	add = add + dif1;

  	if((co2 > 0) && (co2 <76))
  	{
    		add = ultralow + suplement;
  	} 
	if (co2 == 0)
  	{
    		add = zero;
  	}
    }
	
    

    // Year 2
    if (co2 > Year2_Entry)
    {				
    	if (co2 >= Year2_increaseStarts)
        {
		dif2 = Math.floor((co2 - Year2_increaseStarts)/5);
        }
		
	add2 = low + dif2 + suplement ;
    }
    else
    {

	add2 = green + suplement ;
	if(add2 < green)
	{
  	  add2 = green;
	}	
	add2 = add2 + dif2;

	if((co2 > 0) && (co2 <76))
  	{
    		add2 = ultralow + suplement;
  	} 
	if (co2 == 0)
  	{
    		add2 = zero;
  	}
    }

	
    // Year 3
	
    if (co2 > Year3_Entry)
    {		
    	if (co2 < 105)
  	{
    	  co2 = 105;
  	}
	
	if (co2 >= Year3_increaseStarts)
        {
	  dif3 = Math.floor((co2 - Year3_increaseStarts)/5);
        }
		
	add3 = green + suplement ;
	if(add3 < green)
	{
  	  add3 = green;
	}	
	add3 = add3 + dif3;

    }
    else
    {
	if (co2 == 0)
  	{
    	  add3 = zero;
  	}
	else if((co2 > 0) && (co2 < 76))
  	{
    	  add3 = ultralow + suplement;
  	} 	
    }
	

if(add > high)
{
  add = high;
}	

if(add2 > high)		
{				
  add2 = high;
}		
			
if(add3 > high)
{
  add3 = high;
}

			
					

document.getElementById('txtTaxRate_yr1').innerHTML = add;
document.getElementById('txtTaxRate_yr2').innerHTML = add2;
document.getElementById('txtTaxRate_yr3').innerHTML = add3;
			
			


		
	// GetTaxBen
    var tb1 = document.getElementById('lblTaxVal1').innerHTML / 100 * document.getElementById('txtTaxRate_yr1').innerHTML ;
	document.getElementById('lblTaxBen1').innerHTML = tb1.toFixed(2);
	
	var tb2 = document.getElementById('lblTaxVal2').innerHTML / 100 * document.getElementById('txtTaxRate_yr2').innerHTML ;
	document.getElementById('lblTaxBen2').innerHTML = tb2.toFixed(2);
	
	var tb3 = document.getElementById('lblTaxVal3').innerHTML / 100 * document.getElementById('txtTaxRate_yr3').innerHTML ;
	document.getElementById('lblTaxBen3').innerHTML = tb3.toFixed(2);
	
	
	//GetITax
	var taxrate = document.form1.taxrate.value
		
	var iTax1 = document.getElementById('lblTaxBen1').innerHTML / 100 * taxrate ;
	document.getElementById('lblITax1').innerHTML = iTax1.toFixed(2);
	
	var iTax2 = document.getElementById('lblTaxBen2').innerHTML / 100 * taxrate ;
	document.getElementById('lblITax2').innerHTML = iTax2.toFixed(2);
	
	var iTax3 = document.getElementById('lblTaxBen3').innerHTML / 100 * taxrate ;
	document.getElementById('lblITax3').innerHTML = iTax3.toFixed(2);
	
	
	
	
	document.getElementById('cartablediv').style.visibility = 'visible';
	
	if(document.form1.FF.value == "Yes")
	{
		if(document.form1.Consumption.value == "" || document.form1.Consumption.value == "no data available")
		{
			document.form1.err.value = "*";
		}
		else
		{
			calcFuel();
			document.getElementById('fueltablediv').style.visibility = 'visible';
			document.form1.err.value = "";
		}
		
	}
	else
	{
		document.getElementById('fueltablediv').style.visibility = 'hidden';
	}
}


function calcFuel()
{
	var fuel1 = Number(18000);
	var fuel2 = Number(4.50);
	
	var fb1 = (fuel1/100) * Number(document.getElementById('txtTaxRate_yr1').innerHTML);
	document.getElementById('tfb1').innerHTML = fb1;
	
	var fb2 = (fuel1/100) * Number(document.getElementById('txtTaxRate_yr2').innerHTML);
	document.getElementById('tfb2').innerHTML = fb2;
	
	var fb3 = (fuel1/100) * Number(document.getElementById('txtTaxRate_yr3').innerHTML);
	document.getElementById('tfb3').innerHTML = fb3;


	var pv = Number(document.form1.Milage.value) / Number(document.form1.Consumption.value) * fuel2;
	document.getElementById('pv1').innerHTML = pv.toFixed(0);
	document.getElementById('pv2').innerHTML = pv.toFixed(0);
	document.getElementById('pv3').innerHTML = pv.toFixed(0);


	var i1 = Number(document.getElementById('tfb1').innerHTML)/100 * Number(document.form1.taxrate.value) ;
	document.getElementById('it1').innerHTML = i1.toFixed(0);
	
	var i2 = Number(document.getElementById('tfb2').innerHTML)/100 * Number(document.form1.taxrate.value) ;
	document.getElementById('it2').innerHTML = i2.toFixed(0);
	
	var i3 = Number(document.getElementById('tfb3').innerHTML)/100 * Number(document.form1.taxrate.value) ;
	document.getElementById('it3').innerHTML = i3.toFixed(0);


	var a1 = pv - i1 ;
	document.getElementById('ab1').innerHTML = a1.toFixed(0);
	var a2 = pv - i2 ;
	document.getElementById('ab2').innerHTML = a2.toFixed(0);
	var a3 = pv - i3 ;
	document.getElementById('ab3').innerHTML = a3.toFixed(0);
	
	 
}