(function($) {
	var newsFader = function(element, options){
		var defaults = {
			'current': 0,
			'timer':6000,
			'speed':1000,
			'newsChildren':'div'
		};
		var elements = new Array();
		var auto = 0;

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

		var newsfader = $(element);
		var kids = newsfader.children();
		kids.each(function(i) {
			var child = $(this);
			elements.push(child);
			child.css('position', 'absolute');
			if(i !== settings.current) {
				child.css('display', 'none');
			}
		});

		var doAuto = function(elements, settings) {
			var previous = settings.current;
			if(settings.current < (elements.length-1)){settings.current++;} else {settings.current=0;}
			elements[previous].fadeOut(settings.speed);
			elements[settings.current].delay(settings.speed).fadeIn(settings.speed);
//			elements[previous].css({opacity:0.9}).css({zIndex:99}).fadeOut(settings.speed, function() { this.style.removeAttribute('filter') });
//			elements[settings.current].delay(settings.speed).css({zIndex:90}).fadeIn(settings.speed, function() { this.style.removeAttribute('filter'); });
//			elements[settings.current].css({opacity:0.0}).css({zIndex:90}).fadeIn(settings.speed);
		}
		
		auto = setInterval(function(){ doAuto(elements, settings); }, settings.timer);
		
		newsfader.children(settings.newsChildren).mouseenter(function() {
			clearInterval(auto);
		}).mouseleave(function() {
			auto = setInterval(function(){ doAuto(elements, settings); }, settings.timer);
		});
	};
	
    $.fn.qsNewsFader = function(options) {
    
        return this.each(function(key, value){
            var element = $(this);
            // Return early if this element already has a plugin instance
            if (element.data('newsfader')) return element.data('newsfader');
            // Pass options to plugin constructor
            var newsfader = new newsFader(this, options);
            // Store plugin object in this element's data
            element.data('newsfader', newsfader);
        });

	};
})( jQuery );
