Limb.Class('Language_Level_Switcher', {
  __construct: function(content_block_id, result_block_id, lang_options, level_options, result_arr)
  {
    this.content_block = jQuery('#' + content_block_id);
    this.result_block = jQuery('#' + result_block_id);
    this.lang_options = lang_options;
    this.level_options = level_options;
    this.result_arr = result_arr;

    // add level button click
    var self_instance = this; // jQ hack
    jQuery('#add_level').click(function() {
      self_instance.addButtonClick();
      return false;
    });

    this.displayResult();
  },

  addButtonClick: function()
  {
    var current_lang_id = this.content_block.find('#lang_id').attr('value');
    var current_level_id = this.content_block.find('#level_id').attr('value');

    // check for existing values
    var translate_raw = null;
    for(i = 0; i < this.result_arr.length; i++)
    {
      if(this.result_arr[i].lang_id == current_lang_id && this.result_arr[i].level_id == current_level_id)
        translate_raw = this.result_arr[i];
    }
    if(!translate_raw)
      this.result_arr.push( {lang_id: current_lang_id, level_id: current_level_id} );

    this.displayResult();
  },

  displayResult: function()
  {
    jQuery('#levels_table').remove();

    if(this.result_arr.length == 0)
      return;

    var html = '<table class="levels" id="levels_table">';
    for(i = 0; i < this.result_arr.length; i++)
    {
      var lang_id = this.result_arr[i].lang_id;
      var level_id = this.result_arr[i].level_id;
      html += '<tr><td class="col1">' + this.lang_options[lang_id].title + '</td>' +
        '<td class="col2">' + this.level_options[level_id].title + '</td>' +
        //'<td class="col3"><div class="btn_edit_del"><a href="#" id="edit_' + i + '" class="edit_but"><span class="menuL"></span><span class="menuC">Edit</span><span class="menuR"></span></a></div></td>' +
        '<td class="col4"><div class="btn_edit_del"><a href="#" id="delete_' + i + '" class="delete_but"><span class="menuL"></span><span class="menuC">Delete</span><span class="menuR"></span></a></div></td>' +
        '<input type="hidden" name="languages[' + i + '][lang_id]" value="' + lang_id + '" />' +
        '<input type="hidden" name="languages[' + i + '][level_id]" value="' + level_id + '" /></tr>';
    }
    html += '</table>';

    this.result_block.append(html);
    this.initButtons();
  },

  initButtons: function()
  {
    var self_instance = this; // jQ hack

    this.result_block.find('.delete_but').click(function()
    {
      var raw_index = getIndexFromId(this.id);
      self_instance.deleteRaw(raw_index);
      return false;
    });

    this.result_block.find('.edit_but').click(function()
    {
      var raw_index = getIndexFromId(this.id);
      self_instance.initRaw(raw_index);
      return false;
    });
  },

  initRaw: function()
  {

  },

  deleteRaw: function(index)
  {
    var new_arr = new Array();
    for(i = 0; i < this.result_arr.length; i++)
    {
      if(i != index)
        new_arr.push(this.result_arr[i]);
    }
    this.result_arr = new_arr;

    this.displayResult();
  }
});

