var prevSearch = "";
    
    function newSearchKeyPress(e)
    {
        if ((e.keyCode || e.which) == 13)
        {
            newSearch('newsearch-bottom');
            return false;
        }
        return true;
    }
    
    $("document").ready(function()
    {
        //var ac = $("#searchBox .text").autocomplete("/Search/Handlers/SearchHandler.aspx", {formatItem:myFormatItem,onItemSelect:myOnItemSelect,minChars:3});
        //ac[0].autocompleter.setExtraParams(
        //    { order:"rank", direction:"descending", pagesize:10, xsl:"/xsl/Autocomplete.xsl" }
        //);

        $('#searchBox .button').click(function() { Search('search-container'); } );
        $('#SearchBtn').click(function() { Search('template-search'); } );
        
        //deletes / returns default search text
        $("#SearchTextBox").focus(function() { $(this).attr("value",""); });
        $("#SearchTextBox").blur(function() { 
            prevSearch = $(this).val();
            $(this).attr("value","search smart"); 
        });
        
	    $('#searchBox .text').keypress(function(e)
	    {
	        if ((e.keyCode || e.which) == 13)
	        {
	            Search('search-container');
	            return false;
	        }
	        return true;
	    });
	    
	    $('#template-search .text').keypress(function(e)
	    {
	        if ((e.keyCode || e.which) == 13)
	        {
	            Search('template-search');
	            return false;
	        }
	        return true;
	    });
	});
	
	function myOnItemSelect(li) {
	    window.location = li.extra[0];
	}
	
	function myFormatItem(row,pos,count) {
	    return "<a href=\"" + row[1] + "\">" + row[0] + "</a>";
	}

    //used on search template for new searching
    function newSearch(parentDiv) {
        var searchQuery = $('#'+parentDiv+' .searchQuery').val();
        if(searchQuery != "") {
            window.location = '/smartsearch.aspx?query=' + searchQuery;
        }
    }
	
	//header sitewide search
	function Search(parentDiv)
	{
	    var searchQuery = $('#'+parentDiv+' .text').val();
	    if(searchQuery.length < 3) return false;
	    if(searchQuery == 'search smart' && prevSearch == '') return false;
        if(prevSearch != "" && prevSearch != "search smart") {
            window.location = '/smartsearch.aspx?query=' + prevSearch;
        } else {
            window.location = '/smartsearch.aspx?query=' + searchQuery;
        }
        return true;
	}


$(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() {
    // Update min/max dates from date From and To
    UpdateDates();

    $(".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();
    }

    $(".see-also").each(function(){ $(this).hide(); });
}
