(function($) {
  $.weight_getter = function() {
  
    var tracking_number_el = $("input#shipment_tracking_number");
    var unit_weight_choice_el = $("select#shipment_unit_weight");
    var submit = $("#button");

    tracking_number_el.change(function() {
      Element.show("spinner");
        $.ajax({
          url: url(),
          dataType: "json",
          error: function(xhr) {
            if (xhr.status == 404) { 
              $("#flashy").html("The tracking number was not found or is invalid").slideDown("slow").show();  

              setTimeout(function(){  
                $("#flashy").slideUp("slow", function() {  
                  $("#flashy").hide();
                }); 
              }, 3000);

              Element.hide("spinner");
            }
          },
          success: function(data) {
            replace_unit_weight_choices(data.brigade.unit_weights);
            submit.attr('disabled',false);
          }
        });
      });

    function replace_unit_weight_choices(weights) {
      var sel = unit_weight_choice_el[0];
      
      $(sel).find("option").remove().end();
     
      $(weights).each(function(i, weight) {
         sel.add(new Option(weight, weight), null);            
      });
      Element.hide("spinner");
    }
    
    function url() {
      var _url = $.weight_getter.settings.url
      //var _url = $.settings.url
      if (typeof _url == "function") {
        return _url(tracking_number_el.val());
      } else {
        return _url;
      }
    }
  };
})(jQuery);

jQuery.weight_getter.settings = {
   url : function(tracking_num) { return "/labels/" + tracking_num + "/brigade.json" }
};
// var settings = jQuery.ajax({
//     url: function(tracking_num) { return "/labels/" + tracking_num + "/brigade.json" },
//     dataType: 'json',
//     complete: function(xhr) { 
//         if (xhr.status == 304) return;
//         // or better: if (xhr.status != 200) return;
//         // your code goes here
//     }
// });


jQuery(document).ready(function($) {
  $.weight_getter();
});
