﻿
var pagination = {
    starItem: 1,
    endItem: 1,
    numPagination: 1,
    activePage: 1,
    numTotalPages: 1,
    init: function() {
        var totalPages = $(".pagedemo").length; // Total items to paginate
        pagination.endItem = totalPages; // Last item pagination
        pagination.numTotalPages = totalPages; // Last item pagination
        pagination.numPagination = totalPages;
        pagination.paintList();
    },
    paintList: function() {

        var layPagination = document.getElementById("paginationItem");
        layPagination.innerHTML = "";

        var auxItem = 1;

        var list = document.createElement("ul");

        // Literal Page
        var listItemPage = document.createElement("li");
        listItemPage.className = "text";
        listItemPage.appendChild(document.createTextNode("Página:"));
        list.appendChild(listItemPage); // Add li items to list ul


        // Link First Page
        var listItemFist = document.createElement("li");

        var linkFist = document.createElement("a");
        linkFist.href = "javascript:void(0)";
        linkFist.onclick = function() {
            pagination.showPage(1);
        }
        linkFist.appendChild(document.createTextNode("Primera"));
        listItemFist.appendChild(linkFist);
        list.appendChild(listItemFist); // Add li items to list ul

        // Link Back Steps
        var listItemBack = document.createElement("li");

        var linkBack = document.createElement("a");
        linkBack.href = "javascript:void(0)";
        linkBack.onclick = function() {
            if ((pagination.activePage - 1) <= 0) { alert("No se puede ir más atras"); }
            else { pagination.showPage(pagination.activePage - 1); }
        }
        linkBack.appendChild(document.createTextNode("<"));
        listItemBack.appendChild(linkBack);
        list.appendChild(listItemBack); // Add li items to list ul

        // For items pagination
        auxItem = (pagination.numTotalPages > pagination.numPagination) ? pagination.numPagination : pagination.numTotalPages;

        for (var i = pagination.starItem; i <= auxItem; i++) {
            //li item
            var numPage = i;
            var listItemPages = document.createElement("li");

            var linkPage = document.createElement("a");
            linkPage.href = "javascript:void(0)";
            linkPage.id = "lnkPage" + numPage;
            if (pagination.activePage == i) {
                linkPage.className = "lnkPageSel";
            }
            linkPage.onclick = function() {
                var page = this.id.split("lnkPage")[1];
                pagination.showPage(page);
            }
            linkPage.appendChild(document.createTextNode(numPage));
            listItemPages.appendChild(linkPage);

            list.appendChild(listItemPages); // Add li items to list ul
        }

        // Link Next Steps
        var listItemNext = document.createElement("li");

        var linkNext = document.createElement("a");
        linkNext.href = "javascript:void(0)";
        linkNext.onclick = function() {
            if ((pagination.activePage + 1) > pagination.endItem) { alert("No se puede ir más hacia delante"); }
            else { pagination.showPage(pagination.activePage + 1); }

        }
        linkNext.appendChild(document.createTextNode(">"));
        listItemNext.appendChild(linkNext);
        list.appendChild(listItemNext); // Add li items to list ul

        // Link Last Page
        var listItemLast = document.createElement("li");

        var linkLast = document.createElement("a");
        linkLast.href = "javascript:void(0)";
        linkLast.onclick = function() {
            pagination.showPage(pagination.endItem);
        }
        linkLast.appendChild(document.createTextNode("Última"));
        listItemLast.appendChild(linkLast);
        list.appendChild(listItemLast); // Add li items to list ul


        // Add list Item to lay
        layPagination.appendChild(list);
    },
    showPage: function(num) {
        $("a").removeClass("lnkPageSel");

        $(".pagedemo").hide();
        $("#p" + num).show();

        if (num > pagination.numPagination) {
            //Fisrt change pagination links
        }
        $("#lnkPage" + num).get(0).className = "lnkPageSel";

        pagination.activePage = num;
    }
}


$(document).ready(function() {
    if ($("#paginationItem").length != 0) {
        pagination.init();
    }
});	