jQuery(document).ready(function () {
  
  var fitness_chart_options = {
    url: '/ajax/fitness/height-weight',
    success: updateFitnessValues,
    dataType: 'text'
  }

  $('form.fitness_chart_form').ajaxForm(fitness_chart_options);
  
	var evt = $.browser.msie ? "click" : "change";
  $('div.fitness_chart_form_wrapper select').change(function () {
    var par = $(this).parents('.fitness_chart_wrapper_outer').parent();
    par.find('.fitness_chart_form').submit();
  });
  
  // submit it once for the initial load
  $('form.fitness_chart_form').submit();

  var feet_select = $('.fitness_chart_form_wrapper form #height_feet');
  var inches_select = $('.fitness_chart_form_wrapper form #height_inches');
  
  feet_select.change( function () {
    var feet_value = $(this).val();
    var inches_value = inches_select.val();
    
    if (feet_value == 4)
    {
      inches_select.find('option').each(function (index, ele) {
        if (ele.value < 10)
        {
          ele.disabled = 'disabled';
        }
      });
      
      if (inches_select.val() < 10)
      {
        inches_select.val(10);
      }
    }
    else
    {
      inches_select.find('option').each(function (index, ele) {
        option = $(this);
        if (option.attr('value') < 10)
        {
          option.removeAttr('disabled');
        }
      });
    }
  });

  inches_select.change( function () {
    var feet_value = feet_select.val();
    var inches_value = $(this).val();
    
    if (feet_value == 4)
    {
      if (inches_value < 10)
      {
        $(this).val(10);
      }
    }
  })
}); // end jQuery(document).ready



function updateFitnessValues(responseJson)
{
  var response = JSON.parse(responseJson);
  
  if (response['maxWeight'] < 1 || response['minWeight'] < 1 || response['maxBodyFat'] < 1)
  {
    if (response['maxWeight'] < 0)
    {
      showFitnessValues('error');
    }
    else
    {
      showFitnessValues('default');
      
      setFitnessChartValue('#fitness_min_weight', '&mdash;');
      setFitnessChartValue('#fitness_max_weight', '&mdash;');
      setFitnessChartValue('#fitness_max_fat', '&mdash;');
    }
  }
  else
  {
    setFitnessChartValue('#fitness_min_weight', response['minWeight']);
    setFitnessChartValue('#fitness_max_weight', response['maxWeight']);
    setFitnessChartValue('#fitness_max_fat', response['maxBodyFat']);
    
    showFitnessValues('response');
  }
}

function setFitnessChartValue(target, value)
{
  $(target).html(value);
}

function showFitnessValues(type)
{
  $('div.fitness_chart_error').hide();
  $('div.fitness_chart_default').hide();
  $('div.fitness_chart_' + type).show();
}

