(function ($) {
	$.fn.extend({
		mpgSlider: function (settings) {
			settings = $.extend({
				minValue: 10,
				maxValue: 60,
				startMin: null,
				startMax: null,
				step: 1,
				change: function (value, range) {}
			}, settings);
			
			var enableChangeCallback = false;
			
			return $(this).each(function () {
				var currentMin = settings.startMin || settings.minValue,
					currentMax = settings.startMax || settings.maxValue,
					onStartMin = currentMin,
					onStartMax = currentMax,
					slide = function(e, ui) {
						currentMin = jQuery(slider).slider('values', 0);
						currentMax = jQuery(slider).slider('values', 1);
						$('em', ui.handle).html(ui.value);
					},
					stop = function(e, ui) {
						setTimeout(function() {
							if ((onStartMin !== currentMin) || (onStartMax !== currentMax)) {
								settings.change.apply(slider, [null, [jQuery(slider).slider('values', 0), jQuery(slider).slider('values', 1)]]);
							}
						}, 100);
					},
					start = function() {
						onStartMin = currentMin;
						onStartMax = currentMax;
					},
					slider = $('.mpgSlider', this).slider({
						min: currentMin,
						max: currentMax,
						step: settings.step,
						range: true,
						slide: slide,
						start: start,
						stop: stop
					});
					
				$(slider).slider('values', 0, currentMin);
				$(slider).slider('values', 1, currentMax);
				$('.min em', slider).html(currentMin);
				$('.max em', slider).html(currentMax);
				
				$('.ui-slider-handle', this).css({visibility: 'visible'});
			});
		}
	});
})(jQuery);
