(function($){
	$.fn.vslider = function(options)
	{
		// Vars
    var defaults = {};
    var container = this;
    var clon = this.clone();
		var steps = new Array();
		// Functions 
		function _Init()
		{
			var wrapper = $("<div class=\"vslider\"></div>");
			var tooltip = $("<span class=\"vslider-tooltip\"></span>");
			var range = $("<div class=\"vslider-range\" />");
			var _slider = $("<div class=\"vslider-slider\"></div>")
			
			container.hide();
			container.wrap(wrapper);
			tooltip.addClass("ui-corner-all");
			
			container.parents("div.vslider").append(_slider);
			container.parents("div.vslider").append(range);
			container.parents("div.vslider").children("div.vslider-slider").slider({
				range: "min",
				min: 1,
				step:1,
				slide : function(event, ui){
					var _select = $(this).siblings("select");
					$("option",_select).eq(ui.value-1).attr("selected","selected");
					$("span.vslider-tooltip",this).text($("option:selected",_select).text());
				}
			});
			
			container.parents("div.vslider").each(function(){
				var _select = $("select",this);
				var _vslider = $("div.vslider-slider",this);
				var _range = $("div.vslider-range",this);
				var _value = $("option:selected",_select).index()+1;
				var _text = $("option:selected",_select).text();
				$(this).append(_range);
				_vslider.slider("option","max",$("option",_select).length);
				_vslider.slider("option","value",_value);
				var optionLast = $("option:last",_select);
				$("option",_select).each(function(){
					$(_range).append("<span class=\"vslider-label\"><span>"+$(this).text()+"</span></span>");
				});
				$("span.vslider-label:last",_range).prev().children("span").text(optionLast.text());
				$("span.vslider-label:last",_range).remove();
				$("span.vslider-label:first",_range).addClass("first");
				$("span.vslider-label:last",_range).addClass("last");
				width = (100/(_select.children("option").length-1));
				spanWidth = String(((width*100)/100)+"%");
				$("span.vslider-label",_range).css({
					width:spanWidth
				});
				$(_range).append("<div style=\"clear:both;\"/>");
				_select.change(function(){
					_vslider.slider("option","value",$(this).children("option:selected").index()+1);
				});
				$('.ui-slider-handle',this).append(tooltip.clone().text(_text));
				$("span.vslider-label.last",this).clone().insertAfter($("div.vslider-range",this)).addClass("limit");
				$("span.vslider-label.first",this).clone().insertAfter($("div.vslider-range",this)).addClass("limit");
				$(this).append($("<div style=\"clear:both;\" /></div>"));
			});
			container.parents("div.vslider").children('.ui-slider-handle').removeClass("ui-corner-all");
			container.parents("div.vslider").children('.ui-slider').removeClass("ui-corner-all");
			
		}
		// Init
		_Init();
	}
})(jQuery);
