// ----------------------------------
// Language
// ----------------------------------
var Language = Class.create(Model, {
  initialize: function($super) {
    $super(['id', 'name'], 'language', languageStore);
  }
});

var languageStore = new ModelStore('language', Language);


// ----------------------------------
// Language UI
// ----------------------------------
var LanguageSelect = Class.create({
  initialize: function(element) {
    this.element = $(element);
    languageStore.observe('name', this);
    languageStore.observe('items', this);
  },
  
  keyDidUpdate: function(hash, key, value) {
    var originalValue = this.element.value;
    var options = '';
    this.element.innerHTML = '';
    
    languageStore.objects().each(function(object) {
      options += "<option value='" + object.get('id') + "'>" + object.get('name') + "</option>";
    })
    
    this.element.innerHTML = options;
  }
});

var codeLanguage = new LanguageSelect('edit_code_language');
var problemLanguage = new LanguageSelect('edit_problem_language');
