function validate(f) {
    if (f.cname.value == "") {
        alert('Please enter your name');
        f.cname.focus();
        return false;
    } else if (f.email.value == "") {
        alert('Please enter your email address');
        f.email.focus();
        return false;
    } else if (emailcheck(f.email.value) == false) {
        alert('Please enter a correct email address');
        f.email.focus();
        return false;
    } else if (f.phone.value == "") {
        alert('Please enter a contact telephone number');
        f.phone.focus();
        return false;
    } else if (f.findus.value == "") {
        alert('Please select how you found us');
        f.findus.focus();
        return false;
    } else if (f.testdrive.checked && f.testdrivemodel.value == "") {
        alert('Please select a model you would like to test drive');
        f.testdrivemodel.focus();
        return false;
    } else if (f.usedcar.checked && f.usedcarreg.value == "") {
            alert('Please enter the registration of the car you are interested in. If unknown, enter \"unknown\"');
            f.usedcarreg.focus();
        return false;
    } else if (f.mailinglist.checked && addresscheck(f) == false) {
        alert('Please enter your address, town, county and postcode');
        addressfocus(f);
        return false;
    } else if (f.brochure.checked && addresscheck(f) == false) {
        alert('Please enter your address, town, county and postcode');
        addressfocus(f);
        return false;
    } else if (f.brochure.checked && f.brochuremodel.value == "") {
        alert('Please select the model you would like a brochure on');
        f.brochuremodel.focus();
        return false;
    } else if (f.business.checked && f.ukfleet.checked && f.fleetsize.value == "") {
        alert('Please enter your fleet size');
        f.fleetsize.focus();
        return false;
    } else if (f.business.checked && f.interestvehicle.value == "") {
        alert('Please select the vehicle of interest');
        f.interestvehicle.focus();
        return false;
    } else if (f.enquiry.value == "" && !f.testdrive.checked && !f.usedcar.checked && !f.service.checked && !f.wintercheck.checked && !f.mailinglist.checked && !f.brochure.checked && !f.business.checked) {
        alert('Please leave a comment and/or select an option');
        return false;
    }
    return true;
}

function emailcheck(str) {
    var at = "@";
    var dot = ".";
    var lat = str.indexOf(at);
    var lstr = str.length;
    var ldot = str.indexOf(dot);
    
    if (str.indexOf(at) == -1) {
        return false;
    }

    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        return false;
    }

    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        return false;
    }

    if (str.indexOf(at,(lat+1)) != -1) {
        return false;
    }

    if (str.substring(lat-1,lat) == dot || str.substring(lat+1,lat+2) == dot) {
        return false;
    }

    if (str.indexOf(dot,(lat+2)) == -1) {
        return false;
    }

    if (str.indexOf(" ") != -1) {
        return false;
    }

    return true;
}

function addresscheck(f) {
    if (f.address.value == "") {
        return false;
    } else if (f.town.value == "") {
        return false;
    } else if (f.county.value == "") {
        return false;
    } else if (f.postcode.value == "") {
        return false;
    }
    return true;
}

function addressfocus(f) {
    if (f.address.value == "") {
        f.address.focus();
    } else if (f.town.value == "") {
        f.town.focus();
    } else if (f.county.value == "") {
        f.county.focus();
    } else {
        f.postcode.focus();
    }
}

function checkModel(chk, cmodel) {
    if (chk.checked) {
        document.getElementById(cmodel).disabled = false;
        document.getElementById(cmodel).focus();
    } else {
        document.getElementById(cmodel).selectedIndex = 0;
        document.getElementById(cmodel).disabled = true;
        chk.focus();
    }
}

function checkBusiness(chk, bopt) {
    if (chk.checked) {
        document.getElementById(bopt).style.display = "";
    } else {
        document.getElementById(bopt).style.display = "none";
    }
}

function checkFleet(chk) {
    if (chk.checked) {
        document.getElementById('fleetsize').disabled = false;
        document.getElementById('fleetcode').disabled = false;
        document.getElementById('fleetsize').focus();
    } else {
        document.getElementById('fleetsize').disabled = true;
        document.getElementById('fleetcode').disabled = true;
    }
}

function checkText(chk, cmodel) {
    if (chk.checked) {
        document.getElementById(cmodel).disabled = false;
        document.getElementById(cmodel).focus();
    } else {
        document.getElementById(cmodel).disabled = true;
        chk.focus();
    }
}

var params = new Array();

function preSelectOptions() {
    var opt;
    var model;
    var query = '' + this.location;
    query = query.substring((query.indexOf('?')) + 1);
    if (query.length < 1) { return; }

    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        params[pair[0]] = pair[1];
    }

    selectcheck = document.getElementById(params["opt"]);
    if (selectcheck && selectcheck.type == "checkbox") {
        selectcheck.checked = true;
        // if the query is for a test drive - enable the select element
        if (params["opt"] == "testdrive") {
            checkModel(selectcheck, 'testdrivemodel');
            selectModelOption(document.getElementById("testdrivemodel"));
        } else if (params["opt"] == "brochure") {
            checkModel(selectcheck, 'brochuremodel');
            selectModelOption(document.getElementById("brochuremodel"));
        } else if (params["opt"] == "business") {
            checkBusiness(selectcheck, 'businessoptions');
        } else if (params["opt"] == "usedcar") {
            checkText(selectcheck, 'usedcarreg');
            if (params["reg"] != null) {
                document.getElementById("usedcarreg").value = params["reg"];
            }
        }
    }
}

function selectModelOption(selModel) {
    if (params["model"]) {
        var si = -1;
        for (var i = 0; i < selModel.options.length; i++) {
            if (selModel.options[i].value == unescape(params["model"])) {
                si = i;
                break;
            }
        }
        selModel.selectedIndex = si;
    }
}

var thedetails = new Array('oilandfilterdetail','minorservice1detail','minorservice2detail','fullservicedetail');
function showDetails(link, idname) {
    if (document.getElementById(idname)) {
        var ele = document.getElementById(idname);
        if (ele.style.display == "none") {
            ele.style.display = "";
            link.title = "Hide Details";
            //alert(lastOpened);
        } else {
            ele.style.display = "none";
            link.title = "Show Details";
        }
    }
    // hide last open list item
    for(var i=0;i<thedetails.length;i++){
        if(thedetails[i] != idname){
            var ele = document.getElementById(thedetails[i]);
            ele.style.display = "none";
            link.title = "Show Details";
        }
    }
}