
/* - highlightsearchterms.js - */
// http://www.ui.dk/portal_javascripts/highlightsearchterms.js?original=1
function highlightTermInNode(node,word,regexp){var contents=node.nodeValue;if(jq(node).parent().hasClass("highlightedSearchTerm")) return;var highlight=function(content){return jq('<span class="highlightedSearchTerm">'+content+'</span>')}
exp=new RegExp(regexp,"i")
var match;var length;contents=" "+contents+" "
while((match=exp.exec(contents))!=null){index=match.index+match[0].indexOf(match[1])
length=match[1].length
jq(node).before(document.createTextNode(contents.substr(0,index))).before(highlight(contents.substr(index,length))).before(document.createTextNode(contents.substr(index+length)));var next=node.previousSibling;jq(node).remove();node=next;contents=node.nodeValue}}
function highlightSearchTerms(terms,startnode){if(!terms||!startnode) return;jq.each(terms, function(i,term){term=term.toLowerCase();regexp="("+term.replace(/\*+/g,"[\\S]*")+")";if(term.charAt(0)=='*'&term.charAt(term.length-1)!='*'){regexp=regexp+"[\\W]"}
if(term.charAt(0)!='*'&term.charAt(term.length-1)=='*'){regexp="[\\W]"+regexp}
if(!term||/(^not$|^and$|^or$)/.test(term)) return;jq(startnode).find('*').andSelf().contents().each(function(){if(this.nodeType==3) highlightTermInNode(this,term,regexp)})})}
function getSearchTermsFromURI(uri){var query;if(typeof decodeURI!='undefined'){query=decodeURI(uri)} else if(typeof unescape!='undefined'){query=unescape(uri)} else{}
var result=new Array();if(window.decodeReferrer){var referrerSearch=decodeReferrer();if(null!=referrerSearch&&referrerSearch.length>0){result=referrerSearch}}
var qfinder=new RegExp("(searchterm|SearchableText)=([^&]*)","gi");var qq=qfinder.exec(query);if(qq&&qq[2]){var terms=qq[2].replace(/\+/g,' ').split(' ');result.push.apply(result,jq.grep(terms, function(a){return a!=""}));return result}
return result.length==0?false:result}
jq(function(){var terms=getSearchTermsFromURI(window.location.search);highlightSearchTerms(terms,getContentArea())});

