var searchTermHilightColorIndex = 0;
var sailorSearchTermHighlight = { // based on nsftools SearchAndHighlight
	init: function() {
		// examine queryString for presense of 'mark' value
		var hilightTerms;
		var queryString = window.location.search.substring(1);
		var keyValuePairs = queryString.split('&');
		for (var k=0; k < keyValuePairs.length; k++) {
			var keyValuePair = keyValuePairs[k].split('=');
			if ( keyValuePair[0] == 'mark') { hilightTerms = unescape(keyValuePair[1]).replace(/[ ]+/g,"+"); }
		}
		if (hilightTerms) {
			var hilightTerm = hilightTerms.split('+');
			for (var q=0; q < hilightTerm.length; q++) {
				sailorSearchTermHighlight.hilight(hilightTerm[q]);
			}
		}
	},
	hilight: function(searchTerm) { 
		// given a term, hilight it in the specified div
		
		searchTermHilightColorIndex++;  //increments global variable to change the hilight color to one of 8 different colors
		if (searchTermHilightColorIndex > 6) { searchTermHilightColorIndex = 1; }
		
		var highlightOpenTag  = '<span class="sailorSearchTerm' + searchTermHilightColorIndex +'">';
		var highlightCloseTag = '</span>';
		
		var contentHTML = document.getElementById('sailorMainContent').innerHTML; // hilight only terms in this div
		
		var newHTML = "";
		var i = -1;
		var lcSearchTerm  = searchTerm.toLowerCase();
		var lcContentHTML = contentHTML.toLowerCase();
	    
		while (contentHTML.length > 0) {
			i = lcContentHTML.indexOf(lcSearchTerm, i+1);
			if (i < 0) {
				newHTML += contentHTML;
				contentHTML = "";
			} else {
				// skip anything inside an HTML tag
				if (contentHTML.lastIndexOf(">", i) >= contentHTML.lastIndexOf("<", i)) {
					// skip anything inside a <script> block
					if (lcContentHTML.lastIndexOf("/script>", i) >= lcContentHTML.lastIndexOf("<script", i)) {
						newHTML += contentHTML.substring(0, i) + highlightOpenTag + contentHTML.substr(i, searchTerm.length) + highlightCloseTag;
	          				contentHTML = contentHTML.substr(i + searchTerm.length);
						lcContentHTML = contentHTML.toLowerCase();
						i = -1;
					}
				}
			}
		}
		document.getElementById('sailorMainContent').innerHTML = newHTML;
	}
}

function onLoadWindow () { // Put all necessary functions needed to run when the window loads
	sailorSearchTermHighlight.init();
}
window.onload = onLoadWindow;

function printFriendly () {
  var args=printFriendly.arguments, sourceURL = args[0], browserName = navigator.appName;
  
  var printFriendlyCSS = MM_findObj("printFriendly");
  if (printFriendlyCSS.media == 'print, screen') { 
    if(browserName == "Microsoft Internet Explorer") { location.href=sourceURL; } //IE reloads the page
    else { printFriendlyCSS.media='print'; } //all others reload the CSS
  }
  else { printFriendlyCSS.media='print, screen'; }
  return true;
}
function emailThisPage () {
  var emailForm = MM_findObj("emailThisPageForm");
  open('','emailThisPageWindow','resizable=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=500,height=500')
  emailForm.submit();
  return true;
}
function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

