function pageselectCallback(page_index, jq) {
    var iItemsPerPage = 10;
    var iTotalElem = $("#tblHiddenResults tr.result").length / 10

    var iMaxElem = Math.min((page_index + 1) * iItemsPerPage, $("#tblHiddenResults tr.result").length);
    var sNewContent = "";
    $("#tblResults").empty();

    for (var i = page_index * iItemsPerPage; i < iMaxElem; i++) {
        $("#tblResults").append($("#tblHiddenResults tr.result:eq(" + i + ")").clone());
    }
    if (iTotalElem == 0) {
        $("#lblPage").html("");
    }
    else {
        $("#lblPage").html("  Page " + (page_index + 1) + " of  " + Math.ceil(iTotalElem));
    }

    window.scrollTo(0, 0);
    return false;
}

function initPagination() {
    var num_entries = $("#tblHiddenResults tr.result").length;
    //alert(num_entries);

    $("#divPagination").pagination(num_entries, {
        items_per_page: 10,
        callback: pageselectCallback
    });
}

function SelectTab(iType) {
    // deselect the current filtered item, if any
    varSelected = $(".search_large_bullet_list_selected")
    if (varSelected) {
        $(varSelected).addClass("search_large_bullet_list")
        $(varSelected).removeClass("search_large_bullet_list_selected")
    }

    // select the newly chosen item to filter
    if (iType == 1) {
        $("#divTextbooks").addClass("search_large_bullet_list_selected");
        $("#divTextbooks").removeClass("search_large_bullet_list");
    }
    if (iType == 2) {
        $("#divStudyGroups").addClass("search_large_bullet_list_selected");
        $("#divStudyGroups").removeClass("search_large_bullet_list");
    }
    if (iType == 3) {
        $("#divResources").addClass("search_large_bullet_list_selected");
        $("#divResources").removeClass("search_large_bullet_list");
    }
    if (iType == 4) {
        $("#divQuestionAndAnswers").addClass("search_large_bullet_list_selected");
        $("#divQuestionAndAnswers").removeClass("search_large_bullet_list");
    }
    if (iType == 5) {
        $("#divPracticeProblems").addClass("search_large_bullet_list_selected");
        $("#divPracticeProblems").removeClass("search_large_bullet_list");
    }
    if (iType == 6) {
        $("#divDefinitions").addClass("search_large_bullet_list_selected");
        $("#divDefinitions").removeClass("search_large_bullet_list");
    }
}

function DoSearch(sTerms, iType) {
    UpdateTextbookHelp(sTerms);
    // ajax call to get search results and then populate the hidden div with them
    if (sTerms == "")
        return -1;

    if (sTerms == sKeywords && iType == iSearchType)
        return -1;

    $("#divPagination").hide();
    $("#divSearchResults").hide();
    $("#divNoDataFound").hide();
    $("#divSpinner").show();

    SelectTab(iType);

    var SearchResultParam = {};
    //alert(iType);
    //alert(sTerms);
    SearchResultParam.nSearchIndexTypeId = iType;
    SearchResultParam.sKeywords = sTerms;
    
    var DTO = { "objResultParam": SearchResultParam };
    $.ajax(
        {
            type: "POST",
            url: "/WebService/SearchService.asmx/GetResults",
            data: JSON.stringify(DTO),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                $("#divHiddenResults").html(msg.d);
                var nTotalRecords = $("#tblHiddenResults tr.result").length;

                if (nTotalRecords <= 10) {   //items_per_page =10
                    $("#divPagination").hide();
                }
                else {
                    $("#divPagination").show();
                }

                if (msg.d == '<table id="tblHiddenResults"></table>') {
                    $("#divPagination").hide();
                    $("#divNoDataFound").show();

                    var sEnteredText = $("#txtAJAXSearch").val();
                    sEnteredText = sEnteredText.replace('enter your search', '')
                    if (sEnteredText == "") {
                        $("#divDefaultMessage").show();
                        $("#divNoResults").hide();
                    }
                    else {
                        $("#divDefaultMessage").hide();
                        $("#divNoResults").show();
                    }
                }
                initPagination();
                sKeywords = sTerms;
                iSearchType = iType;
                $("#divSpinner").hide();
                $("#divSearchResults").show();

            },
            error: function(xhr) {
//                alert(xhr.responseText);
            }
        });
}

$(document).ready(function() {
    $("#lnkTextbook").click(function() {
        if (iSearchType != 1) {
            DoSearch(sKeywords, 1);
        }
        // else navigate to 1st page?
    });
    $("#lnkStudyGroups").click(function() {
        if (iSearchType != 2) {
            DoSearch(sKeywords, 2);
        }
        // else navigate to 1st page?
    });
    $("#lnkResource").click(function() {
        if (iSearchType != 3) {
            DoSearch(sKeywords, 3);
        }
        // else navigate to 1st page?
    });
    $("#lnkQABoard").click(function() {
        if (iSearchType != 4) {
            DoSearch(sKeywords, 4);
        }
        // else navigate to 1st page?
    });
    $("#lnkPracticeProblem").click(function() {
        if (iSearchType != 5) {
            DoSearch(sKeywords, 5);
        }
        // else navigate to 1st page?
    });
    $("#lnkDefinitions").click(function() {
        if (iSearchType != 6) {
            DoSearch(sKeywords, 6);
        }
        // else navigate to 1st page?
    });

    $("#lnkSearch").click(function() {
        sKeywordsText = $("#txtAJAXSearch").val();
        if (sKeywordsText != "" && sKeywordsText != sKeywords && sKeywordsText != "enter your search")
            DoSearch(sKeywordsText, 0);
    });

    $("txtAJAXSearch").bind("keypress", function(e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if (code == 13) {
            e.cancelBubble = true;
            e.returnValue = false;
            DoSearch(sKeywords, 0);
            return false;
        }
    });

    initPagination();
    SelectTab(iSearchType);
    var sSearchText = $.jqURL.get('search');
    //sSearchText = $.URLDecode(sSearchText);
    sSearchText = decodeURIComponent(sSearchText).replace(/\+/g, ' ');

    if (sSearchText == "" || sSearchText == 'undefined') {
        $("#txtAJAXSearch").val('enter your search');
    }
    else {
        $("#txtAJAXSearch").val(sSearchText);
        UpdateTextbookHelp(sSearchText);
    }
});

function checkSearchKey(evt, name1) {
    if (evt.keyCode == 13 || evt.charCode == 13) {
        evt.cancelBubble = true;
        evt.returnValue = false;
        DoSearch(name1, 0);
        return false;  // NEW!
    }
}

function UpdateTextbookHelp(sSearchText) {
    $("#divTextbookHelp").addClass('clearfix');
    $("#aTextbookHelp").html(titleCase(sSearchText) + ' Textbook Solutions?').click(function() {
        if (iSearchType != 1) {
            DoSearch(sKeywords, 1);
        }
    });
}

function titleCase(word) {
    return word.substring(0, 1).toUpperCase() + word.substring(1);
}





