(function($) {
$.fn.jSuperSlider = function(_o) {
	var o = $.extend({
        minValue: 0,
        maxValue: 0,
        from: 0,
        to: 0,
        step: 1,
        inputCheckbox: '',
        inputFrom: '',
        inputTo: '',
        unitName: ''
    }, _o || {});

    return this.each(function() {
        var self = $(this);

        $('.nojs', self).css('display', 'none');


        var container = $('<div class="priceContainer">').appendTo(self);
        var tFrom = $('<div class="textBox">').appendTo(container);
        var slBox = $('<div class="slBox">').appendTo(container);
        var range = $('<div>').appendTo(slBox);
        var tTo = $('<div class="textBox">').appendTo(container);
       container.append('<div class="cleaner">&nbsp;</div>');

        tFrom.text(o.from);
		tTo.text(o.to);

        var iCheckbox = $('<input type="hidden">').appendTo(self);
        iCheckbox.attr('name', o.inputCheckbox);

        if (o.minValue != o.from || o.maxValue != o.to)
			iCheckbox.attr('value', 1);
		else
			iCheckbox.attr('value', 0);

		var iFrom = $('<input type="hidden">').appendTo(self);
		iFrom.attr('name', o.inputFrom);
		iFrom.attr('value', o.from);

		var iTo = $('<input type="hidden">').appendTo(self);
		iTo.attr('name', o.inputTo);
		iTo.attr('value', o.to);

        range.slider({
	        range: true,
			min: o.minValue,
			max: o.maxValue,
			step: o.step,
			values: [o.from, o.to],
			stop: function(event, ui) {
				iFrom.val(ui.values[0]);
				iTo.val(ui.values[1]);

				if (ui.values[0] != o.minValue || ui.values[1] != o.maxValue)
					iCheckbox.attr('value', 1);
				else
					iCheckbox.attr('value', 0);

				iCheckbox[0].form.submit();
			},
			slide: function(event, ui) {
				tFrom.text(ui.values[0]);
				tTo.text(ui.values[1]);
			}
        });
    });
};
})(jQuery);
