
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', '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){
//alert('sid= '+sid);
//alert('debut majCarte');	
//alert(val_carte+" , "+val_dep+" , "+val_insee+" , "+val_distance);
 //Effect.Fade("box_carte");
 carte= val_carte;
 param = sid+'&'+"ref_carte="+carte;
 if(val_insee != '') { param += '&ps_insee='+insee; }
 // else { //alert('bli');}
 if(val_dep != '') { param += '&ps_departement='+dep; }
 distance = val_distance;
 // else { //alert('bla');}
 if((val_insee=='') && (val_dep=='')) { majDep('','');}
 param += '&ps_distance='+distance;
 ////alert(param);
 $("box_carte").innerHTML="<img src=\"_images/portail/chargement.gif\" width=\"130\" height=\"20\" border=\"0\" alt=\"\" title=\"\">";
 Effect.Appear("box_carte");
	var myAjax = new Ajax.Updater('box_carte', 'gene_carte.php', {method: 'GET', parameters: param,evalScripts:true});
	//var myAjax = new Ajax.Request('box_carte', 'gene_carte.php', {method: 'GET', parameters: param,evalScripts:true});
majInfo();
majHidden();
//alert('fin majCarte');	
}


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>";
}
}

function majHidden() {

$("izone").value=carte;
$("idep").value=dep;
$("iville").value=insee;
$("idistance").value=distance;
$("inom_ville").value=ville;
$("inom_dep").value=nom_dep;
////alert($("izone").value+" - "+$("idep").value+" - "+$("iville").value+" - "+$("idistance").value);
}

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($("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)}}}});
}
