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) && 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, sAl = searchArray.length; i < sAl; 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, ual = url_args.length; i < ual; 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, ' '));
}
