function isNumber(str) {
	var x = parseInt(str);
	return ( (typeof x === typeof 1) && (null !== x) && isFinite(x) );
}
			

var grdNb = function (nombre) {
	if (!isNumber(nombre))
		return nombre;
	
	var tNb = (nombre + "").toArray();
	var index = tNb.length % 3;
	nombre = "";
	for (var i = 0; i < tNb.length ; i++){
		if (i != 0 && (i == index || i % 3 == index)) {
			nombre += " ";
		}
		nombre += tNb[i];
	}
	return nombre;
};

String.prototype.format = function() {
    var formatted = this;
    for(var i = 0; i < arguments.length; i++) {
	    var str = arguments[i];
	    if (grdNb)
		   str = grdNb(str);
        formatted = formatted.replace("{" + i + "}", str);
    }
    return formatted;
};
String.prototype.toArray = function () {
	return this.match(/./g);
};

var minBudget;
var maxBudget;

var minPrixVen;
var minPrixLoc;
var maxPrixVen;
var maxPrixLoc;
var pasPrixVen;
var pasPrixLoc;
var minSurf;
var maxSurf;
var pasSurf;
var minTerr;
var maxTerr;
var pasTerr;

var initSlider = function (reInitValeur) {
	var isVente = document.getElementById('VENTE').checked;
	
	// Initialisation du slider BUDGET
	minBudget = isVente ? minPrixVen : minPrixLoc;
	maxBudget = isVente ? maxPrixVen : maxPrixLoc;
	stepRef = isVente ? pasPrixVen : pasPrixLoc;
	if (reInitValeur) {
		$("#budgetMin").val(minBudget);
		$("#budgetMax").val(maxBudget);
		$('#sliderBudget').slider( "destroy" );
	}
	$('#sliderBudget').slider({
		range: true,
		min : minBudget,
		max : maxBudget,
		values: [$("#budgetMin").val(), $("#budgetMax").val()],
		step: stepRef,
		slide: function( event, ui ) {
			$( "#sliderBudgetDisplay" ).val(
				"{0} à {1} euros".format(
						ui.values[ 0 ],
						ui.values[ 1 ] == maxBudget ? "max" : ui.values[ 1 ]));

			$("#budgetMin").val(ui.values[ 0 ]);
			$("#budgetMax").val(ui.values[ 1 ]);
		}
	});

	$( "#sliderBudgetDisplay" ).val(
			"{0} à {1} euros".format(
					$( "#sliderBudget" ).slider( "values", 0 ),
					$( "#sliderBudget" ).slider( "values", 1 ) == maxBudget ? 
							"max" : $( "#sliderBudget" ).slider( "values", 1 )));

	$("#infoAgce").tooltip({
		track: true,
		delay: 0,
		showURL: false,
		fixPNG: false,
		showBody: " - ",
		top: -15,
		left: 5,
		positionLeft: true,
		fade: 250
	});
};

var construitSliders = function (
		p_minPrixVen, p_minPrixLoc, p_maxPrixVen, p_maxPrixLoc, p_pasPrixVen, p_pasPrixLoc, 
		p_minSurf, p_maxSurf, p_pasSurf, p_minTerr, p_maxTerr, p_pasTerr) {
	
	$(function(){
		minPrixVen = new Number(p_minPrixVen);
		minPrixLoc = new Number(p_minPrixLoc);
		maxPrixVen = new Number(p_maxPrixVen);
		maxPrixLoc = new Number(p_maxPrixLoc);
		pasPrixVen = new Number(p_pasPrixVen);
		pasPrixLoc = new Number(p_pasPrixLoc);
		minSurf = new Number(p_minSurf);
		maxSurf = new Number(p_maxSurf);
		pasSurf = new Number(p_pasSurf);
		minTerr = new Number(p_minTerr);
		maxTerr = new Number(p_maxTerr);
		pasTerr = new Number(p_pasTerr);
		
		// Initialisation du slider SURFACE
		$('#sliderSurface').slider({
			range: true,
			min : minSurf,
			max : maxSurf,
			values: [$("#surfaceMin").val(), $("#surfaceMax").val()],
			step: pasSurf,
			slide: function( event, ui ) {
				$( "#sliderSurfaceDisplay" ).val(
					"{0} à {1} m²".format(
							ui.values[ 0 ],
							ui.values[ 1 ] == maxSurf ? "max" : ui.values[ 1 ]));
						
				$("#surfaceMin").val(ui.values[ 0 ]);
				$("#surfaceMax").val(ui.values[ 1 ]);
			}
		});
		$( "#sliderSurfaceDisplay" ).val( 
				"{0} à {1} m²".format(
						$( "#sliderSurface" ).slider( "values", 0 ),
						$( "#sliderSurface" ).slider( "values", 1 ) == maxSurf ? 
								"max" : $( "#sliderSurface" ).slider( "values", 1 )));

		// Initialisation du slider TERRAIN
		$('#sliderTerrain').slider({
			range: true,
			min : minTerr,
			max : maxTerr,
			values: [$("#terrMin").val(), $("#terrMax").val()],
			step: pasTerr,
			slide: function( event, ui ) {
				$( "#sliderTerrainDisplay" ).val(
					"{0} à {1} m²".format(
							ui.values[ 0 ],
							ui.values[ 1 ] == maxTerr ? "max" : ui.values[ 1 ]));

				$("#terrMin").val(ui.values[ 0 ]);
				$("#terrMax").val(ui.values[ 1 ]);
			}
		});
		$( "#sliderTerrainDisplay" ).val( 
				"{0} à {1} m²".format(
						$( "#sliderTerrain" ).slider( "values", 0 ),
						$( "#sliderTerrain" ).slider( "values", 1 ) == maxTerr ? 
								"max" : $( "#sliderTerrain" ).slider( "values", 1 )));

		// Initialisation du slider PROXIMITE
		$('#sliderProxi').slider({
			range: true,
			min : 0,
			max :50000,
			values: [$("#proxiMin").val(), $("#proxiMax").val()],
			step: 100,
			slide: function( event, ui ) {
				$( "#sliderProxiDisplay" ).val(
					"{0} à {1} m".format(
							ui.values[ 0 ],
							ui.values[ 1 ] == 50000 ? "max" : ui.values[ 1 ]));

				$("#proxiMin").val(ui.values[ 0 ]);
				$("#proxiMax").val(ui.values[ 1 ]);
			}
		});
		$( "#sliderProxiDisplay" ).val( 
				"{0} à {1} m".format(
						$( "#sliderProxi" ).slider( "values", 0 ),
						$( "#sliderProxi" ).slider( "values", 1 ) == 50000 ? 
								"max" : $( "#sliderProxi" ).slider( "values", 1 )));
		
		initSlider(true);
	});
};
