jQuery(function() {
	var sliderSpeed = 400; // 400 msec, animation speed
	var sliderAuto = 5000; // 5 sec, autoslide
	
	jQuery('div.slider').each(function() {
		if(!jQuery(this).hasClass('slider-implemented')) {
			var slider = jQuery(this);
			var sliderLi = jQuery('li', slider);
			var sliderHover = false;
			var sliderActive = sliderLi.index(sliderLi.filter('.act').eq(0));
			if(sliderActive==-1) {
				sliderActive = 0;
			}
			sliderLi.each(function() {
				jQuery(this)
					.removeClass('hover')
					.removeClass('act');
				jQuery('div', jQuery(this)).hide();
			});
			sliderLi.eq(sliderActive).addClass('hover');
			jQuery('div', sliderLi.eq(sliderActive)).show();
			function sliderAnimate(activeLi) {
				if(!activeLi.hasClass('hover')) {
					sliderLi.each(function() {
						jQuery(this).removeClass('hover');
						jQuery('div', jQuery(this)).fadeOut(sliderSpeed);
					});
					activeLi.addClass('hover');
					jQuery('div', activeLi).fadeIn(sliderSpeed);
				}
			}
			if(sliderLi.length>1) {
				sliderLi.mouseenter(function() {
					sliderAnimate(jQuery(this));
				});
			}
			slider.hover(function() {
				sliderHover = true;
			}, function() {
				sliderHover = false;
			});
			if(sliderAuto) {
				setInterval(function() {
					if(!sliderHover) {
						if(sliderActive<sliderLi.length-1) {
							sliderActive++
						} else {
							sliderActive = 0;
						}
						sliderAnimate(sliderLi.eq(sliderActive));
					}
				}, sliderAuto);
			}
			slider.addClass('slider-implemented')
		}
	});
});
