text: // Filter plugin for Xinha
  // Implementation by Udo Schmal & Schaffrath NeueMedien
  // Original Author - Udo Schmal
  //
  // (c) Udo Schmal & Schaffrath NeueMedien 2004
  // Distributed under the same terms as HTMLArea itself.
  // This notice MUST stay intact for use (see license.txt).
  function Filter(editor) {
    this.editor = editor;
    var cfg = editor.config;
    var self = this;
    // register the toolbar buttons provided by this plugin
    cfg.registerButton({
      id: "filter",
      tooltip  : this._lc("Filter"),
      image    : editor.imgURL("ed_filter.gif", "Filter"),
      textMode : false,
      action   : function(editor) {
                   self.buttonPress(editor);
                 }
    });
    if (!cfg.Filters)
      cfg.Filters = ["Paragraph","Word"];
    for (var i = 0; i < editor.config.Filters.length; i++) {
      self.add(editor.config.Filters[i]);
    }
    cfg.addToolbarElement("filter", "removeformat", 1);
  }
  
  Filter._pluginInfo =
  {
    name          : "Filter",
    version       : "1.0",
    developer     : "Udo Schmal (gocher)",
    developer_url : "",
    sponsor       : "L.N.Schaffrath NeueMedien",
    sponsor_url   : "http://www.schaffrath-neuemedien.de/",
    c_owner       : "Udo Schmal & Schaffrath-NeueMedien",
    license       : "htmlArea"
  };
  
  Filter.prototype.add = function(filterName) {
    if(eval('typeof ' + filterName) == 'undefined') {
      var filter = Xinha.getPluginDir('Filter') + "/filters/" + filterName + ".js";
      var head = document.getElementsByTagName("head")[0];
      var evt = Xinha.is_ie ? "onreadystatechange" : "onload";
      var script = document.createElement("script");
      script.type = "text/javascript";
      script.src = filter;
      script[evt] = function() {
        if(Xinha.is_ie && !/loaded|complete/.test(window.event.srcElement.readyState))  return;
      }
      head.appendChild(script);
      //document.write("<script type='text/javascript' src='" + plugin_file + "'></script>");
    }
  };
  
  Filter.prototype._lc = function(string) {
      return Xinha._lc(string, 'Filter');
  };
  
  Filter.prototype.buttonPress = function(editor) {
    var html = editor.getInnerHTML();
    for (var i = 0; i < editor.config.Filters.length; i++) {
      html = eval(editor.config.Filters[i])(html);
    }
    editor.setHTML(html);
  };