Converter = (function($) {
	var me = {};

	me.chart = {
    'feetToMetres' : 0.3048,
    'metresToFeet' : 3.281,
    'yardsToMetres' : 0.9144,
    'metresToYards' : 1.094,
    'centimetresToInches' : 0.3937,
    'inchesToCentimetres' : 2.540,
    'milesToKilometres' : 1.609,
    'kilometresToMiles' : 0.6214,

	'gramsToOunces' : 0.03527,
	'ouncesToGrams' : 28.35,
	'gramsToPounds' : 0.002205,
	'poundsToGrams' : 453.6,
    'poundsToKilograms' : 0.4536,
    'kilogramsToPounds' : 2.205,
	
    'gallonsToLitres' : 4.546,
    'litresToGallons' : 0.22,
    
    'kilojoulesToCalories' : 0.238845897,
    'caloriesToKilojoules' : 4.184
    
  };

  me.answer = {
	'feetToMetres' : 'metres',
	'metresToFeet' : 'feet',
    'yardsToMetres' : 'metres',
    'metresToYards' : 'yards',
	'centimetresToInches' : 'inches',
	'inchesToCentimetres' : 'centimetres',
	'milesToKilometres' : 'kilometres',
	'kilometresToMiles' : 'miles',
	
	'gramsToOunces' : 'ounces',
	'ouncesToGrams' : 'grams',
	'gramsToPounds' : 'pounds',
	'poundsToGrams' : 'grams',
	'poundsToKilograms' : 'kilograms',
	'kilogramsToPounds' : 'pounds',
	
	'gallonsToLitres' : 'litres',
	'litresToGallons' : 'gallons',
	
	'celciusToFahrenheit' : 'fahrenheit',
	'fahrenheitToCelcius' : 'celcius',
	
	'kilojoulesToCalories' : 'calories',
	'caloriesToKilojoules' : 'kilojoules'
  };

  me.dressSizes = [
    {'eu' : 32, 'uk' :  4, 'usa' : 2},
    {'eu' : 34, 'uk' :  6, 'usa' : 4},
    {'eu' : 36, 'uk' :  8, 'usa' : 6},
    {'eu' : 38, 'uk' : 10, 'usa' : 8},
    {'eu' : 40, 'uk' : 12, 'usa' : 10},
    {'eu' : 42, 'uk' : 14, 'usa' : 12},
    {'eu' : 44, 'uk' : 16, 'usa' : 14},
    {'eu' : 46, 'uk' : 18, 'usa' : 16},
    {'eu' : 48, 'uk' : 20, 'usa' : 18},
    {'eu' : 50, 'uk' : 22, 'usa' : 20}
  ];
  
  me.calculate = function(key, value) {
    if ('shoe' == key.substring(0, 3)) {
      var from = null;
      var to = null;
      if      ('shoeEuToUK'  == key) { from = 'eu';  to = 'uk';  }
      else if ('shoeEutoUsa' == key) { from = 'eu';  to = 'usa'; }
      else if ('shoeUktoUsa' == key) { from = 'uk';  to = 'usa'; }
      else if ('shoeUsaToUk' == key) { from = 'usa'; to = 'uk';  }
      else if ('shoeUsaToEu' == key) { from = 'usa'; to = 'eu';  }
      else if ('shoeUkToEu'  == key) { from = 'uk';  to = 'eu';  }
      for (var i = 0; i < me.dressSizes.length; i++) {
    	  if (me.dressSizes[i][from] == value) {
    		  return me.dressSizes[i][to];
    	  }
      }
    }
    else if ('celciusToFahrenheit' == key) {
      return Math.round( ( ((9/5) * value) + 32 ) * 100) / 100;
    }
    else if ('fahrenheitToCelcius' == key) {
      return Math.round( ( (5/9) * (value - 32) ) * 100 ) / 100;
    }
    else {
	  return Math.round( (value * Converter.chart[key]) * 100) / 100;
    }
  };

  me.convert = function(type) {
	  var key = $('#' + type + 'Units').val();
	  var value = $('#' + type + 'From').val();
	  var answer = me.calculate(key, value);
	  $('#' + type + 'Result').html(answer);
	  $('#' + type + 'Converted').html(me.answer[key]);
  };

  return me;
})(jQuery);
