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: 500,
		Direction: 'right'
	};
	
	settings = jQuery.extend(settings, options || {});

	var active = 0;
	var direct;
	settings.width *= -1; 
	var size = $(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).size() - 1;
	if(settings.Direction == "right"){
		direct = "marginLeft";
	}
	else{
		direct = "marginTop";
	}
	
	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 resetInterval = function(){
		clearInterval(sliderInterval);
		sliderInterval = setInterval(function(){$(settings.RightArrow).trigger('click');},settings.AutoSlideTime);
	}
	
	jQuery.fn.delay = function(time,func){
		this.each(function(){
			setTimeout(func,time);
		});
		return this;
	};
	
	var Next = function(){
		findActive();
		if(active == size){
			$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " " + settings.Item).eq(size).removeClass("active");
			eval('$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").stop().animate( { ' + direct +': "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");	
			eval('$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").stop().animate( { ' + direct +': 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");
			eval('$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").stop().animate( { ' + direct +': 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");
			eval('$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").stop().animate( { ' + direct +': 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");
			eval('$(settings.sliderID + " " + settings.Mask + " " + settings.ItemContainer + " ").animate( { ' + direct +': 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();
		if(settings.AutoSlide == "on"){
			resetInterval();
		}
		return false;
	});
	
	$(settings.LeftArrow).click(function(){
		Previous();
		if(settings.AutoSlide == "on"){
			resetInterval();
		}
		return false;
	});
	

	
//	$(settings.sliderID + " " + " .roller .roll").click(function(){
//		goTo($(settings.sliderID + " " + " .roller .roll").index($(this)));
//		return false;
//	});
	if(settings.AutoSlide == "on"){
		var sliderInterval;
		sliderInterval = setInterval(function(){$(settings.RightArrow).trigger('click');},settings.AutoSlideTime);
	}
};


