var init = munky.init;

munkyExt = {
	init : function(){
		init();
		
		$('#forumActions').show();
		
		var bbCode = new Array();
		bbCode['bold'] = 'b';
		bbCode['italic'] = 'i';
		bbCode['underline'] = 'u';
		
		$('#forumActions>a').click(function(){
														$(this).blur();
														var sel = $('#messageBody').getSelection();
														var val = $('#messageBody').attr('value');
														
														var before = val.substr(0, sel.start);
														var after = val.substr(sel.end);
														var current = val.substr(sel.start, sel.length);
														
														var type = $(this).attr('rel');
														var bb = bbCode[type];
														$('#messageBody').attr('value', before+'['+bb+']'+current+'[/'+bb+']'+after);
														
														$('#messageBody').replaceSelection(sel);
														return false;
													});
	}

}

$.extend(munky, munkyExt);

/*
* jQuery plugin: fieldSelection - v0.1.1 - last change: 2006-12-16
* (c) 2006 Alex Brem <alex@0xab.cd> - http://blog.0xab.cd
*/
 
(function() {
 
  var fieldSelection = {
 
    getSelection: function() {
 
      var e = (this.jquery) ? this[0] : this;
 
      return (
 
        /* mozilla / dom 3.0 */
        ('selectionStart' in e && function() {
          var l = e.selectionEnd - e.selectionStart;
          return { start: e.selectionStart, end: e.selectionEnd, length: l, text: e.value.substr(e.selectionStart, l) };
        }) ||
 
        /* exploder */
        (document.selection && function() {
 
          e.focus();
 
          var r = document.selection.createRange();
          if (r === null) {
            return { start: 0, end: e.value.length, length: 0 }
          }
 
          var re = e.createTextRange();
          var rc = re.duplicate();
          re.moveToBookmark(r.getBookmark());
          rc.setEndPoint('EndToStart', re);
 
          return { start: rc.text.length, end: rc.text.length + r.text.length, length: r.text.length, text: r.text };
        }) ||
 
        /* browser not supported */
        function() { return null; }
 
      )();
 
    },
 
    replaceSelection: function() {
 
      var e = (typeof this.id == 'function') ? this.get(0) : this;
      var text = arguments[0] || '';
 
      return (
 
        /* mozilla / dom 3.0 */
        ('selectionStart' in e && function() {
          e.value = e.value.substr(0, e.selectionStart) + text + e.value.substr(e.selectionEnd, e.value.length);
          return this;
        }) ||
 
        /* exploder */
        (document.selection && function() {
          e.focus();
          document.selection.createRange().text = text;
          return this;
        }) ||
 
        /* browser not supported */
        function() {
          e.value += text;
          return jQuery(e);
        }
 
      )();
 
    }
 
  };
 
  jQuery.each(fieldSelection, function(i) { jQuery.fn[i] = this; });
 
})();
