﻿var pagingItemListArray = stockSymbolListCSV.split(',');
var pagingPageSize = MaxUserStockSelection;
var pagingTotalPage = Math.ceil(pagingItemListArray.length / pagingPageSize);
var pagingCurrentPageNo = 0;
var pagingCurrentPageItemStartNo = 0;
var pagingCurrentPageItemEndNo = 0;
var pagingFirstPageNo = 1;
var pagingLastPageNo = pagingTotalPage;
var pagingPrevPageNo = 0;
var pagingNextPageNo = 0;

initPaging();

function initPaging() {
    if (pagingCurrentPageNo <= 1) {
        pagingPrevPageNo = pagingLastPageNo;
        pagingNextPageNo = 2;
    }
    else if (pagingCurrentPageNo >= pagingLastPageNo) {
        pagingPrevPageNo = pagingLastPageNo - 1;
        pagingNextPageNo = 1;
    }
    else {
        pagingPrevPageNo = pagingCurrentPageNo - 1;
        pagingNextPageNo = pagingCurrentPageNo + 1;
    }

    if ((0 < pagingCurrentPageNo) && (pagingCurrentPageNo <= pagingLastPageNo)) {
        pagingCurrentPageItemStartNo = ((pagingCurrentPageNo - 1) * pagingPageSize) + 1;
    }
    else {
        pagingCurrentPageItemStartNo = 0;
    }

    if (pagingCurrentPageItemStartNo > 0) {
        pagingCurrentPageItemEndNo = pagingCurrentPageItemStartNo + pagingPageSize - 1;
        if (pagingCurrentPageItemEndNo > pagingItemListArray.length) pagingCurrentPageItemEndNo = pagingItemListArray.length;
    }
    else {
        pagingCurrentPageItemEndNo = 0;
    }

    document.getElementById("divPaging").innerHTML = buildPagingMenu();
}

function buildPagingMenu() {
    var s = new StringBuilder();
    if ((pagingItemListArray == null) || (pagingItemListArray.length <= 0)) return s.toString();
    if ((pagingPageSize == null) || (pagingPageSize <= 0)) return s.toString();

    s.append("<table id='tablePaging' class='paging' style='width:100%;'>");
    s.append("<tr align='center'>");
    s.append("<td><a href='#' class='paging' id='lnkFirstPage' onclick='changePage(1)'><<</a></td>");
    s.append("<td><a href='#' class='paging' id='lnkPrevPage' onclick='changePage(" + pagingPrevPageNo + ")'><</a></td>");

    if (pagingCurrentPageItemStartNo > 0) {
        s.append("<td><a href='#' class='paging' id='lnkCurrentPage' onclick='changePage(" + pagingCurrentPageNo + ")'>" + pagingCurrentPageItemStartNo + "-" + pagingCurrentPageItemEndNo + "</a></td>");
    }
    else {
        s.append("<td><a href='#' class='paging' id='lnkSuggestFirstPage' onclick='changePage(1)'>1-" + pagingPageSize + "</a></td>");
    }

    s.append("<td><a href='#' class='paging' id='lnkPrevPage' onclick='changePage(" + pagingNextPageNo + ")'>></a></td>");
    s.append("<td><a href='#' class='paging' id='lnkLastPage' onclick='changePage(" + pagingLastPageNo + ")'>>></a></td>");
    s.append("</tr>");
    s.append("</table>");
    return s.toString();
}

function changePage(targetPageNo) {
    if ((pagingFirstPageNo <= targetPageNo) && (targetPageNo <= pagingLastPageNo)) {
        pagingCurrentPageNo = targetPageNo;
        initPaging();
        selectPageItems();
        GetPrice();
    }
}

function selectPageItems() {
    var newItemGroup = new Array();
    for (var i = 0; i < pagingPageSize; i++) {
        var globalIndex = (((pagingCurrentPageNo - 1) * pagingPageSize) + i);
        if (globalIndex < pagingItemListArray.length) {
            newItemGroup[i] = pagingItemListArray[globalIndex];
        }
    }
    reselectFilterList(newItemGroup);
}
