var searchTimer;
var oldSearch = null;

function updateTable(filter, offset, length) {
    new Ajax.Updater('datatable', 'datatable.php', {
        parameters: 'filter='+filter+'&offset='+offset+'&length='+length,
        method: 'get',
        onComplete: focusSearchBox
    });
}

function checkTableSearch(event, perPage) {
    var key;

    if(window.event) {
        // IE
        key = window.event.keyCode;
    } else {
        // Firefox
        key = event.which;
    }

    if(key == 13) {
        searchTable(perPage, true);
        return false;
    }

    return true;
}

function searchTable(perPage, immediately) {
    if(typeof this.searchTimer == "number") {
        window.clearTimeout(searchTimer);
    }

    var timeout = immediately ? 0 : 1000;

    searchTimer = window.setTimeout(function() {
        doSearchTable(perPage);
    }, timeout);

    return false;
}


function doSearchTable(perPage) {
    var search = $F('tableSearch');
    if(search == this.oldSearch) {
        return;
    }

    updateTable(search, 0, perPage);

    this.oldSearch = search;
}

function focusSearchBox() {
    $('tableSearch').activate();
}
