// JavaScript Document
jQuery.fn.newsSlides = function(opts)
{
	opts = jQuery.extend({
						 	'interval' : 5000,
						 	'duration' : 1000
						 }, opts);

	return this.each(function(){
		var $j = jQuery(this).addClass('newsslide-container');
		var width = $j.width(), height = $j.height();
		var $slidesBox = jQuery('.slides', $j).css({'width': width+'px', 'height': height+'px'});
		var $slides = jQuery('.slides > *', $j).css({'width': width+'px', 'height': height+'px'});
		var numslides = $slides.length;
		var loop = 1;
		$slides.each(function(){
			$(this).css({'zIndex': numslides - loop, 'position': 'absolute'});
			if(loop > 1)
			{
			$(this).css('display','none');
			}
			loop++;
		});
		var $pages = jQuery('.pages', $j).css('z-index', loop);
		jQuery('.current-slide', $pages).removeClass('current-slide');
		jQuery('a:first', $pages).addClass('current-slide');
		
		var timerIndex = 0;
		while(jQuery.newsSlides.indexes[timerIndex + 'i'])
		{
			timerIndex++;
		}
		jQuery.newsSlides.indexes[timerIndex + 'i'] = { 'slideContainer' : $j, 'slides' : $slides, 'pages' : $pages, 'opts' : opts };
		jQuery.newsSlides.timers[timerIndex + 'i'] = setTimeout('jQuery.newsSlides.next('+timerIndex+')', opts.interval);
		
		jQuery('a', $pages).click(function(){
			var rel = $(this).attr('rel');
			jQuery.newsSlides.goto(timerIndex, rel);
			return false;
		});
	});
}


jQuery.newsSlides = {
	'indexes' : {},
	'timers' : {},
	'next' : function(index)
			{
				var currentRel = jQuery.newsSlides.indexes[index + 'i'].pages.find('a.current-slide').attr('rel');
				var currentSlide = jQuery.newsSlides.indexes[index + 'i'].slides.filter('[rel='+currentRel+']');
				var nextSlide = currentSlide.next();
				if(nextSlide.length == 0)
				{
					nextSlide = jQuery.newsSlides.indexes[index + 'i'].slides.filter(':first');
				}
				jQuery.newsSlides.indexes[index + 'i'].pages.find('a.current-slide').removeClass('current-slide');
				jQuery.newsSlides.indexes[index + 'i'].pages.find('a[rel=' + nextSlide.attr('rel') + ']').addClass('current-slide');
				currentSlide.animate({ 'opacity' : 'hide' }, jQuery.newsSlides.indexes[index + 'i'].opts.duration);
				nextSlide.animate({ 'opacity' : 'show' }, jQuery.newsSlides.indexes[index + 'i'].opts.duration, function() {
																jQuery.newsSlides.timers[index + 'i'] = setTimeout(function(){ jQuery.newsSlides.next(index); }, jQuery.newsSlides.indexes[index + 'i'].opts.interval);
															});
			},
	'goto' : function(index, goto)
			{
				clearTimeout(jQuery.newsSlides.timers[index + 'i']);
				var currentRel = jQuery.newsSlides.indexes[index + 'i'].pages.find('a.current-slide').attr('rel');
				var currentSlide = jQuery.newsSlides.indexes[index + 'i'].slides.filter('[rel='+currentRel+']');
				var nextSlide = jQuery.newsSlides.indexes[index + 'i'].slides.filter('[rel='+goto+']');
				jQuery.newsSlides.indexes[index + 'i'].pages.find('a.current-slide').removeClass('current-slide');
				currentSlide.animate({ 'opacity' : 'hide' }, jQuery.newsSlides.indexes[index + 'i'].opts.duration);
				jQuery.newsSlides.indexes[index + 'i'].pages.find('a[rel=' + nextSlide.attr('rel') + ']').addClass('current-slide');
				nextSlide.animate({ 'opacity' : 'show' }, jQuery.newsSlides.indexes[index + 'i'].opts.duration, function() {
																jQuery.newsSlides.timers[index + 'i'] = setTimeout(function(){ jQuery.newsSlides.next(index); }, jQuery.newsSlides.indexes[index + 'i'].opts.interval);
															});

			}
};
