// main.js
Event.observe(window, 'load', function() {
    Form.focusFirstElement('search');
    setDefalutValue();
    search();
    new Form.Element.Observer('keyword', 0.5, search);
    Event.observe('search', 'submit', search);
    Event.observe('keyword', 'keydown', function(e) {
        // Ctrl + Shift + u
        if (e.ctrlKey && e.shiftKey && e.keyCode == 85) {
            clearKeyword();
        }
    });
});

function setDefalutValue() {
    var keyword = location.search;
    setKeyword(unescape(keyword.substr(1)));
    updatePermalink();
}

function setKeyword(keyword) {
    $('keyword').value = keyword;
    return;
}

function clearKeyword() {
    Field.clear('keyword');
    Field.focus('keyword');
    return;
}

function updatePermalink() {
    if ($F('keyword') != '') {
        $('permalink').href = './?' + escape($F('keyword'));
    } else {
        $('permalink').href = './';
    }
}

function search() {
    new Ajax.Updater('result', './search.cgi', {
        onLoading: function(request) {
            Element.show('loading');
        },
        onComplete: function(request) {
            Element.hide('loading');
            Element.show('result');
            updatePermalink();
        },
        parameters: Form.serialize('search')
    });
    return false;
}
