$(document).ready(function() {
    var bmioptions = {
          target: '#results',
          beforeSubmit: validate,
          //success: showresults,
          //success: $('#results').effect("hightlight",{},1500),
          url: "/bmi-caloriebehoefte/"
      };

    var caloriegainloseoptions = {
          target: '#results',
          beforeSubmit: validate,
          //success: showresults,
          //success: $('#results').effect("hightlight",{},1500),
          url: "/afvallen-caloriebehoefte/"
      };

    var vetpercentageoptions = {
        target: '#results',
        beforeSubmit: validate,
        url: "/caloriebehoefte-vetpercentage/"
    };

    var actoptions = {
          target: '#results',
          beforeSubmit: validate,
          url: "/calorieen-per-activiteit/"
    };
    
    $("#reset").click(function(event) {
      event.preventDefault();
      $('#bmiform').clearForm();
      $('#actform').clearForm();
      $('#calorie-gain-lose-form').clearForm();
      $('#results').html('');
    });

    $("#bmiform").submit(function() {
      //$('#results').html('');
      $(this).ajaxSubmit(bmioptions);
      $('#results').effect("highlight",{},2000);

      return false;  
    });
   
    $("#vetpercentageform").submit(function() {
      //$('#results').html('');
      $(this).ajaxSubmit(vetpercentageoptions);
      $('#results').effect("highlight",{},2000);

      return false;  
    });
    

    $("#calorie-gain-lose-form").submit(function() {
      //$('#results').html('');
      $(this).ajaxSubmit(caloriegainloseoptions);
      $('#results').effect("highlight",{},2000);

      return false;  
    });

    $("#actform").submit(function() {
      //$('#results').html('');
      $(this).ajaxSubmit(actoptions);
      $('#results').effect("highlight",{},2000);
      return false;  
    });
});

function validate(formData, jqForm, options) { 
    // formData is an array of objects representing the name and value of each field 
    // that will be sent to the server;  it takes the following form: 
    // 
    // [ 
    //     { name:  username, value: valueOfUsernameInput }, 
    //     { name:  password, value: valueOfPasswordInput } 
    // ] 
    // 
    // To validate, we can examine the contents of this array to see if the 
    // username and password fields have values.  If either value evaluates 
    // to false then we return false from this method. 
    //
    var id = jqForm[0].id;
    $('#results').html('');

    for (var i=0; i < formData.length; i++) { 
        if (!formData[i].value) { 
            $('#results').html('<p>Alle velden zijn verplicht</p>');
            return false; 
        } 
    } 

    if ((id == 'bmiform') || (id=='calorie-gain-lose-form')) {
    var weight = jqForm[0].weight.value;
    var height = jqForm[0].height.value;
    var age = jqForm[0].age.value;
    var sex = $('[name="sex"]').fieldValue();
    if ((isNotInt(height)) || (isNotInt(age)) || (age < 1)
        || (height < 1) || (weight < 1) || (sex == '')) {
        $('#results').html('Alle velden zijn verplicht. Lengte en leeftijd moeten gehele getallen zijn, zonder punt of komma.'); 
        return false;
    }
    if (!$("select[name='act']").val()) { 
       $('#results').append('Kies ook je hoeveelheid lichaamsbeweging');
       return false;
    }
    }
    if (id =='calorie-gain-lose-form'){
      var targetweight = jqForm[0].targetweight.value;
      var calorie = jqForm[0].calorie.value;
      if (calorie>1000){
          $('#results').html('Meer dan 1000 (kilo)calorieen per dag minder gaan eten is niet verstandig.'); 
          return false;
      }

      if (calorie == 0) {
          $('#results').html('Vul in hoeveel calorie&euml;n je minder wilt eten. Als je 0 calorie&euml;n minder wilt eten heb je deze calculator niet nodig!'); 
          return false;

      }
      
      if (parseInt(weight) < parseInt(targetweight)) {
          $('#results').html('Je streefgewicht moet lager zijn dan je huidige gewicht.'); 
          return false;
      }


      if (weight / (height/100 * height/100) < 18.5) {
          $('#results').html('Je streefgewicht valt in de BMI categorie ondergewicht. Hiervoor is deze calculator niet geschikt.'); 
          return false;
      }

      if (!$("select[name='act']").val()) { 
         $('#results').append('Kies ook je hoeveelheid lichaamsbeweging');
         return false;
      }
    }
    else if (id == 'actform'){
        var acttime = jqForm[0].acttime.value;
        var weight = jqForm[0].weight.value;
        /*if ((isNotInt(weight)) || (isNotInt(acttime)) || (weight < 1) || (acttime < 1)) {
            $('#results').html('Alle velden zijn verplicht. Gewicht en tijdsduur moeten gehele getallen zijn, zonder punt of komma.'); 
            return false;
        } */
    }
}

function isNotInt(s)
{
    return parseInt(s) != s;
}

function yellowFade(el) {
  var b = 155;
  function f() {
    el.style.background = 'rgb(255,255,'+ (b+=4) +')';
    if (b < 255) {
      setTimeout(f, 40);
    }
  };
  f();
}
