$(document).ready(function(){

  //replacing select box background
  if ( $('.selectbox').length ) {
    $('.selectbox').sSelect();
  }

  //Conversion form handler.
  $("#conversion-form").submit(function(){
    function humanize(x, y, n, a){
      return n.toString() + x + " = " + (Math.round(a * 100) / 100).toString() + y;
    }

    // A map of functions for translating from x to y.
    var formulas = {
      "0":  function(n){ return humanize("oz", "gm", n, (n * 28.3495)); },
      "1":  function(n){ return humanize("gm", "oz", n, (n * 0.03527)); },
      "2":  function(n){ return humanize("lb", "kg", n, (n * 0.4536)); },
      "3":  function(n){ return humanize("kg", "lb", n, (n * 2.2046)); },
      "4":  function(n){ return humanize("fl. oz", "ml", n, (n * 29.5735)); },
      "5":  function(n){ return humanize("ml", "fl. oz", n, (n * 0.0338)); },
      "6":  function(n){ return humanize("fl. oz", "tspn", n, (n * 6)); },
      "7":  function(n){ return humanize("tspn", "fl. oz", n, (n * 0.166666667)); },
      "8":  function(n){ return humanize("fl. oz", "tbsp", n, (n * 2)); },
      "9":  function(n){ return humanize("tbsp", "fl. oz", n, (n * 0.5)); },
      "10": function(n){ return humanize("fl. oz", "cups", n, (n * 0.125)); },
      "11": function(n){ return humanize("cups", "fl. oz", n, (n * 8)); },
      "12": function(n){ return humanize("in", "cm", n, (n * 2.54)); },
      "13": function(n){ return humanize("cm", "in", n, (n * 0.3937)); },
      "14": function(n){ return humanize("ce", "fa", n, ((5 / 9) * (n + 32))); },
      "15": function(n){ return humanize("fa", "ce", n, ((5 / 9) * (n - 32))); }
    };

    var n = $("#c-value").val();
    var answer = (n.match(/^\d+(\.\d)?$/)) ?
                   formulas[$("#c-type").val()](parseFloat(n)) :
                   "Invalid input";
    $("#c-answer").text(answer);

    return false;
  });

});

