// 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 8v bhp Progression", false, 11644.47, 130, 16,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 8v 78 bhp Sprint", false, 12344.47, 130, 16,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 MultiAir 105 bhp Sprint", false, 13234.47, 134, 16,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 MultiAir 105 bhp Distinctive", false, 14434.47, 134, 16,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 TB MultiAir 135 bhp Distinctive", false, 15344.47, 129, 15,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 TB MultiAir 135 bhp ALFA TCT Distinctive", false, 16644.47, 126, 15,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.4 TB MultiAir 170 bhp Quadrifoglio Verde", false, 18039.47, 139, 16,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.3 JTDM-2 85 bhp Sprint", true, 13844.47, 95, 13,  24.47,  406.17),
	 new vehicle ("Alfa MiTo", "1.6 JTDM-2 12- bhp Distinctive", true, 16044.47, 114, 13,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.4 TB 120 bhp Turismo", false,  16719.47, 149, 19,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.4 TB 120 Bbhp Lusso", false,  17869.47, 149, 19,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.4 TB 120 bhp Veloce", false,  19169.47, 149, 19,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.4 TB Multiair 170 bhp Lusso", false,  19248.47, 134, 16,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.4 TB Multiair 170 bhp Veloce", false,  20584.47, 134, 16,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1750 Tbi 235 bhp Cloverleaf", false,  24089.47, 177, 25,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.6 JTDm-2 105 bhp Turismo", true,  17794.47, 114, 13,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.6 JTDm-2 105 bhp Lusso", true,  18944.47, 114, 13,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "1.6 JTDm-2 105 bhp Veloce", true,  20244.47, 114, 13,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "2.0 JTDm-2 140bhp Lusso", true,  20144.47, 119, 13,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "2.0 JTDm-2 140bhp Veloce", true,  21444.47, 119, 13,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "2.0 JTDm-2 170bhp Lusso", true,  21044.47, 124, 18,  24.47,  406.17),
	 new vehicle ("Alfa Giulietta", "2.0 JTDm-2 170bhp Veloce", true,  22344.47, 124, 18,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v 170bhp Turismo", true,  22779.47, 139, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v 170bhp Lusso", true,  24429.47, 139, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v 170bhp TI", true,  25929.47, 139, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v 136bhp Turismo", true,  21779.47, 134, 19,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v 136bhp Lusso", true,  23429.47, 134, 19,  24.47,  406.17),
	 new vehicle ("Alfa 159", "2.0 JTDM 16v 136bhp TI", true,  24929.47, 134, 19,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1750 TBi Turismo", false,  22464.47, 182, 26,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1750 TBi Lusso", false,  24114.47, 182, 26,  24.47,  406.17),
	 new vehicle ("Alfa 159", "1750 TBi TI", false,  25614.47, 182, 26,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 170bhp 16v Turismo", true,  24014.47, 142, 21,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 170bhp 16v Lusso", true,  25664.47, 142, 21,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 170bhp 16v TI", true,  27164.47, 142, 21,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 136 bhp 16v Turismo", true,  23029.47, 137, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 136bhp 16v Lusso", true,  24679.47, 137, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "2.0 JTDM 136bhp 16v TI", true,  26179.47, 137, 20,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1750 TBi Turismo", false,  23714.47, 186, 27,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1750 TBi Lusso", false,  25664.47, 186, 27,  24.47,  406.17),
	 new vehicle ("Alfa 159 Sportwagon", "1750 TBi TI", false,  26864.47, 186, 27,  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();
    }
}

