(function($) {
	$.fn.featuredDestinations = function(opts) {
		$.fn.featuredDestinations.defaults = {
		    numPerPage: 4
		};
		var opts = $.extend({}, $.fn.featuredDestinations.defaults, opts);
	
		return this.each(function(idx) {
            var heading = $(this).children(":heading:first");
            if (!heading.length) return;
            var shellWidth = $(this).width();
            var list = $(this).children("ul");
            var items = list.children("li");
            var numItems = items.length;
            if (numItems <= opts.numPerPage) return;
            var totalWidth = 0;
            items.each(function(idx) {
               totalWidth += $(this).outerWidth(true); 
            });
            var numPages = Math.ceil(numItems / opts.numPerPage);
            list.css({
                width: totalWidth,
                height: items.height()
            });
            
            var pager = $('<div class="pager"><span class="position">1</span> of ' + numPages + '&nbsp;&nbsp;<img class="prev" src="/virtua/images/home-page-news-list-previous-button.gif" alt="Previous" />&nbsp;&nbsp;<img class="next" src="/virtua/images/home-page-news-list-next-button.gif" alt="Next" /></div>');
            pager.data("page", 1);
            var fd = this;
            pager.find(".prev,.next").click(function() {
                var dir = -1;
                var page = pager.data("page");
                var prev = $(this).hasClass("prev");
                
                if (prev) {
                    if (page == 1) return;
                    dir = 1;
                } else if (page == numPages) return;
                pager.data("page", page + dir  * -1);
                list.animate(
                    {
                        left: (list.position().left + (shellWidth * dir))
                    },
                    350,
                    "swing",
                    function() {
                        var page = $(pager).data("page");
                        $(pager).find(".position").text(page);
                    }
                );
                return false;                
            });
            $(this).append(pager);
	    });

	};
})(jQuery);