jQuery.fn.w_slider = function() {
	$sliderwrap = $(this[0]);
	g = arguments[0] || {};

	if (!g.slider)    { $slider = $('.slider'); } else { $slider    = $(g.slider); }
	if (!g.slide)     { $slide = $('.slide');   } else { $slide    = $(g.slide); }
	if (!g.prevSlide) { $prev = $('.prev');     } else { $prev = $(g.prevSlide); }
	if (!g.nextSlide) { $next = $('.next');     } else { $next = $(g.nextSlide); }
	if (!g.speed)     { speed = 5000 } else { speed = g.speed; }

	slidenum    = $slide.length;
	sliderwidth = $sliderwrap.width();
	totalwidth  = slidenum * sliderwidth;

	addwidth = parseInt($slide.css("padding-left")) + parseInt($slide.css("padding-right"));

	$sliderwrap.css({
		styleFloat: "left",
		overflow: "hidden"
	});
	$slider.css({
		marginLeft: "0px",
		width: totalwidth + "px"
	});		    
	$slide.css({
		styleFloat: "left",
		width: (sliderwidth - addwidth) + "px"
	});
	$prev.addClass('disabled');

	$next.live("click", function(h) {
		var leftmargin = parseInt($slider.css("marginLeft"));
		if (!$slider.is(":animated") && (leftmargin - sliderwidth) != -totalwidth) {
			leftmargin -= sliderwidth;
			$slider.animate({ marginLeft: leftmargin + "px" }, 400)
			$prev.removeClass('disabled');
			if((-leftmargin + sliderwidth) == totalwidth){
				dir = "left";
				$(this).addClass('disabled');
				clearInterval(auto);
				auto = setInterval(function() {
					$('.prev').trigger('click');
				}, speed);
			}
			test = $sliderwrap.find('.nav li.active').index();
			$($sliderwrap.find('.nav li').removeClass('active').get(test + 1)).addClass('active');
		}
		h.preventDefault()
	});

	$prev.live("click", function(h) {
		var leftmargin = parseInt($slider.css("marginLeft"));
		if(!$slider.is(":animated") && (leftmargin != 0)) {
			leftmargin += sliderwidth;
			$slider.animate({ marginLeft: leftmargin + "px" }, 400)
			$next.removeClass('disabled');
			if(leftmargin == 0){
				dir = "right";
				$(this).addClass('disabled');
				clearInterval(auto);
				auto = setInterval(function() {
					$next.trigger('click');
				}, speed);
			}
			test = $sliderwrap.find('.nav li.active').index();
			$($sliderwrap.find('.nav li').removeClass('active').get(test - 1)).addClass('active');
		}
		h.preventDefault()
	});
	
	
	$sliderwrap.find('.nav li').live("click", function(h) {
		if(!$slider.is(":animated")) {
			test = $(this).index();
			$(this).siblings().removeClass('active').end().addClass('active');
			
			leftmargin = sliderwidth * test;
			$slider.animate({ marginLeft: -leftmargin + "px" }, 400)
			if(leftmargin == 0) {
				$prev.addClass('disabled');
				dir = "right";
			} else {
				$prev.removeClass('disabled');
			}
			if(leftmargin == $slider.width() - $sliderwrap.width()) {
				$next.addClass('disabled');
				dir = "left";
			} else {
				$next.removeClass('disabled');
			}
		}
		clearInterval(auto);
		h.preventDefault()
	});
	
	$sliderwrap.hover(function() {
		clearInterval(auto);
	}, function() {
		if(dir == "right") {
			auto = setInterval(function() {
				$next.trigger('click');
			}, speed);
		} else {
			auto = setInterval(function() {
				$prev.trigger('click');
			}, speed);
		}
	});
	
	auto = setInterval(function() {
		$next.trigger('click');
	}, speed);
	
};

