var lsPanelClass = new Class({
  initialize: function(){

  },

  putText: function(obj,text, selectText) {
    obj=$(obj);
    if (selectText === 'undefined') {
      selectText = 1;
    }
    var scrollLeft=obj.scrollLeft;
    var scrollTop=obj.scrollTop;
    if (Browser.Engine.trident && document.selection) {
      obj.focus();
      sel=document.selection.createRange();
      sel.text=text;
    } else {
      obj.insertAtCursor(text, selectText);
    }
    obj.scrollLeft=scrollLeft;
    obj.scrollTop=scrollTop;
  },

  putTag: function(obj,tag) {
    this.putText(obj,'<'+tag+'/>');
  },

  putTextAround: function(obj,textStart,textEnd) {
    obj=$(obj);
    var scrollLeft=obj.scrollLeft;
    var scrollTop=obj.scrollTop;
    if (Browser.Engine.trident && document.selection) {
      obj.focus();
      sel=document.selection.createRange();
      sel.text = textStart+sel.text+textEnd;
    } else {
      obj.insertAroundCursor({
        before: textStart,
        defaultMiddle: '',
        after: textEnd
      });
    }
    obj.scrollLeft=scrollLeft;
    obj.scrollTop=scrollTop;
  },

  putTagAround: function(obj,tagStart,tagEnd) {
    if (!tagEnd) {
      tagEnd=tagStart;
    }
    this.putTextAround(obj,'<'+tagStart+'>','</'+tagEnd+'>');
  },

  putTagUrl: function(obj,sPromt) {
    obj=$(obj);
    if (url=prompt(sPromt,'http://')) {
      var sel=obj.getSelectedText();
          this.putText(obj,'<a href="'+url+'">'+sel+'</a>');
        }
  },

  putQuote: function(obj) {
    obj=$(obj);
    if (selText=this.getSelectedText()) {
      this.putText(obj,'<blockquote>'+selText+'</blockquote>');
    } else {
      this.putTagAround(obj,'blockquote');
    }
  },

  getSelectedText: function(){
    if (Browser.Engine.trident) return document.selection.createRange().text;
    //if (window.khtml) return window.getSelection();
    return document.getSelection();
  }
});

var lsPanel;

window.addEvent('domready', function() {
    lsPanel = new lsPanelClass();
});

