/**
 * @author:spierson
 * 
 */

// Initlialisation des sliders

var budget_min = 100000;
var budget_max = 2000000;
var budget_step = 100000;
var budget_min_selected;
var budget_max_selected;

var piece_min=1;
var piece_max=5;
var nb_piece_min=1;
var nb_piece_max=5;

var activecalc = true;

/**
 * 
 * @param {Object} event
 * @param {Object} ui
 */

 function majHandleBudget(event, ui)
 {
 	bMin = ui.values[0];
 	bMax = ui.values[1];
 	handles = event.target.children;
	
	if(bMin === bMax ){
		if (bMax !== budget_max && bMax !== budget_min) {
			
			$(handles[1]).css("margin");
		}
		
	}
	step = $("div#slider.slider").slider('option','step');
		
	if (step <= ((bMin + step * 4) - bMax)){
			$(handles[2].children).css("margin-top", "22px");
		}
	else{
			$(handles[2].children).css("margin-top", "12px");
	}
		
	if (bMin == bMax){
		$(handles[2].children).css("display", "none");
		
	}
	else {
		$(handles[2].children).css("display", "block");
	}
	
	chaineMin = thousandsSeparatorAndCurrency(bMin);
	chaineMax = thousandsSeparatorAndCurrency(bMax);
		
	if(bMax == budget_max){	
		if ($("#recherche").size() > 0) {
			chaineMax += " et plus";
		}
		else {
			chaineMax += " and more";
		}
	}
	
	if(bMin == budget_max){	
		if ($("#recherche").size() > 0) {
			chaineMin += " et plus";
		}
		else {
			chaineMin += " and more";
		}
	}
	
	$(handles[1].children).html(chaineMin);
	$(handles[2].children).html(chaineMax);	
 }
 /**
  * 
  * @param {Object} event
  * @param {Object} ui
  */
 function manageBudget(event, ui){
 		budgets = $("#slider").slider("option","values");
		bMin = budgets[0];
		bMax = budgets[1];
		$('#budg_min').val(bMin);
		$('#budg_max').val(bMax);
		
		chaineMin = thousandsSeparatorAndCurrency(bMin);
		chaineMax = thousandsSeparatorAndCurrency(bMax);
		
		if(bMax == budget_max) 
		{	
			if ($("#recherche").size() > 0) {
				chaineMax += " et plus";
			}
			else {
				chaineMax += " and more";
			}
		}
		
		if(bMin == budget_max){	
		if ($("#recherche").size() > 0) {
			chaineMin += " et plus";
		}
		else {
			chaineMin += " and more";
		}
	}
	 	$("#slider #handlel").html(chaineMin);
		$("#slider #handler").html(chaineMax);	
}
	 
 function majHandlePiece(event,ui){
	
	borne = ui.values;
	etplus ='';
	etplusMin = '';
	handles = event.target.children;

	if(borne[0] === borne[1]){
		$(handles[2].children).css("display","none");
	}
	else {
		$(handles[2].children).css("display","block");
	}
		
	if(borne[1] == nb_piece_max) 
	{	
		if ($("#recherche").size() > 0) {
			etplus += " et plus";
		}
		else {
			etplus += " and more";
		}
	}
	
	if(borne[0] == nb_piece_max) 
	{	
		if ($("#recherche").size() > 0) {
			etplusMin += " et plus";
		}
		else {
			etplusMin += " and more";
		}
	}
		$("#slider_piece #handlel").html(borne[0] + "p" + etplusMin);
		$("#slider_piece #handler").html(borne[1] + "p" + etplus);
}
	 /**
	  * 
	  * @param {Object} event
	  * @param {Object} ui
	  * 
	  * Mise a jour des hidden pour la recherche sur le nombre de piece
	  */
function managePiece(event, ui){
	
	borne = $("#slider_piece").slider("option","values");
	for (i = nb_piece_min; i <= nb_piece_max; i++) {
		$('#nbPieces' + i).val(0);
	}
   	for (i = borne[0]; i <= borne[1]; i++) {
		$('#nbPieces' + i).val(i);
		}
}

function initSlider(){
	/* ***************** */
	/* Slider des budget */
	/* ***************** */
	
	if ($('#budg_min').val() !== budget_min) {
		budget_min_selected = $('#budg_min').val();
	}
	else {
		budget_min_selected = 100000;
	}
	if ($('#budg_max').val() !== budget_max) {
		budget_max_selected = $('#budg_max').val();
	}
	else {
		budget_max_selected = 2000000;
	}
	
	$('#slider').slider({
		animate: false,
		range: true,
		min: budget_min,
		max: budget_max,
		values: [budget_min_selected, budget_max_selected],
		step: budget_step,
		slide: majHandleBudget,
		change : function(){
			manageBudget();
			ajaxRecherche();
		}
	});
	
	
		
	chaineMin= thousandsSeparatorAndCurrency(budget_min_selected);
	chaineMax = thousandsSeparatorAndCurrency(budget_max_selected);
	handles = $('#slider').children();
	
	if(budget_max_selected == budget_max) 
	{	
		if (budget_min_selected == budget_max_selected) {
			if ($("#recherche").size() > 0) {
				chaineMin += " et plus";
			}
			else {
				chaineMin += " and more";
			}
		}else{
			if ($("#recherche").size() > 0) {
				chaineMax += " et plus";
			}
			else {
				chaineMax += " and more";
			}
		}
	}
	else{
		//$(handles[1]).css("margin-right","0px");
	}
		
	$(handles[1]).html("<div id='handlel'>" + chaineMin + "</div>");
	$(handles[2]).html("<div id='handler'>" + chaineMax + "</div>");	
		
	step = $("#slider").slider('option','step');
	
	if (((parseInt(budget_min_selected) + (step * 4)) - budget_max_selected)>=0) {
		$("#slider #handler").css("margin-top", "22px");
	}
	else {
		$("#slider #handler").css("margin-top", "12px");
	}
	
	if (budget_min_selected == budget_max_selected) {
		$("#slider #handler").css("display", "none");
	}
	else {
		$("#slider #handler").css("display", "block");
	}
	/* ***************** */
	/* Slider des pièces */
	/* ***************** */
    
	
	//recherche de la piece mini selectionne
	for (i = nb_piece_max; i >= nb_piece_min; i--) {
		if ($("#nbPieces" + i).val() > 0) {
			piece_min = i;
		}
	}
	for (i = nb_piece_min; i <= nb_piece_max; i++) {
		if ($("#nbPieces" + i).val() > 0) {
			piece_max = i;
		}
	}
	
	$('#slider_piece').slider({
		animate: false,
		range: true,
		min: nb_piece_min,
		max: nb_piece_max,
		values: [piece_min, piece_max],
		step: 1,
		slide: majHandlePiece,
		change : function()
		{
			managePiece();
			ajaxRecherche();
		}
	});
	
	handles = $('#slider_piece').children();
	
	$(handles[1]).html("<div id='handlel'></div>");
	$(handles[2]).html("<div id='handler'></div>");	
	etplusMax = '';
	etplusMin ='';
	if(nb_piece_max == piece_max) 
		{	
			if(piece_min === piece_max){
				if ($("#recherche").size() > 0) {
					etplusMin += " et plus";
				}
				else {
					etplusMin += " and more";
				}
			}else{
				if ($("#recherche").size() > 0) {
					etplusMax += " et plus";
				}
				else {
					etplusMax += " and more";
				}
			}
		}
	if(piece_min === piece_max){
		$("#slider_piece #handler").css('display','none');
	}
	$("#slider_piece #handlel").html(piece_min + "p" + etplusMin);
	$("#slider_piece #handler").html(piece_max + "p" + etplusMax);

	
}
	 /**
	  * 
	  * @param {Object} event
	  * @param {Object} ui
	  * 
	  * Mise à jour des hidden pour la recherche du budget
	  */
	
	
	
function ajaxRecherche()
{
	
		if ($('#recherche').size()) {
			params = $("#recherche").serialize();
		}
		if ($('#recherche_en').size()) {
			params = $("#recherche_en").serialize();
		}
		
		url=$('#UrlAjaxRecherche').val();
		
		$.ajax({
		    	url:url ,
				type: 'POST',
                data: params,
				success: function(transport) {
						
						//var iNb = parseInt(transport.responseText, 10);
						
						var iNb = transport;
						
					    if (iNb == 0)
					    {
					    	
					    	$('#p_resultat_recherche').hide();
					    	$('#nb_resultat_recherche').html('');
					    	$('#nb_resultat_recherche_pluriel').html('');
					    	$('#noResult').show();
					    	$('#rechercher').hide();
					    }
					    else
					    {
					    	$('#p_resultat_recherche').show();
					    	$('#nb_resultat_recherche').html(iNb);
					    	if (iNb > 1) {
								$('#nb_resultat_recherche_pluriel').html('s');
							}
							else {
								$('#nb_resultat_recherche_pluriel').html('');
							}
					    	$('#noResult').hide();
					    	$('#rechercher').show();
					    }
					  }
				});
		
		
}

function specialOnLoad(){
	//urlSearch();
	
	var init_ville1 = $('#init_ville1').val();
	var init_ville2 = $('#init_ville2').val();
	var init_ville_liste = $('#sel_region').val();
	
	if (init_ville1.length > 1 || init_ville2.length > 1) {
		updateVille();
		var i = 0;
		
		if (init_ville1.length !== 0) {
							
			$('#sel_ville1 option').each(function(){
				if ($(this).val() == init_ville1) {
					$(this).attr('selected','selected')
	
				}
				
			});
		}
	
		if (init_ville2.length !== 0) {
			
			$("#sel_ville2 option").each(function(){
			
				if ($(this).val() == init_ville2) {
					$(this).attr("selected", "selected");
				}
			});
		}
		
	}

	if(init_ville_liste.length !== 0)
	{
		updateVille();
	}
		ajaxRecherche();
	
}

function updateVille()
{

	var id_region = $('#sel_region option:selected');
	var region = id_region.val();
	var tabCity = [];
	
	if (region.substring(0,1) === 'r')
	{
		//Choix d'une région
		tabCity = tabCityByRegion[region];	
    }
    else
    	if(region==='')
    	{
   			//Choix d'un département
    		tabCity = tabAllCity;
    	}
    	else
    	{
    		tabCity = tabCityByDepartment[region];
    	}
		
		$("#sel_ville1").find("option").remove();
		$("#sel_ville2").find("option").remove();
		
		cityArray = [];
		cityArray[0]= "<option></option>";
		
		cityArray2 = [];
		cityArray2[0]= "<option></option>";
		
		$.each(tabCity,function(i, valeurs){
			y = i + 1;
			if($('#init_ville1').val()=== valeurs[0] + "," + valeurs[1]){
				cityArray[y] = "<option selected='' value='" + valeurs[0] + "," + valeurs[1] + "'>" + valeurs[1] + " (" + valeurs[0] + ")</option>";
			}else{
				cityArray[y] = "<option value='" + valeurs[0] + "," + valeurs[1] + "'>" + valeurs[1] + " (" + valeurs[0] + ")</option>";
			}
			if($('#init_ville2').val()=== valeurs[0] + "," + valeurs[1]){
				cityArray2[y] = "<option selected='' value='" + valeurs[0] + "," + valeurs[1] + "'>" + valeurs[1] + " (" + valeurs[0] + ")</option>";
			}else{
				cityArray2[y] = "<option value='" + valeurs[0] + "," + valeurs[1] + "'>" + valeurs[1] + " (" + valeurs[0] + ")</option>";
			}
			
		});
		
		$("#sel_ville1").append(cityArray.join(''));
		$("#sel_ville2").append(cityArray2.join(''));
				
}

function simuleCheckBox(id)
{

	if(id=='neuf' || id=='ancien')
	{
		if($("#" + id).val() === '')
		{
			$('#img'+id).css('background-position','-14px 0px')	;
			$("#" + id).val(id);
		}
		else
		{
			$("#" + id).val('');
			$('#img'+id).css('background-position','0px 0px');
		}
	}
	ajaxRecherche();
}

function calculetteScale()
{
	activecalc = false;
	$("#calculetteScaleId").effect("size", {
		to: {
			width: 35,
			height: 40
		}
	},400
	,function(){
		
		$("#calculetteScaleId").effect("size", {
		to: {
			width: 29,
			height: 33
		}
	},400,function(){
		activecalc = true;		
	});
		
	});
}

function thousandsSeparatorAndCurrency(str){
		var regex = /(-?[0-9]+)([0-9]{3})/;
		str += '';
		while (regex.test(str)) {
			str = str.replace(regex, '$1 $2');
		}
		return str + "&euro;";
	}

$(document).ready(function() 
{
	updateVille();
	initSlider();
	specialOnLoad();
	$("#sel_region").bind("change",function(){
		
		updateVille();
		ajaxRecherche();
	});
	
	$("#sel_ville1, #sel_ville2, #type_log, #type_commercialisation, #typeLogement").bind("change", function(){
		ajaxRecherche();
	});
	
	$("#calculetteScaleId").mouseenter(function(){
		if (activecalc) {
			calculetteScale();
		}
	});
	
		
			
});
