﻿var d ; // documenthiddenform

//-- Define some Colours
var CHARCOAL = "#232323" ;
var CHROME = "#c6d6dc" ;

var colourname = new Array()
    colourname["SB_Charcoal"] = "Warm Charcoal" ;
    colourname["SB_Flint"] = "Flint" ;

    colourname["BRK1"] = "Graphite" ;
    colourname["BRK2"] = "Black" ;
    colourname["BRK3"] = "Red" ;
    colourname["BRK4"] = "Silver" ;

    colourname["veneer_w"] = "Walnut" ;
    colourname["veneer_m"] = "Mahogany" ;
    colourname["veneer_b"] = "Bamboo" ;
    colourname["veneer_piano"] = "Piano Black" ;
    colourname["veneer_ash"] = "Tamo Ash" ;

    colourname["doortrim_upper"] = "Match Upper Leather" ;
    colourname["doortrim_w"] = "Walnut" ;
    colourname["doortrim_m"] = "Mahogany" ;
    colourname["doortrim_b"] = "Bamboo" ;
    colourname["doortrim_piano"] = "Piano Black" ;
    colourname["doortrim_ash"] = "Tamo Ash" ;


//--- initialise the page
function OnloadPage() {
    d = document.hiddenform ; 
    buildMenus("mainmenu");
    showMenu("welcomemenu");
    getCarCookie () ;

    doTrimSplitMenus ();
    doStitchingMenus ();
    setDoorCell ();
}


/* ========== MENU ACTIONS ============= */
function DoExteriorColour () {
    ShowMenuBlock('exteriorcolour');
    gHiddenCol = "exteriorcolour" ;
    SetupColourBlock ('COL','exteriorcolour');
    InfoOn('colourexterior');
    postevent('view_default');
}

function DoHoodColour () {
    ShowMenuBlock('hoodcolour');
    gHiddenCol = "hoodcolour" ;
    SetupColourBlock ('HEX','hoodcolour');
    InfoOn('colour');
    postevent('view_hood');
}

function DoInteriorColour () {
    ShowMenuBlock('interiorcolour');
    gHiddenCol = "uppercolour" ;
    SetupColourBlock('LTH','interiorcolour');
    InfoOn('colour');
    postevent('view_interior');
}

function DoUpperColour () {
    ShowMenuBlock('uppercolour');
    gHiddenCol = "uppercolour" ;
    SetupColourBlock('LTH','uppercolour');
    InfoOn('colour');
    postevent('view_interior');
}

function DoLowerColour () {
    ShowMenuBlock('lowercolour');
    gHiddenCol = "lowercolour" ;
    SetupColourBlock('LTH','lowercolour');
    InfoOn('colour');
    postevent('view_interior');
}

function DoSeatOuterColour () {
    ShowMenuBlock('seatoutercolour');
    gHiddenCol = "seatoutercolour" ;
    InfoOn('colour');
    SetupColourBlock('LTH','seatoutercolour');
}


function DoSeatInnerColour () {
    ShowMenuBlock('seatinnercolour');
    gHiddenCol = "seatinnercolour" ;
    InfoOn('colour');
    SetupColourBlock('LTH','seatinnercolour');
}

function DoStitchingUpper () {
    ShowMenuBlock('stitchingupper');
    gHiddenCol = "stitchingupper" ;
    SetupColourBlock('THRD' ,'stitchingupper');
}

function DoStitchingLower () {
    ShowMenuBlock('stitchinglower');
    gHiddenCol = "stitchinglower" ;
    SetupColourBlock('THRD' ,'stitchinglower');
}

function DoStitchingSeatOuter () {
    ShowMenuBlock('stitchingseatouter');
    gHiddenCol = "stitchingseatouter" ;
    SetupColourBlock('THRD' ,'stitchingseatouter');
}


function DoCarpet () {
    ShowMenuBlock('carpet');
    gHiddenCol = "carpetcolour" ;
    SetupColourBlock('CARP','carpetcolour');
    InfoOn('colour');
    postevent("view_carpet");
}

function DoCarpetPiping ( ) {
    // match or colour contrast
    ShowMenuBlock('carpetpiping');
    var code = d.carpetpipingchoice.value ;
    var el = document.getElementById('selectcarpetpiping') ;
    if (!el) return ;
    el.style.display = (code=='match' ? 'none' : 'block' ) ;
    if ( code == 'colour' ) {
        // don't do this before, or the colour warning is displayed
        gHiddenCol = "carpetpipingcolour" ;
        SetupColourBlock('LTH','carpetpipingcolour');
        InfoOn('colour');
    }
    else {
        // weird, but this hides colour warnings, and l.h. info blocks
        ShowMenuBlock ('carpetpiping');
    }
    vmpCarpetPiping();
}

function DoHeadlining () {
    ShowMenuBlock('headlining');
    gHiddenCol = "headliningcolour" ;
    SetupColourBlock('HIN','headliningcolour');
    InfoOn('colour');
    postevent('view_headlining');
}

function DoBrakeCaliper () {
    ShowMenuBlock('brakecaliper');
    cellInit('brakecaliper');
    postevent('view_wheel');
}

function DoHandofDrive () {
    ShowMenuBlock('handofdrive');
    postevent('view_steering');
}

function DoSeatBelt () {
    ShowMenuBlock('seatbelt');
    cellInit('seatbelt');
    postevent('view_seatbelts');
}

function DoVeneer () {
    ShowMenuBlock('veneer');
    cellInit('veneer');
    postevent('view_steering');
    checkVeneers();
}

function DoDoorTrim () {
    ShowMenuBlock('doortrim');
    cellInit('doortrim');
    postevent('view_doortrim');
    checkVeneers();
}


function DoSteering ( ) {
    // match or colour contrast
    ShowMenuBlock('steering');
    postevent('view_steering');
    var code = d.steeringchoice.value ;
    var el = document.getElementById('selectsteeringcolour') ;
    if (!el) return ;
    el.style.display = (code=='black' ? 'none' : 'block' ) ;

    if ( code == 'colour' ) {
        gHiddenCol = "steeringcolour" ;
        SetupColourBlock('LTH','steeringcolour');
        InfoOn('colour');
    }
    else if (code=='alcantara') {
        gHiddenCol = "steeringcolour" ;
        SetupColourBlock('HIN','steeringcolour');
        InfoOn('colour');
    }
    else {
        // weird, but this hides colour warnings, and l.h. info blocks
        ShowMenuBlock ('steering');
    }
    vmpSteering();
}


/*============ Read in cookies =============*/
function getCarCookie () {

    // possible problems if user configures car, changes country, loads car again and some
    // options do not exist => check for existance of frmConfig fields

    // initialise the form - vmpDefaults() will pick up values from there and do viewpoint stuff
    var frmConfig = document.frmConfig ;

    if ( carcookie.get('grill') ) {
        d['grill'].value = carcookie.get('grill') ;
        if (frmConfig.grill) frmConfig.grill.checked = true ;
    }
    if (carcookie.get('exteriormesh')) {
        d.exteriormesh.value = carcookie.get('exteriormesh') ;
        if (document.frmConfig.exteriormesh) document.frmConfig.exteriormesh.checked = true ;
    }
    if ( carcookie.get('parkingsensors') ) {
        d['parkingsensors'].value = carcookie.get('parkingsensors') ;
        if (frmConfig.parkingsensors) frmConfig.parkingsensors.checked = true ;
    }
    if ( carcookie.get('stoneguards') ) {
        d['stoneguards'].value = carcookie.get('stoneguards') ;
        if (frmConfig.stoneguards) frmConfig.stoneguards.checked = true ;
    }
    if (carcookie.get('protectivefilm')) {
        d.clearlights.value = carcookie.get('protectivefilm') ;
        if (document.frmConfig.protectivefilm) document.frmConfig.protectivefilm.checked = true ;
    }
    if ( carcookie.get('rearlogo') ) {
        d['rearlogo'].value = carcookie.get('rearlogo') ;
        if (frmConfig.rearlogo) frmConfig.rearlogo.checked = true ;
    }
    if (carcookie.get('clearlights')) {
        d.clearlights.value = carcookie.get('clearlights') ;
        if (document.frmConfig.clearlights) document.frmConfig.clearlights.checked = true ;
    }
    if ( carcookie.get('winddeflector') ) {
        d['winddeflector'].value = carcookie.get('winddeflector') ;
        if (frmConfig.winddeflector) frmConfig.winddeflector.checked = true ;
    }

    if ( carcookie.get('handofdrive') ) {
        d['handofdrive'].value = carcookie.get('handofdrive') ;
        setRadio ( frmConfig.handofdrive, carcookie.get('handofdrive') )
    }
    if ( carcookie.get('wheels') ) {
        d['wheels'].value = carcookie.get('wheels') ;
        if (frmConfig.wheels) setRadio ( frmConfig.wheels, carcookie.get('wheels') )
    }
    if ( carcookie.get('transmission') ) {
        d['transmission'].value = carcookie.get('transmission') ;
        if (frmConfig.transmission) setRadio ( frmConfig.transmission, carcookie.get('transmission') )
    }
    if ( carcookie.get('audio') ) {
        d['audio'].value = carcookie.get('audio') ;
        if (frmConfig.audio) setRadio ( frmConfig.audio, carcookie.get('audio') )
    }
    if ( carcookie.get('iplang') ) {
        d['iplang'].value = carcookie.get('iplang') ;
        if (frmConfig.iplang) setSelect ( frmConfig.iplang, carcookie.get('iplang') )
    }
    if ( carcookie.get('handbooklang') ) {
        d['handbooklang'].value = carcookie.get('handbooklang') ;
        if (frmConfig.handbooklang) setSelect ( frmConfig.handbooklang, carcookie.get('handbooklang') )
    }

    if ( carcookie.get('smoker') ) {
        d['smoker'].value = carcookie.get('smoker') ;
        if (frmConfig.smoker) frmConfig.smoker.checked = true ;
    }
    if ( carcookie.get('alarm') ) {
        d['alarm'].value = carcookie.get('alarm') ;
        if (frmConfig.alarm) frmConfig.alarm.checked = true ;
    }
    if ( carcookie.get('tracker') ) {
        d['tracker'].value = carcookie.get('tracker') ;
        if (frmConfig.tracker) frmConfig.tracker.checked = true ;
    }
    if ( carcookie.get('firstaid') ) {
        d['firstaid'].value = carcookie.get('firstaid') ;
        if (frmConfig.firstaid) frmConfig.firstaid.checked = true ;
    }
    if ( carcookie.get('rearview') ) {
        d['rearview'].value = carcookie.get('rearview') ;
        if (frmConfig.rearview) frmConfig.rearview.checked = true ;
    }
    if ( carcookie.get('rearviewgarage') ) {
        d['rearviewgarage'].value = carcookie.get('rearviewgarage') ;
        if (frmConfig.rearviewgarage) frmConfig.rearviewgarage.checked = true ;
    }

    // sillplaque
    if (carcookie.get('sillmessage')) {
        d.sillmessage.value = carcookie.get('sillmessage') ;
        if (frmConfig.sillmessage) frmConfig.sillmessage.value = carcookie.get('sillmessage') ;
    }
    if (carcookie.get('alloysillplate')) {
        d.alloysillplate.value = carcookie.get('alloysillplate') ;
        if (document.frmConfig.alloysillplate) document.frmConfig.alloysillplate.checked = true ;
    }

    // colour choices
    if ( carcookie.get('trimsplit') ) {
        d['trimsplit'].value = carcookie.get('trimsplit') ;
        setRadio ( document.frmConfig.trimsplit, carcookie.get('trimsplit') )
    }
    if ( carcookie.get('stitchingchoice') ) {
        d['stitchingchoice'].value = carcookie.get('stitchingchoice') ;
        setRadio ( document.frmConfig.stitchingchoice, carcookie.get('stitchingchoice') )
    }
    if ( carcookie.get('steeringchoice') ) {
        d['steeringchoice'].value = carcookie.get('steeringchoice') ;
        setRadio ( document.frmConfig.steeringchoice, carcookie.get('steeringchoice') )
    }
    if ( carcookie.get('seatinnerchoice') ) {
        d['seatinnerchoice'].value = carcookie.get('seatinnerchoice') ;
        setRadio ( document.frmConfig.seatinnerchoice, carcookie.get('seatinnerchoice') )
    }
    if ( carcookie.get('carpetpipingchoice') ) {
        d['carpetpipingchoice'].value = carcookie.get('carpetpipingchoice') ;
        setRadio ( document.frmConfig.carpetpipingchoice, carcookie.get('carpetpipingchoice') )
    }

    // accessories
    if ( carcookie.get('carcover') ) {
        d['carcover'].value = carcookie.get('carcover') ;
        setSelect ( document.frmConfig.carcover, carcookie.get('carcover') )
    }
    if ( carcookie.get('luggage') ) {
        d['luggage'].value = carcookie.get('luggage') ;
        setSelect ( document.frmConfig.luggage, carcookie.get('luggage') )
    }    
    if (carcookie.get('battery')) {
        d.battery.value = carcookie.get('battery') ;
        if (document.frmConfig.battery) document.frmConfig.battery.checked = true ;
    }

    
    // colours
    getCookieColour ( 'exteriorcolour' ) ;
    getCookieColour ( 'uppercolour' ) ;
    getCookieColour ( 'lowercolour' ) ;
    getCookieColour ( 'seatoutercolour' ) ;
    getCookieColour ( 'seatinnercolour' ) ;

    getCookieColour ( 'stitchingupper' ) ;
    getCookieColour ( 'stitchinglower' ) ;
    getCookieColour ( 'stitchingseatouter' ) ;

    getCookieColour ( 'carpetcolour' ) ;
    getCookieColour ( 'carpetpipingcolour' ) ;
    getCookieColour ( 'headliningcolour' ) ;
    getCookieColour ( 'hoodcolour' ) ;
    getCookieColour ( 'steeringcolour' ) ;

    getCookieColour ( 'brakecaliper' ) ;
    getCookieColour ( 'doortrim' ) ;
    getCookieColour ( 'seatbelt' ) ;
    getCookieColour ( 'veneer' ) ;
    getCookieColour ( 'steering' ) ;

}


//------------------
// set car cookie
// take form and save it as a cookie
function setCarCookie () {

    if (d.grill) carcookie.set('grill',d.grill.value)
    if (d.exteriormesh) carcookie.set('exteriormesh',d.exteriormesh.value)
    if (d.parkingsensors) carcookie.set('parkingsensors',d.parkingsensors.value)
    if (d.stoneguards) carcookie.set('stoneguards',d.stoneguards.value)
    if (d.protectivefilm) carcookie.set('protectivefilm',d.protectivefilm.value)
    if (d.rearlogo) carcookie.set('rearlogo',d.rearlogo.value)
    if (d.clearlights) carcookie.set('clearlights',d.clearlights.value)
    if (d.winddeflector) carcookie.set('winddeflector',d.winddeflector.value)
    
    if (d.handofdrive) carcookie.set('handofdrive',d.handofdrive.value)
    if (d.wheels) carcookie.set('wheels',d.wheels.value)
    if (d.transmission) carcookie.set('transmission',d.transmission.value)
    if (d.audio) carcookie.set('audio',d.audio.value)
    if (d.iplang) carcookie.set('iplang',d.iplang.value)
    if (d.grhandbooklang) carcookie.set('handbooklang',d.handbooklang.value)

    if (d.smoker) carcookie.set('smoker',d.smoker.value)
    if (d.alarm) carcookie.set('alarm',d.alarm.value)
    if (d.tracker) carcookie.set('tracker',d.tracker.value)
    if (d.firstaid) carcookie.set('firstaid',d.firstaid.value)
    if (d.rearview) carcookie.set('rearview',d.rearview.value)
    if (d.rearviewgarage) carcookie.set('rearviewgarage',d.rearviewgarage.value)

    if (d.sillmessage) carcookie.set('sillmessage',d.sillmessage.value)
    if (d.alloysillplate) carcookie.set('alloysillplate',d.alloysillplate.value)

    if (d.trimsplit) carcookie.set('trimsplit',d.trimsplit.value)
    if (d.stitchingchoice) carcookie.set('stitchingchoice',d.stitchingchoice.value)
    if (d.steeringchoice) carcookie.set('steeringchoice',d.steeringchoice.value)
    if (d.seatinnerchoice) carcookie.set('seatinnerchoice',d.seatinnerchoice.value)
    if (d.carpetpipingchoice) carcookie.set('carpetpipingchoice',d.carpetpipingchoice.value)

    // accessories
    if (d.carcover) carcookie.set('carcover',d.carcover.value)
    if (d.luggage) carcookie.set('luggage',d.luggage.value)
    if (d.battery) carcookie.set('battery',d.battery.value)


    // colours
    setCookieColour ( 'exteriorcolour' ) ;
    setCookieColour ( 'uppercolour' ) ;
    setCookieColour ( 'lowercolour' ) ;
    setCookieColour ( 'seatoutercolour' ) ;
    setCookieColour ( 'seatinnercolour' ) ;

    setCookieColour ( 'stitchingupper' ) ;
    setCookieColour ( 'stitchinglower' ) ;
    setCookieColour ( 'stitchingseatouter' ) ;

    setCookieColour ( 'carpetcolour' ) ;
    setCookieColour ( 'carpetpipingcolour' ) ;
    setCookieColour ( 'headliningcolour' ) ;
    setCookieColour ( 'hoodcolour' ) ;
    setCookieColour ( 'steeringcolour' ) ;

    setCookieColour ( 'brakecaliper' ) ;
    setCookieColour ( 'doortrim' ) ;
    setCookieColour ( 'seatbelt' ) ;
    setCookieColour ( 'veneer' ) ;
    setCookieColour ( 'steering' ) ;

    alert('Car Details have been saved');
}


/* ============== ACTIONS ============== */

//--------
// Set 3D Defaults
//--------
function vmpDefaults () {
    // get data from hiddenform, call javascript to set 3D model
    // want this to work when user does forwards/backwards etc
    // so get all the animations from the hiddenform
    vmpSetColour('exteriorcolour');

    vmpSetColour('uppercolour');
    vmpSetColour('lowercolour');
    vmpSetColour('seatoutercolour');
    vmpSetColour('seatinnercolour');

    vmpSetColour('threadcolour');
    vmpSetColour('carpetcolour');
    vmpSetColour('headliningcolour');
    vmpSetColour('hoodcolour');

    vmpSetColour('brakecaliper');
    vmpSetColour('seatbelt');
    vmpSetColour('veneer');
    vmpSetColour('doortrim');
    vmpSetColour('carpetpipingcolour');

    vmpSetColour('facia');

    if ( d['territory'].value == 'C' || d['territory'].value == 'U' )
        postevent('show_fedindicators');
    else
        postevent('hide_fedindicators');

    if ( d['handofdrive'].value == 'L' )
        postevent('lefthanddrive');
    else
        postevent('righthanddrive');

    if ( d['transmission'].value == 'Manual' )
        postevent('show_manual');
    else
        postevent('show_touchtronic');

    vmpWheels( d.wheels.value );
    
    if (d.winddeflector) vmpWinddeflector (d.winddeflector.value);
    // vmpTrimSplit (d.trimsplit.value)
    vmpRearlogo (d.rearlogo.value)
    vmpStoneguards (d.stoneguards.value)
    vmpGrille( d['grill'].value );
    vmpSteering ();

    vmpAudio(d.audio.value);
    vmpSills(d.alloysillplate.value);
    vmpExteriorMesh(d.exteriormesh.value);
    vmpClearLights(d.clearlights.value);
}



//-------------
// Do Grill Colour Anim
function vmpGrille ( code ) {
    if (code=='') {
        // standard grille
        vmpColourAnim ('#808080','GrilleColour');
    } else {
        // shiny grille
        vmpColourAnim ('#ececec','GrilleColour');
    }
}


function vmpAudio( code ) {
    if (code=='bang') { // bang olfensen
        postevent('audio_on');
        postevent('anim_speaker');
    } else {
        postevent('audio_off');
    }
}   

function vmpSills(checkbox) {
    if (checkbox == '') {   
        // defaults to grey
        vmpColourAnim ( '333333', 'SillColour' ) ;
    }
    else {  
        // checkbox ticked - silver
        vmpColourAnim ( 'ffffff', 'SillColour' ) ;
    }
}

function vmpExteriorMesh( checkbox ) {
    if (checkbox) { // on
        if (vmp) vmp.TriggerAnim('set_mesh_silver');
    }
    else {
        if (vmp) vmp.TriggerAnim('set_mesh_std');
    }
}

function vmpClearLights( checkbox ) {
    if (checkbox) { // on
        if (vmp) vmp.TriggerAnim('set_rearlights_clear');
    }
    else {
        if (vmp) vmp.TriggerAnim('set_rearlights_red');
    }
}

//--------------
// Change colour of steering wheel
//--------------
function vmpSteering() {

    var option = d["steeringchoice"].value ;

    if (option=='black') {
        vmpColourAnim (CHARCOAL,'SteeringColour');
    }
    else if (option=='colour') {
        vmpColourAnim ( d["steeringcolour_hexcode"].value, "SteeringColour" )
        //var hexcode = d["uppercolour_hexcode"].value
        //if (hexcode) vmpColourAnim (hexcode,'SteeringColour');
    }
}


//------
// swap wheels
//--- swap wheels
function vmpWheels ( code ) {
    
    switch (code) {
        case '10spoke' :
            vmpColourAnim ( 'a6a6a6', 'WheelColour',0.5 ) ;
            postevent('show_10spoke',0.5);
            break ;

        case '10spokegraphite' :
            vmpColourAnim ( '555555', 'WheelColour',0.5 ) ;
            postevent('show_10spoke',0.5);
            break ;

        case '20spoke' :
            postevent('show_20spoke',0.5);
            vmpColourAnim ( 'c6d6dc', 'WheelColour',0.5 ) ; // silver
            vmpColourAnim ( 'c6d6dc', 'WheelRimColour',0.5 ) ;
            break ;

        case '20spoke2tone' :
            postevent('show_20spoke',0.5);
            vmpColourAnim ( 'c6d6dc', 'WheelColour',0.5 ) ; // shiny wheel
            vmpColourAnim ( '555555', 'WheelRimColour',0.5 ) ;
            break ;

        case '5spoke' :
            postevent('show_5spoke',0.5);
            vmpColourAnim ( 'a6a6a6', 'WheelColour',0.5 ) ;
            break ;

    }       
}


//---------
// stoneguards
function vmpStoneguards ( code ) {
    if (code) {
        postevent('stoneguards_on');
        // triggeranim('anim_stoneguards_on');
    } else {
        postevent('stoneguards_off');
        // triggeranim('anim_stoneguards_off');
    }
}


//---------
// volante wind deflector
function vmpWinddeflector ( code ) {
    if (code) {
        postevent('winddeflector_on');
    } else {
        postevent('winddeflector_off');
    }
}


//---------
// rear logo
function vmpRearlogo ( code ) {
    if (code) {
        // checkbox ticked - turn off badge
        postevent('rearlogo_off');
    }
    else {
        // Yes = turn the badge on
        postevent('rearlogo_on');
    }
}



//-----------------
// click on a checkbox - do somthing
function setOption( option, value ) {
    switch (option) {

        case 'wheels' :
            d.wheels.value=value;
            carcookie.set('wheels',value);
            postevent('view_wheel_move');
            vmpWheels(value);
            break ;
    
        case 'audio' :  // radio choice
            d.audio.value=value;
            carcookie.set('audio',value);       
            vmpAudio(value);
            break;

        case 'alloysillplate' :
            d.alloysillplate.value=(value?'on':'');
            vmpSills(d.alloysillplate.value)
            carcookie.set('alloysillplate',d.alloysillplate.value);
            break ;

        case 'exteriormesh' :
            postevent('view_exteriormesh');
            d.exteriormesh.value=(value?'on':'');
            vmpExteriorMesh(d.exteriormesh.value);
            carcookie.set('exteriormesh',d.exteriormesh.value);
            break ;

        case 'clearlights' :
            postevent('view_rear');
            d.clearlights.value=(value?'on':'');
            vmpClearLights(d.clearlights.value);
            carcookie.set('clearlights',d.clearlights.value);
            break ;

        case 'luggage' :
            d.luggage.value=(value?'on':'');
            carcookie.set('luggage',d.luggage.value);
            break ;

        case 'protectivefilm' :
            d.protectivefilm.value=(value?'on':'');
            carcookie.set('protectivefilm',d.protectivefilm.value);
            break ;

        case 'stoneguards' :
            postevent('view_stoneguards');
            d.stoneguards.value=(value?'on':'');
            carcookie.set('stoneguards',d.stoneguards.value)
            vmpStoneguards (d.stoneguards.value)
            break ;

        case 'winddeflector' :
            postevent('view_winddeflector');
            d.winddeflector.value=(value?'on':'');
            carcookie.set('winddeflector',d.winddeflector.value)
            vmpWinddeflector (d.winddeflector.value)
            break ;

        case 'rearlogo' :
            postevent('view_rearlogo');
            d.rearlogo.value=(value?'off':'');
            carcookie.set('rearlogo',d.rearlogo.value)
            vmpRearlogo (d.rearlogo.value)
            break ;


        case 'tyrepressure' :
            d.tyrepressure.value=(value?'on':'');
            carcookie.set('tyrepressure',d.tyrepressure.value)
            postevent('view_wheel');
            break ;

        case 'parkingsensors' :
            postevent('view_grille');
            // postevent('view_rear');  // changed from rear sensors to front sensors
            d.parkingsensors.value=(value?'on':'');
            carcookie.set('parkingsensors',d.parkingsensors.value)
            break ;

        case 'grill' :
            postevent('view_grille');
            d.grill.value=(value?'on':'');
            carcookie.set('grill',d.grill.value)
            vmpGrille(d.grill.value);
            break ;
    }
}


//------------
// vmpSetColour
// called from colour blocks (COLS,LTHR,etc)
//-------------
function vmpSetColour ( sCol ) {
    switch (sCol) {
        case "brakecaliper" :
            vmpColourAnim ( d["brakecaliper_hexcode"].value, "CalipersColour" )
            break ;
        case "seatbelt" :
            vmpColourAnim ( d["seatbelt_hexcode"].value, "SeatbeltColour" )
            break ;
        case "doortrim" :
            vmpDoorTrim ( d["doortrim_cellid"].value ) ;
            break ;
        case "steeringcolour" :
            vmpColourAnim ( d["steeringcolour_hexcode"].value, "SteeringColour" )
            break ;
        case "veneer" :
            vmpVeneer ( d["veneer_cellid"].value ) ;
            break ;
        case "exteriorcolour":
            vmpColourAnim ( d["exteriorcolour_hexcode"].value, "ExteriorColour" )
            break ;
        case "interiorcolour":
            vmpInteriorColour ();
            break;
        case "uppercolour":
            vmpUpperColour ();
            break;
        case "lowercolour":
            vmpLowerColour ()
            break ;
        case "seatoutercolour":
            vmpColourAnim ( d["seatoutercolour_hexcode"].value, "RearseatColour" )
            vmpColourAnim ( d["seatoutercolour_hexcode"].value, "SeatOuterColour" )
            break ;
        case "seatinnercolour":
            vmpColourAnim ( d["seatinnercolour_hexcode"].value, "SeatInnerColour" )
            break ;
        case "carpetpipingcolour":
            vmpCarpetPiping ();
            // vmpColourAnim ( d["carpetpipingcolour_hexcode"].value, "CarpetPipingColour" )
            break ;
        case "carpetcolour":
            vmpColourAnim ( d["carpetcolour_hexcode"].value, "CarpetColour" )
            break ;
        case "headliningcolour":
            vmpColourAnim ( d["headliningcolour_hexcode"].value, "HeadliningColour" )
            break ;
        case "hoodcolour":
            if (d["hoodcolour_hexcode"]) vmpColourAnim ( d["hoodcolour_hexcode"].value, "HoodColour" )
            break ;
    }
}


//-------
// colour of carpet piping can match or contrast carpet
//-------
function vmpCarpetPiping () {

    var option = d['carpetpipingchoice'].value;
    if (option == 'match') {
        vmpColourAnim ( d['carpetcolour_hexcode'].value, 'CarpetPipingColour' )
    }
    else {
        vmpColourAnim ( d["carpetpipingcolour_hexcode"].value, "CarpetPipingColour" )
    }
}




function vmpVeneer ( code ) {
    switch (code) {
        case "veneer_w":
            triggeranim('texture_walnut');break;
        case "veneer_m":
            triggeranim('texture_mahogany');break;
        case "veneer_b":
            triggeranim('texture_bamboo');break;
        case "veneer_piano":
            triggeranim('texture_pianoblack');break;
        case "veneer_ash":
            triggeranim('texture_ash');break;
        default:  // mahogany = default
            triggeranim('texture_mahogany');break;
    }
}

function vmpDoorTrim ( code ) {
    switch (code) {
        case "doortrim_upper" :
            postevent('show_doortrim_leather');break;
        case "doortrim_w" :
            postevent('show_doortrim_veneer');triggeranim('doortrim_walnut');break;
        case "doortrim_m" :
            postevent('show_doortrim_veneer');triggeranim('doortrim_mahogany');break;
        case "doortrim_b" :
            postevent('show_doortrim_veneer');triggeranim('doortrim_bamboo');break;
        case "doortrim_piano" :
            postevent('show_doortrim_veneer');triggeranim('doortrim_pianoblack');break;
        case "doortrim_ash" :
            postevent('show_doortrim_veneer');triggeranim('doortrim_ash');break;
    }
}

//----
// check audio for conflicts with doortrim - called from audio page
//----
function checkAudio() {
    if (d.doortrim_cellid.value!='doortrim_upper' && d.audio.value=='bang') {
        // selected bang - conflicts with doortrim - set doortrim back to leather
        cellOn('doortrim_upper')
    }
}


//----
// check door trim - called from doortrim page
// possible conflicts with (i) audio (ii) facia trim
//----
function checkDoorTrim() {
    if (d.doortrim_cellid.value!='doortrim_upper' && d.audio.value=='bang') {
        // select doortrim veneer - conflicts with audio - turn audio back to std
        d.audio.value = '' ;
        setRadio ( document.frmConfig.audio, '' )
        postevent('audio_off');
    }
    checkVeneers(); 
}

//---
// do the door trim and veneer trim match?
//---
function checkVeneers() {

    var doorCode = d.doortrim_cellid.value;
    var veneerCode = d.veneer_cellid.value ;

    var okay = false ;
    if (doorCode=='doortrim_upper') okay = true;
    else if (doorCode=='doortrim_w' && veneerCode=='veneer_w') okay = true;
    else if (doorCode=='doortrim_m' && veneerCode=='veneer_m') okay = true;
    else if (doorCode=='doortrim_b' && veneerCode=='veneer_b') okay = true;
    else if (doorCode=='doortrim_piano' && veneerCode=='veneer_piano') okay = true;
    else if (doorCode=='doortrim_ash' && veneerCode=='veneer_ash') okay = true;

    if (!okay) {
        document.getElementById('colourwarning').innerHTML = "<span>Warning: You may only select one wood veneer</span>"
        document.getElementById('colourwarning').className = 'warning' ;
        document.getElementById('colourwarning').style.visibility = 'visible';
    } else {
        document.getElementById('colourwarning').style.visibility = 'hidden';
    }

}

//---------------
// Upper/Lower settings
// when the lower/upper colour is set, change these items


// At one point, we had a choice of trimsplit - Monotone / Duotone A / Duotone B
// different set of upper/lower for each
var upper_materials = new Array ( 'UpperStripColour', 'CowlingColour' , 'DoorTrim',  'RearUpperPanel', 'Parcelshelf' );
var lower_materials = new Array ( 'FaciaTopColour', 'FaciaUnderColour', 'ConsoleSidesColour', 'ConsoleLidColour', 'HandbrakeColour', 'UpperDoorPanel', 'LowerDoorPanel', 'RearLowerPanel','RearseatColour' );
// 'SeatInnerColour', 'SeatOuterColour',

function vmpLowerColour (  ) {
    var colname = d["lowercolour_name"].value
    var cellid  = d["lowercolour_cellid"].value
    var hexcode = d["lowercolour_hexcode"].value

    for (var i=0; i<lower_materials.length; i++) {
        vmpColourAnim ( hexcode, lower_materials[i] )
    }
}


// vmpUpperColour - set upper colour or monotone colour
function vmpUpperColour () {
    var colname = d["uppercolour_name"].value
    var cellid = d["uppercolour_cellid"].value
    var hexcode = d["uppercolour_hexcode"].value

    for (var i=0; i<upper_materials.length; i++) {
        vmpColourAnim ( hexcode, upper_materials[i] )
    }
    // change upper colour - check doortrim
    setDoorCell ();
}


function doTrimSplitMenus () {

    var code = d.trimsplit.value ;
    // and configurator menus
    if ( code == 'mono' ) {
        SetMenuBlock('l_uppercolour',0);
        SetMenuBlock('l_lowercolour',0);
        SetMenuBlock('l_seatouter',0);
        SetMenuBlock('l_seatinner',0);
        SetMenuBlock('l_interiorcolour',1);
    } else {
        SetMenuBlock('l_uppercolour',1);
        SetMenuBlock('l_lowercolour',1);
        SetMenuBlock('l_seatouter',1);
        SetMenuBlock('l_seatinner',1);
        SetMenuBlock('l_interiorcolour',0);
    }

}

//----------
// show or hide lots of menus depending on type of stitching selected
function doStitchingMenus ( ) {
    var code = d.stitchingchoice.value ;

    // show / hide configurator menus
    if (code=='match') {
        SetMenuBlock('st',0);
    }
    else {
        SetMenuBlock('st',1);
    }
/*
    if ( code == 'match' ) {
        SetMenuBlock('st_upper',0);
        SetMenuBlock('st_lower',0);
        SetMenuBlock('st_seatouter',0);
    }
    else {
        SetMenuBlock('st_upper',1);
        SetMenuBlock('st_lower',1);
        SetMenuBlock('st_seatouter',1);
    }
*/
}



function vmpTrimSplit ( ) {

    var code = d.trimsplit.value ;

    // set upper / lower materials
    if ( code == 'mono' ) {
        // monotone
        upper_materials = Array ('UpperStripColour', 'CowlingColour', 'DoorTrim', 'RearUpperPanel', 'Parcelshelf', 'FaciaTopColour', 'FaciaUnderColour', 'ConsoleSidesColour', 'ConsoleLidColour', 'HandbrakeColour', 'UpperDoorPanel', 'LowerDoorPanel', 'SeatInnerColour', 'SeatOuterColour', 'RearLowerPanel', 'RearseatColour');
        lower_materials = Array ();
    } //
    else if ( code == 'high' || code=='' ) {
        // seats are done separately - 'SeatInnerColour', 'SeatOuterColour', 'RearseatColour'
        upper_materials = Array ( 'UpperStripColour', 'CowlingColour' , 'DoorTrim',  'RearUpperPanel', 'Parcelshelf' );
        lower_materials = Array ( 'FaciaTopColour', 'FaciaUnderColour', 'ConsoleSidesColour', 'ConsoleLidColour', 'HandbrakeColour', 'UpperDoorPanel', 'LowerDoorPanel', 'RearLowerPanel' );
    }
    else if ( code == 'low' ) {
        upper_materials = Array ( 'UpperStripColour', 'CowlingColour' , 'FaciaTopColour', 'ConsoleLidColour', 'ConsoleSidesColour', 'DoorTrim',  'RearUpperPanel', 'Parcelshelf' );
        lower_materials = Array ( 'FaciaUnderColour', 'HandbrakeColour', 'UpperDoorPanel', 'LowerDoorPanel', 'RearLowerPanel' );
    }

    // update colours
    if ( code == 'mono' ) {
        vmpUpperColour () ;
    } else {
        vmpUpperColour ()
        vmpLowerColour ()
    }
}


//----------
//-- Limit number of colours available for car interior
// get all the leather colours, populate array lthColour with distinct interior colours
var SelectedColours = [] ;


function SetSelectedColours () {
    // called (i) when colourblock is initialised (SetupColourBlock)
    // (ii) when colour is changed (cellColourOn)

    // get all the leather items
    var debug = '' ;
    SelectedColours = [] ;

    // when checking for distinct leather colours, look at these
    switch (d.trimsplit.value) {
        case 'mono' :
            var leather_names = [ 'uppercolour' ];
            break ;

        case 'low' :
        case 'high' :
            var leather_names = [ 'uppercolour', 'lowercolour', 'seatoutercolour', 'seatinnercolour' ];
            break ;
    }

    if ( d.carpetpipingchoice && d.carpetpipingchoice.value == 'colour') {
        // add carpetpipingcolour to list
        leather_names.push ( 'carpetpipingcolour');
    }

    if ( d.steeringchoice && d.steeringchoice.value == 'colour') {
        // add steering trim to list
        leather_names.push ( 'steeringcolour');
    }

    for (var i=0; i<leather_names.length; i++) {
        if ( ! d[leather_names[i]+'_cellid'] ) continue ;
        var cellid = d[leather_names[i]+'_cellid'].value ;
        // get all the colour codes used
        if( !in_array(SelectedColours, cellid) ) {
            debug += leather_names[i] + ' = ' + cellid + "\n"
            SelectedColours.push(cellid);
            cellSelected( cellid );  // is this a selected leather colour elsewhere ?
        }
    }
    ShowColourWarning('LTH');
    // alert( debug );
}


// make sure user doesn't select both rearview mirror+garage and rearview mirror
function setRearviewOptions () {
    if (document.frmConfig.rearviewgarage) {
        d.rearviewgarage.value=(document.frmConfig.rearviewgarage.checked?'on':'');
    }
    if (document.frmConfig.rearview) {
        d.rearview.value=(document.frmConfig.rearview.checked?'on':'');
    }
}


//-------
// for doortrim, show box which matches upper colour
// called from vmpUpperColour and OnloadPage
function setDoorCell () {
    if (d && d.uppercolour_hexcode) {
        var hexcode = d.uppercolour_hexcode.value
        var el = document.getElementById( 'doortrim_upper' ) ;
        if (hexcode.indexOf('#')==0) hexcode = hexcode.substr(1,6)
        if (el && hexcode) el.style.backgroundColor = '#' + hexcode ;
    }
}


/* ========== OUTPUT CAR READY FOR PRINTING ============= */

function getCarDetails () {

    var cardetails = '\n<table cellpadding=4 cellspacing=0 border=0 id="cardetails" class="copy">';
    cardetails += '\n<tr><th>Vehicle Details</th><th style="text-align:right"><input type="image" src="images/bt_print.gif" value="Print" onclick="window.print()"></th></tr>';

    if ( d.bodystyle.value.toLowerCase() == 'coupe' )
        cardetails += '\n<tr><td colspan="2">DB9 Coupe</td></tr>' ;
    else
        cardetails += '\n<tr><td colspan="2">DB9 Volante</td></tr>' ;

    cardetails += '\n<tr><td>Country</td><td>' + d.country.value + '</td></tr>' ;
    cardetails += '\n<tr><td>Specification Date</td><td>' + d.date.value + '</td></tr>' ;

    if ( d.handofdrive.value == 'R' ) {
        cardetails += '\n<tr><td colspan=2>Right Hand Drive</td></tr>' ;
    } else {
        cardetails += '\n<tr><td colspan=2>Left Hand Drive</td></tr>' ;
    }

    if ( d.transmission.value == 'Manual' ) 
        cardetails += '\n<tr><td>Transmission</td><td>Manual</td></tr>' ;
    else
        cardetails += '\n<tr><td>Transmission</td><td>Touchtronic 2</td></tr>' ;


    //-- Exterior
    cardetails += '\n<tr><th colspan="2">Exterior Detailing</td></tr>' ;
    cardetails += '\n<tr><td>Car Body Colour</td><td>' + d.exteriorcolour_name.value + '</td></tr>' ;

    switch (d.wheels.value) {
        case '5spoke' :
            cardetails += '\n<tr><td>Car Wheels</td><td>Optional Sports Pack with Lightweight 5-Spoke Alloy Wheels</td></tr>' ;
            break ;
        case '10spoke' :
            cardetails += '\n<tr><td>Car Wheels</td><td>Standard 19" 10-Spoke Wheel</td></tr>' ;
            break ;
        case '10spokegraphite' :
            cardetails += '\n<tr><td>Car Wheels</td><td>Optional 19" 10-Spoke Wheel with Graphite Finish</td></tr>' ;
            break ;
        case '20spoke' :
            cardetails += '\n<tr><td>Car Wheels</td><td>Optional 19" 20-Spoke Diamond Turned Wheel</td></tr>' ;
            break ;
        case '20spoke2tone' :
            cardetails += '\n<tr><td>Car Wheels</td><td>Optional 19" 20-Spoke Diamond Turned Wheel (2-tone)</td></tr>' ;
            break ;
    }   
    cardetails += '\n<tr><td>Brake Calipers</td><td>' + d.brakecaliper_name.value + '</td></tr>' ;

    if ( d.hoodcolour_name.value != '' ) {
        cardetails += '\n<tr><td>Hood Colour</td><td>' + d.hoodcolour_name.value + fc(d.hoodcolour_menu.value) + '</td></tr>' ;
    }

    if ( d.grill.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Bright Finish Front Grille</td></tr>' ;
    }
    if ( d.exteriormesh.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Magnum Silver Mesh Pack</td></tr>' ;
    }
    if ( d.parkingsensors.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Delete Front Parking Sensors</td></tr>' ;
    }
    if ( d.protectivefilm.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Delete Protective Film</td></tr>' ;
    }
    if ( d.clearlights.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Clear Rear Lamps</td></tr>' ;
    }
    if ( d.rearlogo && d.rearlogo.value != '') {
        cardetails += '\n<tr><td colspan="2">Delete DB9 badge</td></tr>' ;
    }
    if ( d.stoneguards && d.stoneguards.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Stoneguards</td></tr>' ;
    }
    if ( d.winddeflector && d.winddeflector.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Wind Deflector</td></tr>' ;
    }

    //-- inside 
    cardetails += '\n<tr><th colspan="2">Interior Detailing</td></tr>' ;

    switch (d.trimsplit.value) {
        case 'mono' :
            cardetails += '\n<tr><td>Trim Split</td><td>Monotone</td></tr>' ;
            cardetails += '\n<tr><td>Interior Colour</td><td>' + d.uppercolour_name.value + fc(d.uppercolour_menu.value) + '</td></tr>' ;
            break ;
        case 'high' :
            cardetails += '\n<tr><td>Trim Split</td><td>High Split Line</td></tr>' ;
            cardetails += '\n<tr><td>Upper Environment Colour</td><td>' + d.uppercolour_name.value + fc(d.uppercolour_menu.value) + '</td></tr>' ;
            cardetails += '\n<tr><td>Lower Environment Colour</td><td>' + d.lowercolour_name.value + fc(d.lowercolour_menu.value) + '</td></tr>' ;
            cardetails += '\n<tr><td>Seat Outer Colour</td><td>' + d.seatoutercolour_name.value + fc(d.seatoutercolour_menu.value) + '</td></tr>' ;
            cardetails += '\n<tr><td>Seat Inner Colour</td><td>' + d.seatinnercolour_name.value + fc(d.seatinnercolour_menu.value) + '</td></tr>' ;
            break ;
        case 'low' :
            cardetails += '\n<tr><td>Trim Split</td><td>Low Split Line</td></tr>' ;
            cardetails += '\n<tr><td>Upper Environment Colour</td><td>' + d.uppercolour_name.value + fc(d.uppercolour_menu.value) + '</td></tr>' ;
            cardetails += '\n<tr><td>Lower Environment Colour</td><td>' + d.lowercolour_name.value + fc(d.lowercolour_menu.value) + '</td></tr>' ;
            cardetails += '\n<tr><td>Seat Outer Colour</td><td>' + d.seatoutercolour_name.value + fc(d.seatoutercolour_menu.value) + '</td></tr>' ;
            cardetails += '\n<tr><td>Seat Inner Colour</td><td>' + d.seatinnercolour_name.value + fc(d.seatinnercolour_menu.value) + '</td></tr>' ;
            break ;
    }

    switch (d.seatinnerchoice.value) {
        case 'plain' :
            cardetails += '\n<tr><td>Type of Seat Insert</td><td>Plain Leather</td></tr>' ;
            break ;
        case 'embossed' :
            cardetails += '\n<tr><td>Type of Seat Insert</td><td>Embossed Leather</td></tr>' ;
            break ;
        case 'perforated' :
            cardetails += '\n<tr><td>Type of Seat Insert</td><td>Perforated Leather</td></tr>' ;
            break ;
    }

    if ( d.stitchingchoice.value == 'match' ) {
        cardetails += '\n<tr><td>Fine Stitching</td><td>Match to leather</td></tr>' ;
    }
    else {
        cardetails += '\n<tr><td>Upper Environment Stitching Colour</td><td>' + d.stitchingupper_name.value + fc(d.stitchingupper_menu.value) + '</td></tr>' ;
        cardetails += '\n<tr><td>Lower Environment Stitching Colour</td><td>' + d.stitchinglower_name.value + fc(d.stitchinglower_menu.value) + '</td></tr>' ;
        cardetails += '\n<tr><td>Seat Stitching Colour</td><td>' + d.stitchingseatouter_name.value + fc(d.stitchingseatouter_menu.value) + '</td></tr>' ;
    }

    cardetails += '\n<tr><td>Carpet Colour</td><td>' + d.carpetcolour_name.value + fc(d.carpetcolour_menu.value) + '</td></tr>' ;
    if ( d.carpetpipingchoice.value == 'match' )
        cardetails += '\n<tr><td>Carpet Piping</td><td>Match to Carpet</td></tr>' ;
    else
        cardetails += '\n<tr><td>Carpet Piping</td><td>' + d.carpetpipingcolour_name.value + fc(d.carpetpipingcolour_menu.value) + '</td></tr>' ;

    cardetails += '\n<tr><td>Headlining Colour</td><td>' + d.headliningcolour_name.value + fc(d.headliningcolour_menu.value) + '</td></tr>' ;
    cardetails += '\n<tr><td>Seatbelts</td><td>' + d.seatbelt_name.value + '</td></tr>' ;
    cardetails += '\n<tr><td>Facia Trim</td><td>' + d.veneer_name.value + '</td></tr>' ;

    switch (d.steeringchoice.value) {
        case 'black' :
            cardetails += '\n<tr><td>Steering Wheel</td><td>Obsidian Leather</td></tr>' ;
            break ;
        case 'colour' :
            cardetails += '\n<tr><td>Steering Wheel</td><td>Obsidian and Colour Keyed Leather</td></tr>' ;
            cardetails += '\n<tr><td>Steering Wheel</td><td>' + d.steeringcolour_name.value + fc(d.steeringcolour_menu.value) + '</td></tr>' ;
            break ;
    }

    cardetails += '\n<tr><td>Door Trim</td><td>' + d.doortrim_name.value + '</td></tr>' ;

    // Standard Options
    cardetails += '\n<tr><th colspan="2">Standard Features</th></tr>' ;
    cardetails += '\n<tr><td colspan="2">Powerfold Mirrors</td></tr>' ;
    cardetails += '\n<tr><td colspan="2">Memory Seats and Mirrors</td></tr>' ;
    cardetails += '\n<tr><td colspan="2">Rear Parking Sensors</td></tr>' ;
    if (d.territory.value != 'J') {
        cardetails += '\n<tr><td colspan="2">Tyre Pressure Monitoring</td></tr>' ;
    }
    cardetails += '\n<tr><td colspan="2">Cruise Control</td></tr>' ;
    cardetails += '\n<tr><td colspan="2">Heated Front Seats</td></tr>' ;
    cardetails += '\n<tr><td colspan="2">Umbrella and Holder</td></tr>' ;
    cardetails += '\n<tr><td colspan="2">Satellite Navigation System</td></tr>' ;

    cardetails += '\n<tr><td colspan="2">MP3 Device Audio Connection</td></tr>' ;
    cardetails += '\n<tr><td colspan="2">Bluetooth Telephone System</td></tr>' ;

    cardetails += '\n<tr><th colspan="2">Options</th></tr>' ;

    if ( d.iplang.value != '' ) {
        cardetails += '\n<tr><td>Instrument Pack</td><td>' + d.iplang.value + '</td></tr>' ;
    }

    if ( d.handbooklang.value != '' ) {
        cardetails += '\n<tr><td>Handbook Language</td><td>' + d.handbooklang.value + '</td></tr>' ;
    }

    if ( d.sillmessage.value != '') {
        cardetails += '\n<tr><td>Personalised Sill Plaques</td><td>' + d.sillmessage.value + '</td></tr>' ;
    }
    if ( d.alloysillplate.value != '') {
        cardetails += '\n<tr><td colspan="2">Polished Alloy Tread Plates</td></tr>' ;
    }
    
    if ( d.audio.value == '') {
        cardetails += '\n<tr><td colspan="2">Aston Martin Premium Audio System (700W)</td></tr>' ;
    }
    else if ( d.audio.value == 'bang') {
        cardetails += '\n<tr><td colspan="2">Bang &amp; Olufsen BeoSound Audio System (1000W)</td></tr>' ;
    }

    if ( d.smoker.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Smoker\'s Pack - Ashtray and Cigar Lighter</td></tr>' ;
    }
    if ( d.alarm.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Alarm Upgrade (Volumetric and tilt sensor)</td></tr>' ;
    }
    if ( d.tracker.value != '' ) {
        cardetails += '<tr><td colspan="2">Aston Martin Tracking System</td></tr>'  ;
    }
    if ( d.firstaid.value != '' ) {
        cardetails += '\n<tr><td colspan="2">First Aid Kit</td></tr>' ;
    }
    if ( d.rearviewgarage.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Auto-Dimming Rear View Mirror with Garage Door Opener</td></tr>' ;
    }
    if ( d.rearview.value != '' ) {
        cardetails += '\n<tr><td colspan="2">Auto-Dimming Rear View Mirror</td></tr>' ;
    }

    if ( d.battery.value != '' ) {
        cardetails += '<tr><td colspan="2">Battery Conditioner</td></tr>' 
    }
    if ( d.luggage.value != '' ) {
        cardetails += '<tr><td>Luggage Set</td>' + d.luggage.value + '</td></tr>' 
    }
    if ( d.carcover.value != '' ) {
        cardetails += '<tr><td>Car Cover</td>' + d.carcover.value + '</td></tr>' 
    }

    cardetails += '\n</table>' ;

    cardetails += '\n<p>Please contact your <a href="http://www.astonmartin.com/contactus/dealerlocator">local Aston Martin dealer</a> for information on prices and availability.</p>' ;

    return cardetails ;
}


