String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/, '');
};

function searchResultsReplaceTerms(source, srcterms, srccolors) {
	var QUOTE_KEY = "&#034;";
	
	var terms = new Array();
	var colors = srccolors.split(",");

	while (srcterms.indexOf(QUOTE_KEY) > -1) {
		var pre = srcterms.substring(0, srcterms.indexOf(QUOTE_KEY)).trim().split(" ");
		for (var i=0; i<pre.length; i++) {
			if (pre[i].trim().length > 0) {
				terms[terms.length] = pre[i];
			}
		}			
		srcterms = srcterms.substring(srcterms.indexOf(QUOTE_KEY) + QUOTE_KEY.length).trim();

		terms[terms.length] = srcterms.substring(0, srcterms.indexOf(QUOTE_KEY)).trim();
		srcterms = srcterms.substring(srcterms.indexOf(QUOTE_KEY) + QUOTE_KEY.length).trim();
	}

	if (srcterms.length > 0) {
		var pre = srcterms.split(" ");
		for (var i=0; i<pre.length; i++) {
			if (pre[i].trim().length > 0) {
				terms[terms.length] = pre[i];
			}
		}
	}
	
	
	var endWrap = "</span>";
	
	var src = source;
	var coloridx = 0;
	
	for (var i=0; i<terms.length; i++) {
		var trg = "";
		var term_l = terms[i].toLowerCase();

		var color = colors[coloridx];
		coloridx++;
		if (coloridx >= colors.length) {
			coloridx = 0;
		}
		
		var startWrap = "<span style='background-color: " + color + ";'>";
	
		
		while (src.length > 0) {
			var src_l = src.toLowerCase();
			var idx = src_l.indexOf(term_l);
			var useit = false;
			
			if (idx > -1) {
				if (idx == 0 || src_l.substring(idx - 1, idx) == " ") {
					if (idx + term_l.length == src_l.length || src_l.substring(idx + term_l.length, idx + term_l.length + 1) == " ") {
						useit = true;
					}
				}
			}
			if (useit) {
				trg += src.substring(0, idx);
				trg += startWrap;
				trg += src.substring(idx, idx + term_l.length);
				trg += endWrap;
				src = src.substring(idx + term_l.length);
			} else {
				trg += src;
				src = "";
			}
		}
		
		src = trg;
	}

	return src;
}

function searchResultsHighlightTerms(prefix, terms) {

	
	if (terms != "") {
		
		var div = document.getElementById(prefix + "searchresultssection");
		
		var colorfld;
		
		var frm = document.forms[prefix + "searchresults"];
		
		if (frm)  {
			
			var enabledfld = frm.elements[prefix + "HIGHLIGHT_ENABLED"];
			
			if (enabledfld && enabledfld.value == "1") {
				colorfld = frm.elements[prefix + "HIGHLIGHT_COLORS"];
			}
		}
		
		if (colorfld && div && div.innerHTML) {
			colors = colorfld.value;
			var sourceHTML = div.innerHTML;
			var targetHTML = "";
			
			while (sourceHTML.length > 0) {

				var idx = sourceHTML.indexOf("<");
				if (idx > -1 && sourceHTML.indexOf(">") > idx) {
					targetHTML += searchResultsReplaceTerms(sourceHTML.substring(0, idx), terms, colors);
					sourceHTML = sourceHTML.substring(idx);
					
					idx = sourceHTML.indexOf(">")
					targetHTML += sourceHTML.substring(0, idx + 1);
					sourceHTML = sourceHTML.substring(idx + 1);
					
				} else {
					targetHTML += searchResultsReplaceTerms(sourceHTML, terms, colors);
					sourceHTML = "";
				}
			}
			div.innerHTML = (targetHTML);
		}
		
		
	}
	else{
		
		}
}

function searchResultsAppendHighlightToOnLoad(prefix, terms) {
	
	var onload_orig = window.onload;
	window.onload = function() {
		onload_orig();
		setTimeout("searchResultsHighlightTerms(\"" + prefix + "\", \"" + terms + "\");", 500);
	}		
}




/* Code to send the link action.  Done through an AJAX call.
*/
var pstHttpRequest = false;

function pstRunHttpRequest(url) {
	var ret = false;
	pstHttpRequest = false;
	
	document.body.style.cursor = "progress";
	
	if (window.XMLHttpRequest) {
		pstHttpRequest = new XMLHttpRequest();

	} else if (window.ActiveXObject) {
		try {
			pstHttpRequest = new ActiveXObject( "Msxml2.XMLHTTP" );
		} catch (ex) {
			try {
				pstHttpRequest = new ActiveXObject( "Microsoft.XMLHTTP" );
			} catch (ex) {
			}
		}
	}

	if (!pstHttpRequest) {
		document.body.style.cursor = "auto";
	} else {
		pstHttpRequest.open( "GET", url, false );
		pstHttpRequest.send( null );
		ret = pstIsRequestComplete();
	}
	
	document.body.style.cursor = "auto";
	
	return ret;

}


function pstIsRequestComplete() {
	var ret = false;
	
	if (pstHttpRequest.readyState == 4) {
		if (pstHttpRequest.status == 200) {
			ret = true;
		}
	}
	
	return ret;
		
}

function searchResultsHighlightTermsamidarSearchResultsContent(prefix, terms) {

	
	if (terms != "") {
		
		var div = document.getElementById("amidarSearchResultsContent");
		
		if(div.innerHTML.indexOf(terms) > -1){
			//alert("found word "+div.innerHTML.indexOf(terms));
		}
		var colorfld;
		
		var frm = document.forms[prefix + "searchresults"];
		
	
		if (frm)  {
			
			var enabledfld = frm.elements[prefix + "HIGHLIGHT_ENABLED"];
			
			if (enabledfld && enabledfld.value == "1") {
				colorfld = frm.elements[prefix + "HIGHLIGHT_COLORS"];
			}
		}
		
		if (colorfld && div && div.innerHTML) {
			colors = colorfld.value;
			var sourceHTML = div.innerHTML;
			var targetHTML = "";

			while (sourceHTML.length > 0) {

				var idx = sourceHTML.indexOf("<");
				if (idx > -1 && sourceHTML.indexOf(">") > idx) {
					targetHTML += searchResultsReplaceTerms(sourceHTML.substring(0, idx), terms, colors);
					sourceHTML = sourceHTML.substring(idx);
					
					idx = sourceHTML.indexOf(">")
					targetHTML += sourceHTML.substring(0, idx + 1);
					sourceHTML = sourceHTML.substring(idx + 1);
					
				} else {
					targetHTML += searchResultsReplaceTerms(sourceHTML, terms, colors);
					sourceHTML = "";
				}
			}
			div.innerHTML = (targetHTML);
		}
		
		
	}
	else{
		
		}
}

