﻿var pageJustLoaded = true;
var paginationOptions = {
    items_per_page: 10,
    num_display_entries: 10,
    num_edge_entries: 0,
    prev_text: "< Previous",
    next_text: "Next >",
    next_show_always: false,
    prev_show_always: false,
    current_page: 0,
    callback: pageselectCallback
};

var originalQuery = "";
var originalDate = "";
var origChkSynonym = false;
var domTxtResults, domBtnSearch, domTxtError, domchkSynonym;

function getParam(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]").toLowerCase();
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href.toLowerCase());
    if (results == null)
        return "";
    else
        return results[1];
}



/**
* Callback function that displays the content.
*
* Gets called every time the user clicks on a pagination link.
*
* @param {int}page_index New Page index
* @param {jQuery} jq the container with the pagination links as a jQuery object
*/
function pageselectCallback(page_index, jq) {
    if (!pageJustLoaded) {
        var startIndex = page_index * paginationOptions.items_per_page;
        //var startIndex = getParam('startindex');
        //jQuery('#startNum').val(startIndex);
        //alert(jQuery("#startNum").val());
        //jQuery(domTxtResults).html("");
        //jQuery(domBtnSearch).click();
        //alert(jQuery("#q").val());
		
        doSearch('en_us', jQuery("#q").val(), startIndex);
    }

    pageJustLoaded = false;

    // Prevent click eventpropagation
    return false;
}

function suggest() {

    jQuery("#q").val(jQuery("#lnkSuggestion").text());
    jQuery(domTxtResults).html("");
    jQuery(domBtnSearch).click();
}


function moveBack() {
    //var startValue = parseInt(jQuery('#startNum').val(), 10);
    var startValue = parseInt(getParam('startindex'), 10);
    var prevPage = (startValue / paginationOptions.items_per_page) - 1;
    pageselectCallback(prevPage, null);

}

function moveForward() {
    //var startValue = parseInt(jQuery('#startNum').val(), 10);
    var startValue = parseInt(getParam('startindex'), 10);
    var prevPage = (startValue / paginationOptions.items_per_page) + 1;
    pageselectCallback(prevPage, null);

}

function sortIt() {

    if (jQuery('#txtSort').val() == 'r') {
        jQuery('#txtSort').val('d');
    } else {
        jQuery('#txtSort').val('r');
    }

    jQuery(domTxtResults).html("");
    jQuery(domBtnSearch).click();
}

  function gInitialize() {


    //hide global search box
    //jQuery(".basicsearch").hide();
    //jQuery(".basicsearch").html(" ");
    //var startValue = parseInt(jQuery('#startNum').val(), 10); 
    var startValue = parseInt(getParam('startindex'), 10); 
    if (startValue) {
        paginationOptions.current_page = (startValue / paginationOptions.items_per_page);
    } else {
        paginationOptions.current_page = 0;
    }

    //console.log("paginationOptions.current_page: " + paginationOptions.current_page);

    var totalNum = parseInt(jQuery('#totalNum').val(), 10);
    //paginationOptions.num_display_entries = (parseInt(totalNum, 10) / paginationOptions.items_per_page);
    //console.log("paginationOptions.num_display_entries : " + paginationOptions.num_display_entries);

    jQuery("#Pagination").pagination(totalNum, paginationOptions);

    //show prev link 
/* not used
    if (startValue >= paginationOptions.items_per_page) {
        jQuery('#prevLink').show();
    } else {
        jQuery('#prevLink').hide();
    }

    //show next link
    if (startValue + paginationOptions.items_per_page < totalNum) {
        jQuery('#nextLink').show();
    } else {
        jQuery('#nextLink').hide();
    }
*/
    //button click handler
    /*
    jQuery('Search').click(function () {
        alert("you click me"); 
        if (originalQuery != jQuery("#q").val()) {
            jQuery('#startNum').val("0");
        }

        //alert(jQuery('#datepicker').val());
        if (originalDate != jQuery('#datepicker').val()) {
            jQuery('#startNum').val("0");
        }

        if (jQuery(domchkSynonym).is(':checked') != origChkSynonym) {
            jQuery('#startNum').val("0");
        }

        jQuery(domTxtResults).html("");
        jQuery(domTxtError).html("");

    });
    */
    //clickthrough handler
    jQuery("#divResults a").click(function () {
        var asrPage = "/gclick.aspx?";
        var ct = jQuery(this).attr("ctype");
        var r = jQuery(this).attr("rank");
        var site = jQuery(this).attr("site");
        var url = jQuery(this).attr("gid");
        var theQ = jQuery("#spnQuery").html();

        var uri = asrPage + "ct=" + ct + "&r=" + r + "&site=" + site + "&url=" + url + "&q=" + theQ;
        //alert("<img src='" + uri + "'></img>");
        jQuery('#divClickThrough').html("<img src='" + uri + "'></img>");

        //k = document.createElement("img");
        //k.src = uri;

        return true;
    });

    //Date Picker setup
    /*
    jQuery(function () {
        jQuery("#datepicker").datepicker();
        //jQuery("#datepicker").datepicker('option', { dateFormat: 'yy-mm-dd' });
        jQuery('#datepicker').datepicker('option', { dateFormat: "yy-mm-dd", changeMonth: true, changeYear: true });

    });

    var sdate = jQuery('#txtSDate').val();
    if (sdate) {
        jQuery("#datepicker").val(sdate);
        originalDate = sdate;
    }
    */
    //Synonyms
    /*
    origChkSynonym = jQuery('#<%=chkSynonym.ClientID%>').is(':checked');
    */

    // Query box setup
    
    if (jQuery("#spnQuery").html()) {
        originalQuery = jQuery("#spnQuery").html();
        jQuery("#q").val(originalQuery);
    }

    jQuery("#q").keyup(function (event) {
        if (event.keyCode == 13) {
            jQuery(domBtnSearch).click();
        }
    });
    
    /*
    //AutoSuggest setup    
    jQuery(function () {
        var cache = {};
        jQuery("#q").autocomplete({
            minLength: 2,
            source: function (request, response) {
                if (request.term in cache) {
                    response(cache[request.term]);
                    return;
                }

                $.ajax({
                    url: "gsuggest.aspx",
                    dataType: "json",
                    data: request,
                    success: function (data) {
                        cache[request.term] = data;
                        response(data);
                    }
                });
            }
        });
    });
   */ 

}
