var sqmSettings = {
    min: 0,
    max: 300,
    unitsSign: 'm<sup>2</sup>'
};

var sqftSettings = {
    min: 0,
    max: sqmSettings.max * 10,
    unitsSign: 'ft<sup>2</sup>'
};

var usdSettings = {
    min: 0,
    max: 1500000,
    unitsSign: "$"
};

var eurSettings = {
    min: 0,
    max: usdSettings.max * 1.3,
    unitsSign: "€"
};

var gbpSettings = {
    min: 0,
    max: usdSettings.max * 1.59,
    unitsSign: "£"
};

var rubSettings = {
    min: 0,
    max: usdSettings.max * 30,
    unitsSign: "R"
};

var priceSlider = null;
var areaSlider = null;

function changeCurrency()
{
    switch ($("#currency option:selected").text()) {
    case 'RUB':    	
        g_currencySettings  = rubSettings;
        break;
    case 'EUR':    	
        g_currencySettings  = eurSettings;
        break;
    case 'USD':        
        g_currencySettings  = usdSettings;
        break;
    case 'GBP':        
        g_currencySettings  = gbpSettings;
        break;
    }

    $('#priceLeftRuler span.units').html(g_currencySettings.unitsSign);
    $('#priceRightRuler span.units').html(g_currencySettings.unitsSign);
    _updatePriceSlider();
}

function changeMeasurmentItems()
{
    switch ($("#areaItems").val()) {
    case 'sq.m.':        
        g_areaSettings = sqmSettings;
    break;
    case 'sq.ft.':        
        g_areaSettings = sqftSettings;
    break;
    }

    $('#areaLeftRuler span.units').html(g_areaSettings.unitsSign);
    $('#areaRightRuler span.units').html(g_areaSettings.unitsSign);
    _updateAreaSlider();
}

$(document).ready(function() {
    //Setup autocomplete
    $("#location").autocomplete('/api/find/', {
        width: 323,
        max: 10,
        highlight: false,
        scroll: true,
        scrollHeight: 300,
        formatItem: function(data, i, n, value) {    	
    		var retStr = data[0] + ' (' + data[2] + ')';
    		if (data[3]) {
                    retStr += ', ' + data[3];
    		}
            return retStr;
        },
        formatResult: function(data, value) {
            return data[0];
        }
    });

    $("#location").result(function(event, data, formatted) {
        if (data) {
            $("#locationType").val(data[1]);
        }        
    });
    
    niceSelect('areaItems');
    niceSelect('currency');
    niceSelect('offer');

    var sliderWidth = 325;
    priceSlider = new niceSlider("priceSlider", 
                        sliderWidth /*width*/,
                        1000 /*step*/,
                        0 /*min*/, g_currencySettings.max /*max*/,
                        0 /*pos1*/, 1 /*pos2*/,
                        function(n, left) {
                            if (priceSlider) {
                                var value = parseInt(priceSlider.min + n*priceSlider.shag);
                                $('#priceMin').val(value);$("#priceLeftRuler span.value").html(value);
                                $("#priceLeftRuler")[0].style.left = left + "px";
                            }
			},

			function(n, left) {
                            if (priceSlider) {
                                var value = parseInt(priceSlider.min + n*priceSlider.shag);
                                if( left >= sliderWidth - 8) {
                                    value = NOLIMIT_STRING;
                                }

                                $('#priceMax').val(value);$("#priceRightRuler span.value").html(value);
                                $("#priceRightRuler")[0].style.left = left + "px";
                            }
			});


    areaSlider = new niceSlider("areaSlider", 
                        sliderWidth /*width*/,
                        1 /*step*/,
                        0 /*min*/, g_areaSettings.max /*max*/,
                        0 /*pos1*/, 1 /*pos2*/,
                        function(n, left) {
                            if (areaSlider) {
                                var value = parseInt(areaSlider.min + n*areaSlider.shag);
                                $('#areaMin').val(value);
                                $("#areaLeftRuler span.value").html(value);
                                $("#areaLeftRuler")[0].style.left = left + "px";
                            }
			},

			function(n, left) {
                            if (areaSlider) {
                                var value = parseInt(areaSlider.min + n*areaSlider.shag);
                                if( left >= sliderWidth - 8) {                                   
                                    value = NOLIMIT_STRING;
                                }
                                
                                $('#areaMax').val(value);
                                $("#areaRightRuler")[0].style.left = left + "px";
                                $("#areaRightRuler span.value").html(value);

                            }
			});
                        
    changeCurrency();
    changeMeasurmentItems();
    _updateAreaSlider();
    _updatePriceSlider();
});

function _updateAreaSlider()
{
    if (areaSlider) {        
        areaSlider.def(0, g_areaSettings.max);
        var maxValue = parseInt($('#areaMax').val());
        if (!maxValue) {
            maxValue = g_areaSettings.max;
        }
        areaSlider.init($('#areaMin').val(), maxValue);
    }
}


function _updatePriceSlider()
{
    if (priceSlider) {
        priceSlider.def(0, g_currencySettings.max);

        var maxValue = parseInt($('#priceMax').val());
        if (!maxValue) {            
            maxValue = g_currencySettings.max;
        }
        priceSlider.init($('#priceMin').val(), maxValue);
    }
}
