jQuery.noConflict();
// Put all your code in your document ready area
jQuery(document).ready(function ($) {

    $.fn.pager = function (clas, options) {

        var settings = {
            navId: 'nav',
            navClass: 'nav',
            navAttach: 'append',
            highlightClass: 'highlight',
            prevText: '&laquo;',
            nextText: '&raquo;',
            linkText: null,
            linkWrap: null,
            height: null
        }
        if (options) $.extend(settings, options);

        return this.each(function () {

            var me = $(this);
            var size;
            var i = 0;
            var navid = '#' + settings.navId;

            function init() {
                size = $(clas + '.apd', me).not(navid).size();

                if (settings.height == null) {
                    settings.height = '';
                }

                if (size > 0) {
                    makeNav();
                    show();
                }

                sizePanel();
                if (settings.linkWrap != null) {
                    linkWrap();
                }
            }
            function makeNav() {

                var str = '';

                switch (settings.navAttach) {
                    case 'prepend':
                        break;
                    default:
                        if (size > 1) {
                            str += '<div id="' + settings.navId + '" class="' + settings.navClass + ' clearfix articleSelector navigation"><ul>';
                            str += '<li class="controlOne"><span class="a">Previous page: <a href="#top" class="pre" rel="prev"></a></span></li>';
                            str += '<li class="controlTwo"><span class="b">Next page: <a href="#top" class="aft" rel="next"></a></span></li>';
                            str += '</ul></div>';
                        }
                        break;
                }
                str += '<div id="' + settings.navId + '" class="clearfix articleControls articleControlsTop">';
                str += '<div id="' + settings.navId + '" class="columnOne">';
                str += '<div id="' + settings.navId + '" class="columnInner" style="margin-left:0;">';
                str += '<p style="padding-left:0;">';



                if (size > 1) {
                    str += '<span class="refresh"><a href="#" rel="showall">Show article as a single page</a></span>';
                }

                switch (settings.navAttach) {
                    case 'prepend':
                        if (size > 1) { str += ' <br /> '; }

                        if (size > 1) {
                            str += '<a class="print" href="#" rel="printpage">Print <strong>this</strong> page</a><span class="navigation"> or </span>';
                            str += '<a href="#" rel="printall" class="navigation">Print <strong>all</strong> pages</a>';
                        }
                        else {
                            str += '<a class="print" href="#" rel="printall">Print <strong>this</strong> page</a><span class="navigation"></span>';
                        }

                        break;
                }
                str += '</p></div></div><div id="' + settings.navId + '" class="' + settings.navClass + ' columnTwo navigation">';

                str += '<div id="' + settings.navId + '" class="' + settings.navClass + ' columnInner" style="padding:0; margin:0;">';

                if (size > 1) {
                    str += '<p>Page:</p><ul>';
                }

                str += '<li class="controlOne a"><a href="#top" rel="prev">' + settings.prevText + '</a></li>';

                if (size > 1) {
                    for (var i = 0; i < size; i++) {
                        var j = i + 1;
                        str += '<li><a href="#" rel="' + j + '">';
                        str += (settings.linkText == null) ? j : settings.linkText[j - 1];
                        str += '</a></li>';
                    }
                }

                str += '<li class="controlTwo b"><a href="#top" rel="next">' + settings.nextText + '</a></li>';
                str += '</ul></div></div>';
                str += '</div>';

                switch (settings.navAttach) {
                    case 'prepend':
                        $(me).prepend(str);
                        break;
                    default:
                        $(me).append(str);
                        break;
                }
            }
            function showPreviousHeader() {
                if (i > 0) {
                    $(".a").show();
                    var Pdiv = $(me).find(clas + '.apd').not(navid).get(i - 1);
                    if (Pdiv != undefined) {
                        var Ptest = $(me).find(clas + '.apd').not(navid).get(i - 1).getElementsByTagName('h2');
                        if (Ptest.length < 1) {
                            Ptest = $(me).find(clas + '.apd').not(navid).get(i - 1).getElementsByTagName('h3');
                        }
                        if (Ptest.length < 1) {
                            Ptest = $(me).find(clas + '.apd').not(navid).get(i - 1).getElementsByTagName('h4');
                        }
                        if (Ptest.length > 0) {
                            var prevHead = $(Ptest)[0].innerHTML;
                        }
                        else {
                            var prevHead = "...";
                        }
                        $(".pre").html('')
                        $(".pre").append(prevHead)
                    }
                }
                else {
                    $(".pre").html('');
                    $(".a").hide();
                }
            };
            function showNextHeader() {
                if (i + 1 < size) {
                    $(".b").show();
                    var Ndiv = $(me).find(clas + '.apd').not(navid).get(i + 1);
                    if (Ndiv != undefined) {
                        var Ntest = $(me).find(clas + '.apd').not(navid).get(i + 1).getElementsByTagName('h2');
                        if (Ntest.length < 1) {
                            Ntest = $(me).find(clas + '.apd').not(navid).get(i + 1).getElementsByTagName('h3');
                        }
                        if (Ntest.length < 1) {
                            Ntest = $(me).find(clas + '.apd').not(navid).get(i + 1).getElementsByTagName('h4');
                        }
                        if (Ntest.length > 0) {
                            var nextHead = $(Ntest)[0].innerHTML;
                        }
                        else {
                            var nextHead = "...";
                        }
                        $(".aft").html('')
                        $(".aft").append(nextHead)
                    }
                }
                else {
                    $(".aft").html('');
                    $(".b").hide();
                }
            };
            function show() {
                $(me).find(clas + '.apd').not(navid).hide();
                var show = $(me).find(clas + '.apd').not(navid).get(i);
                $(show).show();
                showPreviousHeader();
                showNextHeader();
            }
            function sizePanel() {
                if ($.browser.msie) {
                    $(me).find(clas + '.apd').not(navid).css({
                        height: settings.height
                    });
                } else {
                    $(me).find(clas + '.apd').not(navid).css({
                        minHeight: settings.height
                    });
                }
            }
            function getNavHeight() {
                var nav = $(navid).get(0);
                return nav.offsetHeight;
            }
            function linkWrap() {
                $(me).find(navid).find("a").wrap(settings.linkWrap);
            }
            function scrollUp() {
                $('html, body').scrollTop(0);
            }
            init();
            $(this).find(navid).find("a").click(function () {
                if ($(this).attr('rel') == 'next') {
                    if (i + 1 < size) {
                        i = i + 1;
                        show();
                        scrollUp();
                        return false;
                    }
                } else if ($(this).attr('rel') == 'prev') {
                    if (i > 0) {
                        i = i - 1;
                        show();
                        scrollUp();
                        return false;
                    }
                } else if ($(this).attr('rel') == 'showall') {
                    $(me).find(clas).not(navid).show();
                    $(".navigation").hide();
                    $(".refresh").html('')
                    $(".refresh").append('<a href="javascript:location.reload(true)">Show paginated article</a>')
                    return false;
                } else if ($(this).attr('rel') == 'printpage') {
                    switch (settings.navAttach) {
                        case 'prepend':
                            window.print();
                            break;
                    }
                    return false;
                } else if ($(this).attr('rel') == 'printall') {
                    $(me).find(clas + '.apd').not(navid).show();
                    switch (settings.navAttach) {
                        case 'prepend':
                            window.print();
                            break;
                    }
                    show();
                    return false;
                } else {
                    var j = $(this).attr('rel');
                    i = j - 1;
                    show();
                    return false;
                }
            });
        });
    }

});

