function AmsSortList() {
    this.sortOptions = {
        deadline: {
            field: 'deadline_date',
            dir: 'ASC'
        },
        most_recent: {
            field: 'open_date',
            dir: 'DESC'
        },
        name: {
            field: 'name',
            dir: 'ASC'
        },
    };
}

AmsSortList.prototype.applySelectedCriteria = function(pg) {
    var paginate = $('#sortlist_paginate').val();
    var searchTxt = $('#sortlist_search_txt').val();
    var selectedSortVal = $('#sortlist_sort_field_select option:selected').val();
    var sortField = this.sortOptions[selectedSortVal].field;
    var sortDir = this.sortOptions[selectedSortVal].dir;
    var categoryFilter = new Array();
    $.each($("input[name='sortlist_category_filter']:checked"), function() {
        categoryFilter.push($(this).val());
    });
    var audienceFilter = new Array();
    $.each($("input[name='sortlist_audience_filter']:checked"), function() {
        audienceFilter.push($(this).val());
    });
    var data = {
        sortlist_paginate: paginate,
        sortlist_sort_field: sortField,
        sortlist_sort_dir: sortDir,
        sortlist_category_filter: categoryFilter,
        sortlist_audience_filter: audienceFilter,
        sortlist_search_txt: searchTxt
    };
    if (null != pg) {
        data.sortlist_page = pg;
    }
    $.post( "/cgi-bin/opportunities/opp_index/sortlist_html/listing", data, 
            function (sortlistHTML) {
                $("#sortlist_div").html(sortlistHTML);
                amsOpportunities.processNewWindow();
            });
}

AmsSortList.prototype.gotoPage = function(pg) {
    this.applySelectedCriteria(pg);
}

AmsSortList.prototype.reset = function() {
    $('#sortlist_criteria_control_form')[0].reset();
    this.applySelectedCriteria();
}

var amsSortList = new AmsSortList();

$(function() {
    $('#sortlist_sort_field_select option').click(function() {
        amsSortList.applySelectedCriteria();
    });

    $("input[name='sortlist_audience_filter']").each(function() {
        $(this).change(function() {
            amsSortList.applySelectedCriteria();
        });
        var audId = $(this).attr("id");
        audId = audId.substring(audId.lastIndexOf("_") + 1);
        $(this).parent().addClass("target-audience-" + audId);
    });

    $("input[name='sortlist_category_filter']").each(function() {
        $(this).change(function() {
            amsSortList.applySelectedCriteria();
        });
        var catId = $(this).attr("id");
        catId = catId.substring(catId.lastIndexOf("_") + 1);
        $(this).parent().addClass("category-" + catId);
    });

    $("#sortlist_search_txt").keypress(function(event){
        var keycode = (event.keyCode ? event.keyCode : event.which);
        if(keycode == '13'){
            event.preventDefault();
            amsSortList.applySelectedCriteria();
        }
    });

    $('#sortlist_search_button').click(function() {
        amsSortList.applySelectedCriteria();
    });

    var resetButton = $('<input/>');
    $(resetButton).val('Reset');
    $(resetButton).attr('type', 'button');
    $(resetButton).click(function() {
        amsSortList.reset();
    });
    var resetDiv = $('<div/>');
    $(resetDiv).attr('style', 'margin-top: 10px;');
    $(resetDiv).append(resetButton);
    $('#sortlist_criteria_control_form').append(resetDiv);

    $('#sortlist_criteria_control_form').submit(function() {
        return false;
    });
});

$(document).ready(function(pg){
    var thisUrl = String(window.location);
    if (thisUrl.indexOf('REU') > 0) {
        $('#sortlist_category_filter_id_10').prop('checked', true);
        var newUrl = thisUrl.replace('REU','');
        window.history.pushState("", "", newUrl);
        amsSortList.applySelectedCriteria();
    }
});



