                  /******************************************
    * Find In Page Script -- Submitted/revised by Alan Koontz (alankoontz@REMOVETHISyahoo.com)
    * Visit Dynamic Drive (http://www.dynamicdrive.com/) for full source code
    * This notice must stay intact for use
    ******************************************/

    //  revised by Alan Koontz -- May 2003

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


    //  SELECTED BROWSER SNIFFER COMPONENTS DOCUMENTED AT
    //  http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html

    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

    if(whichform.findthis.value!=null && whichform.findthis.value!='') {

       str = whichform.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)  whichform.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) {

    // 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();
        }


    }

    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();
        }



    }
    }

    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();
        }


    }

    }

    if (!strFound) alert ("String '"+str+"' not found!") // string not found

        
    }
   