
var carte='France';
var insee='';
var dep='';
distance=0;
var ville='';
var nom_dep='';
var insee_ori='';
var lb_bloque_maj_carte = false;

var _lastKeyCode=null;

// Handler pour le keydown du document
var onKeyDownHandler=function(event){
  // acc?evenement compatible IE/Firefox
  if(!event&&window.event) {
    event=window.event;
  }
  // on enregistre la touche ayant d?ench?'?nement
  if(event) {
    _lastKeyCode=event.keyCode;		
  }
}

document.onkeydown=onKeyDownHandler;
/*
function lookupCombo(id_combo,maxitem,id_td) {
  var ls_originalClassName = "altnature";
  var ls_hoverClassName = "naturehover";
	var itemToFocus = 0;   
  var obj = "";
	var nextObj = "";
	var editvalue = $(id_combo).value;
	var keyLeft = 37, keyUp = 38, keyRight = 39, keyDown = 40, keyEnter = 13; 
	if ((_lastKeyCode == keyUp)||(_lastKeyCode == keyDown)||(_lastKeyCode == keyEnter)) { 
	   for (var le_i=0;le_i<maxitem;le_i++) {
		   obj = $(id_td+"_"+le_i);
			 if (obj) {			   			     			 				 
				 if (_lastKeyCode == keyUp) { itemToFocus = le_i-1; }
				 else if (_lastKeyCode == keyDown) { itemToFocus = le_i+1; }			   				   
  			 if (itemToFocus<maxitem) { 
  			 	 if (obj.className == ls_hoverClassName) {
  						 if (_lastKeyCode == keyEnter) { $(id_combo).value = obj.innerHTML; }
							 nextObj = $(id_td+"_"+(itemToFocus));
  			   }
  			 }
  			 else { nextObj = $(id_td+"_0"); } 
  	 		 if (nextObj) {
  			 		//nextObj.focus();
  					nextObj.className = ls_hoverClassName;
  					obj.className = ls_originalClassName;
  					break;
  			 }
			 } 
		 }
	}
	else {	
  	for (var le_i=0;le_i<maxitem;le_i++) {		  
  		 if (editvalue!="") {
  		   obj = $(id_td+"_"+le_i);
  			 if (obj) {
    			 if (((obj.innerHTML).substr(0,editvalue.length))!=editvalue) {
      		   Element.hide(id_combo+'_'+le_i);
      		 }
    			 else {
    			   Element.show(id_combo+'_'+le_i);
    			 }
  			 }
  		 }
  		 else { Element.show(id_combo+'_'+le_i); }	
  	}
	}
}
*/
function majDep(val_dep, val_nom_dep){
//alert("debut majDep");


	nom_dep=val_nom_dep;
	dep= val_dep;
	var myAjax = new Ajax.Updater('box_villes', 'get_villes.php', {method: 'GET', parameters: "ref_carte="+carte+"&dep="+dep+"&"+sid,evalScripts:true,onComplete : function () {if (insee_ori != '') {initVille(insee_ori);}}});
	
	if ((dep != '')&& !lb_bloque_maj_carte) { majCarte(carte, dep, '', '');}
	if (!lb_bloque_maj_carte) {
		insee='';
	  ville='';	
	}
	Element.hide("box_distance");
	majInfo();
//alert("fin majDep");	
}


function majCarte(val_carte, val_dep, val_insee, val_distance){
	carte = val_carte
	distance = val_distance;
	param = sid+'&'+"ref_carte="+val_carte;
	if(val_insee != '') param += '&ps_insee='+insee;
	if(val_dep != '') param += '&ps_departement='+dep;	
	if((val_insee=='') && (val_dep=='')) majDep('','');
	param += '&ps_distance='+val_distance;
	$("box_carte").innerHTML="<div style=\"width:200px;height:200px;\" class=carte_chargement><br><br><br><br><br><br><br>Chargement</div>";
	Effect.Appear("box_carte");
	var myAjax = new Ajax.Updater('box_carte', 'get_gene_carte.php', {method: 'GET', parameters: param,evalScripts:true});
	majInfo();
	majHidden();
}


function majVille(val_insee, val_ville){
//alert('debut majVille');

	ville=val_ville;
	insee=val_insee;
	if (insee == "") {
		majCarte(carte, dep, '', '');
		Element.hide("box_distance");
	}
	else {
		majCarte(carte, '', insee, '');
		if (carte == "France"){
			Element.show("box_distance");
			razDistance();
		}
	}
//alert('fin majVille');	
}


function initVille(val_insee){
//alert('debut initVille');
	b=document.getElementById("villes");
 		var len = b.options.length; 
		for (i = 0; i < len; i++) {
		if (b.options[i].value == val_insee) { idx = i;}
		} 
  b.selectedIndex=idx;
//alert('fin initVille');
insee_ori='';
}


function majInfo(){
	var info_data=false;
	$("box_info").innerHTML ="<font>";
	if((dep != '')&&(insee=='')) { $("box_info").innerHTML +="Dans tout le d&eacute;partement :<br> "+nom_dep+"<br>";info_data=true;}
	if(insee != '') { 	$("box_info").innerHTML +="dans la ville de "+ville+"<br>";info_data=true;}
	if(distance != '') { 	$("box_info").innerHTML +="et dans un rayon de "+distance+" km autour de "+ville+"<br>";info_data=true;}
	$("box_info").innerHTML +="</font>";
	if (info_data) {
	//Effect.Appear("box_info");
	Effect.Pulsate("box_info");
	//Effect.Appear("box_info");
	}
	else {
	  $("box_info").innerHTML ="<font class=\"valeurcritererch\">Aucune recherche.</font>";
	}
}

// Met à jour les Hidden
function majHidden() {
	$("izone").value=carte;
	$("idep").value=dep;
	$("iville").value=insee;
	$("idistance").value=distance;
	$("inom_ville").value=ville;
	$("inom_dep").value=nom_dep;
	//alert("majHidden : "+$("izone").value+" - "+$("idep").value+" - "+$("iville").value+" - "+$("idistance").value);
}

// Récupère les Hidden
function getHidden() {
	nom_dep=$("inom_dep").value;
	ville=$("inom_ville").value;
	carte = $("izone").value;
	dep = $("idep").value;
	insee = $("iville").value;
	distance = $("idistance").value;
	insee_ori = $("iville").value;
	//alert("getHidden : "+$("izone").value+" - "+$("idep").value+" - "+$("iville").value+" - "+$("idistance").value+" - "+$("inom_ville").value+" - "+$("inom_dep").value);
}



function rechargeCarte() {
	lb_bloque_maj_carte=true;
	getHidden();
	addDistance();

	majCarte(carte,dep,insee,distance);
	majDep(dep,nom_dep);
	slide_distance.setValue(distance);
	if (insee!='') { Element.show("box_distance");}
	lb_bloque_maj_carte=false;
}

function razDistance(){
	//alert('debut razDistance');	
	lb_bloque_maj_carte=true;
	slide_distance.setValue(0); 
	lb_bloque_maj_carte=false;	
	//alert('fin razDistance');	
}

function addDistance () {
	slide_distance = new Control.Slider('handle3','track3',{range:$R(0,50),
		values:[0,5,10,15,20,25,30,35,40,45,50],
		onSlide:function(v){$('aff_distance').innerHTML='&nbsp;&nbsp;&nbsp;&nbsp;'+v+' km'},
		onChange:function(v){$('aff_distance').innerHTML='&nbsp;&nbsp;&nbsp;&nbsp;'+v+' km'; if(v==0) {if (!lb_bloque_maj_carte){majCarte(carte,'',insee,'')}}else {if (!lb_bloque_maj_carte){majCarte(carte,'',insee,v)}}}});
}
