function HighlightSet() {
    var patterns=new Array();
    var strings =new Array(); //Figure out how to get the string out of the regular expression so I don't have to do this

    this.add        = function(   pattern) { strings.push(pattern); return patterns.push(RegExp("("+pattern+")","g"))-1; }
    this.setPattern = function(id,pattern) { strings[id]=pattern;   return patterns[id]=RegExp("("+pattern+")","g"); }
    this.getPattern = function(id)      { return strings[id];              }
    this.remove     = function(id)      { patterns[id] = null; strings[id] = null; return 0;   }

    this.parse = function(text) {
        for (p in patterns) 
            if (patterns[p] != null)
                text = text.replace(patterns[p], '<span class="highlight'+p+'">$1</span>');
        
        return text;
    }

    this.constructHTML = function() {
        var out = "Keywords: <br>\n";

        for (p in strings) 
            if (strings[p] != null)
                out += '<input type="text" id="highlight_'+p+'" value="'+strings[p]+'"> '+
                       '<input type="submit" onclick="javascript:addHighlight('+p+')" value="Update">'+
                       '<input type="submit" onclick="javascript:delHighlight('+p+')" value="Clear"><br>\n';
        

        out += '<input type="text" id="highlight_'+(strings.length)+'"> '+
               '<input type="submit" onclick="javascript:addHighlight('+(strings.length)+')" value="Highlight"><br>\n';

        return out;
    }
}

