
// Rotator
(function($) {
	function Rotator(elem, options) {
		var selected = 0;
		elem = $(elem);
		elem.prepend($('<ul></ul>'));									// Add area for list
		divs = elem.children('div');
		if (divs.size() > 1){
			if (options.page_numbers == true){
				elem.children('div').each(function(index, Element){						// Add rotator buttons for each panel
					var node = '<li title="'+$(this).find('a').attr('title')+'" data="'+(index+1)+'">'+(index+1)+'</li>';
					if (index == 0) node = '<li class="selected" title="'+$(this).find('a').attr('title')+'" data="'+(index+1)+'">'+(index+1)+'</li>'
					elem.find('ul').prepend($(node));							
				});	
				elem.find('ul li').click(function(event){							// Add click functionaliy to buttons
					elem.stopTime();
					fadeIn(parseInt($(this).attr("data"))-1, options.transition);
					event.preventDefault();
				});
			};
			if (options.next_prev == true){
				elem.prepend($('<div class="bottom right button"> > </div><div class="bottom left button"> < </div>'));
				elem.find('div.right').click(function(event){							// Add click functionaliy to buttons
					elem.stopTime();
					fadeIn(parseInt((selected + 1) % divs.size()) , options.transition);
					event.preventDefault();
				});
				elem.find('div.left').click(function(event){							// Add click functionaliy to buttons
					elem.stopTime();
					fadeIn(parseInt((selected - 1) % divs.size()), options.transition);
					event.preventDefault();
				});
			};
		
			elem.everyTime(														// Create auto-rotatiion
				options.duration + options.transition, 
				function(i){fadeIn(selected+1, options.transition);}
			);
		}
		divs.first().show().addClass('selected');				// Select the first thing
		
		function fadeIn(pos, speed){										// Fades panel out then new one in
			divs = elem.children('div');				
			btns = elem.find('ul li');
			divs.hide();
			btns.removeClass('selected');
			//$(divs.get(selected)).show();
			//$(divs.get(selected)).fadeOut(speed, function(){
			//	$(divs.get(selected)).fadeIn();
			//});
			selected = pos % divs.size();
			var browserName=navigator.appName; 
			if (browserName=="Microsoft Internet Explorer") {
				$(divs.get(selected)).show();
			} else {
				$(divs.get(selected)).fadeIn();
			}
			$($.grep(btns, function(n, i){
				return ($(n).attr("data") == selected + 1);
			})).addClass('selected');
			
					
		};
		
		function slideTo(pos, speed){										// Slides panels left or right to bring target into view
			divs = elem.children('div');				
			btns = elem.find('ul li');
			btns.removeClass('selected');
			pos = pos % divs.size();
			divs.each(function(index, Element){
				$(this).css('left', -615 * (selected - index));
				$(this).animate({left:-615 * (pos - index)}, speed);
				$(this).show();
			});		
			selected = pos;
			$($.grep(btns, function(n, i){
  				return ($(n).attr("data") == selected+1);
			})).addClass('selected');
		};		
	};
	
	$.fn.rotator = function(options) {  								// Method to attach rotator to elements
  		var defaults = {duration: 4000,
		  				transition:500,
						page_numbers:true,
						next_prev:false};  
  		var options = $.extend(defaults, options||{});       
		return this.each(function()
		{
    		var el = new Rotator($(this), options);
    		$(this).data("rotator", el);  
    	});        
 	}; 
})(jQuery);

$(function(){						// On Ready	
	$("div.rotator").rotator({page_numbers:true, next_prev:false});		// Attach Rotator
});

//--> 

