//http://www.dynamicdrive.com/dynamicindex11/findpage.htm

var TRange = null;
var dupeRange = null;
var TestRange = null;
var win = null;


var nom = navigator.appName.toLowerCase();
var agt = navigator.userAgent.toLowerCase();
var is_major   = parseInt(navigator.appVersion);
var is_minor   = parseFloat(navigator.appVersion);
var is_ie      = (agt.indexOf("msie") != -1);
var is_ie4up   = (is_ie && (is_major >= 4));
var is_not_moz = (agt.indexOf('netscape')!=-1)
var is_nav     = (nom.indexOf('netscape')!=-1);
var is_nav4    = (is_nav && (is_major == 4));
var is_mac     = (agt.indexOf("mac")!=-1);
var is_gecko   = (agt.indexOf('gecko') != -1);
var is_opera   = (agt.indexOf("opera") != -1);


//  GECKO REVISION

var is_rev=0
if (is_gecko) {
temp = agt.split("rv:")
is_rev = parseFloat(temp[1])
}


//  USE THE FOLLOWING VARIABLE TO CONFIGURE FRAMES TO SEARCH
//  (SELF OR CHILD FRAME)

//  If you want to search another frame, change from "self" to
//  the name of the target frame:
//  e.g., var frametosearch = 'main'

//var frametosearch = 'main';
var frametosearch = self;


function search(whichform, whichframe) {


//  TEST FOR IE5 FOR MAC (NO DOCUMENTATION)

if (is_ie4up && is_mac) return;

//  TEST FOR NAV 6 (NO DOCUMENTATION)

if (is_gecko && (is_rev <1)) return;

//  TEST FOR Opera (NO DOCUMENTATION)

if (is_opera) return;

//  INITIALIZATIONS FOR FIND-IN-PAGE SEARCHES
//document.getElementById('findthis');
if(document.getElementById('findthis').value!=null && document.getElementById('findthis').value!='') {

       str = document.getElementById('findthis').value;
       win = whichframe;
       var frameval=false;
       if(win!=self)
	{
		frameval=true;  // this will enable Nav7 to search child frame
      	 	win = parent.frames[whichframe];
	}
}
else return;  //  i.e., no search string was entered

var strFound;

//  NAVIGATOR 4 SPECIFIC CODE

if(is_nav4 && (is_minor < 5)) {

  strFound=win.find(str); // case insensitive, forward search by default

//  There are 3 arguments available:
//  searchString: type string and it's the item to be searched
//  caseSensitive: boolean -- is search case sensitive?
//  backwards: boolean --should we also search backwards?
//  strFound=win.find(str, false, false) is the explicit
//  version of the above
//  The Mac version of Nav4 has wrapAround, but
//  cannot be specified in JS


	}

//  NAVIGATOR 7 and Mozilla rev 1+ SPECIFIC CODE (WILL NOT WORK WITH NAVIGATOR 6)

if (is_gecko && (is_rev >= 1)) {

    if(frameval!=false) win.focus(); // force search in specified child frame
    strFound=win.find(str, false, false, true, false, frameval, false);

//  The following statement enables reversion of focus
//  back to the search box after each search event
//  allowing the user to press the ENTER key instead
//  of clicking the search button to continue search.
//  Note: tends to be buggy in Mozilla as of 1.3.1
//  (see www.mozilla.org) so is excluded from users
//  of that browser.

    if (is_not_moz)  document.getElementById('findthis').focus();

//  There are 7 arguments available:
//  searchString: type string and it's the item to be searched
//  caseSensitive: boolean -- is search case sensitive?
//  backwards: boolean --should we also search backwards?
//  wrapAround: boolean -- should we wrap the search?
//  wholeWord: boolean: should we search only for whole words
//  searchInFrames: boolean -- should we search in frames?
//  showDialog: boolean -- should we show the Find Dialog?


}

if (is_ie4up) {
var nodeColor= document.createElement("<span style='background-color: #ffff00'>");
// EXPLORER-SPECIFIC CODE revised 5/21/03
	if (TRange!=null) {
		TestRange=win.document.body.createTextRange();
		if (dupeRange.inRange(TestRange)) {
			TRange.collapse(false);
			strFound=TRange.findText(str);
			if (strFound) {
				//the following line added by Mike and Susan Keenan, 7 June 2003
				win.document.body.scrollTop = win.document.body.scrollTop + TRange.offsetTop;
				TRange.select();
				TRange.execCommand('BackColor', false, '#ffff00');
			}
		}
		else {
			TRange=win.document.body.createTextRange();
			TRange.collapse(false);
			strFound=TRange.findText(str);
			if (strFound) {
				//the following line added by Mike and Susan Keenan, 7 June 2003
				win.document.body.scrollTop = TRange.offsetTop;
				TRange.select();
				
				TRange.execCommand('BackColor', false, '#ffff00');
				//TRange.pasteHTML(nodeColor);
			}
		}
	}

	if (TRange==null || strFound==0) {
		TRange=win.document.body.createTextRange();
		dupeRange = TRange.duplicate();
		strFound=TRange.findText(str);
		if (strFound) {
			//the following line added by Mike and Susan Keenan, 7 June 2003
			win.document.body.scrollTop = TRange.offsetTop;
			TRange.select();
			
			TRange.execCommand('BackColor', false, '#ffff00');
		}
	}

}

var find_in_page_icon=document.getElementById('find_in_page_icon');

if (!strFound){ // string not found
		alert ("String '"+str+"' not found!");
		if(find_in_page_icon){
			find_in_page_icon.src = "/assets/img/icons/find-in-page.gif";
		}

	} 
	else{
		
		if(find_in_page_icon){
			find_in_page_icon.src = "/assets/img/icons/find-in-page-next.gif";
		}
	
	}


}



