﻿/// <reference path="jquery-1.4.1-vsdoc.js" ?>

var Pager = {
    nextSelector: "#Paging .right",
    prevSelector: "#Paging .left",
    nextText: "",
    backToFirstText: "",

    init: function() {
        if (isPrintPage == false) {
            if ($(".mcePageBreak").length > 0) {

                // remove this if tinymce numbering gets fixed
                $(".textContent .body .mcePageBreak").each(function(index) {
                    $(this).attr("id", "pageBreak_" + (index + 1));
                });
                this.nextText = $("a", this.nextSelector).text();
                this.backToFirstText = $("#Paging #FirstPage").text();
                this.doPage(1);
            }
        }
        else {
            $(this.prevSelector).hide();
            $(this.nextSelector).hide();
        }
    },
    doPage: function(page) {
        if ($(".mcePageBreak").length > 0 && page <= $(".mcePageBreak").length + 1) {
            var bodyContent = $(".textContent .body");
            var children = bodyContent.children();
            children.hide();

            // clear helper classes
            $(".first", bodyContent).removeClass("first");
            $(".last", bodyContent).removeClass("last");

            var showFrom = $("#pageBreak_" + (page - 1), bodyContent);
            if (showFrom == undefined || showFrom.length == 0) {
                showFrom = children.first();
                showFrom.addClass("first")
            }

            var isLastPage = false;

            var showTill = $("#pageBreak_" + page, bodyContent);
            if (showTill == undefined || showTill.length == 0) {
                showTill = children.last();
                showTill.addClass("last")
                isLastPage = true;
            }
            showTill.addClass("show-till");

            var showParts;
            if (showFrom.is(".first")) {
                showParts = showFrom.nextUntil(".show-till").andSelf();
            }
            else {
                showParts = showFrom.nextUntil(".show-till");
            }

            showParts.show();

            if (showTill.is(".last")) {
                showTill.show();
            }

            // show prev link
            if (page <= 1) {
                $(this.prevSelector).hide();
            }
            else {
                this.changeLink(this.prevSelector, page - 1);
                $(this.prevSelector).show();
            }
            // set the next link
            if (isLastPage == true) {
                this.changeLink(this.nextSelector, 1);
                $("a", this.nextSelector).text(this.backToFirstText);
            }
            else {
                this.changeLink(this.nextSelector, page + 1);
                $("a", this.nextSelector).text(this.nextText);
            }
            $(this.nextSelector).show();

        }
    },
    changeLink: function(selector, newValue) {
        $("a", selector).attr("href", "javascript:Pager.doPage(" + newValue + ")");
    }
}

