$(document).ready(function() {

    //$(".sorts").corner("round 4px");

    $("#calendar").datepicker({ 
    	prevText: "prev month",
	nextText: "next month",
	currentText: "this month",
	yearRange: "+0:+6",
        showButtonPanel: true,
        onSelect: function(date) {
            
            $("#hidden-page").val(0);
            $("#hidden-min-date").val(date + ' 12:00:00 AM');
            $("#hidden-max-date").val(date + ' 11:59:59 PM');
            //reset this week / next week filters
            $("#thisWeekFilter").css("background-color", "transparent");
            $("#nextWeekFilter").css("background-color", "transparent");
            LoadResults();
        },
        onChangeMonthYear: function(date) {
            
            minDate = new Date(date);
            year = minDate.getFullYear();
            month = minDate.getMonth() + 1;
            maxDate = 28;
            
            if(String(",4,6,9,11").indexOf("," + month) > -1) maxDate = 30;
            if(String(",1,3,5,7,8,10,12").indexOf("," + month) > -1) maxDate = 31;
            
            min = month + '/1/' + year + ' 12:00:00 AM';
            max = month + '/' + maxDate + '/' + year + ' 11:59:59 PM';
            
            $("#hidden-page").val(0);
            $("#hidden-min-date").val(min);
            $("#hidden-max-date").val(max);
            //reset this week / next week filters
            $("#thisWeekFilter").css("background-color", "transparent");
            $("#nextWeekFilter").css("background-color", "transparent");
            LoadResults();
        }
    });
    
    $(".category-check").click(function() {
        
        c = $("#hidden-categories").val();
        //var c = "";
        if($(this).attr("checked") && c.indexOf($(this).val()) == -1) {
            c += "," + $(this).val();   
        }
        else {
            c = c.replace("," + $(this).val(),"");
        }
        //if(c.indexOf(",") == 0) c = c.substring(1);
        $("#hidden-categories").val(c);
        $("#hidden-page").val(0);
        LoadResults();
    });
    
    RegisterEvents();
    
});

function RegisterEvents() {
        
    InitToggleValidCategories();
    
    /*
    $("#sort-date").click(function() {
        if($("#hidden-order").val() != 'date') {
            $("#hidden-order").val('date');
            $("#hidden-direction").val('ascending');
        }
        else {
            if($("#hidden-direction").val() == 'ascending') {
                $("#hidden-direction").val('descending');
            }
            else {
                $("#hidden-direction").val('ascending');
            }
        }
        LoadResults();
    });
    
    $("#sort-title").click(function() {
        if($("#hidden-order").val() != 'title') {
            $("#hidden-order").val('title');
            $("#hidden-direction").val('ascending');
        }
        else {
            if($("#hidden-direction").val() == 'ascending') {
                $("#hidden-direction").val('descending');
            }
            else {
                $("#hidden-direction").val('ascending');
            }
        }
        LoadResults();
    });
    
    $("#sort-rank").click(function() {
        if($("#hidden-order").val() != 'rank') {
            $("#hidden-order").val('rank');
            $("#hidden-direction").val('ascending');
        }
        else {
            if($("#hidden-direction").val() == 'ascending') {
                $("#hidden-direction").val('descending');
            }
            else {
                $("#hidden-direction").val('ascending');
            }
        }
        LoadResults();
    });*/
    
    $(".results-page").click(function() {
        $("#hidden-page").val(parseInt($(this).text(),10)-1);
        LoadResults();
    });
    
    $("#results-query-button").click(function() {
        $("#hidden-query").val($("#results-query").val());
        LoadResults();
    });
    
}

function ToggleValidCategories() {
    var validCategories = "";
    if($("#hidden-valid-categories") != null) {
        validCategories = $("#hidden-valid-categories").val();
    }
    
    $(".category-check").each(function() {
        if(validCategories != null) {
            validCategoriesList = validCategories.split(',');
            var found = false;
            for(x = 0; x < validCategoriesList.length; x++) {
                if($(this).val() == validCategoriesList[x]) {
                    found = true;
                    break;
                }
            }
            if(found) {
               $(this).parent().attr("style", "display:block;");
            }
            else {
               $(this).parent().attr("style", "display:none;");
            }
        }
    });
    
    $(".categoryMultiSelect option").each(function() {
        //ie blows up if you don't check for null.
        if(validCategories != null) {
            
            if(validCategories.indexOf($(this).val()) > -1) {
               $(this).attr("style", "display:block;");
            }
            else {
               $(this).attr("style", "display:none;");
            }
        }
    });
}

function InitToggleValidCategories() {
    
    $(".category-check").attr('disabled','disabled');
    
    $.getJSON("/Search/Handlers/SearchHandler.aspx",
    {
        categories:$("#hidden-categories").val(),
        query:$("#hidden-query").val(),
        order:$("#hidden-order").val(),
        mindatecreated:$("#hidden-min-date").val(),
        maxdatecreated:$("#hidden-max-date").val(),
        datesearchfield:$("#hidden-date-search-field").val(),
        orderdirection:$("#hidden-direction").val(),
        xsl:"/Search/xsl/SearchResultsAllCategories.xsl"
    },
    function(json) { 
        $(".hidden-valid-categories").val(json);
        $(".category-check").removeAttr('disabled');
        ToggleValidCategories();
     } );
    
}

function LoadResults() {

    $(".category-check").attr('disabled','disabled');

    $(".results").html('<div style="text-align: center;"><img id="spinningLogo" src="/images/ajax-loader-large.gif" /></div>');
    $(".results").load("/Search/Handlers/SearchHandler.aspx",
    {
        categories:$("#hidden-categories").val(),
        query:$("#hidden-query").val(),
        order:$("#hidden-order").val(),
        mindatecreated:$("#hidden-min-date").val(),
        maxdatecreated:$("#hidden-max-date").val(),
        datesearchfield:$("#hidden-date-search-field").val(),
        orderdirection:$("#hidden-direction").val(),
        page:$("#hidden-page").val(),
        pagesize:$("#hidden-page-size").val(),
        xsl:$("#hidden-xsl").val()
    },
    function() { 
        RegisterEvents();
     } );
    if(isSearch) {
        $(".count").show();
    } else {
        $(".count").hide();
    }
    
}