function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag) 
{
	if ((!highlightStartTag) || (!highlightEndTag)) {
		highlightStartTag = "<span style='color:#BA6C0C; background-color:#FFEFC3;'>";
		highlightEndTag = "</span>";
	}

	var newText = '';
	var i = -1;
	var lcSearchTerm = searchTerm.toLowerCase();
	var lcBodyText = bodyText.toLowerCase();

	while (bodyText.length > 0) {
		i = lcBodyText.indexOf(lcSearchTerm, i + 1);
		if (i < 0) {
			newText += bodyText;
			bodyText = '';
		} else {
			if (bodyText.lastIndexOf('>', i) >= bodyText.lastIndexOf('<', i)) {
				if (lcBodyText.lastIndexOf('/script>', i) >= lcBodyText.lastIndexOf('<script', i)) {
					newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
					bodyText = bodyText.substr(i + searchTerm.length);
					lcBodyText = bodyText.toLowerCase();
					i = -1;
				}
			}
		}
	}
	return newText;
}


function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
	searchArray = treatAsPhrase ? [searchText] : searchText.split(' ');

	if (!document.body || typeof(document.body.innerHTML) == 'undefined' || searchText.length == 0) {
		return false;
	}

	var bodyText = document.body.innerHTML;
	for (var i = 0; i < searchArray.length; i++) {
		bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
	}
	document.body.innerHTML = bodyText;
	return true;
}

function checkHighLighting () {
	var url_parts = window.location.href.split('?');
	if (url_parts[1]) { 
		var url_args = url_parts[1].split(';');
		for (var i=0; i < url_args.length; i++) {
			var keyval = url_args[i].split('=');
			if (keyval[0] == 'srchkywrd') {
				highlightSearchTerms(decode_url(keyval[1]), 1, 0);
				return;
			}
		}
	}
}

function decode_url(url){
	return unescape(url.replace(/\+/g, ' '));
}
