
(function($) {
	$.imgSlider = function(options) {
		if (!init(options)) return false
		$.imgSlider.loading()
	}
	
	$.extend($.imgSlider, {
		settings: {
			speed:		300
		},
		
		loading: function() {
			addOverlay()
			setDimensions()
			buildSlider()
			onClick()
			onMouseOver()
		}
	})
	
	$.fn.imgSlider = function(options) {
		if ($(this).length == 0) return
		if (!init(options)) return
		
		return this.each(function() {
			$.imgSlider.settings.self = $(this)
			$.imgSlider.loading()
		})
	}
	
	function init(options) {
		if (options) {
			$.extend($.imgSlider.settings, options)
			$.imgSlider.self		= $($.imgSlider.settings.self)
			$.imgSlider.scroll_content	= $($.imgSlider.settings.scroll_content)
			$.imgSlider.scroll_bar	= $($.imgSlider.settings.scroll_bar)
			$.imgSlider.current		= $.imgSlider.settings.start_value
			return true
		} else {
			return false
		}
	}
	
	function buildSlider() {
		$.imgSlider.scroll_bar.slider({
			value:	$.imgSlider.settings.start_value * $.imgSlider.settings.item_width,
			min:	0,
			max:	$.imgSlider.settings.maximum,
			change:	onSlide
		})
	}
	
	function onSlide(e, ui) {
		var v = Math.ceil(ui.value / $.imgSlider.settings.item_width) -1
		if (v != $.imgSlider.current) change($.imgSlider.current, v)
		$.imgSlider.current = v
	}
	
	function change(from, to) {
		var f  = Math.abs(from-to)
		var cx = Number($.imgSlider.scroll_content.css("margin-left").replace("px", ""))
		var nx = (from < to)
			? cx + (f * $.imgSlider.settings.item_width * -1)
			: cx + (f * $.imgSlider.settings.item_width)
		
		$.imgSlider.scroll_content.animate({"margin-left": nx+"px"}, $.imgSlider.settings.speed)
		$.imgSlider.current = to
		
        $.imgSlider.scroll_content.find("li").removeClass("slider_current").find("img").css("top", -200)
		$.imgSlider.scroll_content.find("li").eq(to).addClass("slider_current").find("img").css("top", 0)
	}
	
	function onClick() {
		$.imgSlider.scroll_content.children().find("a").bind("click", function() {
			if ($(this).parent("li").hasClass("slider_current")) {
				return
			} else {
				change($.imgSlider.current, $(this).parent("li").index())
				return false
			}
		})
	}
	
	function onMouseOver() {
		$.imgSlider.scroll_content.find("li").hover(
		function() {
			$(this).find("img").css("top", 0)
		},
		function() {
			if (!$(this).hasClass("slider_current")) {
                $(this).find("img").css("top", -200)
			}
		})
	}
	
	function setDimensions() {
		$.imgSlider.items = $.imgSlider.scroll_content.children().length
		var w = $.imgSlider.items * $.imgSlider.settings.item_width
		$.imgSlider.settings.maximum = w
		$.imgSlider.scroll_content.width(w)
	}
	
	function addOverlay() {
        $.imgSlider.scroll_content.children().find("img").css("top", -200)
        
        $.imgSlider.scroll_content.find("li").each(function(i,el) {
			var el = $.imgSlider.scroll_content.find("li").eq(i)
			if (i != $.imgSlider.current) {
				//el.find("span").effect("scale", {percent:80}, 0)
			} else {
				el.addClass("slider_current").find("img").css("top", 0)
			}
		})

	}
    
})(jQuery)
