Hilite={
	elementid:'SSContent',
	exact:false,
	max_nodes:1000,
	onload:true,
	style_name:'hilite',
	style_name_suffix:true,
	debug_referrer:''
} ;

Hilite.search_engines=[
 	['^http://(www)?\\.?otc.*', 'term='],
	['^http://(www)?\\.?google.*','q='],
	['^http://search\\.yahoo.*','p='],
	['^http://search\\.msn.*','q='],
	['^http://search\\.aol.*','userQuery='],
	['^http://(www\\.)?altavista.*','q='],
	['^http://(www\\.)?feedster.*','q='],
	['^http://search\\.lycos.*','query='],
	['^http://(www\\.)?alltheweb.*','q=']
];

Hilite.decodeReferrer=function(referrer){
	var query=null;var match=new RegExp('');
	for(var i=0;i<Hilite.search_engines.length;i++){
		match.compile(Hilite.search_engines[i][0],'i');
		if(referrer.match(match)){
			match.compile('^.*'+Hilite.search_engines[i][1]+'([^&]+)&?.*$');
			query=referrer.replace(match,'$1');
			if(query){
				query=decodeURIComponent(query);
				query=query.replace(/\'|"/,'');
				query=query.split(/[\s,\+\.]+/);
				return query;
			} 
		} 
	} 
	return null;
} ;

Hilite.hiliteElement=function(elm,query){
	if(!query||elm.childNodes.length==0)return;
	var qre=new Array();
	for(var i=0;i<query.length;i++){
		query[i]=query[i].toLowerCase();
		if(Hilite.exact)qre.push('\\b'+query[i]+'\\b');
		else qre.push(query[i]);
	} 
	qre=new RegExp(qre.join("|"),"i");
	var stylemapper={} ;
	for(var i=0;i<query.length;i++)stylemapper[query[i]]=Hilite.style_name+(i+1);
	var textproc=function(node){
		var match=qre.exec(node.data);
		if(match){
			var val=match[0];
			var k='';
			var node2=node.splitText(match.index);
			var node3=node2.splitText(val.length);
			var span=node.ownerDocument.createElement('SPAN');
			node.parentNode.replaceChild(span,node2);
			span.className=stylemapper[val.toLowerCase()];
			span.appendChild(node2);
			return span;
		} else {
			return node;
		} 
	} ;
	Hilite.walkElements(elm.childNodes[0],1,textproc);
} ;

Hilite.hilite=function(){
	var q=Hilite.debug_referrer?Hilite.debug_referrer:document.referrer;
	var e=null;
	q=Hilite.decodeReferrer(q);
	if(q&&((Hilite.elementid&&(e=document.getElementById(Hilite.elementid)))||(e=document.body))){
		Hilite.hiliteElement(e,q);
	} 
} ;

Hilite.walkElements=function(node,depth,textproc){
	var skipre=/^(script|style|textarea)/i;
	var count=0;
	while(node&&depth>0){
		count++;
		if(count>=Hilite.max_nodes){
			var handler=function(){
				Hilite.walkElements(node,depth,textproc);
			} ;
			setTimeout(handler,50);
			return;
		} 
		if(node.nodeType==1){
			if(!skipre.test(node.tagName)&&node.childNodes.length>0){
				node=node.childNodes[0];depth++;
				continue;
			} 
		} else if(node.nodeType==3){
			node=textproc(node);
		} 
		if(node.nextSibling){
			node=node.nextSibling;
		} else{
			while(depth>0){
				node=node.parentNode;
				depth--;
				if(node.nextSibling){
					node=node.nextSibling;
					break;
				} 
			} 
		} 
	} 
} ;

if(Hilite.onload){
	if(window.attachEvent){
		window.attachEvent('onload',Hilite.hilite);
	} else if(window.addEventListener){
		window.addEventListener('load',Hilite.hilite,false);
	} else{
		var __onload=window.onload;
		window.onload=function(){
			Hilite.hilite();
			__onload();
		} ;
	} 
} 