var spanCache;
var grepCache;
var isInternetExplorer;

function gzInitCache() {
	if(navigator.appName.indexOf("Microsoft") >= 0) {
		isInternetExplorer = true;
	} else {
		isInternetExplorer = false;
	}
	spanCache = document.getElementsByTagName("span");
	grepCache = new Array();

	for (i = 0; i < spanCache.length; i++) {
		e = spanCache[i];
		if(e.className.match(/gz/i)) {
			line = null;
			if(isInternetExplorer) {
				line = e.innerText;
			} else {
				line = e.innerHTML.replace(/<[^>]+>/g, "");
			}
			pair = new Array();
			pair.push(e);
			pair.push(line);
			grepCache.push(pair);
		}
	}
}

function gzGrep(string) {
	if(!grepCache) {
		gzInitCache();
	}
	try {
		str = string.split(" ");
		for (i = 0; i < str.length && str[i] != " "; i++) {
			pattern = new RegExp(str[i], "i");
			for (ii = 0; ii < grepCache.length; ii++) {
				e = grepCache[ii][0];
				line = grepCache[ii][1];
				if(line.match(pattern)) {
					if(i == 0 || i >= 1 && e.style.display == "inline") {
						e.style.display = "inline";
					} else {
						e.style.display = "none";
					}
				} else {
					e.style.display = "none";
				}
			}
		}
	} catch (e) {
		// Ignore errors of invalid regular expressions.
	}
}

