/*
Name: Fade Slider for jQuery
Description: Creates a simple fading slideshow.
Version: 1.0.0
Author: Michael Shihinski
Author URI: http://www.graphicten.com/
Date: April 29th, 2011
*/

(function($){
	
    $.fadeSlider = function(el, options){
		
		var base = this;
		
		// Access to jQuery and DOM versions of element
        base.$el = $(el);
        base.el = el;
		
		// Set up a few defaults
        base.curr_slide_id_number = 1;
		base.next_slide_id_number = 0;

        // Add a reverse reference to the DOM object
        base.$el.data("FadeSlider", base);
		
		base.init = function() {
			base.options = $.extend({},$.fadeSlider.defaults, options);
			
			base.$items   = base.$el.find('> li');
            base.$single  = base.$items.filter(':first');
			
			base.pages = base.$items.length;
			
			if (base.pages > 1) {
				base.$el.css('position', 'relative').css('height', base.options.containerheight).addClass(base.options.runningclass);
				for (var i = 0; i < base.pages; i++)  {
					$(base.$items[i]).css('z-index', String(base.pages-i)).css('position', 'absolute').hide();
				   
				}
				
				if (base.options.autoPlay === true) {
					setTimeout(
						function() {
							base.next();
						}
						, base.options.timeout
					);
				}
                $(base.$items[0]).show();
			}
		};
		
		base.next = function()  {
			$(base.$items[base.next_slide_id_number]).css('background-image', 'none');
			$(base.$items[base.next_slide_id_number]).fadeOut(base.options.speed);
			
			$(base.$items[base.curr_slide_id_number]).fadeIn(base.options.speed, function() {
						removeFilter($(this)[0]);
					});
				
			//alert(curr_slide_id_number);
			if ((base.curr_slide_id_number + 1) < base.pages)  {
				//alert(curr_slide_id_number);
				base.curr_slide_id_number = base.curr_slide_id_number + 1;
				base.next_slide_id_number = base.curr_slide_id_number - 1;
				//alert(curr_slide_id_number+"if");
			} else {
				//alert(curr_slide_id_number+"else");
				base.curr_slide_id_number = 0;
				base.next_slide_id_number = base.pages - 1;
			}
			
			//base.options.slide_timer_on = 'yes';
			if (base.options.autoPlay === true) {
				setTimeout((function() {
				base.next()}), base.options.timeout);
			}
		};
		
		base.init();
	};
	
	$.fadeSlider.defaults = {
        autoPlay: true,
        speed: 600,                    // How long between slide transitions in AutoPlay mode
        timeout: 300	              // How long the slide transition takes)
    };
	
	$.fn.fadeSlider = function(options){
		if(typeof(options) == "object"){
		    return this.each(function(i){			
				(new $.fadeSlider(this, options));
	        });	
		} else if (typeof(options) == "number") {

			return this.each(function(i){
				var fadeSlide = $(this).data('FadeSlider');
				if(fadeSlide){
					fadeSlide.next();
				}
			});
		}
    };
	
})(jQuery);

// **** remove Opacity-Filter in ie ****
function removeFilter(element) {
	if(element.style.removeAttribute){
		element.style.removeAttribute('filter');
	}
}
