// This file holds the data on model and version range
//  and the various functions for handling the forms and 
//  the tax calculators

// Set up the CO2 weighting table, this is a lookup table for ppm to percentage
// conversion.

// CO2 now replaced by BIK so no lookup required
function vehicle(sRange, sModel, isDiesel, fRetailPrice, iCO2, iBIK, fNumberPlate, fDeliveryCost) {

    // Vehicle constructor function
    
    this.model = sRange;
    this.version = sModel;
    this.diesel = isDiesel;
    this.price = fRetailPrice;
    this.bik = iBIK;
    this.number_plate = fNumberPlate;
    this.delivery_cost = fDeliveryCost;
}

// Set up an array of vehicle objects to hold all of the Alfa Romeo range

// "Range", "Model", Diesel, Retail price, CO2, BIK%, Number plate, Delivery cost

aCars = [
	 new vehicle ("Alfa MiTo", "1.4 16V 78 bhp Junior", false,  11330.00, 138, 16,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 16V 95 bhp Turismo", false,  11840.00, 138, 16,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 16V 95 bhp Lusso", false,  12660.00, 138, 16,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 16V 95 bhp Veloce", false,  13630.00, 138, 16,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 MultiAir TB 135 bhp Lusso", false,  14550.00, 129, 15,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 MultiAir TB 135 bhp Veloce", false,  15520.00, 129, 15,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 MultiAir TB 135 bhp ALFA TCT Lusso", false,  15800.00, 128, 15,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 MultiAir TB 135 bhp ALFA TCT Veloce", false,  16770.00, 128, 15,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 MultiAir TB 170 bhp Cloverleaf", false,  17280.00, 139, 16,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.3 JTDM Turismo", true,  13465.00, 112, 15,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.3 JTDM Lusso", true,  14285.00, 112, 15,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.3 JTDM Veloce", true,  15255.00, 112, 15,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.6 JTDM Lusso", true,  14960.00, 126, 18,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.6 JTDM Veloce", true,  15930.00, 126, 18,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.4 TB 120 bhp Turismo", false,  16375.00, 149, 18,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.4 TB 120 Bbhp Lusso", false,  17525.00, 149, 18,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.4 TB 120 bhp Veloce", false,  18825.00, 149, 18,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.4 TB Multiair 170 bhp Lusso", false,  18890.00, 134, 15,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.4 TB Multiair 170 bhp Veloce", false,  20190.00, 134, 15,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1750 Tbi 235 bhp Cloverleaf", false,  23700.00, 177, 24,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.6 JTDm-2 105 bhp Turismo", true,  17400.00, 114, 18,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.6 JTDm-2 105 bhp Lusso", true,  18550.00, 114, 18,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.6 JTDm-2 105 bhp Veloce", true,  19850.00, 114, 18,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "2.0 JTDm-2 170bhp Lusso", true,  20700.00, 124, 18,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "2.0 JTDm-2 170bhp Veloce", true,  22000.00, 124, 18,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1.9 JTDM 8v ECO Turismo", true,  19765.00, 138, 19,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1.9 JTDM 8v ECO Turismo Sport", true,  20585.00, 138, 19,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1.9 JTDM 16v Turismo", true,  20530.00, 150, 22,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1.9 JTDM 16v Turismo Sport", true,  21350.00, 150, 22,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1.9 JTDM 16v Elegante", true,  21510.00, 150, 22,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1.9 JTDM 16v Lusso", true,  22660.00, 150, 22,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1.9 JTDM 16v TI", true,  23760.00, 150, 22,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1.9 JTDM 16v QTRONIC Elegante", true,  22950.00, 180, 28,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1.9 JTDM 16v QTRONIC Lusso", true,  24100.00, 180, 28,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1.9 JTDM 16v QTRONIC TI", true,  25200.00, 180, 28,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v Turismo", true,  21650.00, 142, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v Turismo Sport", true,  22470.00, 142, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v Elegante", true,  22630.00, 142, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v Lusso", true,  23780.00, 142, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v TI", true,  24880.00, 142, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.4 JTDM Elegante", true,  24000.00, 179, 27,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.4 JTDM Lusso", true,  25150.00, 179, 27,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.4 JTDM TI", true,  26250.00, 179, 27,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.4 JTDM QTRONIC Elegante", true,  25450.00, 208, 33,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.4 JTDM QTRONIC Lusso", true,  26600.00, 208, 33,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.4 JTDM QTRONIC TI", true,  27700.00, 208, 33,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.2 JTS Elegante", false,  21220.00, 218, 32,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.2 JTS Lusso", false,  22370.00, 218, 32,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.2 JTS TI", false,  23470.00, 218, 32,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1750 TBi Turismo", false,  21560.00, 189, 26,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1750 TBi Turismo Sport", false,  22380.00, 189, 26,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1750 TBi Elegante", false,  22540.00, 189, 26,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1750 TBi Lusso", false,  23690.00, 189, 26,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1750 TBi TI", false,  24790.00, 189, 26,  24.47,  406.17),
	 new vehicle ("Alfa 159", "3.2 JTS V6 Elegante", false,  25260.00, 260, 35,  24.47,  406.17),
	 new vehicle ("Alfa 159", "3.2 JTS V6 Lusso", false,  26410.00, 260, 35,  24.47,  406.17),
	 new vehicle ("Alfa 159", "3.2 JTS V6 TI", false,  27510.00, 260, 35,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1.9 JTDM 8v ECO Turismo", true,  20895.00, 140, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1.9 JTDM 8v ECO Turismo Sport", true,  21715.00, 140, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1.9 JTDM 16v Turismo", true,  21635.00, 153, 22,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1.9 JTDM 16v Turismo Sport", true,  22455.00, 153, 22,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1.9 JTDM 16v Elegante", true,  22615.00, 153, 22,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1.9 JTDM 16v Lusso", true,  23765.00, 153, 22,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1.9 JTDM 16v TI", true,  24865.00, 153, 22,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1.9 JTDM 16v QTRONIC Elegante", true,  24080.00, 182, 28,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1.9 JTDM 16v QTRONIC Lusso", true,  25230.00, 182, 28,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1.9 JTDM 16v QTRONIC TI", true,  26330.00, 182, 28,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 16v Turismo", true,  22780.00, 145, 21,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 16v Turismo Sport", true,  23600.00, 145, 21,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 16v Elegante", true,  23760.00, 145, 21,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 16v Lusso", true,  24910.00, 145, 21,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 16v TI", true,  26010.00, 145, 21,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.4 JTDM Elegante", true,  25130.00, 181, 28,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.4 JTDM Lusso", true,  26280.00, 181, 28,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.4 JTDM TI", true,  27380.00, 181, 28,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.4 JTDM QTRONIC Elegante", true,  26580.00, 210, 34,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.4 JTDM QTRONIC Lusso", true,  27730.00, 210, 34,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.4 JTDM QTRONIC TI", true,  28830.00, 210, 34,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.2 JTS Elegante", false,  22350.00, 220, 33,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.2 JTS Lusso", false,  23500.00, 220, 33,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.2 JTS TI", false,  24600.00, 220, 33,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1750 TBi Turismo", false,  22690.00, 194, 27,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1750 TBi Turismo Sport", false,  23510.00, 194, 27,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1750 TBi Elegante", false,  23670.00, 194, 27,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1750 TBi Lusso", false,  24820.00, 194, 27,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1750 TBi TI", false,  25920.00, 194, 27,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "3.2 JTS V6 Elegante", false,  26390.00, 262, 35,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "3.2 JTS V6 Lusso", false,  27540.00, 262, 35,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "3.2 JTS V6 TI", false,  28640.00, 262, 35,  24.47,  406.17),
	 new vehicle ("Alfa GT", "1.9 JTDM 16v Q2 170bhp (Special Edition)", true,  22345.00, 165, 25,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "2.2 JTS", false,  24285.00, 218, 32,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "2.2JTS (Italia Independent)", false,  25285.00, 218, 32,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "1750 Tbi", false,  24285.00, 189, 26,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "1750 Tbi (Italia Independent)", false,  27385.00, 189, 26,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "3.2 JTS V6", false,  28620.00, 260, 35,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "3.2 JTS V6 (Italia Independent)", false,  30895.00, 260, 35,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "3.2 JTS V6 Q4", false,  30670.00, 270, 35,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "3.2 JTS V6 Q4 (Italia Independent)", false,  32895.00, 270, 35,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "3.2 JTS V6 Q4 SV QTRONIC", false,  32170.00, 286, 35,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "3.2 JTS V6 Q4 SV QTRONIC (Italia Independent)", false,  34395.00, 286, 35,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "2.0 JTDM", true,  24375.00, 142, 20,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "2.0 JTDM (Italia Independent)", true,  27475.00, 142, 20,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "2.4 JTDM (210 bhp)", true,  27950.00, 179, 27,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "2.4 JTDM (210 bhp) (Italia Independent)", true,  30225.00, 179, 27,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "2.4 JTDM QTRONIC", true,  29410.00, 208, 33,  24.47,  406.17),
	 new vehicle ("Alfa Brera", "2.4 JTDM QTRONIC (Italia Indepent)", true,  31685.00, 208, 33,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "2.2 JTS", false,  26285.00, 218, 32,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "2.2 JTS (Italia independent)", false,  27285.00, 218, 32,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "1750 TBI", false,  26285.00, 192, 27,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "1750 TBI (Italia Independent)", false,  29385.00, 192, 27,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "3.2 JTS V6", false,  30620.00, 262, 35,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "3.2 JTS V6 (Italia Independent)", false,  32895.00, 262, 35,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "3.2 JTS V6 Q4", false,  32670.00, 272, 35,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "3.2 JTS V6 Q4 (Italia Independent)", false,  34895.00, 272, 35,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "3.2 JTS V6 Q4 QTRONIC", false,  34170.00, 288, 35,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "3.2 JTS V6 Q4 QTRONIC (Italia Independent)", false,  36395.00, 288, 35,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "2.0 JTDM", false,  26375.00, 142, 20,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "2.0 JTDM (Italia Independent)", false,  29475.00, 142, 20,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "2.4 JTDM", true,  29950.00, 179, 27,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "2.4 JTDM (Italia Independent)", true,  32225.00, 179, 27,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "2.4 JTDM QTRONIC", true,  31410.00, 208, 33,  24.47,  406.17),
	 new vehicle ("Alfa Spider", "2.4 JTDM QTRONIC (Italia Independent)", true,  33685.00, 208, 33,  24.47,  406.17)
];

function optionItem (parent,text,value){
    //     Option item object constructor function
    this.text = text;
    this.value = value;
    this.parent = parent;
}  
	    
var oFirst_list = document.getElementById("model");
var oSecond_list = document.getElementById("version");
var aSecond = new Array();
	    
// Set up array of list items for Version list
// Parent , Text , Value - parent for version is model name	    
	    
var aSecond = new Array();
for (x=0; x<aCars.length;x++){
    aSecond[x] = new optionItem(aCars[x].model , aCars[x].version , aCars[x].version);
}

function emptyList(listObject){
	    
    // Empties select list
	    
    while ( listObject.options.length ) {
	listObject.options[0] = null;
    }
}
	    
function populate_second(selected_series){
	    
    // Populates second select list with relevant options.
	    
    emptyList(oSecond_list);
	   
    if (oFirst_list.selectedIndex == 0){
	alert("Please select a valid Model.");
	return;
    }

    oSecond_list.options[oSecond_list.length] = new Option("Select version...","unselected");
	    		    
    sParent = oFirst_list.options[oFirst_list.options.selectedIndex].value;
    var sMatch = false;

    for (x=0; x<aSecond.length; x++){
		      
	if (aSecond[x].parent == sParent){
	    oSecond_list.options[oSecond_list.length] = new Option(aSecond[x].text , aSecond[x].value);
	    sMatch = true;
	}
    }
    
    if (!sMatch){
	emptyList(oSecond_list);
	oSecond_list.options[oSecond_list.length] = new Option("Not applicable","unselected");	
    }
}

function toggleCar(){
    if (document.getElementById("have-current-car") && document.getElementById("mycar")){
	showById("mycar",!document.getElementById("have-current-car").checked);
	document.getElementById("have-current-car").blur();
    }
}
