(function($) {
 
 $.fn.innerfade = function(options) {
        return this.each(function() {   
           $.innerfade(this, options);
        });
    };

    $.innerfade = function(container, options) {
	    
        var settings = {
        	'animationtype':    'fade',
            'speed':            'normal',
            'type':             'sequence',
            'timeout':          2000,
            'containerheight':  'auto',
            'runningclass':     'innerfade',
            'children':         null,
			'back': '#leftArrow',
			'forward': '#rightArrow'
        };
		
		var running = true;//default - show slide show, set to false if user clicks on back/next
		var timeToNext = "";//default for timeout - so no error is thrown if user clicks back or next before timeout is set
		
        if (options)
            $.extend(settings, options);
            elements = $(container).children();
        
		var current = 0;
		var last = elements.length-1;
	
		
		
		if (elements.length > 1) {
            $(container).css('position', 'relative').css('height', settings.containerheight).addClass(settings.runningclass);
            for (var i = 0; i < elements.length; i++) {
                $(elements[i]).css('z-index', String(elements.length-i)).css('position', 'absolute').hide();
            };
            
			    setTimeout(function() {
                    $.innerfade.next(elements, settings);
                }, settings.timeout);
                $(elements[0]).show();
    
		
		
		
		//forward and back nav
		$(settings.back).click(function(){
		      $.innerfade.stop();
			  if ((current - 1) < 0) {
                 current = elements.length-1;
                 last = 0;
            } else {
                 last = current;
				 current = current - 1;
            }
			$.innerfade.next(elements,settings);
	     });
		
		$(settings.forward).click(function(){
		      $.innerfade.stop();
			  if (current==elements.length-1) {
                 last = current;
				 current = 0;
                 
            } else {
                 last = current;
				 current = current + 1;
            }
			$.innerfade.next(elements,settings);
	     });
		
		
		
		

//start back next function		 
$.innerfade.next = function(elements,settings) {
        if(running){
            if ((current + 1) < elements.length) {
                 current = current + 1;
                 last = current - 1;
            } else {
                 current = 0;
                 last = elements.length - 1;
            }
		};
		
		$(elements[last]).fadeOut(settings.speed);
        $(elements[current]).fadeIn(settings.speed, function() {
							removeFilter($(this)[0]);
						});
        
        if(running){
			timeToNext = setTimeout((function() {
	        	$.innerfade.next(elements, settings);
	        }), settings.timeout);
	    };
	   
	};		
  };
////End back next function
    
	$.innerfade.stop = function(){//onclick next/last button stop slide show
	    settings.speed = "fast";
		running = false;
		clearTimeout(timeToNext);
		elements.each(function(){$(this).stop(true,true);});
	 }
	
	
	};

})(jQuery);

// **** remove Opacity-Filter in ie ****
function removeFilter(element) {
	if(element.style.removeAttribute){
		element.style.removeAttribute('filter');
	}
}

