
function doHighlight(bodyText,searchTerm,highlightStartTag,highlightEndTag){if((!highlightStartTag)||(!highlightEndTag)){highlightStartTag="<font style='color:blue; background-color:yellow;'>";highlightEndTag="</font>";}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=searchText.split(" ");if(!document.body||typeof(document.body.innerHTML)=="undefined"){if(warnOnFailure){alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");}return false;}var bodyText=document.getElementById("conteudo").innerHTML;highlightStartTag="<font style='background-color:#ffff66;'>";highlightEndTag="</font>";for(var i=0;i<searchArray.length;i++){if(i==0)highlightStartTag="<font style='background-color:#ffff66; font-weight: bold;'>";if(i==1)highlightStartTag="<font style='background-color:#a0ffff; font-weight: bold;'>";if(i==2)highlightStartTag="<font style='background-color:#e33333; font-weight: bold; color:#ffffff;'>";if(i==3)highlightStartTag="<font style='background-color:#1b69fc; font-weight: bold; color:#ffffff;'>";if(i==4)highlightStartTag="<font style='background-color:#1dfa4f; font-weight: bold;'>";bodyText=doHighlight(bodyText,searchArray[i],highlightStartTag,highlightEndTag);}document.getElementById("conteudo").innerHTML=bodyText;return true;}function searchPrompt(defaultText,treatAsPhrase,textColor,bgColor){if(!defaultText){defaultText="";}if((!textColor)||(!bgColor)){highlightStartTag="";highlightEndTag="";}else{highlightStartTag="<font style='color:"+textColor+"; background-color:"+bgColor+";'>";highlightEndTag="</font>";}if(treatAsPhrase){promptText="Please enter the phrase you'd like to search for:";}else{promptText="Please enter the words you'd like to search for, separated by spaces:";}searchText=defaultText
if(!searchText){alert("No search terms were entered. Exiting function.");return false;}return highlightSearchTerms(searchText,treatAsPhrase,true,highlightStartTag,highlightEndTag);}function highlightGoogleSearchTerms(referrer){if(!referrer){return false;}var queryPrefix="q=";var startPos=referrer.toLowerCase().indexOf(queryPrefix);if((startPos<0)||(startPos+queryPrefix.length==referrer.length)){return false;}var endPos=referrer.indexOf("&",startPos);if(endPos<0){endPos=referrer.length;}var queryString=referrer.substring(startPos+queryPrefix.length,endPos);queryString=queryString.replace(/%20/gi," ");queryString=queryString.replace(/\+/gi," ");queryString=queryString.replace(/%22/gi,"");queryString=queryString.replace(/\"/gi,"");return highlightSearchTerms(queryString,false);}function testHighlightGoogleSearchTerms(){var referrerString="http://www.google.com/search?q=javascript%20highlight&start=0";referrerString=prompt("Test the following referrer string:",referrerString);return highlightGoogleSearchTerms(referrerString);}
