(function($) {
	var navSlider = function(element, options){
		var defaults = {
			'current': 0,
			'timer':6000,
			'speed':1000,
			'tag':'img',
			'pagerID':'#qsNavSlidernav',
			'pagerChildren':'li'
		};
		var elements = new Array();
		var auto = 0;
		var extra = '';

		var settings = $.extend({}, defaults, options);

		var navslider = $(element);
		var kids = navslider.children();
		kids.each(function(i) {
			var child = $(this);
			elements.push(child);
			if(i !== settings.current) {
				child.css('position', 'absolute');
				child.css('left', navslider.width());
			}
		});

		var doAuto = function(elements, settings) {
			navslider.children(settings.tag).css('z-index', '0');
			navslider.children(settings.tag + '[rel=' + elements[settings.current].attr('rel') + ']').css('z-index', '1');
			if(settings.current < (elements.length-1)){settings.current++;} else {settings.current=0;}
			navslider.children(settings.tag + '[rel=' + elements[settings.current].attr('rel') + ']').css('z-index', '2').css('left', '526px').animate({left: '0px'}, settings.speed);
		}
		
		auto = setInterval(function(){ doAuto(elements, settings); }, settings.timer);
		
		if(settings.pagerChildren == "li") { extra = ' > ul'; }
		jQuery(settings.pagerID + extra).children(settings.pagerChildren).mouseenter(function() {
			$this = $(this);
			var previous = settings.current;
			for(var j=0; j < elements.length; j++) {
				if(elements[j].attr('rel') == $this.attr('id'))
				{
					settings.current = j;
				}
			}
			if(elements[previous].attr('rel') !== $this.attr('id')) {
				clearInterval(auto);
				navslider.children(settings.tag).css('z-index', '0');
				navslider.children(settings.tag + '[rel=' + elements[previous].attr('rel') + ']').css('z-index', '1');
				navslider.children(settings.tag + '[rel=' + elements[settings.current].attr('rel') + ']').css('z-index', '2').css('left', '526px').animate({left: '0px'}, settings.speed);
				auto = setInterval(function(){ doAuto(elements, settings); }, settings.timer);
			}
		});
	};
	
    $.fn.qsNavSlider = function(options) {
    
        return this.each(function(key, value){
            var element = $(this);
            // Return early if this element already has a plugin instance
            if (element.data('navslider')) return element.data('navslider');
            // Pass options to plugin constructor
            var navslider = new navSlider(this, options);
            // Store plugin object in this element's data
            element.data('navslider', navslider);
        });

	};
})( jQuery );
