$(document).ready(function () {

    //Profession drop down
    var select = $("select#ball_profession");
    //row with Grades drop down
    var target = $("select#ball_grades").closest("tr");
    //row with School name text box
    var secondrow = $("input#ball_schoolname").closest("tr");
    //Row with Where will next trip be drop down
    var thirdrow = $("select#ball_nexttrip").closest("tr");
    //Row with CST Teaching level dropdowns
    var CSTTarget = $("select#ball_level").closest("tr");

    //Hide rows that need to be shown later in certain circumstances
    target.hide();
    secondrow.hide();
    thirdrow.hide();
    CSTTarget.hide();

    //Set the professions drop down to show/hide school & grade info depending on selected value
    select.change(HandleProfessionChange);

    $("#ball_internationaldest").change(SetTravel);
    $("#ball_northamdest").change(SetTravel);

    function HandleProfessionChange() {
        var value = $(this).text();
        if (value.search(/[A-Za-z]+/) > -1) {
            SetSchoolInfo();
        } else if (value.search(/\d+/) > -1) {
            SetCSTInfo();
        }
    }

    //Set the Where You Will Travel Next drop down to show or hide
    function SetTravel() {

        var interSelectedArray = [];
        $("#ball_internationaldest option:selected").each(function () {
            interSelectedArray.push(this.value);
        });

        var naSelectedArray = [];
        $("#ball_northamdest option:selected").each(function () {
            naSelectedArray.push(this.value);
        });

        if (interSelectedArray.length > 0 && naSelectedArray.length > 0) {
            thirdrow.show();
        }
        else {
            thirdrow.hide();
        }
    }

    function SetSchoolInfo() {

        var values = $(['101622', '100558', '101630', '101591', '101599', '101589', '101590', '101587', '101608']);
        target.hide();
        CSTTarget.hide();

        var value = $("select#ball_profession option:selected").val();
        if (value == '101583') {
            target.hide();
            secondrow.show();
        } else if (values.index(value) > -1) {
            target.show();
            secondrow.show();
        } else {
            target.hide();
            secondrow.hide();
        }
    }

    function SetCSTInfo() {

        var values = $(['100558', '101630', '101622']);
        var secondValues = $(['101591', '101583', '101422', '105097']);
        target.hide();
        CSTTarget.hide();

        var value = $("select#ball_profession option:selected").val();
        if (values.index(value) > -1) {
            CSTTarget.show();
            secondrow.show();
        }

        else if (secondValues.index(value) > -1) {
            CSTTarget.hide();
            secondrow.show();

        } else {
            CSTTarget.hide();
            target.hide();
            secondrow.hide();
        }
    }


    SetTravel();
    SetSchoolInfo();
    SetCSTInfo();
});
