function UpdateZebraStripes(quickSortTable)
{
    quickSortTable.filter(':visible').removeClass('alt').filter(':odd').addClass('alt');
}

$(function() {

	// Dashboard search label tweak
	//$('.dashboard-search label').labelOver('over-apply');

    // Bind filter links
    $('.filterLink').click(function() {
        // Select the table which we'll filter by field
        var quickSortTable = $('.quickSortTable');

        // Gather the expression and field from the link
        var exp = $(this).attr('exp');
        var field = $(this).attr('field');

        // Start by showing all table rows
        quickSortTable.find('tr').hide();
        quickSortTable.find('tr td[fieldName=' + field + ']').each(function() {
            if(exp.match(/\!/))
            {
                var newExp = exp.replace(/\!/, '');

                var expArray = newExp.split(',');
                if(expArray.length == 0)
                {
                    quickSortTable.find('tr').show();
                    return false;
                }

                var found = false;
                for(var i in expArray)
                {
                    var regExp = new RegExp(expArray[i], 'i');
                    var fieldContents = $(this).text();

                    if(fieldContents.match(regExp)) found = true;
                }

                if(found == false) $(this).closest('tr').show();
            }
            else
            {
                var regExp = new RegExp(exp, 'i');
                var fieldContents = $(this).text();

                if(fieldContents.match(regExp))
                {
                    $(this).closest('tr').show();
                }
            }
        });

        UpdateZebraStripes(quickSortTable);
    });

    // Bind quicksearch filter
    $('#searchLocation').keyup(function() {
        // Select the table which we'll filter by field
        var quickSortTable = $('.quickSortTable');

        // Gather the expression and field from the link
        var exp = $(this).val();
        var field = $(this).attr('field');

        quickSortTable.find('tr').hide();
        quickSortTable.find('tr td[fieldName=' + field + ']').each(function() {
            var regExp = new RegExp(exp, 'i');
            var fieldContents = $(this).text();

            if(fieldContents.match(regExp))
            {
                $(this).closest('tr').show();
            }
        });
    });

    $('[name=quickSearchForm]').submit(function() {
        return false;
    });

    // Bind quicksort button
    $('.quickSortButton').click(function() {
        // Get the field on which to sort
        var quickSortSelectField = $('select.quickSortSelectField').val();
        if(quickSortSelectField == '') return false;

        // Select the table which we'll sort
        var quickSortTable = $('.quickSortTable');

        $('.quickSortTable').load($('[name=quickSortUrl]').val() + quickSortSelectField + ' .quickSortTable tr');

/*
        // Generate an array of values and move the rows into the working container table
        $('#workingContainerTable tr').remove();

        var sortValueArray = new Array();
        var keyArray = new Array();
        var i=0;
        quickSortTable.find('tr').each(function() {
            var value = $(this).find('[fieldName=' + quickSortSelectField + ']').text();

            $(this).clone().appendTo('#workingContainerTable');
            $(this).remove();

            sortValueArray[i] = value;
            keyArray.push(i);
            i++;
        });

        // Sort array
        sortValueArray.sort(function (a,b) {
            var value1;
            var value2;

            if(!isNaN(a))
            {
                a = a + '';
            }
            value1 = a[0];


            if(!isNaN(b))
            {
                b = b + '';
            }
            value2 = b[0];

            a.toLowerCase();
            b.toLowerCase();

            a = a.charCodeAt(0);
            b = b.charCodeAt(0);

            return a-b;
        });

        alert($.dump(sortValueArray));

        // Rearrange rows
        for(var i in sortValueArray)
        {
            alert('i: ' + i + ' Value: ' + sortValueArray[i]);

            $('#workingContainerTable').find('tr:eq(' + i + ')').clone().appendTo('.quickSortTable');
        }
*/
    });
});
