(function($) {
	//Plugin methods
	var base;
	var options;
	var intervals = new Array();
	var g_panels = new Array();
	var positions = new Array();
	var methods = {
		init : function(options_a) {
			base = this;
			
			$(base).each(function(i){
				positions[positions.length]
				var items = $(this).find(".graphic.sols");
				g_panels[g_panels.length] = items;
				intervals[intervals.length] = setInterval(function(){
					methods.nextGraphic(g_panels[i],positions[i],i);
				},6000);
			});
		
			
			
		},
		nextGraphic : function(panel_set, position_set, iter){
			var cur = methods.findCurrent(panel_set);
			
			
			if(cur < panel_set.length-1)
			{
				$(panel_set[cur]).fadeOut(1000);
				$(panel_set[cur+1]).fadeIn(1000);
			}
			else{
				$(panel_set[cur]).fadeOut(1000);
				$(panel_set[0]).fadeIn(1000);
			}
		},
		findCurrent : function(panels)
		{
			for(var i=0;i<panels.length;i++)
			{
				if($(panels[i]).css("display")!="none")
				{
					return i;
				}
			}
		}
		
	}
	//plugin
	$.fn.jGraphicFader = function(method, options) {

		var defaults = {

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

		if(methods[method]) {
			return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
		} else if( typeof method === 'object' || !method) {
			return methods.init.apply(this, arguments);
		} else {
			$.error('Method ' + method + ' does not exist on jQuery.GraphicFader');
		}

	};
})(jQuery);

