(function($) {
    var mouseisover = 0;
    var last = 0;
    var current = 0;
    var elements;
    var settings;
    var tmout;
    
    $.fn.innerfade = function(options) {
        return this.each(function() {   
            $.innerfade(this, options);
            
            
        //set mouseenter
		$(this).mouseenter(function() {
		  
		  //stop current animation
		  mouseisover = 1
		  
		});
		
		//set mouseleave
		$(this).mouseleave(function() {
		          
          //resume animation
		  mouseisover = 0
		  
		});
		
		$(this).click(function() {
		  
		  //stop current animation
		  mouseisover = 0
		  
		});
            
            
            
        });
    };

    $.innerfade = function(container, options) {
        settings = {
        	'animationtype':    'fade',
            'speed':            'normal',
            'type':             'sequence',
            'timeout':          2000,
            'containerheight':  'auto',
            'runningclass':     'innerfade',
            'children':         null
        };
        
        
        
       
        
        
        if (options)
            $.extend(settings, options);
        if (settings.children === null)
            elements = $(container).children();
        else
            elements = $(container).children(settings.children);
        if (elements.length > 1) {
            $(container).before('<div id="eventtickercontroller"><div id="eventtickerprev" ><<</div><div style="margin:0 auto;text-align:center;"><a href="Events.aspx" style="display:none;"><strong>View Event Calendar</strong></a></div><div id="eventtickernext">>></div></div>');
        
            $(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, 1, 0);
                }, settings.timeout);
                
                $('#eventticker').animate({ height: $(elements[0]).height() + 15 }, 1000);
                
                $(elements[0]).show();
            
	    }else
	    {
	         $('#eventticker').animate({ height: $(elements[0]).height() + 15 }, 1000);
	          $(elements[0]).show()
	    }
				
		  $('#eventtickerprev').bind('click', function(){  $.innerfade.next(elements, settings, current, last, 'prev');  });
		  $('#eventtickernext').bind('click', function(){  $.innerfade.next(elements, settings, current, last, 'next');  });
				
    };
    
    
       

    $.innerfade.next = function(elements, settings, current, last, direction) {
          clearTimeout(tmout);
          $('#eventtickerprev').unbind();
          $('#eventtickernext').unbind();
          
        
        
          
       
            if (direction)
            {
                if (direction == 'prev')
                {
                
                    
                        if ((current) > 0) {
                            last = current;
                            current = current - 1;
                            
                        } else {
                            current = elements.length - 1;
                            last = 0;
                        }
                    
                    
                        
                        $('#eventticker').animate({ height: $(elements[current]).height() + 15  }, 1000);
                        $(elements[last]).fadeOut(settings.speed);
                        $(elements[current]).fadeIn(settings.speed, function() {removeFilter($(this)[0]);});
                    
                    
                        
                                    
                 
                   
                }else
                {
                    $('#eventticker').animate({ height: $(elements[current]).height() + 15  }, 1000);
                    $(elements[last]).fadeOut(settings.speed);
                    $(elements[current]).fadeIn(settings.speed, function() {removeFilter($(this)[0]);});
                    
                	        
                    if ((current + 1) < elements.length) {
                        current = current + 1;
                        last = current - 1;
                    } else {
                        current = 0;
                        last = elements.length - 1;
                    }
                }
                

            }else
            {

                    
                if (mouseisover == 0)
                {
                    $('#eventticker').animate({ height: $(elements[current]).height() + 15  }, 1000);
                    $(elements[last]).fadeOut(settings.speed);
                    $(elements[current]).fadeIn(settings.speed, function() {removeFilter($(this)[0]);});
                    
                	        
                    if ((current + 1) < elements.length) {
                        current = current + 1;
                        last = current - 1;
                    } else {
                        current = 0;
                        last = elements.length - 1;
                    }
                }
            }
       
        
        
        
          $('#eventtickerprev').bind('click', function(){  $.innerfade.next(elements, settings, current, last, 'prev');  });
		  $('#eventtickernext').bind('click', function(){  $.innerfade.next(elements, settings, current, last, 'next');  });
          
        tmout = setTimeout((function() {
            $.innerfade.next(elements, settings, current, last);
            
        }), settings.timeout);
        
        
        
        
    };

})(jQuery);

// **** remove Opacity-Filter in ie ****
function removeFilter(element) {
	if(element.style.removeAttribute){
		//element.style.removeAttribute('filter');
	}
}

