//variable globale pour temporiser le scale de la calculette.
var globalScale=0;

function specialOnLoad()
{
	urlSearch();
	
	var init_ville1 = document.getElementById('init_ville1').value;
	var init_ville2 = document.getElementById('init_ville2').value;
	var init_ville3 = document.getElementById('init_ville3').value;
	var init_ville_liste = document.getElementById('sel_region').value;

	if (init_ville1.length != 0 || init_ville2.length != 0 || init_ville3.length != 0)
	{
		updateVille();
		var i=0;
		
		if (init_ville1.length != 0)
		{
			var options_length1 = document.getElementById('sel_ville1').options.length;
			for(i=0; i< options_length1; i++)
			{
				if (document.getElementById('sel_ville1').options[i].value == init_ville1)
				{
					document.getElementById('sel_ville1').selectedIndex = i;
				} 
			}
		}
		
		if (init_ville2.length != 0)
		{
			var options_length2 = document.getElementById('sel_ville2').options.length;
			for(i=0; i< options_length2; i++)
			{
				if (document.getElementById('sel_ville2').options[i].value == init_ville2)
				{
					document.getElementById('sel_ville2').selectedIndex = i;
				} 
			}
		}
		/*
		if (init_ville3.length != 0)
		{
			var options_length3 = document.getElementById('sel_ville3').options.length;
			for(i=0; i< options_length3; i++)
			{
				if (document.getElementById('sel_ville3').options[i].value == init_ville3)
				{
					document.getElementById('sel_ville3').selectedIndex = i;
				} 
			}
		}
		*/
	}

	if(init_ville_liste.length != 0)
	{
		updateVille();
	}
	ajaxRecherche();
	//toFr('budg_min', 'budg_min_fr');
	//toFr('budg_max', 'budg_max_fr');
}

function cleanName(sName) {
	
	sName = sName.replace(/^\s+/g,'').replace(/\s+$/g,'');
	sName = sName.replace(/[()]/g, '');
	sName = sName.replace(/[ËÊÈÉéèëê]/g, 'e');
	sName = sName.replace(/[ÄÂÀÁäâàá]/g, 'a');
	sName = sName.replace(/[ÖÔÒÓöôòó]/g, 'o');
	sName = sName.replace(/[ÏÎÌÍïîìí]/g, 'i');
	sName = sName.replace(/[ÜÛÙÚüûùúµ]/g, 'u');
	sName = sName.replace(/[ñ]/g, 'n');
	sName = sName.replace(/[ç]/g, 'c');
	sName = sName.replace(/[^a-zA-Z0-9]/g, '_');
	sName = sName.toLowerCase();
	sName = encodeURI(sName);
	
	return sName;
	
}

function specialOnLoadAlerte()
{
	//toFr('budg_min', 'budg_min_fr');
	//toFr('budg_max', 'budg_max_fr');
}


function updateVille()
{
	var id_region = document.getElementById('sel_region').selectedIndex;
	var region = document.getElementById('sel_region').options[id_region].value;
	var tabCity = new Array();
	
	if (region.substring(0,1) == 'r')
	{
		//Choix d'une région
		//alert("Choix = région");
		tabCity = tabCityByRegion[region];	
	
    }
    else
    	if(region=='')
    	{
    		//	Choix d'un département
    		//	alert("Choix = département");
    		tabCity = tabAllCity;
    	}
    	else
    	{
    		tabCity = tabCityByDepartment[region];
    	}	
	
	
    var indexOption = 0;
    document.getElementById('sel_ville1').options.length = 0;
    document.getElementById('sel_ville2').options.length = 0;
//    document.getElementById('sel_ville3').options.length = 0;
	var opt1 = new Option('', '');
	var opt2 = new Option('', '');
//	var opt3 = new Option('', '');
	document.getElementById('sel_ville1').options[indexOption] = opt1
	document.getElementById('sel_ville2').options[indexOption] = opt2;
//	document.getElementById('sel_ville3').options[indexOption] = opt3;
	indexOption++;
	//alert(tabCity);
   // for (key in tabCity)
	//{
		//alert(key);
		for(i=0;i<tabCity.length;i++)
		
		{
			//alert(tabCity[key]+','+i);
		//alert("Ville : " + tabCity[key] + " (" + key + ")");
		//Prototype enrichit les objets array. Il faut filtrer les contenus à injecter
		/*if (tabCity[key].indexOf('function', 0) == 0)
		{
			
		
		}*/
		if (!parseInt(tabCity[i][0], 10))
		{
		
		}
		else
		{
			var opt1 = new Option(tabCity[i][1] + " (" + tabCity[i][0] + ")", tabCity[i][0]+","+tabCity[i][1]);
			var opt2 = new Option(tabCity[i][1] + " (" + tabCity[i][0] + ")", tabCity[i][0]+","+tabCity[i][1]);
//			var opt3 = new Option(tabCity[i][1] + " (" + tabCity[i][0] + ")", tabCity[i][0]+","+tabCity[i][1]);
			//alert(tabCity[key] + "(" + key + ")");
			document.getElementById('sel_ville1').options[indexOption] = opt1;
			document.getElementById('sel_ville2').options[indexOption] = opt2;
//			document.getElementById('sel_ville3').options[indexOption] = opt3;
			indexOption++;
		}
		}
	//}
}

function toFr(idChamp, idChampFr)
{
	var val = document.getElementById(idChamp).value;
	var noSpaceRegExp = new RegExp("[ \f\n\r\t\v]","gi");
	val = val.replace(noSpaceRegExp, "");
	if (!isNaN(val))
	{
		var valFr = Math.round(val * 6.55957);
		document.getElementById(idChampFr).innerHTML = "&nbsp;" + formatNumber(valFr) + " F";
	}
}

function toEn(idChamp, idChampFr)
{
	var val = document.getElementById(idChamp).value;
	var noSpaceRegExp = new RegExp("[ \f\n\r\t\v]","gi");
	val = val.replace(noSpaceRegExp, "");
	if (!isNaN(val))
	{
		var valFr = Math.round(val * 6.55957);
		document.getElementById(idChampFr).innerHTML = "&nbsp;FF " + formatNumber(valFr);
	}
}


function formatNumber(value)
{
	value = String(value) + '';
	
	var longueur = value.length;
	var car = '';
	var i = 0;
	var out = '';
	
	for (i=0; i < longueur; i++)
	{
		car = String(value.substring(longueur-i-1, longueur-i));
		if(i%3 == 0)
		{
		   out = ' ' + out;
		}
		out = car + '' + out;
	}
	
	return out;
}

// Build the falke url for the search
function urlSearch() {
	
	try {
		
		if ((document.getElementById('recherche')) || (document.getElementById('recherche_en'))) {
			
			var sId = 'recherche';
			
			if (document.getElementById('recherche_en')) {
				sId = 'recherche_en';
			}
			
			Event.observe(sId, 'submit', function(oEvent) {
				
				if (oEvent) {
					Event.stop(oEvent);
				}
				
				var sUrl = '/immobilier/programmes';
				
				var oLogement = document.getElementById('type_log');
				if (oLogement.selectedIndex > 0) {
					sUrl += '-' + (oLogement.options[oLogement.selectedIndex].value);
				}
				
				var oDepartement = document.getElementById('sel_region');
				if ((oDepartement.options.length > 0) && (oDepartement.options[oDepartement.selectedIndex].value != '')) {
					var sDep = oDepartement.options[oDepartement.selectedIndex].text;
					if (sDep.substring(0, 1) == '-') {
						sDep = sDep.substring(4, sDep.length);
					}
					sUrl += '-' + cleanName(sDep);
				}
				
				var oVille = document.getElementById('sel_ville1');
				if ((oVille.options.length > 0) && (oVille.options[oVille.selectedIndex].value != '')) {
					sUrl += '-' + cleanName(oVille.options[oVille.selectedIndex].text);
				}
				
				var sLang = document.URL.substring((document.URL.length - 8), document.URL.length);
				if ((sLang != '_fr.html') || (sLang != '_en.html')) {
					if (sId == 'recherche') {
						sLang = '_fr.html';
					}
					else {
						sLang = '_en.html';
					}
				}
				sUrl += sLang;
				
				document.getElementById(sId).action = sUrl;
				document.getElementById(sId).submit();
				
			});
		}
	}
	catch (oError) {
		
	}
}

var sliderLeftValue1 = '44px';
var sliderLeftValue2 = '33px';
var sliderFixDecalagePadding3 = '0 0 0 8px';
var sliderFixDecalagePadding2 = '10px 0 0 0px';
var sliderFixDecalagePadding1 = '10px 0 0 0px';

function manageBudgetHandle(values, budget_max, budget_pas) {
	$('handle1value').innerHTML=formatPrice(values[0]);//values[0]+'&#8364';
	$('handle2value').innerHTML=formatPrice(values[1]);//values[1]+'&#8364';
	// Pour éviter les problèmes de surcharge des libellés quand les curseurs sont proches
	if ((values[0] == values[1]) || (values[1] != budget_max))
	{
		$('handle2value_details').hide();
	}
	if (values[1] == budget_max)
	{
		$('handle2value_details').show();
	}
	if (values[0] == values[1]) {
		$('handle2value').innerHTML = '&nbsp;';
		$('handle2value_details').setStyle({left:sliderLeftValue2,padding:'0 0 0 0'});
	}
	else if ((values[0] + budget_pas) == values[1]) {
		$('handle2value').setStyle({padding:sliderFixDecalagePadding1});
		$('handle2value_details').setStyle({left:sliderLeftValue1,padding:sliderFixDecalagePadding1});
	}
	else if ((values[0] + (budget_pas * 2)) == values[1]) {
		$('handle2value').setStyle({padding:sliderFixDecalagePadding2});
		$('handle2value_details').setStyle({left:sliderLeftValue1,padding:sliderFixDecalagePadding2});
	}
	else if ((values[0] + (budget_pas * 3)) == values[1]) {
		$('handle2value').setStyle({padding:sliderFixDecalagePadding3});
		$('handle2value_details').setStyle({left:sliderLeftValue1,padding:sliderFixDecalagePadding3});
	}
	else {
		$('handle2value').setStyle({padding:'0 0 0 0'});
		$('handle2value_details').setStyle({left:sliderLeftValue1,padding:'0 0 0 0'});
	}
}

function initSlider()
{
	//slider des budgets
	var budget_min=100000;
	var budget_max=2000000;
	var budget_pas=100000;
	if($('budg_min'))
		var budget_min_selected=$('budg_min').value;
	else
		var budget_min_selected=100000;
	if($('budg_max'))
		var budget_max_selected=$('budg_max').value;
	else
		var budget_max_selected=2000000;
	
	arrValues=new Array();
	  	for(i=budget_min;i<=budget_max;i+=budget_pas)
		  arrValues.push(i);

	    var slider = $('slider');

	    new Control.Slider($$('#slider .handle'), slider, {
	      range: $R(budget_min, budget_max),
	      sliderValue: [budget_min_selected, budget_max_selected],
	      values: arrValues,
	      restricted: true,
	      spans: ["square_slider_span"],
	      onSlide: function(values) {
	    	manageBudgetHandle(values, budget_max, budget_pas);
	    		$('square_slider_span').setStyle({width:($('square_slider_span').getWidth()+12)+'px'});
	      },
	      onChange: function(values) {
	    	  manageBudgetHandle(values, budget_max, budget_pas);
				$('budg_min').value=values[0];
				$('budg_max').value=values[1];
				ajaxRecherche();
	      }
	    });
	    
	    // Pour aligner au chargement de la page
	    manageBudgetHandle([parseInt(budget_min_selected, 10), parseInt(budget_max_selected, 10)], budget_max, budget_pas);
	    
	//slider des pièces
    var piece_min=1;
    var piece_max=5;
    var nb_piece_min=1;
    var nb_piece_max=5;
    
    //recherche de la piece mini selectionne
    for(i=nb_piece_max;i>=nb_piece_min;i--)
    {
    	if($F('nbPieces'+i)>0)
    		piece_min=i;
    }
    for(i=nb_piece_min;i<=nb_piece_max;i++)
    {
    	if($F('nbPieces'+i)>0)
    		piece_max=i;
    }
    
	  arrValues_piece=new Array();
	  	for(i=nb_piece_min;i<=nb_piece_max;i++)
		  arrValues_piece.push(i);
	
	    var slider_piece = $('slider_piece');
	
	    new Control.Slider($$('#slider_piece .handle'), slider_piece, {
	      range: $R(nb_piece_min, nb_piece_max),
	      sliderValue: [piece_min, piece_max],
	      values: arrValues_piece,
	      restricted: true,
	      spans: ["square_slider_span_piece"],
	      onSlide: function(values) {	    	
	        $('handle1value_piece').innerHTML=values[0];
	        $('handle2value_piece').innerHTML=values[1];
	        $('handle1_p').innerHTML=$('handle2_p').innerHTML='p';
	        if(values[0]==values[1])
	        {
	        	$('handle2value_piece').innerHTML='&nbsp;';
	        	$('handle2_p').innerHTML='&nbsp;';
	        }
	          if(values[0]==nb_piece_max || values[1]==nb_piece_max)
	        	  $('handle2value_piece_details').show();
	          else
	        	  $('handle2value_piece_details').hide();		 
	    	$('square_slider_span_piece').setStyle({width:($('square_slider_span_piece').getWidth()+12)+'px'});
	          
	      },
	      onChange: function(values) { 
	    	  for(i=nb_piece_min;i<=nb_piece_max;i++)
	    		  $('nbPieces'+i).value=0;
	    	  for(i=values[0];i<=values[1];i++)
	    		  $('nbPieces'+i).value=i;
	    	  
	          $('handle1value_piece').innerHTML=values[0];
	          $('handle2value_piece').innerHTML=values[1];
	          $('handle1_p').innerHTML=$('handle2_p').innerHTML='p';
	        if(values[0]==values[1])
	        {
	        	$('handle2value_piece').innerHTML='&nbsp;';
	        	$('handle2_p').innerHTML='&nbsp;';
	        }
	          $('nbPieces'+values[0]).value=values[0];
	          $('nbPieces'+values[1]).value=values[1];	         
	          ajaxRecherche();	          
	      }	      
	    });	  
		    
	    //on initialise le slider avec la bonen taille
	    $('square_slider_span_piece').setStyle({width:($('square_slider_span_piece').getWidth()+12)+'px'});
	    $('square_slider_span').setStyle({width:($('square_slider_span').getWidth()+12)+'px'});
	    if(piece_min==nb_piece_max || piece_max==nb_piece_max)
      	  $('handle2value_piece_details').show();
        else
      	  $('handle2value_piece_details').hide();
	    if(piece_min==piece_max)
	    {
        	$('handle2value_piece').innerHTML='&nbsp;';
	    	$('handle2_p').innerHTML='&nbsp;';
	    }
}

/**
 * Gère les milliers et met un euro
 */
function formatPrice(iPrice) {
	iPrice = parseInt(iPrice, 10);
	var sPrice = iPrice.nombreFormate(0, ',', ' ');
	return sPrice + '&#8364';
}

/*
* +-------------------------------------+
* Number.prototype.nombreFormate
* +-------------------------------------+
* Params (facultatifs):
* - Int decimales: nombre de decimales (exemple: 2)
* - String signe: le signe precedent les decimales (exemple: "," ou ".")
* - String separateurMilliers: comme son nom l'indique
* Returns:
* - String chaine formatee
*/
Number.prototype.nombreFormate = function (decimales, signe, separateurMilliers) {
	var _sNombre = String(this), i, _sRetour = "", _sDecimales = "";
	if (decimales == undefined) decimales = 2;
	if (signe == undefined) signe = '.';
	if (separateurMilliers == undefined) separateurMilliers = ' ';
	
	function separeMilliers (sNombre) {
		var sRetour = "";
		while (sNombre.length % 3 != 0) {
			sNombre = "0"+sNombre;
		}
		for (i = 0; i < sNombre.length; i += 3) {
			if (i == sNombre.length-1) separateurMilliers = '';
				sRetour += sNombre.substr(i, 3)+separateurMilliers;
		}
		while (sRetour.substr(0, 1) == "0") {
			sRetour = sRetour.substr(1);
		}
		return sRetour.substr(0, sRetour.lastIndexOf(separateurMilliers));
	}
	
	if (_sNombre.indexOf('.') == -1) {
		/*
		for (i = 0; i < decimales; i++) {
			_sDecimales += "0";
		}*/
		_sRetour = separeMilliers(_sNombre)/*+signe+_sDecimales*/;
	}
	else {
		var sDecimalesTmp = (_sNombre.substr(_sNombre.indexOf('.')+1));
		if (sDecimalesTmp.length > decimales) {
			var nDecimalesManquantes = sDecimalesTmp.length - decimales;
			var nDiv = 1;
			for (i = 0; i < nDecimalesManquantes; i++) {
				nDiv *= 10;
			}
			_sDecimales = Math.round(Number(sDecimalesTmp) / nDiv);
		}
		_sRetour = separeMilliers(_sNombre.substr(0, _sNombre.indexOf('.')))+String(signe)+_sDecimales;
	}
	
	return _sRetour;
	
};


function ajaxRecherche()
{
	var params;
	if($('recherche'))
		params=$('recherche').serialize(true);
	if($('recherche_en'))
		params=$('recherche_en').serialize(true);
	url=$('UrlAjaxRecherche').value;
	new Ajax.Request(url, {
		  method: 'post',
		  parameters: params,
		  onSuccess: function(transport) {
			var iNb = parseInt(transport.responseText, 10);
		    if (iNb==0)
		    {
		    	$('p_resultat_recherche').hide();
		    	$('nb_resultat_recherche').innerHTML='';
		    	$('nb_resultat_recherche_pluriel').innerHTML='';
		    	$('noResult').show();
		    	$('rechercher').hide();
		    }
		    else
		    {
		    	$('p_resultat_recherche').show();
		    	$('nb_resultat_recherche').innerHTML=iNb;
		    	if(iNb>1)
		    		$('nb_resultat_recherche_pluriel').innerHTML='s';
		    	else
		    		$('nb_resultat_recherche_pluriel').innerHTML='';
		    	$('noResult').hide();
		    	$('rechercher').show();
		    }
		  }
		});	
}

function calculetteScale()
{
	if(globalScale==0)
	{
		globalScale=1;
		new Effect.Scale($('calculetteScaleId'), 120, {'duration':0.3});
		setTimeout(function(){new Effect.Scale($('calculetteScaleId'), 83, {'duration':0.3});},350);
		setTimeout(function(){globalScale=0;},800);
		
	}
	return false;	
}


function simuleCheckBox(id)
{
	if(id=='neuf' || id=='ancien')
	{
		if($(id).value=='')
		{
			$('img'+id).setStyle({'background-position':'-14px 0px'})	;
			$(id).value=id;
		}
		else
		{
			$(id).value='';
			$('img'+id).setStyle({'background-position':'0px 0px'});
		}
	}
	ajaxRecherche();
}


