// buttons
var serving_amount;
var compute_values;
var reset_values;

// variable display data
var fat_value;
var carbohydrate_value;
var protein_value;
var kcal_value;
var nutrition_values;

// default values
var fat_default_value;
var carbohydrate_default_value;
var protein_default_value;
var kcal_default_value;
var nutrition_default_values;

window.onload = function()
{
  serving_amount = document.getElementById( "serving_amount" );
  compute_values = document.getElementById( "compute_values" );
  reset_values = document.getElementById( "reset_values" );

  fat_value = document.getElementById( "fat_value" );
  carbohydrate_value = document.getElementById( "carbohydrate_value" );
  protein_value = document.getElementById( "protein_value" );
  kcal_value = document.getElementById( "kcal_value" );

  fat_default_value = document.getElementById( "fat_default_value" ).innerHTML;
  carbohydrate_default_value = document.getElementById( "carbohydrate_default_value" ).innerHTML;
  protein_default_value = document.getElementById( "protein_default_value" ).innerHTML;
  kcal_default_value = document.getElementById( "kcal_default_value" ).innerHTML;

  serving_amount.onfocus = serving_amount.select;
  serving_amount.onblur = food_values;
  compute_values.onclick = food_values;
  reset_values.onclick = food_values_reset;

  var nutrition_fields = document.getElementById( "nutritional_values" ).getElementsByTagName( "span" );
  nutrition_default_values = new Array( nutrition_fields.length / 2 );
  nutrition_values = new Array( nutrition_fields.length / 2 );

  for( var i = 0, index = 0; typeof nutrition_fields[i] != "undefined" ; i = i + 2 )
  {
    nutrition_default_values[index] = nutrition_fields[i].innerHTML;
    nutrition_values[index] = nutrition_fields[( i + 1 )];
    index++;
  }
};

function food_values()
{
  var weight_multiplier = serving_amount.value / 100;

  if( isNaN( weight_multiplier ) )
  {
    serving_amount.value = 100;
    weight_multiplier = 1;
  }

  fat_value.innerHTML = ( weight_multiplier * fat_default_value ).toFixed( 2 );
  carbohydrate_value.innerHTML = ( weight_multiplier * carbohydrate_default_value ).toFixed( 2 );
  protein_value.innerHTML = ( weight_multiplier * protein_default_value ).toFixed( 2 );
  kcal_value.innerHTML = ( weight_multiplier * kcal_default_value ).toFixed( 2 );

  for( var i = 0; i < nutrition_default_values.length; i++ )
  {
    nutrition_values[i].innerHTML = ( weight_multiplier * nutrition_default_values[i] ).toFixed( 2 );
  }
}

function food_values_reset()
{
  serving_amount.value = 100;
  fat_value.innerHTML = fat_default_value;
  carbohydrate_value.innerHTML = carbohydrate_default_value;
  protein_value.innerHTML = protein_default_value;
  kcal_value.innerHTML = kcal_default_value;

  for( var i = 0; i < nutrition_default_values.length; i++ )
  {
    nutrition_values[i].innerHTML = nutrition_default_values[i];
  }
}
