/*

Searchlite v 0.1.1 Site Extension Port

Copyright (c) Tony Pisarra 2005
http://sophiaknows.com

DESCRIPTION: 

Adds coded highlighting to instances of searched terms occuring 
in site pages accessed via search engine results

CREATED:     2005-06-16
ISSUED:      2005-06-16
MODIFIED:    2005-06-23

*/

/* Searchlite (Begin Main) */


window.addEventListener("load", function(e) {

	var params=new Array();
	var swords='';
	var bgcolors=new Array("#fcc","#ffc","#cff","#ddd");

	/* Begin User Editable */

	/* Add/Delete Param Names (Begin ) */
	var pnames=new Array("q","p","query");
	/* Add/Delete Param Names (End) */

	/* Enable Google Site Search (true|false) (Begin) */
	var targetedsearch=false;
	/* Enable Google Site Search (End) */

	/* End User Editable */
	
	var bstring=document.body.innerHTML;

	// Capture/Store HTML
	xtags=bstring.match(/<[^>]+>/g);

	// Temorarily Replace HTML
	bstring=bstring.replace(/<[^>]+>/g,'{T4G}');

	// Retrieve Referring Params
	qparams=unescape(document.referrer).replace(/\+/g,' ').replace(/^.+\?/,'').split('&');

	// Init Referring Params
	for(i=0;i<qparams.length;i++) { k=qparams[i].split('=');params[k[0]]=k[1]; }

	// Init Search Word List
	for(p=0;p<pnames.length;p++) { if(params[pnames[p]]) swords=params[pnames[p]].split(' ') }

	// If Search Word List: Do Replace
	if(swords && (!targetedsearch || document.location.href.match(params['site']))) {
		for (i=0;i<swords.length;i++) {
			anchor="<span style=background:"+bgcolors[((29+i)%bgcolors.length)]+">"+swords[i].toUpperCase()+"<\/span>";
			exp=eval("/"+swords[i]+"/ig");
			bstring=bstring.replace(exp,anchor);
			} 

		// Restore HTML
		for(h=0;h<xtags.length;h++) {
			bstring=bstring.replace("{T4G}",xtags[h]);            
			}
		// Render Page
		document.body.innerHTML=bstring;
		document.close();
		}
	}, false);

/* Searchlite (End Main) */
