
String.prototype.tokenize = tokenize;
function tokenize() {
    var input             = "";
    var separator         = " ";
    var trim              = "";
    var ignoreEmptyTokens = true;
    try {
        String(this.toLowerCase());
    } catch(e) {
        window.alert("Tokenizer Usage: string myTokens[] = myString.tokenize(string separator, string trim, boolean ignoreEmptyTokens);");
        return;
    }
    if(typeof(this) != "undefined") {
          input = String(this);
    }
    if(typeof(tokenize.arguments[0]) != "undefined") {
        separator = String(tokenize.arguments[0]);
    }
    if(typeof(tokenize.arguments[1]) != "undefined") {
        trim = String(tokenize.arguments[1]);
    }
    if(typeof(tokenize.arguments[2]) != "undefined") {
        if(!tokenize.arguments[2])
            ignoreEmptyTokens = false;
    }
    var array = input.split(separator);
    if(trim)
        for(var i=0; i < array.length; i++) {
            while(array[i].slice(0, trim.length) == trim)
                array[i] = array[i].slice(trim.length);
            while(array[i].slice(array[i].length-trim.length) == trim)
                array[i] = array[i].slice(0, array[i].length-trim.length);
        }
    var token = new Array();
    if(ignoreEmptyTokens) {
        for(var i=0; i<array.length; i++)
            if(array[i] != "")
                token.push(array[i]);
    } else {
        token = array;
    }
    return token;
}

function toggleGroupOn(layersOn) {
    return toggleMultipleOffAndMultipleOn(undefined, layersOn);
}
function toggleGroupOff(layersOff) {
    return toggleMultipleOffAndMultipleOn(layersOff, undefined);
}

function toggleMultipleOffAndMultipleOn(layersOff, layersOn) {
    if(layersOff) {
        var tokensOff = layersOff.tokenize(",", "", false);
        // First, turn layers OFF
        for(var i=0; i<tokensOff.length; i++) {
            if (document.getElementById) {
                var poop = document.getElementById(tokensOff[i]).style;
                poop.display = 'none';
            } else if (document.all) {
                var poop = document.all[tokensOff[i]].style;
                poop.display = 'none';
            } else if (document.layers) {
                var poop = document.layers[tokensOff[i]].style;
                poop.display = 'none';
            }
        }
    }

    if(layersOn) {
        var tokensOn  = layersOn.tokenize(",", "", false);
        // Now, ON
        for(var i=0; i<tokensOn.length; i++) {
            if (document.getElementById) {
                // this is the way the standards work
                var style2 = document.getElementById(tokensOn[i]).style;
                style2.display = '';
            } else if (document.all) {
                // this is the way old msie versions work
                var style2 = document.all[tokensOn[i]].style;
                style2.display = '';
            } else if (document.layers) {
                // this is the way nn4 works
                var style2 = document.layers[tokensOn[i]].style;
                style2.display = '';
            }
        }
    }
}

