(function($){
$.fn.rotator = function(movies,options){
	
	// option defaults
	var options = $.extend({
		flashwidth: 800,
		flashheight: 600,
		controlbar: 'div.controls',
		flasharea: 'div.flash',
		buttonclass: 'button'
		},options);
	
	// get the rotator
	var rotator = this.eq(0)
		.data('movies',movies)
		.data('options',options);
		
	// set the current movie
	var current = Math.ceil(movies.length*Math.random())-1;
	rotator.data('current',current);
	
	// get the controlbar
	var controlbar = rotator.find(options.controlbar).eq(0)
		.data('rotator',rotator);
	rotator.data('controlbar',controlbar);
	
	// get the flash area
	var flasharea = rotator.find(options.flasharea).eq(0)
		.data('rotator',rotator);
	rotator.data('flasharea',flasharea);
	
	// add a change event to the rotator
	rotator.bind('change',function(e,movie){
		
		// get the rotator
		var rotator = $(this);
		
		// set the current movie
		rotator.data('current',movie.index);
		
		// add the flash
		rotator.data('flasharea').html('');
		var flashvars = {clickTag:movie.href};
		var params = {wmode:'transparent'};
		var attributes = {};
		swfobject.embedSWF(movie.src,rotator.data('flasharea').attr('id'),rotator.data('options').flashwidth,rotator.data('options').flashheight,'9.0.0',null,flashvars,params,attributes);
		
		});
	
	// loop movies
	$.each(movies,function(i,movie){
		
		// set movie index
		movies[i].index = i;
		movie.index = i;
		
		// add a switch button
		var button = $(document.createElement('a'))
			.data('rotator',rotator)
			.data('movie',movie)
			.html(movie.name)
			.attr('href','#movie-'+i)
			.addClass(options.buttonclass)
			.click(function(e){
				// get button
				var button = $(this);
				// update buttons
				button.addClass('selected').siblings().removeClass('selected');
				// update the flash
				button.data('rotator').trigger('change',[button.data('movie')]);
				// prevent regular link click
				e.stopPropagation();
				return false;
				});
		// add selected class
		if (rotator.data('current')==i){
			button.addClass('selected');
			rotator.trigger('change',movie);
			}
		// append button
		controlbar.append(button);
		
		});
	
	// return the rotator
	return rotator;
	
	}
}(jQuery));