/**
* ULSlider 1.0 : 2009.7.15
* hashemi.sa@gmail.com
* Example:
* <ul><li>...
* $("ul#ulSlider").ulSlider();
*/
jQuery.fn.ulSlider = function(options){
	var uli = $(this).find('li');
	if(uli.length>1){
		var options = $.extend({
			speed:5000
			,effect:'fade'
		},options?options:{});
		var mo = false;
		var curr = uli.css({'display':'block'}).mouseover(function(){
			if(!mo){stopTimer()}
			mo = true;
		}).mouseout(function(){
			mo = false;
		}).eq(uli.length-1);		
		var startTimer = function(f){
			var ft = (f!=undefined)?f:options.speed;
			var fa = (f!=undefined)?true:false;
			setTimeout(function(){rotate(fa)},ft);
		}
		var stopTimer = function(){
			uli.find(':animated').stop(true,false);
			if(mo){startTimer()}
		}
		if(options.effect=='top'){
			uli.not(curr).animate({'top':'-=500px','opacity':0},0);
		}else{
			uli.not(curr).css('display','none');
		}
		var rotate = function(f){
			if(!mo){
				var fa = (f)?0:700;
				var old = curr.css('z-index','1');
				curr = curr.next('li');
				$(document.body).append(curr.attr('src'));
				if(curr.size() == 0){
					curr = uli.eq(0);
				}
				curr.css('z-index','2');
				if(options.effect=='slide'){
					curr.slideDown(fa,function(){old.slideUp(fa)});
				}else if(options.effect=='top'){
					var top = old.position().top;
					curr.animate({'top':top,'opacity':1},fa,function(){old.animate({'top':'-=500px','opacity':0},fa)});
				}else{
					curr.fadeIn(fa,function(){old.fadeOut(fa)});
				}
				startTimer();
			}else{stopTimer()}
		}
		startTimer(0);
	}else{
		uli.css({'display':'block'});
	}
}