albumScript = {};

albumScript.pagination = function(pageNum, sizeOfPage, totalAlbums) {
    
    var pageNumber = pageNum;
    var pageSize = sizeOfPage;
    var albumSize = totalAlbums;
    var minPage, maxPage;

    var totalPages;
    
    function setTotalPages() {
        totalPages = Math.ceil(albumSize/pageSize);
    }
    
    this.getTotalPages = function() {
        return totalPages;
    }
   
    function setMinMaxPage() {
        currentPage = pageNumber;

        if ((currentPage-4)<=0) {
            minPage = 1;
            maxPage = totalPages >= 10 ? 10 : totalPages;
        }
        else {
            minPage = currentPage - 4;
            
            //Set Max Page
            if ((currentPage+4) >= totalPages) {
                maxPage = totalPages;
                minPage = maxPage - 9;    
            } 
            else {
                maxPage = currentPage + 5;
            }
        }
    }
    
    function generatePageList(location, sort, param) {
        var output = "";
        var pageParam = '';
        setMinMaxPage();

        /* GET DESTINATION URL THROUGH URL*/
       
        url = document.location.href;
        urlStart = url.indexOf("/", 7);
        urlEnd = url.indexOf("?")==-1 ? url.length : url.indexOf("?");

        url = url.substring(urlStart, urlEnd);

        if (!location) {
            location = '-1';    
        }
        
        if (!sort) {
            sort = "date";
        }
       
        if (param) {
            pageParam = document.location.href.substring(urlEnd+1, document.location.href.indexOf("=")) +"="+ param + "&";
        }

            for(i=minPage;i<=maxPage;i++) {
                if(i>0) {
                if (i==pageNumber) {
                    output += "<b>"
                        + "<a href=\""+ url +"?"+ pageParam +"pageNum=" + i + "&location="+ location +"&sort="+ sort +"\" style=\"color:#633300;margin-right:5px;\">"
                        + i + "</a></b> ";
                }
                else {
                    output += "<a href=\""+ url +"?"+ pageParam +"pageNum=" + i + "&location="+ location +"&sort="+ sort +"\" style=\"margin-right:5px;\">"
                        + i + "</a> ";
                }
                }
            }
        
            if (totalPages>i) {
                pageappend = " .. <a href=\""+ url +"?"+ pageParam +"pageNum=" + totalPages + "&location="+ location +"&sort="+ sort +"\" style=\"margin-right:5px;\">"
                            + totalPages + "</a>";
                output+=pageappend;
            }
 
            return output;
    }
    
    this.initPage = function(location, sort, param) {
        setTotalPages();
        output = generatePageList(location, sort, param);
        
        //display generated page list
        document.getElementById("topPagination").innerHTML = output;
        document.getElementById("bottomPagination").innerHTML = output;    
    }
    
}