﻿(function ($) {

	$.fn.pageScroller = function (options) {

		var settings = { pageSelector: '.control', headerSelector: '#MainMenuBoxOuter', footerSelector: '#Footer' };

		return this.each(function () {

			if (options) {
				$.extend(settings, options);
			}

			var $pages = $(this).find(settings.pageSelector);

			// min height for pages
			var $header = $(settings.headerSelector);
			var $footer = $(settings.footerSelector);
			var headerHeight = $header.size() > 0 ? $header.outerHeight(true) : 0;
			var footerHeight = $footer.size() > 0 ? $footer.outerHeight(true) : 0;
			var minPageHeight = $(window).height() - (headerHeight + footerHeight);
			$pages.last().css('min-height', minPageHeight + 'px');

			// add page footer links
			if ($pages.eq(0).find('a[name]').size() > 0)
				var $firstNamedAnchor = $pages.eq(0).find('a[name]').first();

			for (var i = 0; i < $pages.size(); i++) {
				var $pageFooter = $('<div class="pageFooter" />');

				if (i > 0) {
					// if there is a $firstNamedAnchor create a link to it
					if (typeof $firstNamedAnchor !== "undefined") {
						var $topLink = $('<a href="#' + $firstNamedAnchor.attr('name') + '" />');
						$topLink.attr('class', 'TopLink');
						$topLink.text('Top');
						$pageFooter.append($topLink);
					}
				}

				if (i < $pages.size() - 1) {
					// if there's a nextNamedAnchor create a link to it
					if ($pages.eq(i + 1).find('a[name]').size() > 0) {
						var $nextNamedAnchor = $pages.eq(i + 1).find('a[name]').first();
						var $nextLink = $('<a href="#' + $nextNamedAnchor.attr('name') + '" />');
						$nextLink.attr('class', 'nextLink');
						var $nextImg = $('<img src="/assets/img/down-arrow.png" alt="Next" />');
						$nextLink.append($nextImg);
						$pageFooter.append($nextLink);
					}
				}

				$pages.eq(i).append($pageFooter);
			}

			// turn modal links into smooth-scrolling
			var $modalLinks = $(this).find('a[href^="#"]');
			$modalLinks.click(function () {
				var anchorName = $(this).attr('href').substring(1);
				var $namedAnchor = $('a[name="' + anchorName + '"]');
				$('html, body').animate({ scrollTop: $namedAnchor.offset().top });
				return false;
			});
		});
	};

})(jQuery);

