$(document).ready(function(){
  
  $("ul.crossFade li").crossFade();
  
});

$.fn.crossFade = function(config){
	
  var allItems = this;
  
  var currentItem = Math.floor(Math.random()*this.length);
  var fadeSpeed = 1000;
  var fadeInterval = 60000;
  
  if(config){
    if(config.currentItem) currentItem = config.currentItem;
    if(config.fadeSpeed) fadeSpeed = config.fadeSpeed;
    if(config.fadeInterval) fadeInterval = config.fadeInterval;
  }
  
  var fadeIn = function(item){
    item.stop();
    if(item.css('display') == "none") item.css({opacity:"0", display:"block"});
    item.animate({opacity:1}, fadeSpeed);
  }
  var fadeOut = function(item){
    item.stop();
    item.animate({opacity:0}, fadeSpeed, function(){
      item.css({display:"none"});
    });
  }
  
  var goToItem = function(itemNumber){
    
    if(itemNumber) currentItem = itemNumber;
    
    for(var i = 0; i<allItems.length; i++){
      if(i == currentItem){
        fadeIn($(allItems[i]));
      } else {
        fadeOut($(allItems[i]));
      }
    }   
    
  }
  
  var nextItem = function(){
    currentItem++;
    if(currentItem > allItems.length-1) currentItem = 0;
    goToItem();
  }
  
  var previousItem = function(){
    currentItem--;
    if(currentItem < 0) currentItem = allItems.length-1;
    goToItem();
  }
  
  var interval = setInterval(nextItem, fadeInterval);
  
	return this.each(function(i, e) {
	  
	  if(i != currentItem) $(e).css({opacity:"0", display:"none"});
	  
	});
  
}
