jQuery.fn.Slider = function(options) {

	var settings = {
		duration: 500,
		width: $(this).width(),
		sliderID: '#' + $(this).attr("id"),
		Mask: '#slider',
		ItemContainer: '#slider-settings.Item-container',
		Item: '.settings.Item',
		LeftArrow: '#slider-left',
		RightArrow: '#slider-right',
		AutoSlide: 'off',
		AutoSlideTime: 5000
	};
	
	settings = jQuery.extend(settings, options || {});

	var active = 0;
	settings.width *= -1; 
	var size = $(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).size() - 1;
	
	var findActive = function(){
		$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).each(function(){
				if($(this).hasClass("active")){
				active = $(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).index($(this));
				}
			});
	};
	
	var Next = function(){
		findActive();
		if(active == size){
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(size).removeClass("active");	
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").animate( { marginLeft: "0px" },settings.duration);
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(0).addClass("active");
		}
		else{
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(active).removeClass("active");	
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").animate( { marginLeft: settings.width * (active + 1) + "px" },settings.duration);
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(active + 1).addClass("active");
		}
	};
	
	var Previous = function(){
		findActive();
		if(active == 0){
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(0).removeClass("active");
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").animate( { marginLeft: settings.width * size + "px" },settings.duration);
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(size).addClass("active");
		}
		else{
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(active).removeClass("active");
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").animate( { marginLeft: settings.width * (active - 1) + "px" },settings.duration);
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(active - 1).addClass("active");
		}
	};
	
	var goTo = function(e){
		findActive();
		if(active == e){ return false; }
		else{
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(active).removeClass("active");
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").animate( { marginLeft: settings.width * (active - (active - e)) + "px" },settings.duration);
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(e).addClass("active");
		}
	};
	
	$(settings.RightArrow).click(function(){
		Next();
		return false;
	});
	
	$(settings.LeftArrow).click(function(){
		Previous();
		return false;
	});
	
	findActive();
	$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").css({marginLeft: settings.width * (active) + "px"});
	
//	$(settings.sliderID + " " + " .roller .roll").click(function(){
//		goTo($(settings.sliderID + " " + " .roller .roll").index($(this)));
//		return false;
//	});
	var sliderInterval;
	if(settings.AutoSlide == "on"){
		sliderInterval = setInterval(function(){$(settings.RightArrow).trigger('click');},settings.AutoSlideTime);
		$(settings.LeftArrow).mouseover(function(){
			clearInterval(sliderInterval);
		});
		$(settings.LeftArrow).mouseout(function(){
			sliderInterval = setInterval(function(){$(settings.RightArrow).trigger('click');},settings.AutoSlideTime);
		});
		$(settings.RightArrow).mouseover(function(){
			clearInterval(sliderInterval);
		});
		$(settings.RightArrow).mouseout(function(){
			sliderInterval = setInterval(function(){$(settings.RightArrow).trigger('click');},settings.AutoSlideTime);
		});
		$(settings.Mask).mouseover(function(){
			clearInterval(sliderInterval);
		});
		$(settings.Mask).mouseout(function(){
			sliderInterval = setInterval(function(){$(settings.RightArrow).trigger('click');},settings.AutoSlideTime);
		});
	}


};


