if (!Chrome)
  var Chrome = {};

/**
 * BBCodeField control's functions
 *
 * @class
 * @author McArrow
 */
Chrome.BBCode = Class.create();
Object.extend(Chrome.BBCode, {
  insertTag: function(tag) {
    if (Chrome.BBCode.field) {
      $(Chrome.BBCode.field).wrapSelection('[' + tag + ']', '[/' + tag + ']');
    }
    return false;
  },

  insertPageBreak: function() {
    if (Chrome.BBCode.field) {
      $(Chrome.BBCode.field).replaceSelection('[pb]');
    }
    return false;
  },

  insertCut: function() {
    if (Chrome.BBCode.field) {
      $(Chrome.BBCode.field).replaceSelection('[cut]');
    }
    return false;
  },

  insertUrl: function() {
    if (Chrome.BBCode.field) {
      var url = window.prompt('Введите URL', 'http://');
      $(Chrome.BBCode.field).wrapSelection('[url=' + url + ']', '[/url]');
    }
    return false;
  },

  insertLink: function(url) {
    if (Chrome.BBCode.field) {
      $(Chrome.BBCode.field).wrapSelection('[url=' + url + ']', '[/url]');
    }
    return false;
  },

  insertPicture: function(id, storage, type, align) {
    if (Chrome.BBCode.field) {
      var tag = '[pic id=' + id + ' name=' + storage;
      tag += (type ? ' type=' + type : '');
      tag += (align ? ' align=' + align : '');
      tag += ']';
      $(Chrome.BBCode.field).replaceSelection(tag);
    }
    return false;
  },

  insertPictureNoclick: function(id, storage, type, align) {
    if (Chrome.BBCode.field) {
      var tag = '[pic id=' + id + ' name=' + storage + ' noclick=noclick';
      tag += (type ? '' : ' type=' + type);
      tag += (align ? '' : ' align=' + align);
      tag += ']';
      $(Chrome.BBCode.field).replaceSelection(tag);
    }
    return false;
  },

  insertString: function(string, emptySelection) {
    if (Chrome.BBCode.field) {
      $(Chrome.BBCode.field).replaceSelection(string, !!emptySelection);
    }
    return false;
  }
});

Chrome.BBCode.field = null;

document.observe('dom:loaded', function () {
  $$('div.sourceEditorHeader').each(function (ell) {
    ell.select('li.active').each(function(el) {
      el.observe('mouseover', function (ev) {
        var elt = ev.findElement('li');
        if (!elt.hasClassName('active')) {
          elt = elt.up('li.active');
        }
        clearTimeout(elt._timer);
        elt.addClassName('over');
        ev.stop();
      });
      el.observe('mouseout', function (ev) {
        var elt = ev.findElement('li');
        if (!elt.hasClassName('active')) {
          elt = elt.up('li.active');
        }
        clearTimeout(elt._timer);
        elt._timer = setTimeout(function () {
          elt.removeClassName('over')
        }, 200);
      });
    });
  });
});
