var box_recommend = {
  aev: function(obj, type, fn) {
    if (obj.addEventListener) {
      obj.addEventListener(type, fn, false);
    } else if (obj.attachEvent) {
      obj["e" + type + fn] = fn;
      obj[type + fn] = function() { obj["e" + type + fn] (window.event); }
      obj.attachEvent("on" + type, obj[type + fn]);
    }
  },

  o_box: null,
  o_act: null,
  o_close: null,
  o_done: null,
  o_disabled: null,
  o_thread: null,
  o_thread_h: 0,
  expanded: false,
  disable_edit: false,

  init: function() {
    var _ = box_recommend;
    var ft = document.getElementById('k12t').getElementsByTagName('div');
    for (var i = 0; i < ft.length; i++) {
      if (ft[i].className.match(/thread/)) {
        _.o_thread = ft[i];
        break;
      }
    }
    _.o_box = document.getElementById('box_recommend');
    _.o_act = document.getElementById('box_recommend_btn');
    _.o_close = document.getElementById('box_recommend_cancel');
    _.o_done = document.getElementById('box_recommend_done');
    _.o_form = document.getElementById('box_recommend_form');
    _.aev(_.o_act, 'click', _.toggle);
    _.aev(_.o_close, 'click', _.toggle);
    _.aev(_.o_form, 'submit', _.send);

    _.o_disabled = document.getElementById('i_brc_disabled');

    if (_.o_disabled) {
      _.aev(_.o_disabled, 'click', _.enable_edit);
      _.aev(_.o_disabled, 'mouseover', _.show_edit_hint);
      _.aev(_.o_disabled, 'mouseout', _.hide_edit_hint);
      _.disable_edit = true;
    }
  },
  toggle: function() {
    var _ = box_recommend;
    _.expanded = !_.expanded;
    if (_.expanded) {
      _.o_thread_h = _.o_thread.offsetHeight;
      if (_.o_thread_h < 420) {
        _.o_thread.style.height = '420px';
      }
    } else {
      if (_.o_thread_h != _.o_thread.offsetHeight) {
        _.o_thread.style.height = _.o_thread_h+'px';
      }
    }
    _.o_box.style.display = _.expanded ? 'block' : 'none';
  },
  send: function() {
    var _ = box_recommend;
    var o_error = document.getElementById('o_brct_error');
    if (o_error) o_error.parentNode.removeChild(o_error);
    sendFrm();
    return false;
  },
  sent: function(args) {
    var _ = box_recommend;
    if (args.status == 0) {
      _.expanded = false;
      _.o_box.style.display = 'none';
      _.o_done.style.display = 'block';
      _.o_act.style.display = 'none';

      if (document.getElementById('i_brc_from')) document.getElementById('i_brc_from').value = '';
      document.getElementById('i_brc_to').value = '';
      document.getElementById('i_brc_content').value = '';

      window.setTimeout(function() {
        _.o_done.style.display = 'none';
        _.o_act.style.display = 'block';
      }, 3000);
    } else {
      var o_error = document.createElement('p');
      o_error.id = 'o_brct_error';
      o_error.innerHTML = args.msg;
      var o_frm = document.getElementById('box_recommend_form');
      var o_fld = o_frm.getElementsByTagName('fieldset')[0];
      o_frm.insertBefore(o_error, o_fld);
    }
  },
  enable_edit: function() {
    var _ = box_recommend;
    var obj_i = document.createElement('input');
    obj_i.type = 'text';
    obj_i.id = 'i_brc_from';
    obj_i.value = document.getElementById('i_brc_value').innerHTML;
    obj_i.className = 'brct';
    obj_i.focus();
    _.hide_edit_hint();
    _.o_disabled.innerHTML = '';
    _.o_disabled.appendChild(obj_i);
    _.disable_edit = false;
  },
  show_edit_hint: function() {
    var _ = box_recommend;
    if (!_.disable_edit) return;
    _.o_disabled.className = 'hint_display';
  },
  hide_edit_hint: function() {
    var _ = box_recommend;
    if (!_.disable_edit) return;
    _.o_disabled.className = '';
  }
}

box_recommend.aev(window, 'load', box_recommend.init);
