$(function()
{
  $('.geboortedatum').datePicker    ( { clickInput:false, startDate: '01/01/1900', endDate: (new Date()).asString(), month:0, year:1980 });
  $('.in_dienst_sinds').datePicker  ( { clickInput:false, startDate: '01/01/1970', endDate: (new Date()).asString(), month:0, year:2000 });
  $('.bepaalde_tijd_tot').datePicker( { clickInput:false, startDate: '01/01/1970', endDate: '01/01/2170' });
  $('.onderhandse_lening_ja_ingangsdatum').datePicker    ( { clickInput:false, startDate: '01/01/1900', endDate: '01/01/2170' });
  $('.loonbeslag_ja_tot').datePicker    ( { clickInput:false, startDate: '01/01/1900', endDate: '01/01/2170' });
    
jQuery.validator.addMethod("NLMoney", function(value, element) {
    return this.optional(element) || /^(\d{1,6})(\,\d{1,2})?$/.test(value);
});
jQuery.validator.addMethod("NLDate", function(value, element) {
    return this.optional(element) || /^\d{2}[\/]\d{2}[\/]\d{4}$/.test(value);
});
  
  // validate signup form on keyup and submit
  $("#formulier").validate({
    rules: {
      naam_werkgever: "required",
      adres_werkgever: "required",
      postcode_werkgever: "required",
      woonplaats_werkgever: "required",
      aanspreekvorm: "required",
      naam_werknemer: "required",
      adres_werknemer: "required",
      postcode_werknemer: "required",
      woonplaats_werknemer: "required",
      proeftijd: "required",
      geboortedatum: { required: true, NLDate: true },
      in_dienst_sinds: { required: true, NLDate: true },
      functie: "required",
      type_dienstverband: "required",
      dienstverband_eindigt: "required",
      bepaalde_tijd_toelichting: { required: false, NLDate: true },
      directeur_aandeelhouder: "required",
      bruto_jaarsalaris:         { NLMoney:true },
      vakantietoeslag:           { NLMoney:true },
      onregelmatigheidstoeslag:  { NLMoney:true },
      vaste_13e_maand:           { NLMoney:true },
      provisie:                  { NLMoney:true },
      overwerk:                  { NLMoney:true },
      overig:                    { NLMoney:true },
      onderhandse_lening: "required",
      onderhandse_lening_ja_ingangsdatum: { required: false, NLDate: true },
      onderhandse_lening_ja_hoofdsom: { NLMoney:true },
      onderhandse_lening_ja_looptijd: { digits: true, range: [0, 1000] },
      onderhandse_lening_ja_jaarlast: { NLMoney:true },
      loonbeslag: "required",
      loonbeslag_ja_tot: { required: false, NLDate: true },
      loonbeslag_ja_per_maand: { NLMoney:true },
      topic: "required"
    },
    messages: {
      naam_werkgever: "Verplicht",
      adres_werkgever: "Verplicht",
      postcode_werkgever: "Verplicht",
      woonplaats_werkgever: "Verplicht",
      aanspreekvorm: "Verplicht",
      naam_werknemer: "Verplicht",
      adres_werknemer: "Verplicht",
      postcode_werknemer: "Verplicht",
      woonplaats_werknemer: "Verplicht",
      proeftijd: "Verplicht",
      geboortedatum: "Kies een geldige datum",
      in_dienst_sinds: "Kies een geldige datum",
      functie: "Verplicht",
      type_dienstverband: "Verplicht",
      dienstverband_eindigt: "Verplicht",
      bepaalde_tijd_toelichting: "<nobr>Kies een geldige datum</nobr>",
      directeur_aandeelhouder: "Verplicht",
      bruto_jaarsalaris:         "Vul een geldig bedrag in",
      vakantietoeslag:           "Vul een geldig bedrag in",
      onregelmatigheidstoeslag:  "Vul een geldig bedrag in",
      vaste_13e_maand:           "Vul een geldig bedrag in",
      provisie:                  "Vul een geldig bedrag in",
      overwerk:                  "Vul een geldig bedrag in",
      overig:                    "Vul een geldig bedrag in",
      onderhandse_lening: "Verplicht",
      onderhandse_lening_ja_ingangsdatum: "<nobr>Kies een geldige datum</nobr>",
      onderhandse_lening_ja_hoofdsom: "Vul een geldig bedrag in",
      onderhandse_lening_ja_looptijd: "Vul een geldig getal in",
      onderhandse_lening_ja_jaarlast: "Vul een geldig bedrag in",
      loonbeslag: "Verplicht",
      loonbeslag_ja_tot: "<nobr>Kies een geldige datum</nobr>",
      loonbeslag_ja_per_maand: "Vul een geldig bedrag in",
      topic: "Verplicht"
    }
  });

  var topics = $("#dienstverband_eindigt_ja_topics")[$("#dienstverband_eindigt_ja").is(":checked") ? "removeClass" : "addClass"]("gray");
  var topicInputs = topics.find("input").attr("disabled", !$("#dienstverband_eindigt_ja").is(":checked"));
  $("#dienstverband_eindigt_ja").click(function() {
    topics[this.checked ? "removeClass" : "addClass"]("gray");
    topicInputs.attr("disabled", !this.checked);
  });
  $("#dienstverband_eindigt_nee").click(function() {
    topics[this.checked ? "addClass" : "removeClass"]("gray");
    topicInputs.attr("disabled", this.checked);
  });

  var topics2 = $("#proeftijd_ja_topics")[$("#proeftijd_ja").is(":checked") ? "removeClass" : "addClass"]("gray");
  var topicInputs2 = topics2.find("input").attr("disabled", !$("#proeftijd_ja").is(":checked"));
  $("#proeftijd_ja").click(function() {
    topics2[this.checked ? "removeClass" : "addClass"]("gray");
    topicInputs2.attr("disabled", !this.checked);
  });
  $("#proeftijd_nee").click(function() {
    topics2[this.checked ? "addClass" : "removeClass"]("gray");
    topicInputs2.attr("disabled", this.checked);
  });

  var topics3 = $("#bepaalde_tijd_topics")[$("#type_dienstverband_bepaalde_tijd").is(":checked") ? "removeClass" : "addClass"]("gray");
  var topicInputs3 = topics3.find("input").attr("disabled", !$("#type_dienstverband_bepaalde_tijd").is(":checked"));
  var topicsvoortzettingdienstverband = $("#voortzettingdienstverband")[$("#type_dienstverband_bepaalde_tijd").is(":checked") ? "removeClass" : "addClass"]("gray");
  $("#type_dienstverband_bepaalde_tijd").click(function() {
    topicsvoortzettingdienstverband[this.checked ? "removeClass" : "addClass"]("gray");
    topics3[this.checked ? "removeClass" : "addClass"]("gray");
    topicInputs3.attr("disabled", !this.checked);
  });
  $("#type_dienstverband_onbepaalde_tijd").click(function() {
    topicsvoortzettingdienstverband[this.checked ? "addClass" : "addClass"]("gray");
    topics3[this.checked ? "addClass" : "removeClass"]("gray");
    topicInputs3.attr("disabled", this.checked);
  });
  $("#type_dienstverband_flexibele_arbeidsrelatie").click(function() {
    topicsvoortzettingdienstverband[this.checked ? "addClass" : "addClass"]("gray");
    topics3[this.checked ? "addClass" : "removeClass"]("gray");
    topicInputs3.attr("disabled", this.checked);
  });
  
  var topics4 = $("#flexibele_arbeidsrelatie_topics")[$("#type_dienstverband_flexibele_arbeidsrelatie").is(":checked") ? "removeClass" : "addClass"]("gray");
  var topicInputs4 = topics4.find("input").attr("disabled", !$("#type_dienstverband_flexibele_arbeidsrelatie").is(":checked"));
  $("#type_dienstverband_bepaalde_tijd").click(function() {
    topics4[this.checked ? "addClass" : "removeClass"]("gray");
    topicInputs4.attr("disabled", this.checked);
  });
  $("#type_dienstverband_onbepaalde_tijd").click(function() {
    topics4[this.checked ? "addClass" : "removeClass"]("gray");
    topicInputs4.attr("disabled", this.checked);
  });
  $("#type_dienstverband_flexibele_arbeidsrelatie").click(function() {
    topics4[this.checked ? "removeClass" : "addClass"]("gray");
    topicInputs4.attr("disabled", !this.checked);
  });
  
  var topics5 = $("#onderhandse_lening_ja_topics")[$("#onderhandse_lening_ja").is(":checked") ? "removeClass" : "addClass"]("gray");
  var topicInputs5 = topics5.find("input").attr("disabled", !$("#onderhandse_lening_ja").is(":checked"));
  $("#onderhandse_lening_ja").click(function() {
    topics5[this.checked ? "removeClass" : "addClass"]("gray");
    topicInputs5.attr("disabled", !this.checked);
  });
  $("#onderhandse_lening_nee").click(function() {
    topics5[this.checked ? "addClass" : "removeClass"]("gray");
    topicInputs5.attr("disabled", this.checked);
  });

  var topics6 = $("#loonbeslag_ja_topics")[$("#loonbeslag_ja").is(":checked") ? "removeClass" : "addClass"]("gray");
  var topicInputs6 = topics6.find("input").attr("disabled", !$("#loonbeslag_ja").is(":checked"));
  $("#loonbeslag_ja").click(function() {
    topics6[this.checked ? "removeClass" : "addClass"]("gray");
    topicInputs6.attr("disabled", !this.checked);
  });
  $("#loonbeslag_nee").click(function() {
    topics6[this.checked ? "addClass" : "removeClass"]("gray");
    topicInputs6.attr("disabled", this.checked);
  });

});

