function init ()
{
    rdoc = document;
      // rdoc = top.mainFrame.document;
      // ldoc = top.leftFrame.document;

    insert_form();

    theFilter = new Filter();
    var tags = rdoc.getElementsByTagName("tr");
    var sreg = new RegExp("tr_(.*)_(.*)");
    var taglen = tags.length;
    for( var i=0; i<taglen; i++ ) {
	var tag   = tags[i];
	var tagid = tag.id;
	if( tagid && tagid.match( sreg ) ) {
	    var divtag = rdoc.getElementById( "div_" + RegExp.$1 + "_" + RegExp.$2 );
	    if ( divtag ) {
		theFilter.setTarget( divtag, [ tag, divtag ] );
	    }
	}
    }

    theTotal = theFilter.getTotal();

    var skey = rdoc.getElementById("searchkey");
    skey.value = "";
    do_filtering = function() { // generate filtering function.
	if (skey.value) {
	    var nmatches = theFilter.evaluate( "" + skey.value );
	    rdoc.getElementById("nmatches").firstChild.nodeValue = "" + nmatches + " / " + theTotal;
	} else {
	    theFilter.evaluate( "" );
	    rdoc.getElementById("nmatches").firstChild.nodeValue = "? / " + theTotal;
	}
    }

      // + set handlers.
    skey.onchange = do_filtering;
    set_incremental();
    rdoc.getElementById("incremental").onchange  = set_incremental;
    rdoc.getElementById("reset_button").onclick  = reset_form;
    rdoc.getElementById("search_button").onclick = do_filtering;
      // - set handlers.
}

function reset_form()
{
    var skey = rdoc.getElementById("searchkey");
    skey.value='';
    do_filtering();
}

function set_incremental()
{
    var skey = rdoc.getElementById("searchkey");
    if( rdoc.getElementById("incremental").checked ) {
	skey.onkeyup = do_filtering;
    } else {
	skey.onkeyup = null;
    }
    do_filtering();
}

function apply_filter()
{
    do_filtering();
    return false;
}


function insert_form()
{
    document.getElementById("lookupInputs").innerHTML = '<form onsubmit="return apply_filter();">' + 
	'<table border="0" cellspacing="1" cellpadding="1"><tr>' +
	'<td>該当した項目<p id="nmatches">?/?</p></td>' + 
	'<td><input name="text" type="text" id="searchkey" value="" size="30" /></td>' +
	'<td><input type="button" value="検索" id="search_button" /></td>' +
	'<td><input type="button" value="リセット" id="reset_button" /></td>' +
	'<td><input type="checkbox" id="incremental" checked /> <label for="incremental">即時検索</label></td>' +
	'</tr></table>' +
	'</form>';
}

