;(function($){

	var defaults = {
		duration 	: 500,
		delay	 	: 4000,
		panelClass 	: '.panel',
		activeClass	: 'current_page_item',
		hrefPrefix	: '#slide-'
	};

	$.fn.sliderButtons = function(list, mask, options) {

		return this.each(function(){

			var settings = $.extend({}, defaults, options);

			var	$this 		 	= $(this),
				$list			= $(list),
				$buttons 	 	= $list.find('li a'),
				$mask 		 	= $(mask),
				$panels		 	= $(mask).find(settings.panelClass),
				panelCount   	= $panels.length,
				currentPanel 	= 1,
				subnavigation   = window.subnavigation,
				timer;


			// Add the click event to the buttons
			$buttons.click(function(){
				buttonClick(this, parseInt($(this).attr('href').replace(settings.hrefPrefix, '') - 1));
				return false;
			});

			// Initialize the slider
			initSlider();


			function initSlider()
			{
				activateButton(parseInt($list.find('li:first a').attr('href').replace(settings.hrefPrefix, '')));

				$mask
					.css('overflow', 'hidden')
					.scrollTop(0);

				timer = setInterval(slide, settings.delay);
			}


			function slide()
			{

				if ( currentPanel >= panelCount ) {
					currentPanel = 0;
				}

				// Slide to the next panel
				$mask.animate({ scrollTop : [(currentPanel) * 462, 'easeOutQuad'] }, settings.duration);

				// Activate the current button
				activateButton(currentPanel + 1);

				// Increase the counter
				currentPanel++;

			}

			function buttonClick(button, index)
			{

				currentPanel = index;
				activateButton(parseInt($(button).attr('href').replace(settings.hrefPrefix, '')), currentPanel + 1);
				slide();

				// Reset the timer
				clearInterval(timer);
				timer = setInterval(slide, settings.delay);

				return false;
			};


			function activateButton(index, deactivateIndex)
			{
				deactivateIndex = deactivateIndex || (index - 1 == 0) ? panelCount : index - 1;
				subnavigation.deactivate($list.find('li:has(a[href="' + settings.hrefPrefix + deactivateIndex + '"])'));
				subnavigation.activate($list.find('li:has(a[href="' + settings.hrefPrefix + index + '"])'));
			}

		});


	}

})(jQuery);