(function()
{
	var rotate_timer = 3; // Seconds.

	var util = YAHOO.util,
		Dom = util.Dom,
		Event = util.Event,
		get = Dom.get,
		getElementsByClassName = Dom.getElementsByClassName,
		addClass = Dom.addClass,
		removeClass = Dom.removeClass;

	if (!get('top-story1')) {
		return; // Not on the neighborhoods/topics page.
	}

	var pages = 0, // Number of "pages".  No touching!
		current_page = 1; // No touching either!

	function showStory(page_element)
	{
		var new_page = parseInt(page_element.innerHTML, 10),
			old_page = 0;

		// At this point, old page is the element with "active" class.
		getElementsByClassName(
			'active',
			'h2',
			'top-story1',
			function(button)
			{
				old_page = parseInt(button.innerHTML);
			}
		);

		if (old_page === new_page) {
			return; // Same page.
		}

		var old_index = old_page - 1,
			new_index = new_page - 1;

		getElementsByClassName(
			'pages',
			'div',
			'top-story1',
			function(button_container)
			{
				var buttons = button_container.getElementsByTagName('h2');

				for (var i = 0, count = buttons.length; i < count; i++) {
					switch (true) {
						case (i === new_index):
							// Highlight.
							addClass(buttons[i], 'active');
						break;
						case (i === old_index):
							// De-highlight.
							removeClass(buttons[i], 'active');
						break;
					}
				}
			},
			this,
			true
		);

		addClass('top-story-' + old_index, 'no-display');
		removeClass('top-story-' + new_index, 'no-display');

	}

	// Pagination button event handler.
	getElementsByClassName(
		'pages',
		'div',
		'top-story1',
		function(button_container)
		{
			pages++;

			Event.addListener(
				button_container,
				'click',
				function(e)
				{
					var target = Event.getTarget(e);

					if ((target.nodeType === 1) && (target.nodeName.toLowerCase() === 'h2')) {
						showStory(target);
					}

					if (rotator) {
						clearInterval(rotator);
					}
				}
			);
		},
		this,
		true
	);

	var rotator = setInterval(
		function()
		{
			if (current_page > pages) {
				current_page = 1;
			}

			showStory(get('top-story-page-' + current_page));
			current_page++;
		},
		rotate_timer * 1000
	);
})();

