var EditableField = Class.extend({

  init: function(input) {
    this.input = input;
    this.observeDoubleClick();
    this.observeBlur();
    this.observeFormSubmit();
  },

  observeBlur: function() {
    var self = this;
    this.input.blur(function() {
      self.done(self.input);
    });
  },

  observeFormSubmit: function() {
    var self = this;
    this.input.parent("form").submit(function() {
      self.done(self.input);
      return false;
    });
  },

  observeDoubleClick: function() {
    var self = this;
    this.input.parents(".editable").children(".display").dblclick(function() {
      $(this).hide();
      $(this).parent().children(".edit").show();
      self.input.focus();
    });
  },

  done: function(input) {

    input.parent(".edit").hide();
    input.parents(".editable").children(".display").html(input.val());
    input.parents(".editable").children(".display").show();

    $.ajax({
      url: sellerUpdateUrl,
      data: {
        "slug":$("#slug").html(),
        "value":input.val(),
        "field-id":input.attr("id")
      },
      failure: function(data) {
        alert("Update failed.");
      }
    });
  }

});

