function mlsPriceHandler( ) {
    this.priceSliderMax = 1010000;
    this.priceMin       = 0;
    this.priceMax       = 2000000000;
    this.from           = null;
    this.to             = this.priceMax + 1;
	
	this.init(this);
}

mlsPriceHandler.prototype.set = function( from, to ) {
    if ( from == undefined ) from = 0;
    if ( to == undefined ) to = 'Unlimited';
    this.from = this.parsePrice( from );
    this.to   = this.parsePrice( to   );

    $("#price_from").val(numCommaRender(this.from));
    $("#price_to").val(numCommaRender(this.to, this.priceMax ));
    $("#current-price").html(numRender(this.from)+" to "+ numRender(this.to));
    this.updateSlider();
};

mlsPriceHandler.prototype.validate = function() {
    if( this.from < this.priceMin ) this.from = this.priceMin;
    if( this.to   < this.from)      this.to = this.from;
}

	
mlsPriceHandler.prototype.updateSlider = function() {
    $("#slider-price").slider("values", [this.from, this.to]);
    $("#current-price").html(numRender(this.from)+" to "+ numRender(this.to, this.priceSliderMax ));    
}

mlsPriceHandler.prototype.parsePrice = function( value ) {
    if ( value == 'Unlimited') return this.priceMax+1;
    if ( value.getType != "Number" ) {
        var str = value.toString();
        str = str.replace(/,/gi,"");
        value = Number(str);
        if ( isNaN(value) ) value = 'Unlimited';
    }   
    return value;
}   

// setup event-handlers + initial values    		
mlsPriceHandler.prototype.init = function( obj ){
	$("#slider-price").slider({
		range: true,
		min: obj.priceMin,
		max: obj.priceSliderMax,
		step: 10000,
		values: [obj.from, obj.to],
		slide: function(event, ui) { 
            obj.from = ui.values[0];
            obj.to   = ui.values[1]; 
            $("#price_from").val(numCommaRender(obj.from));
            $("#price_to"  ).val(numCommaRender(obj.to,obj.priceSliderMax));
            $("#current-price").html(numRender(obj.from)+" to "+ numRender(obj.to, obj.priceSliderMax));    
        }
	});
	
	$("#price_from").change(function() { 
        obj.from = obj.parsePrice(this.value); 
        obj.updateSlider(); 
        $(this).val(numCommaRender(obj.from));
        $("#current-price").html(numRender(obj.from)+" to "+ numRender(obj.to, obj.priceMax ));    
    });
	$("#price_to"  ).change(function() { 
        obj.to   = obj.parsePrice(this.value);
        obj.updateSlider(); 
        $(this).val(numCommaRender(obj.to, obj.priceMax));
        $("#current-price").html( numRender(obj.from) +" to "+ numRender(obj.to, obj.priceMax ) );    
    });

    this.from = this.priceMin;
    this.to   = this.priceMax+1;
	obj.set(obj.from, obj.to);
}
