(function($) {
  $(document).ready(function() {
    // append redundant select field for storing unavailable mealtime options
    $("#content").append("<select id='unavailableMeals'></select>");

    // set options for datepicker
    var opts = {
      formElements:{"q4547_q13":"d-sl-m-sl-Y"},
      finalOpacity:100,
      enabledDates:{}
    };
    // get open dates from openDates object and add to options for datepicker
    for (i=0;i<openDates.length;i++){
      var thisDate = openDates[i].date;
      opts.enabledDates[thisDate] = 1;
    };
console.log("enabledDates", opts.enabledDates);
    // add datepicker with specified options
    datePickerController.createDatePicker(opts);

    // if submitted form contains errors that need fixing, disable correct mealtimes
    setMealOptions();
    
    //  when the date field loses focus validate the dates and mealtimes
    $("#q4547_q13").blur(setMealOptions);

  });  
})(jQuery);

function setMealOptions(){
  if ($("#q4547_q13").attr("value") != ""){
    if($("#unavailableMeals option").length > 0){
      $("#unavailableMeals option").remove().appendTo("#q4547_q2");
    };
    $("#q4547_q2 option").removeAttr("disabled");
    var setDate = $("#q4547_q13").attr("value");
    var datePattern = new RegExp("[0123]\\d\x2F[01]\\d\x2F20[012]\\d");
    var dateArray = setDate.split("/");
    if ((datePattern.test(setDate)!=true) || (setDate.length != 10)){
      alert("Incorrect date format. \n Please enter the date in dd/mm/yyyy format or use the datepicker");
    } else {
      // reformat date for comparison with openDates json object
      var newDate = "";
      for (j=2;j>=0;j--){
        var thisDate = dateArray[j];
        newDate += thisDate;
      };
      // compare open dates from openDates object selected date
      var prOpen = false;
      for (i=0;i<openDates.length;i++){
        var thisDate = openDates[i].date;
        if (thisDate == newDate){
          // the restaurant is open on the selected date so disable mealtimes option if not available
          prOpen = true;
          if(openDates[i].lunch == false){
            $("#q4547_q2 option[value='Lunch']").removeAttr("selected").remove().appendTo("#unavailableMeals");

          };
          if(openDates[i].dinner == false){
            $("#q4547_q2 option[value='Dinner']").removeAttr("selected").remove().appendTo("#unavailableMeals");
          };
        };
      };
      if (prOpen == false){
        alert("The Palm Room is not open on " + setDate + ". Please choose another date.");
        $("#q4547_q13").attr("value","");
      };
    };
  };
} //end of setMealOptions
