var error = false;
var errorMessage = "Please complete the mandatory fields highlighted";

function contactMethod() {
    var email = document.getElementById('email').value;
    var phone = document.getElementById('phone').value;
    var address1 = document.getElementById('address1').value;
    var address2 = document.getElementById('address2').value;
    var address3 = document.getElementById('address3').value;
    var address4 = document.getElementById('address4').value;
    var postcode = document.getElementById('postcode').value;
    var howcontact = document.getElementById('howcontact').value;

    if (howcontact == "By post") {
        if (address1.length < 1) {
            document.getElementById('address1').className = "mandatory";
            error = true;
        } else {
            document.getElementById('address1').className = "";
        }
        if (address2.length < 1) {
            document.getElementById('address2').className = "mandatory";
            error = true;
        } else {
            document.getElementById('address2').className = "";
        }
        if (postcode.length < 1) {
            document.getElementById('postcode').className = "mandatory";
            error = true;
        } else {
            document.getElementById('postcode').className = "";
        }
    } else {
        document.getElementById('address1').className = "";
        document.getElementById('address2').className = "";
        document.getElementById('postcode').className = "";
    }
    if (howcontact == "By email") {
        if (email.length < 1) {
            document.getElementById('email').className = "mandatory";
            error = true;
        } else {
            document.getElementById('email').className = "";
        }
    } else {
        document.getElementById('email').className = "";
    }
    if (howcontact == "By telephone") {
        if (email.length < 1) {
            document.getElementById('phone').className = "mandatory";
            error = true;
        } else {
            document.getElementById('phone').className = "";
        }
    } else {
        document.getElementById('phone').className = "";
    }
}

function brochureValidator() {
    error = false;
    var firstname = document.getElementById('firstname').value;
    var surname = document.getElementById('surname').value;
    var address1 = document.getElementById('address1').value;
    var address2 = document.getElementById('address2').value;
    var postcode = document.getElementById('postcode').value;

    if (firstname.length < 1) {
        document.getElementById('firstname').className = "mandatory";
        error = true;
    } else {
        document.getElementById('firstname').className = "";
    }
    if (surname.length < 1) {
        document.getElementById('surname').className = "mandatory";
        error = true;
    } else {
        document.getElementById('surname').className = "";
    }
    if (address1.length < 1) {
        document.getElementById('address1').className = "mandatory";
        error = true;
    } else {
        document.getElementById('address1').className = "";
    }
    if (address2.length < 1) {
        document.getElementById('address2').className = "mandatory";
        error = true;
    } else {
        document.getElementById('address2').className = "";
    }
    if (postcode.length < 1) {
        document.getElementById('postcode').className = "mandatory";
        error = true;
    } else {
        document.getElementById('postcode').className = "";
    }

    if (error == true) {
        alert(errorMessage);
        return false;
    }
}

function contactValidator() {
    error = false;
    var firstname = document.getElementById('firstname').value;
    var surname = document.getElementById('surname').value;

    if (firstname.length < 1) {
        document.getElementById('firstname').className = "mandatory";
        error = true;
    } else {
        document.getElementById('firstname').className = "";
    }
    if (surname.length < 1) {
        document.getElementById('surname').className = "mandatory";
        error = true;
    } else {
        document.getElementById('surname').className = "";
    }

    contactMethod();

    if (error == true) {
        alert(errorMessage);
        return false;
    }
}

function bookingValidator() {
    error = false;
    var firstname = document.getElementById('firstname').value;
    var surname = document.getElementById('surname').value;
    var accommodation = document.getElementById('accommodation').value;
    var rooms = document.getElementById('rooms').value;
    var roomtype = document.getElementById('roomtype').value;
    var people = document.getElementById('people').value;
    var nights = document.getElementById('nights').value;
    var dep_date = document.getElementById('dep_date').value;

    if (firstname.length < 1) {
        document.getElementById('firstname').className = "mandatory";
        error = true;
    } else {
        document.getElementById('firstname').className = "";
    }
    if (surname.length < 1) {
        document.getElementById('surname').className = "mandatory";
        error = true;
    } else {
        document.getElementById('surname').className = "";
    }

    contactMethod();

    if (accommodation.length < 1) {
        document.getElementById('accommodation').className = "mandatory";
        error = true;
    } else {
        document.getElementById('accommodation').className = "";
        document.getElementById('rooms').className = "";
        document.getElementById('roomtype').className = "";

        if (document.getElementById('rooms').disabled == false && document.getElementById('roomtype').disabled == false) {
            if (rooms.length < 1) {
                document.getElementById('rooms').className = "mandatory";
                error = true;
            } else {
                document.getElementById('rooms').className = "";
            }
            if (roomtype.length < 1) {
                document.getElementById('roomtype').className = "mandatory";
                error = true;
            } else {
                document.getElementById('roomtype').className = "";
            }
        }
    }
    if (dep_date.length < 1 || dep_date == "dd-mm-yyyy") {
        document.getElementById('dep_date').className = "mandatory";
        error = true;
    } else {
        document.getElementById('dep_date').className = "";
    }
    if (people.length < 1) {
        document.getElementById('people').className = "mandatory";
        error = true;
    } else {
        document.getElementById('people').className = "";
    }
    if (nights.length < 1) {
        document.getElementById('nights').className = "mandatory";
        error = true;
    } else {
        document.getElementById('nights').className = "";
    }

    if (error == true) {
        alert(errorMessage);
        return false;
    }
}

function flightsValidator() {
    error = false;
    var firstname = document.getElementById('firstname').value;
    var surname = document.getElementById('surname').value;
    var dep_airport = document.getElementById('dep_airport').value;
    var arr_airport = document.getElementById('arr_airport').value;
    var dep_date = document.getElementById('dep_date').value;
    var passengers = document.getElementById('passengers').value;
    var nights = document.getElementById('nights').value;
    var ret_flight = document.getElementById('ret_flight').value;

    if (firstname.length < 1) {
        document.getElementById('firstname').className = "mandatory";
        error = true;
    } else {
        document.getElementById('firstname').className = "";
    }
    if (surname.length < 1) {
        document.getElementById('surname').className = "mandatory";
        error = true;
    } else {
        document.getElementById('surname').className = "";
    }
    if (dep_airport.length < 1) {
        document.getElementById('dep_airport').className = "mandatory";
        error = true;
    } else {
        document.getElementById('dep_airport').className = "";
    }
    if (arr_airport.length < 1) {
        document.getElementById('arr_airport').className = "mandatory";
        error = true;
    } else {
        document.getElementById('arr_airport').className = "";
    }
    if (dep_date.length < 1 || dep_date == "yyyy-mm-dd") {
        document.getElementById('dep_date').className = "mandatory";
        error = true;
    } else {
        document.getElementById('dep_date').className = "";
    }
    if (passengers.length < 1) {
        document.getElementById('passengers').className = "mandatory";
        error = true;
    } else {
        document.getElementById('passengers').className = "";
    }
    if (nights.length < 1) {
        document.getElementById('nights').className = "mandatory";
        error = true;
    } else {
        document.getElementById('nights').className = "";
    }
    if (ret_flight.length < 1) {
        document.getElementById('ret_flight').className = "mandatory";
        error = true;
    } else {
        document.getElementById('ret_flight').className = "";
    }

    contactMethod();

    if (error == true) {
        alert(errorMessage);
        return false;
    }
}

function quoteValidator() {
    error = false;
    var firstname = document.getElementById('firstname').value;
    var surname = document.getElementById('surname').value;

    if (firstname.length < 1) {
        document.getElementById('firstname').className = "mandatory";
        error = true;
    } else {
        document.getElementById('firstname').className = "";
    }
    if (surname.length < 1) {
        document.getElementById('surname').className = "mandatory";
        error = true;
    } else {
        document.getElementById('surname').className = "";
    }

    contactMethod();

    if (error == true) {
        alert(errorMessage);
        return false;
    }
}

function checkSubFields() {
    var accomType = document.getElementById('accommodation').value;
    if (accomType == "Apartment" || accomType == "Villa") {
        document.getElementById('rooms').disabled = false;
        document.getElementById('roomtype').disabled = false;
    } else {
        document.getElementById('rooms').disabled = true;
        document.getElementById('roomtype').disabled = true;
    }
}