(function($){

    function random(number) {
		var rnd = Math.floor(Math.random()*number+1);
		while(rnd==random.prev) {
		    rnd = Math.floor(Math.random()*number+1);	
		}
	    random.prev = rnd;
		return rnd;
	}
    
	$.fn.randomfade = function(options) {
	    var defaults = { 
	        innerHtmlTag : 'span',
	        highlightInterval : 2000,
	        fadeInInterval: 1000,
	        fadeOutInterval : 750
	    };       
        var options = $.extend(defaults, options);
                
        return this.each(function() {
        
			var links = $('a', this);
			var innerElements = $('a ' + options.innerHtmlTag, this);
			
			innerElements.css('display', 'none');
			
			var highlightCallback = function(){
				$(options.innerHtmlTag, links[random(links.length)-1]).fadeIn(options.fadeInInterval,
				    function(){
					    $(this).fadeOut(options.fadeOutInterval);
				});
			};
				
			var intervalId = setInterval(highlightCallback,options.highlightInterval);
				
			links.mouseover(function(){
				clearInterval(intervalId);
				innerElements.css('display', 'none');
			}).mouseout(function(){		
				intervalId = setInterval(highlightCallback,options.highlightInterval);
			});				
		});         
	}
})(jQuery);