$(document).ready(function(){

  /*******************************************************/
  // Die Datepickers
  /*******************************************************/
  $("#start_date").datepicker(
    {
      showOn: 'button',
      buttonImage: '/typo3conf/ext/langcourses/res/calendar.gif',
      buttonImageOnly: true,
      firstDay: 1,
      onSelect: function(dateText, inst) {
        bookingDay = new Date(inst['currentYear'],inst['currentMonth'],inst['currentDay']);
        currentWeekDay = bookingDay.getDay();
        choosedDay = bookingDay.getTime();
        montag = choosedDay - ((currentWeekDay-1) * 24 * 60 * 60 * 1000 )
        bookingDay.setTime(montag);
        var Jahr = bookingDay.getFullYear();
        var Monat = bookingDay.getMonth() + 1;
        var Tag = bookingDay.getDate();
        monday = Tag+'.'+Monat+'.'+Jahr
        $(this).datepicker( 'setDate' , bookingDay )
      }
  });

  $("#arrival").datepicker(
    {
      showOn: 'button',
      buttonImage: '/typo3conf/ext/langcourses/res/calendar.gif',
      buttonImageOnly: true,
      firstDay: 1
  });

  /*******************************************************/
  // Die Sliders
  /*********************************************************/
  var course_weeks = $("#course_weeks").val();
  if(course_weeks=="")
    var course_weeks = 2;
  course_weeks = parseInt(course_weeks);

  $("#course_weeks-slider").slider({
    range: "max",
    min: 1,
    max: 12,
    value: course_weeks,
    slide: function(event, ui) {
      $("#course_weeks").val(ui.value);
      course_weeks = parseInt($("#course_weeks").val());
    testWorkshop1();
    testWorkshop2();
    testWorkshop3();
    }
  });
  $("#course_weeks").val(course_weeks);
  $("#course_weeks").attr("readonly","readonly");

  //Jetzt brauchen wir die Kurswochen
  $('#course_weeks').change(function(){
    course_weeks = parseInt($(this).val());
    testWorkshop1();
    testWorkshop2();
    testWorkshop3();

  });

  var hotel_weeks = $("#hotel_weeks").val();
  if(hotel_weeks=="")
    var hotel_weeks = 2;
  $("#hotel_weeks-slider").slider({
    range: "max",
    min: 1,
    max: 14,
    value: hotel_weeks,
    slide: function(event, ui) {
      $("#hotel_weeks").val(ui.value);
    }
  });
  $("#hotel_weeks").val(hotel_weeks);
  $("#hotel_weeks").attr("readonly","readonly");

  /*******************************************************/
  // Unterkunft
  /*******************************************************/
  $("#accomodationcheck").change(function (){
    if($(this).attr('checked')!=""){
      $("#accomodation").slideDown('slow');
      $("#accomodation input").removeAttr('disabled');
    }else{
      $("#accomodation").slideUp('slow');
      $("#accomodation input").attr('disabled','disabled');
    }
  });

  // Der Formularteil zur Unterkunft wird erstmal ausgeblendet
  if($('#accomodationcheck').attr('checked')==false)
    $("#accomodation").hide();

    /*******************************************************/
  // Workshops
  /*********************************************************/
  /*if($('#workshop1').val()!=false){
    workshop1_weeks = parseInt($('#workshop1').val().split('_')[1]);
    $("#workshops").show();
    $("#workshop1").removeAttr("disabled");
  }else{
    workshop1_weeks = 0;
    $("#workshops").hide();
    $("#workshop1").attr("disabled","disabled");
  }
  if($('#workshop2').val()!=false){
    workshop2_weeks = parseInt($('#workshop2').val().split('_')[1]);
    $("#second-workshop").show();
    $("#workshop2").removeAttr("disabled");
  }else{
    workshop2_weeks = 0;
    $("#second-workshop").hide();
    $("#workshop2").attr("disabled","disabled");
  }
  if($('#workshop3').val()!=false){
    workshop3_weeks = parseInt($('#workshop3').val().split('_')[1]);
    $("#third-workshop").show();
    $("#workshop3").removeAttr("disabled");
  }else{
    workshop3_weeks = 0;
    $("#third-workshop").hide();
    $("#workshop3").attr("disabled","disabled");
  }*/


  if($("#courseselect").val()>0 && course_weeks>0){
    $("#workshops").show();
    $("#workshop1").removeAttr("disabled");
  }

  //Wird ein Kurs ausgewählt, dann darf auch der erste Workshop ausgewählt werden
  $("#courseselect").change(function (){
    if(parseInt($(this).val())>0)
      $("#workshops").slideDown('slow');
      $("#workshop1").removeAttr("disabled");
  });


  $("#workshop1").change(function (){
    workshop1_weeks = parseInt($(this).val().split('_')[1]);
    if($(this).val()!=0){
      if(course_weeks < workshop1_weeks){
        showError("#first-workshop",'Zu wenig Wochen');
        testWorkshop2();
        testWorkshop3();
      }else{
        removeError("#first-workshop");
      }

      if(course_weeks > workshop1_weeks){
        $("#second-workshop").slideDown('slow');
        $("#workshop2").removeAttr("disabled");
      }
    }
  });

  $("#workshop2").change(function (){
    workshop2_weeks = parseInt($(this).val().split('_')[1]);
      if(course_weeks < (workshop2_weeks + workshop1_weeks)){
        showError("#second-workshop",'Zu wenig Wochen');
      }else{
        removeError("#second-workshop");
      }

      if(course_weeks > (workshop1_weeks + workshop2_weeks)){
        testWorkshop3();
      }
  });

    $("#workshop3").change(function (){
      workshop3_weeks = parseInt($(this).val().split('_')[1]);
      if(course_weeks < (workshop1_weeks + workshop2_weeks + workshop3_weeks)){
        showError("#third-workshop",'Zu wenig Wochen');
      }else{
        removeError("#third-workshop");
      }
  });

  if($('#courseselect').val()>0){
    $("#workshops").show();
    $("#workshop1").removeAttr("disabled");
  }
  if($('#workshop1').val()>0){
    $("#second-workshop").show();
    $("#workshop2").removeAttr("disabled");
  }
  if($('#workshop2').val()>0){
    $("#third-workshop").show();
    $("#workshop3").removeAttr("disabled");
  }

  //Workshop 1 wird angezeigt, wenn ein Kurs ausgewählt wurde und mind. eine Kurswoche
  function testWorkshop1(){
    if(parseInt($('#courseselect').val())>0 && course_weeks>0){
      $("#workshops").show();
      $("#workshop1").removeAttr("disabled");
    }else{
      $("#workshops").slideUp('slow');
      $("#workshop1").val('0');
      workshop1_weeks = 0;
      $("#workshop1").attr("disabled","disabled");
    }
    if(course_weeks < workshop1_weeks){
      showError("#first-workshop",'Zu wenig Wochen');
      testWorkshop2();
      testWorkshop3();
    }else{
      removeError("#first-workshop");
    }
  }

  //Workshop 2 wird angezeigt, wenn ein Kurs ausgewählt wurde, mind. eine Kurswoche und Workshop1
  function testWorkshop2(){
    /* Wann soll der Workshop angezeigt werden?
     * - Wenn Kurs gewählt wurde
     * - Wenn Workshop1 gewählt wurde
     * - Wenn die Anzahl der Kurswochen weitere Workshops zulassen
    */
    //console.log("Workshop 2:" + course_weeks+" >= "+(workshop1_weeks + workshop2_weeks + workshop3_weeks));
    if(
      parseInt($('#courseselect').val())>0 && course_weeks>0 &&
      ($("#workshop1").val()!="" && parseInt($("#workshop1").val())!=0) &&
      (
        (workshop2_weeks == 0 && course_weeks > workshop1_weeks) ||
        (workshop2_weeks > 0 && course_weeks >= (workshop1_weeks + workshop2_weeks))
      )
    ){
      $("#second-workshop").slideDown('slow');
      $("#workshop2").removeAttr("disabled");
    }else{
      $("#second-workshop").slideUp('slow');
      $("#workshop2").val('0');
      workshop2_weeks = 0;
      $("#workshop2").attr("disabled","disabled");
    }
  }

    //Workshop 3 wird angezeigt, wenn ein Kurs ausgewählt wurde, mind. eine Kurswoche und Workshop1
  function testWorkshop3(){
    /* Wann soll der Workshop angezeigt werden?
     * - Wenn Kurs gewählt wurde
     * - Wenn Workshop1 & Workshop2 gewählt wurde
     * - Wenn die Anzahl der Kurswochen weitere Workshops zusassen oder
     * - Wenn Workshop1, Workshop2 & Workshop3 gewählt sind und niedriger/gleich den Kurswochen sind
    */
    if(
       parseInt($('#courseselect').val())>0 && course_weeks>0 &&
       (
        ($("#workshop1").val()!="" && parseInt($("#workshop1").val())!=0) &&
        ($("#workshop2").val()!="" && parseInt($("#workshop2").val())!=0)
       ) && (
       (workshop3_weeks == 0 && course_weeks > (workshop1_weeks + workshop2_weeks)) ||
       (workshop3_weeks > 0 && course_weeks >= (workshop1_weeks + workshop2_weeks + workshop3_weeks))
      )){
      $("#third-workshop").slideDown('slow');
      $("#workshop3").removeAttr("disabled");
    }else{
      $("#third-workshop").slideUp('slow');
      $("#workshop3").val('0');
      workshop3_weeks = 0;
      $("#workshop3").attr("disabled","disabled");
    }
  }

  function showError(id,message){
    $(id).addClass("error");
    $(id + " strong").remove();
    $(id).prepend( $('<strong class="message">'+message+'</strong>' ));
  }

  function removeError(id){
    $(id).removeClass("error");
    $(id + " strong").remove();
  }

  //Initialisierung
  $('#workshop1').each(function (i) {
    workshop1_weeks = 0;
    if($('#workshop1').val()!=false || parseInt($('#workshop1').val())>0) workshop1_weeks = parseInt($('#workshop1').val().split('_')[1]);
    workshop2_weeks = 0;
    if($('#workshop2').val()!=false || parseInt($('#workshop2').val())>0) workshop2_weeks = parseInt($('#workshop2').val().split('_')[1]);
    workshop3_weeks = 0;
    if($('#workshop3').val()!=false || parseInt($('#workshop3').val())>0) workshop3_weeks = parseInt($('#workshop3').val().split('_')[1]);
    //console.log(workshop1_weeks + " "+workshop2_weeks +" "+ workshop3_weeks);
    testWorkshop1();
    testWorkshop2();
    testWorkshop3();
  });

  //Ich bekomms mit TYPOSCRIPT nicht hin
  $('#mailform').addClass('yform');
});