(function($){
	$.fn.rotateGraphics = function(options){
		var defaults = {
			main: "#scRotatingGraphics", // main container
			auto: true, // auto rotate on/off
			timer: 5 // seconds for auto rotation
		};
		var settings = $.extend({},defaults,options);
		
		// populates images for auto rotate
		function populateObj(obj){
			var useArr = obj.split(",");
			if(useArr[1]){
				$(settings.main).append($(document.createElement("a")).attr("href",useArr[1]).append($(document.createElement("img")).attr("src",useArr[0])));
			} else {
				$(settings.main).append($(document.createElement("a")).attr("name","").append($(document.createElement("img")).attr("src",useArr[0])));
			}
		}
		
		// auto rotation
		function autoRotate(){
			var active = $(settings.main+' a.active');
			( active.length == 0 ) ? active = $(settings.main+' a:last'):'';
			var next =  active.prev().length ? active.prev() : $(settings.main+' a:last');
			active.addClass('last-active');
			next.css({opacity: 0.0}).addClass('active').animate({opacity: 1.0}, 1000, function() {
				active.removeClass('active last-active');
			});
		}
		
		// deal with array for auto rotation for auto rotate
		function autoRotatePop(){
			$(settings.objArr.reverse()).each(
				function(i){
					populateObj(settings.objArr[i]);
				}
			);
		};
		

		// initialize functionality
		if(settings.auto){
			autoRotatePop();
			objInterval = setInterval( autoRotate, (settings.timer * 1000) );
		} else {
			var scLen = settings.objArr.length;
			var scRan = Math.floor(Math.random()*scLen);
			populateObj(settings.objArr[scRan]);
		}
	}
})(jQuery);
