;(function($) {
    $.fn.paginate = function(settings) {
        var config = {
            'headingSelector': 'div.heading h2',
            'excludeContentSelector': '#page-utilities',
            'paginateMenu': $('<ul class="paginate-menu"></ul>'),
            'insertAfter': '#right-column div.pagetitle',
            'menuItemsWrap': '<li></li>'
        };
        if (settings) $.extend(config, settings);
 
        this.each(function() {
            // Find all the headings
        	var originalHeadings = $(config.headingSelector, this);//.hide();
        	var headings = originalHeadings.clone().show();
        	if (!headings.length) return;
        	var menu = config.paginateMenu.clone();
        	
        	if (config.menuItemsWrap) headings = headings.wrap(config.menuItemsWrap).parent();
        	headings.appendTo(menu);
        	$("h2", headings).wrapInner('<a />');
        	$("h2 a", headings).each(function(idx) {
        		$(this).attr("href", "#p" + idx);
        	}).unwrap();
        	originalHeadings.each(function(idx) {
        		$('<a name="p' + idx + '" />').insertAfter(this);
        	})
        	menu.insertAfter(config.insertAfter);
        	if (window.wcm_editing) return;
        	/*
		    var contentArea = this;
		    var splitters = $(this).find(opts.splitter);
		    var numPages = splitters.length;
		    
		    if (!numPages) return;
		    
		    numPages++;
		
		    splitters.each(function(idx) {
		        
		        var contentBlocks = $(this).prevAll(":not(hr,div.page)").reverse();
		        contentBlocks.wrapAll('<div class="page"></div>');
		        if (idx + 1 == numPages - 1) {
		            contentBlocks = $(this).nextAll(":not(hr)");
			        contentBlocks.wrapAll('<div class="page"></div>');
		        }
		    });
		    splitters.remove();
		
		    var pagerUl = $('<ul></ul>');
		    for (var x=1; x<=numPages; x++) {
		        var a = $('<li><a href="#' + x + '">' + x + '</a></li>');
		        pagerUl.append(a);
		    }
		    pagerUl.append('<li class="continue"><a href="#">Continue</a></li>');
		    pagerUl.wrapAll('<div class="pager"></div>');
		    
		    var pager = pagerUl.parent();
		    pager.insertAfter($(this));
    
			$(window).bind( 'hashchange', function(e) {
	            var url = $.param.fragment();
	            if (!url) url = 1;
	            $(contentArea).find("div.page").removeClass("active").eq(url-1).addClass("active");
	            var cont = $(contentArea).next("div.pager").find("ul li").removeClass("active").eq(url-1).addClass("active").end().children("a").blur().end().filter(".continue");
	            if (url < numPages) {
	                cont.show().children("a").attr("href", "#" + (parseInt(url) + 1));
	            } else {
	                cont.hide();
	            }
	        }); 
	        $(window).trigger('hashchange');   
        	*/
        });
 
        return this;
    };
})(jQuery);
