// @(#) $Id: lastSearch.js 23647 2006-02-03 12:14:06Z ashley $

// If we have a search query, then insert it into the search form.
function useLastSearch ( queryid, queryform ) {
    var last_search = new Cookie( document, 'last_search_'+queryid );
    last_search.load();
    if ( !last_search.q )
        return;

    var query_box = document.getElementById( queryid );
    if ( ! query_box )
        return;

    query_box.value = last_search.q;

    // Ensure that it goes away when you start typing.
    query_box.onfocus = function() {
        this.select();
    }
}

function useLastSearches () {
    useLastSearch( 'query', 'quicksearch' );
    useLastSearch( 'advquery', 'advanced_search' );
}

function setLastSearch ( queryid ) {
    // This cross browser chicanery taken from
    // http://www.quirksmode.org/js/events_access.html
    // if (!e) e = window.event;

    var query_box = document.getElementById( queryid );
    if ( ! query_box )
        return;

    var last_search = new Cookie( document, 'last_search_'+queryid, false, '/' );
    last_search.q = query_box.value;

    // Record for posterity.
    last_search.store()
}

// This has to be called at page load time, not the time that this piece
// of code is loaded.  So it's in a separate function which goes into
// the onload handler.
function assignSubmitHandler ( queryid, queryform ) {
    var search_form = document.getElementById( queryform );
    if ( !search_form )
        return;

    search_form.onsubmit = function () {
        setLastSearch( queryid );
        // To ensure the real submit goes ahead.
        return true;
    }
}

function assignSubmitHandlers () {
    assignSubmitHandler( 'query', 'quicksearch' );
    assignSubmitHandler( 'advquery', 'advanced_search' );
}

addLoadEvent( useLastSearches );
addLoadEvent( assignSubmitHandlers );

// vim: set ai et sw=4 :
