var PointDepart = new Array;
var PointArrive = new Array;
var nbAptDepart = 1;
var tabCarte = new Array();

function sleep(millis,idMax,idCurrent) { 
  if(idCurrent == idMax)
     return true;
  else {
    idCurrent = idCurrent +1;
    setTimeout('sleep('+millis+','+idMax+','+idCurrent+')', millis);
  }
}

function getVille(ville){

  if($('destination_pays') != null)
    $('destination_pays').style.display='none';
  $('poss'+ville.id+'').style.display='block';
  
  if(ville.value.length >= 3){
    sleep(1000,1,0);
/*    if ($('villeDep').attachEvent)
      $('villeDep').attachEvent("onkeyup", function stop(){return false;});
    else
      $('villeDep').addEventListener("onkeyup",function stop(){return false;},true);*/
    GDownloadUrl('/includes/getville.php?ville='+ville.value, 
      function(data, responseCode) {
        var xml = GXml.parse(data);
        var places = xml.documentElement.getElementsByTagName('Placemark');
        var chaine  ='';
        //alert(places.length);
        for (var i = 0; i < places.length; i++) {
          adress = places[i].getElementsByTagName("address");
          coordonnees = places[i].getElementsByTagName("coordinates");
          if(ville.id == 'ville')
            chaine += '<div class=\"L2\" onClick=\"'+ville.id+'.value=\''+adress[0].firstChild.nodeValue+'\';$(\'position'+ville.id+'\').value=\''+coordonnees[0].firstChild.nodeValue+'\';changeVilleMap(\''+adress[0].firstChild.nodeValue+'\',4,\''+coordonnees[0].firstChild.nodeValue+'\');$(\'poss'+ville.id+'\').style.display=\'none\';\">'+adress[0].firstChild.nodeValue+'</div>';
          else
            chaine += '<div class=\"L2\" onClick=\"$(\''+ville.id+'\').value=\''+adress[0].firstChild.nodeValue+'\';$(\''+ville.id+'\').label=\''+coordonnees[0].firstChild.nodeValue+'\';$(\'poss'+ville.id+'\').style.display=\'none\';\">'+adress[0].firstChild.nodeValue+'</div>';
        }
        $('poss'+ville.id+'').innerHTML = chaine;
      }
    );
  }
  return true;
}

function genereListePays(url, param){

  $('detailOnglet').innerHTML = '<br><br><center><img src=\'../images/spinner.gif\'></center>';
  GDownloadUrl(url+param, function(data, responseCode) {
  var xml = GXml.parse(data);
  var villes = xml.documentElement.getElementsByTagName('villes_apt');
  var compagnies = xml.documentElement.getElementsByTagName('compagnies');

  var html = '';

  for (var i = 0; i < villes.length; i++) {
    var apt = villes[i].getElementsByTagName("apt");
    if(i==0)
      html = '<table id=\"tabDetail\"><tr><td colspan=\"3\" class=\"titreDetail\">'+LANG['genereListePays_aeroport']+' '+apt[0].getAttribute("pays")+'</td>';
    if(Math.ceil(i / 3) == i / 3)
        html += '</tr><tr>';    
    html += '<td class=\"L1\" width=\"33%\" onmouseover=\"$(\'img2_'+i+'\').style.visibility=\'visible\';\" onmouseout=\"$(\'img2_'+i+'\').style.visibility=\'hidden\';\">&nbsp;<img style=\"visibility: hidden;\" id=\"img2_'+i+'\" src=\"images/action_forward.gif\"> <a href=\""/vols+low+cost+'+apt[0].firstChild.nodeValue+'+'+apt[0].getAttribute("code")+'.html\" class=\"texte3\">'+apt[0].getAttribute("ville")+'( '+apt[0].firstChild.nodeValue+' )</a></td>';
  }

  for (var i = 0; i < compagnies.length; i++) {
    var comp = compagnies[i].getElementsByTagName("comp");
    if(i==0)
      html += '</tr><tr><td colspan=\"3\">&nbsp;</td></tr><tr><td colspan=\"3\" class=\"titreDetail\">'+LANG['genereListePays_compagnies']+''+apt[0].getAttribute("pays")+'</td>';
    if(Math.ceil(i / 3) == i / 3)
        html += '</tr><tr>';      
    html += '<td class=\"L1\" width=\"33%\" onmouseover=\"$(\'img3_'+i+'\').style.visibility=\'visible\';\" onmouseout=\"$(\'img3_'+i+'\').style.visibility=\'hidden\';\">&nbsp;<img style=\"visibility: hidden;\" id=\"img3_'+i+'\" src=\"images/action_forward.gif\"> <a href=\"/index.php?url='+comp[0].getAttribute("url")+'\" target=\"_blank\" class=\"texte3\">'+comp[0].getAttribute("nom")+'</font></td>';
  }
  
  html += '</tr></table>';
  $('detailOnglet').innerHTML = html;
  });
}

function genereListeCompagnies(url, param){

  $('detailOnglet').innerHTML = '<br><br><center><img src=\'../images/spinner.gif\'></center>';
  GDownloadUrl(url+param, function(data, responseCode) {
  var xml = GXml.parse(data);
  var pays = xml.documentElement.getElementsByTagName('pays');
  
  var html = '';

  for (var i = 0; i < pays.length; i++) {
    var apt = pays[i].getElementsByTagName("apt");
    if(i==0)
      html = '<br><table id=\"tabDetail\" cellpadding=\"0\" cellspacing=\"0\"><tr ><td colspan=\"5\">&nbsp;&nbsp;<b>'+LANG['genereListeCompagnies_compagnies']+' '+pays[i].getAttribute("compagnie")+'</b></td></tr><tr><td class=\"LB\" colspan=\"5\"></td></tr>';
    
    html += '<tr><td colspan=\"4\"><a href=\"/vols+low+cost+'+pays[i].getAttribute("nom")+'+'+pays[i].getAttribute("code_pays")+'.html\" class=\"a2\"><img src=\"/images/drapeaux/'+pays[i].getAttribute("code_pays")+'.gif\" border=\"0\"> <strong>'+pays[i].getAttribute("nom")+'</strong></a></td></tr><tr>';
    for (var j = 0; j< apt.length; j++) {
      if(Math.ceil(j / 3) == j / 3)
        html += '</tr><tr width=\"5%\" class=\"L1\"><td>&nbsp;</td>';    
      html += '<td width=\"35%\" onmouseover=\"$(\'img2_'+i+j+'\').style.visibility=\'visible\';\" onmouseout=\"$(\'img2_'+i+j+'\').style.visibility=\'hidden\';\">&nbsp;<img style=\"visibility: hidden;\" id=\"img2_'+i+j+'\" src=\"images/action_forward.gif\"> <a href=\"/vols+low+cost+'+apt[j].getAttribute("ville")+'+'+apt[j].getAttribute("code")+'.html\" class=\"texte3\">- '+apt[j].getAttribute("ville")+'</a></td>';
    }    
    html += '</tr>';
  }

  html += '</table>';
  $('detailOnglet').innerHTML = html;
  });
}


function urlMoteurIllicotravel(aptDep, aptArr){
  url = $('liligovols').value+'from='+aptDep+'&to='+aptArr;
  // commenter ligne ci dessous si je supprime opodo
  openOpodo(aptDep, aptArr);
  afficheOnglet('prix',url);    
}

function openOpodo(aptDep, aptArr){
	var maintenant = new Date();
	var depart = new Date(maintenant.getTime() + (20*24*60*60*1000));
	var retour = new Date(maintenant.getTime() + (24*24*60*60*1000));
	
	if(depart.getMonth()<10)
	   var departTexte = depart.getFullYear()+'0'+(depart.getMonth()+1);
	else
	   var departTexte = depart.getFullYear()+''+(depart.getMonth()+1);	
	if(retour.getMonth()<10)
	   var retourTexte = retour.getFullYear()+'0'+(retour.getMonth()+1);
	else
	   var retourTexte = retour.getFullYear()+''+(retour.getMonth()+1);
	var url = 'http://tracking.publicidees.com/clic.php?promoid=0&progid=1487&partid=8613&url='+encodeURIComponent('http://billetavion.opodo.fr/opodo/flights/search?reset=true&departureAirportCode='+aptDep+'&departureAirport=&arrivalAirportCode='+aptArr+'&arrivalAirport=&tripType=R&departureDay='+depart.getDate()+'&departureMonth='+departTexte+'&departureTime=ANY&returnDay='+retour.getDate()+'&returnMonth='+retourTexte+'&returnTime=ANY&numberOfAdults=1&numberOfChildren=0&numberOfInfants=0&lccoption=true&searchLowCost=true&cabinType=E&preferredAirlines[0]=&directFlight=false');
	window.open(url,'opodo');
}

function genereDetailInfosVol(url, param){

  $('detailOnglet').innerHTML = '<br><br><center><img src=\'../images/spinner.gif\'></center>';
  GDownloadUrl(url+param, function(data, responseCode) {
  var xml = GXml.parse(data);
  
  var det = xml.documentElement.getElementsByTagName('details');
  var tabData = new Array();
  tabData["aptDepNom"] = $('ville').value;
  var TempaptArr = det[0].getElementsByTagName("aptarr");
  tabData["aptArrNom"] = TempaptArr[0].getAttribute("ville")+', '+TempaptArr[0].getAttribute("pays");
  if($('ville').value != '')
    tabData["villeDepNom"] = $('ville').value;
  tabData["villeArrNom"] = TempaptArr[0].getAttribute("ville")+', '+TempaptArr[0].getAttribute("pays");     
  tabData["listeVols"] = det;
  
  var html = genereHTMLDetailsVols(tabData);
  
  $('detailOnglet').innerHTML = html;
  //$('aptDepartListe').value = aptDepartListeVar+'apt='+aptArr[0].getAttribute("code");    
  }
  );
}

function afficheOnglet(onglet,url,param,param2){
  $('lidetail').className = '';
  $('limap').className = '';    
  $('liprix').className = '';
  $('lisurplace').className = '';
  $('livoiture').className = '';
  $('liinformations').className = '';

  $('map').style.display = 'none';
  $('detail').style.display = 'none';
  $('prix').style.display = 'none';
  $('surplace').style.display = 'none';
  $('voiture').style.display = 'none';
  $('informations').style.display = 'none';
  $('informations').className = '';

  if(onglet == 'map'){
    $('map').style.display = 'block';
    $('limap').className = 'active';
  }

  if(onglet == 'detail'){
    if(url == '/includes/info_liaison_xml.php?')
      genereDetailInfosVol(url,param);
    else if(url == '/includes/liste_liaisons_xml.php?')
      genereListePays(url,param);
    else if(url == '/includes/liste_liaisonsCompagnies_xml.php?')
      genereListeCompagnies(url,param);
    else if(url == '/includes/recherche_precise.php?')
      recherchePrecise(param, param2);      
    else if(url != '' && $('iframeDetail').src != url)
      $('detailOnglet').innerHTML = '<iframe id=\'iframeDetail\' src=\''+url+'\' width=\'678\' height=\'1000\' frameborder=\'0\'></iframe>';
      
    $('detail').style.display = 'block';
    $('lidetail').className = 'active';
  }
  
  if(onglet == 'prix'){
    if(url != '' && $('iframePrix').src != url){
      $('iframePrix').src = url;
      $('lienRetourVols').style.display = 'block';      
    }
    else {
      var srcIframe = window.location.protocol+'//'+window.location.host+window.location.pathname;
      if($('iframePrix').src == srcIframe || (navigator.appName == 'Microsoft Internet Explorer' && $('iframePrix').src == '')){
        $('iframePrix').src = $('liligovols').value+'from=&to=';
      }
    }
    $('prix').style.display = 'block';
    $('liprix').className = 'active';    
  }
  
  if(onglet == 'surplace'){
    if(url != '' && $('iframeHotels').src != url){
      $('iframeHotels').src = url;
      $('lienRetourHotels').style.display = 'block';
    }
    else {
      var srcIframe = window.location.protocol+'//'+window.location.host+window.location.pathname;
      if($('iframeHotels').src == srcIframe || (navigator.appName == 'Microsoft Internet Explorer' && $('iframeHotels').src == '')){
        $('iframeHotels').src = $('liligohotels').value;
      }
    }  
    $('surplace').style.display = 'block';
    $('lisurplace').className = 'active';
  }
  
  if(onglet == 'voiture'){
    if(url != '' && $('iframeVoiture').src != url){
      $('iframeVoiture').src = url;
    }
    else {
      var srcIframe = window.location.protocol+'//'+window.location.host+window.location.pathname;
      if($('iframeVoiture').src == srcIframe || (navigator.appName == 'Microsoft Internet Explorer' && $('iframeVoiture').src == '')){
        //$('iframeVoiture').src = 'http://www.elocationdevoitures.fr/affxml/Home.do?affiliateCode=voyageons_fr';
        $('iframeVoiture').src = $('elocationcars').value;
      }
    }  
    $('voiture').style.display = 'block';
    $('livoiture').className = 'active';
  }  
  
  if(onglet == 'informations'){
    if(url != '')
      $('detailOngletInformations').innerHTML = '<iframe src=\''+url+'\' width=\'730\' height=\'1220\' frameborder=\'0\'></iframe>';
    $('informations').style.display = 'block';
    $('liinformations').className = 'active';    
  }          
}

// fonction qui gere la recherche precise, cad avec une ville de depart et une ville d arrivée renseignée
function recherchePrecise(coordonnesDep, coordonnesArr){
  
  $('detailOnglet').innerHTML = '<br><br><center><img src=\'../images/spinner.gif\'></center>';
  GDownloadUrl('/includes/recherche_precise.php?type=xml&coordonnesDep='+coordonnesDep+'&coordonnesArr='+coordonnesArr, function(data, responseCode) {
    map.clearOverlays();
    var xml = GXml.parse(data);

    var det = xml.documentElement.getElementsByTagName('details');
    var villeDep = xml.documentElement.getElementsByTagName('villeDep');
    var villeArr = xml.documentElement.getElementsByTagName('villeArr');
    var tabData = new Array();
    
    if(det.length > 0){
      var TempaptDep = det[0].getElementsByTagName("aptdepart");
      tabData["aptDepNom"] = TempaptDep[0].getAttribute("ville")+', '+TempaptDep[0].getAttribute("pays");
  
      var TempaptArr = det[0].getElementsByTagName("aptarr");
      tabData["aptArrNom"] = TempaptArr[0].getAttribute("ville")+', '+TempaptArr[0].getAttribute("pays");
      
      if($('villeDep').value != '')
       tabData["villeDepNom"] = $('villeDep').value;
      tabData["villeDeplatitude"] = villeDep[0].getAttribute("latitude");
      tabData["villeDeplongitude"] = villeDep[0].getAttribute("longitude");
      
      if($('villeArr').value != '')
       tabData["villeArrNom"] = $('villeArr').value;       
      tabData["villeArrlatitude"] = villeArr[0].getAttribute("latitude");
      tabData["villeArrlongitude"] = villeArr[0].getAttribute("longitude");     
      
      tabData["listeVols"] = det;
      var html = genereHTMLDetailsVols(tabData);
    }
    else {
      var regVille = new RegExp("[,]+", "g");
      var tableauDep = $('villeDep').value.split(regVille);
      var tableauArr = $('villeArr').value.split(regVille);
      var html = '<table id=\"tabDetail\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tr><td align=\"center\"><br><br><b>'+LANG['recherchePrecise_aucun'];
      html += '<br><br><img src=\"/images/fleche_droite.gif\">&nbsp;<a href=\"javascript:urlMoteurIllicotravel(\''+tableauDep[0]+'\', \''+tableauArr[0]+'\')\">'+LANG['recherchePrecise_compagnieTradie']+'</a></td></tr></table>'; 
    } 
    $('detailOnglet').innerHTML = html;   
  }
  );
}


function genereHTMLDetailsVols(data){

  // avant de generer l'html on remplie une partie du tableau des infos du parcours pour la carte
  var villeDep = new Array('ville',data["villeDeplatitude"],data["villeDeplongitude"],data["villeDepNom"]);
  var villeArr = new Array('ville',data["villeArrlatitude"],data["villeArrlongitude"],data["villeArrNom"]);

  // on recupere la durée du trajet en voiture
  //getDirectionDuration(data["villeDepNom"],data["villeArrNom"],$('dureeVoiture'));

  var html = '<table id=\"tabDetail\" cellpadding=\"0\" cellspacing=\"0\" width=\"678\">';
    html += '    <tr><td colspan=\"6\" >&nbsp;&nbsp;<b>'+LANG['genereHTMLDetailsVols_volsCorrespondant']+' :</td></tr>';
    html += '    <tr><td colspan=\"6\" class=\"LB\"></td></tr>';
 
    var liste = data["listeVols"];
    for (var i = 0; i < liste.length; i++){
      var aptDep = liste[i].getElementsByTagName("aptdepart");
      var aptArr = liste[i].getElementsByTagName("aptarr");
      var villeDep = data["villeDepNom"].substring(0,data["villeDepNom"].indexOf(",",0));
      var villeArr = data["villeArrNom"].substring(0,data["villeArrNom"].indexOf(",",0));
      var comp = liste[i].getElementsByTagName("compagnie");
          
      // on remplie l'autre partie du tableau
      var aptTDep = new Array('apt',aptDep[0].getAttribute("latitude"),aptDep[0].getAttribute("longitude"),aptDep[0].getAttribute("ville"));
      var aptTArr = new Array('apt',aptArr[0].getAttribute("latitude"),aptArr[0].getAttribute("longitude"),aptDep[0].getAttribute("ville"));
      var tabCarteTmp = new Array(villeDep,aptTDep,aptTArr,villeArr);
      tabCarte[i] = tabCarteTmp; 

      html += '    <tr valign=\"top\" class=\"L1\" onmouseover=\"this.className=\'L1hover\';\" onmouseout=\"this.className=\'L1\';\" onclick=\"javascript:urlMoteurIllicotravel(\''+aptDep[0].getAttribute("code")+'\', \''+aptArr[0].getAttribute("code")+'\');\"><td colspan=\"6\">';
      html += '      <table width=\"100%\" cellpadding=\"1\">';
      html += '        <tr valign=\'top\'>';
      html += '          <td class=\"texte1\" align=\"right\" style=\"background-color: #EDF3FE;\" width=\"1%\" rowspan=\"2\" nowrap>Dép.</td>';
      html += '          <td class=\"texte2\" width=\"50%\" nowrap><img src=\"/images/flags/'+aptDep[0].getAttribute("pays")+'.png\" border=\"0\"> '+LANG['genereHTMLDetailsVols_aeroportDe']+' '+ aptDep[0].firstChild.nodeValue +' </td>';
//      html += '          <td class=\"texte2\" width=\"1%\" rowspan=\"2\"> <a href=\"#\" onClick=\"genereTraceMap(tabCarte['+i+']);\"><img src=\"/images/map.png\" border=\"0\" title=\"'+LANG['genereHTMLDetailsVols_titleMap']+'\"></a></td>';      
      html += '          <td class=\"texte5\" width=\"25%\" nowrap valign=\"middle\" rowspan=\"2\"><a href=\"javascript:afficheOnglet(\'surplace\',\''+$('liligohotels').value+'loc='+villeDep+'\');\" title=\"'+LANG['genereHTMLDetailsVols_hotelTitle']+' '+villeDep+'\"  class=\"tetiereMini\"><img src=\"/images/house.gif\" title=\"'+LANG['genereHTMLDetailsVols_hotelTitle']+'\" border=\"0\"> '+LANG['genereHTMLDetailsVols_hotel']+'</a> | <a href=\"javascript:afficheOnglet(\'voiture\',\'\');\" title=\"'+LANG['genereHTMLDetailsVols_locationTitle']+' '+villeDep+'\"  class=\"tetiereMini\"><img src=\"/images/car.gif\" border=\"0\"> '+LANG['genereHTMLDetailsVols_location']+'</a></td>';
      html += '          <td align=\"left\" width=\"25%\" rowspan=\"2\" valign=\"middle\"><img src=\"/images/compagnies/'+comp[0].getAttribute("logo")+'\" border=\"0\" title=\"'+LANG['genereHTMLDetailsVols_compagnieTitle']+' '+ comp[0].firstChild.nodeValue +'\"></td>';
      html += '        </tr>';
      html += '        <tr>';
      html += '          <td class=\"texte1\">'+LANG['genereHTMLDetailsVols_situeEnviron']+' <i>'+aptDep[0].getAttribute("distance")+' km</i> de '+villeDep+'</td>';
      html += '        </tr>';       
      html += '        <tr valign=\'top\'>';
      html += '          <td class=\"texte1\" align=\"right\" style=\"background-color: #EDF3FE;\" width=\"1%\" rowspan=\"2\" nowrap>Arr.</td>';       
      html += '          <td class=\"texte2\" nowrap><img src=\"/images/flags/'+aptArr[0].getAttribute("pays")+'.png\" border=\"0\"> Aéroport de '+ aptArr[0].firstChild.nodeValue +'</td>';
      html += '          <td class=\"texte5\" width=\"25%\" nowrap valign=\"middle\" rowspan=\"2\"><a href=\"javascript:afficheOnglet(\'surplace\',\''+$('liligohotels').value+'loc='+villeArr+'\');\" title=\"'+LANG['genereHTMLDetailsVols_hotelTitle']+' '+villeArr+'\" class=\"tetiereMini\"><img src=\"/images/house.gif\" title=\"'+LANG['genereHTMLDetailsVols_hotelTitle']+'\" border=\"0\"> '+LANG['genereHTMLDetailsVols_hotel']+'</a> | <a href=\"javascript:afficheOnglet(\'voiture\',\'\');\" title=\"'+LANG['genereHTMLDetailsVols_locationTitle']+' '+villeArr+'\"  class=\"tetiereMini\"><img src=\"/images/car.gif\" border=\"0\"> '+LANG['genereHTMLDetailsVols_location']+'</a></td>';
      html += '          <td align=\"right\" valign=\"middle\" rowspan=\"2\"><input type=\"button\" class=\"bouton\" onMouseOver=\"this.className = \'bouton_hoverIE\';\" onMouseOut=\"this.className = \'bouton\';\" onClick=\"javascript:urlMoteurIllicotravel(\''+aptDep[0].getAttribute("code")+'\', \''+aptArr[0].getAttribute("code")+'\');\" alt=\"'+LANG['genereHTMLDetailsVols_prixTitle']+'\" value=\"'+LANG['genereHTMLDetailsVols_prix2']+'\"></td>';      
      html += '        </tr>';
      html += '        <tr>';
      html += '          <td class=\"texte1\">'+LANG['genereHTMLDetailsVols_situeEnviron']+' <i>'+aptArr[0].getAttribute("distance")+' km</i> de '+villeArr+'</td>';
      html += '        </tr>';
      html += '      </table>';
      html += '    </td>';
      html += '  </tr>';
      html += '  <tr><td colspan=\"6\" class=\"LB\"></td></tr>';          
    }
    html += '</table>';  

  return html;

}


// cette fonction genere un parcours sur une map en fonction du tableau qui lui ai envoyé
function genereTraceMap(tabMap){
  // tabMap = array("type"=>(ville,apt),"longitude"=>(float),"latitude"=>(float));
  map.clearOverlays();
  var polyOptions = {geodesic:true};
    
  for(var i=0;i<4;i++){
    if(typeof(tabMap[i][1]) != "undefined"){
      var latlng = new GLatLng(tabMap[i][1],tabMap[i][2]);
      if(tabMap[i][0] == 'ville')
        var txt = 'Ville de '+tabMap[i][3];
      else
        var txt = 'Aéroport de '+tabMap[i][3]; 
      map.addOverlay(createMarker(latlng, txt, i));
      
      if(i>0){
      var polyline = new GPolyline([
            new GLatLng(prevLat, prevLong),
            new GLatLng(tabMap[i][1], tabMap[i][2])
            ],"#74A8F5", 5, 1, polyOptions);
          map.addOverlay(polyline);
      }
      var prevLat = tabMap[i][1];
      var prevLong = tabMap[i][2];             
    }
  }
  
  afficheOnglet('map');
}




// fonction principale qui gere les aeroports et destinations en fonction de la ville entrée dans 'lieu de depart'
function changeVilleMap(ville,aptChecked,coordonnees){
  //var msg_attente = 'Recherche des aeroports les plus proches <img src=\'../images/spinner.gif\'>';
  var reg=new RegExp("[,]+", "g");
  var tableauVille=ville.split(reg);
 
  var msg_attente = '<div class="titre_rub"><img src=\"/images/pillule_arrivee2.gif\">'+LANG['changeVilleMap_titre']+' \''+ tableauVille[0] +'\'</div>';
  $('proximite_aeroport').innerHTML = msg_attente + '<br><br><center><img src=\'../images/spinner.gif\'></center>';
  
  // on recupere la liste des aeroports proche de la ville et on affiche le resultat sur la carte
  GDownloadUrl('/includes/proximite_aeroport_map.php?type=xml&ville='+ville+'&coordonnees='+coordonnees, function(data, responseCode) {
    map.clearOverlays();
    var xml = GXml.parse(data);
    var apt = xml.documentElement.getElementsByTagName("aptdep");
    var nbApt = apt.length; 
    if(nbApt >= nbAptDepart){
      for (var i = 0; i < nbApt; i++) {
        var tabTemp = new Array;
        var latitude = apt[i].getElementsByTagName("latitude");
        var longitude = apt[i].getElementsByTagName("longitude");
        var nomapt = apt[i].getElementsByTagName("nom");
        var paysapt = apt[i].getElementsByTagName("pays");
        var distanceapt = apt[i].getElementsByTagName("distance");
              
        tabTemp['code'] = apt[i].getAttribute("code");
        tabTemp['latitude'] = latitude[0].firstChild.nodeValue;
        tabTemp['longitude'] = longitude[0].firstChild.nodeValue;
        tabTemp['nomapt'] = nomapt[0].firstChild.nodeValue;
        tabTemp['paysapt'] = paysapt[0].firstChild.nodeValue;
        tabTemp['distanceapt'] = distanceapt[0].firstChild.nodeValue;
        
        
        var bulle = 'Aeroport de départ : '+ tabTemp['nomapt'] +'<br>Pays : '+ tabTemp['paysapt'] +'<br>Distance :'+ tabTemp['distanceapt'] +' km';
        var bulle = '<table class=\"bluebox\" cellspacing=\"0\" width=\"200\"><tr><td colspan=\"2\" align=\"center\"><b>Aéroport de départ</b></td></tr><tr class=\"L1\"><td><b>&nbsp;Ville</b></td><td>'+ tabTemp['nomapt'] +'</td></tr><tr class=\"L1\"><td><b>&nbsp;Pays</b></td><td>'+ tabTemp['paysapt'] +'</td></tr></table>';        
        var point = new GLatLng(tabTemp['latitude'],tabTemp['longitude']);
        tabTemp['point'] = point;
        //tabTemp['bulle'] = bulle;
        PointDepart[i] = tabTemp;
        
        if(i<aptChecked){
          map.addOverlay(createMarker(point, bulle,'1'));
        }
      }
      
      $('proximite_aeroport').innerHTML = msg_attente + genereHtmlDepart(PointDepart,nbApt,aptChecked);
    }
    else
      $('proximite_aeroport').innerHTML = msg_attente + '<table align=\'center\'><tr><td align=\'center\'><font color=\'red\'>'+LANG['changeVilleMap_erreur']+'</font></td></tr></table>';
  
  setTimeout("aeroportdestinationMap()",100)    
  }
);  
return true;
}

 
// affiche la liste des destinations et tags en fonctions des aeoports selectionnes
function aeroportdestinationMap(){
  var titre_rub = '<div class="titre_rub"><img src=\"/images/pillule_depart2.gif\"> '+LANG['aeroportdestinationMap_titre']+'</div>';
  var msg_attente = '<br><br><center><img src=\'/images/spinner.gif\'></center>';

  url_AptDep = checkRadio('aerport_depart','apt'); 
  
  if(url_AptDep == ''){
    $('destination_select').innerHTML = titre_rub + '<br><br><center><font color=\"red\">'+LANG['aeroportdestinationMap_attention']+'</font></center>';
    return false;
  }
  
  PointArrive = new Array;
  $('destination_select').innerHTML = '' + titre_rub + msg_attente;
  
  // on recupere la liste des destinations et on les affiche sur la carte  
  GDownloadUrl('/includes/destination_aeroport_map.php?type=xml&'+url_AptDep, function(data, responseCode) {
    var xml = GXml.parse(data);
    var apt = xml.documentElement.getElementsByTagName("aptarr");
    for (var i = 0; i < apt.length; i++) {

      var tabTemp = new Array; 
      var latitude = apt[i].getElementsByTagName("latitude");
      var longitude = apt[i].getElementsByTagName("longitude");
      var nomapt = apt[i].getElementsByTagName("nom");
      var villeapt = apt[i].getElementsByTagName("ville");
      var paysapt = apt[i].getElementsByTagName("pays");
      
      tabTemp['code'] = apt[i].getAttribute("code");
      tabTemp['latitude'] = latitude[0].firstChild.nodeValue;
      tabTemp['longitude'] = longitude[0].firstChild.nodeValue;
      tabTemp['nomapt'] = nomapt[0].firstChild.nodeValue;
      tabTemp['villeapt'] = villeapt[0].firstChild.nodeValue;
      tabTemp['paysapt'] = paysapt[0].firstChild.nodeValue;
      tabTemp['payslogo'] = paysapt[0].getAttribute("logo");
    
      var bulle = '<table class=\"bluebox\" cellspacing=\"0\" width=\"200\"><tr><td colspan=\"2\" align=\"center\"><b>'+LANG['aeroportdestinationMap_destination']+'</b></td></tr><tr class=\"L1\"><td><b>&nbsp;Ville</b></td><td>'+ tabTemp['villeapt'] +'</td></tr><tr class=\"L1\"><td><b>&nbsp;Pays</b></td><td>'+ tabTemp['paysapt'] +'</td></tr><tr><td colspan=\'2\' align=\"center\"><img src=\"images/action_forward.gif\"> <a href=javascript:afficheOnglet(\'detail\',\'/includes/info_liaison_xml.php?\',\''+url_AptDep+'&liaison='+tabTemp['code']+'\')>'+LANG['aeroportdestinationMap_informations']+'</a></td></tr></table>';    

      var point = new GLatLng(latitude[0].firstChild.nodeValue,longitude[0].firstChild.nodeValue);
      tabTemp['point'] = point;
      PointArrive[i] = tabTemp;
      map.addOverlay(createMarker(point, bulle,'2'));
    } 
  $('destination_select').innerHTML = titre_rub + genereHtmlDestination(PointArrive,url_AptDep);    
  }
);     
}  

function genereHtmlDestination(data,aptDep){
  var html = '';
  var pays = '';
  var j = 0;

  html += '<div class=\"destination_select\"><table cellpadding=\'0\' cellspacing=\'0\' width=\'100%\' style=\'margin-left: 8px;\'>';
  
  for (var i = 0; i < data.length; i++) {
    if(pays != data[i]['paysapt']) {
      html += '<tr class=\'LB\'><td colspan=\'2\'></td></tr>\n';
      html += '<tr>\n';
      html += '  <td>&nbsp;</td>';      
      html += '  <td align=\"left\"><img src=\"/images/drapeaux/'+data[i]['payslogo']+'.gif\">&nbsp;<b>'+data[i]['paysapt']+'</b>&nbsp;</td>\n';
      html += '</tr>\n';
      pays = data[i]['paysapt'];
    }  
    
    html += '<tr class=L1 onmouseover=\"$(\'img_'+i+'\').style.visibility=\'visible\';this.className=\'L1hover\'\" onmouseout=\"$(\'img_'+i+'\').style.visibility=\'hidden\';this.className=\'L1\'\" title=\"'+LANG['genereHtmlDestination_title']+'\">\n';
    html += '  <td><input type=\"checkbox\" name=\"aerport_arrive['+ i +']\" id=\"aerport_arrive['+ i +']\" value=\"'+ data[i]['code'] +'\" onClick=\"gestionMap();\" checked style=\"display: none;\"></td>';
    html += '  <td align=\"left\"><img style=\"visibility: hidden;\" id=\"img_'+i+'\" src=\"/images/action_forward.gif\"><a href=\"javascript:afficheOnglet(\'detail\',\'/includes/info_liaison_xml.php?\',\''+aptDep +'&liaison='+ data[i]['code']+'&positionville='+$('positionville').value+'\');\">'+ data[i]['villeapt'] +'&nbsp;<span class=\"mini\">('+ data[i]['nomapt'] +')</span></a></td>\n';
    
    html += '</tr>\n';
  }
  
  html += '</td></tr></table></div>';  
  
  return html;
}


function genereHtmlDepart(data,nbApt,aptChecked){
  var html = '';
  var j = 0;

  html += '<div class=\'proximite_aeroport\'><table cellpadding=\'0\' cellspacing=\'0\' width=\'100%\' style=\'margin-left: 8px;\'>';
  for (var i = 0; i < nbApt; i++) {
    html += "<tr class=\'LB\'><td colspan=\'4\'></td></tr>";  
    html += "<tr class=\'L1\'><td><input type=\'checkbox\' name=\'aerport_depart["+ (i+1) +"]\' id=\'aerport_depart["+ (i+1) +"]\' value=\'"+ data[i]['code'] +"\' onClick=\"gestionMap(true); aeroportdestinationMap(\'all\')\"";
    if(i<aptChecked)
      html += " checked";
    html += "></td><td align=\'left\'>"+ data[i]['nomapt'] +"</td><td align=\'left\'><img src=\"images/flags/"+data[i]['paysapt']+".png\" title=\""+ data[i]['paysapt'] +"\"></td><td align=\'left\'>"+ data[i]['distanceapt'] +" km</td></tr>";
  }
  html += '</table></div>';  
   
  return html;
}

function checkRadiotoTab(radio){
  var tab = new Array; var i=1;
  while($(''+radio+'['+ i +']') != undefined){
    if($(''+radio+'['+ i +']').checked == true){
      tab[i] = $(''+radio+'['+ i +']').value;
    }
    i++;
  }
  return tab; 
}

// cette fonction regarde quelles sont les cases qui sont cochées ou non, pour afficher les infos en fonction sur la carte
function gestionMap(uniquementDepart){
   map.clearOverlays();
   
  // on recupere les aeroports de departs selectionnés
  var tabDepart = checkRadiotoTab('aerport_depart');
  
  if(tabDepart == '')
    return false;
  
  // puis on affiche sur la carte les aeroports selectionnés
  for(var i=0; i<PointDepart.length; i++){
   for(var j=0; j<tabDepart.length; j++){
    if(PointDepart[i]['code'] == tabDepart[j])
      map.addOverlay(createMarker(PointDepart[i]['point'], '','1')); 
   }
  }
  
  if(!uniquementDepart){ 
    // on recupere les aeroports d arrives selectionnés
    var tabArrive = checkRadiotoTab('aerport_arrive');
    // puis on affiche sur la carte les aeroports selectionnés
    for(var i=0; i<PointArrive.length; i++){
     for(var j=0; j<tabArrive.length; j++){
      if(PointArrive[i]['code'] == tabArrive[j])
        map.addOverlay(createMarker(PointArrive[i]['point'], '','2')); 
     }
    }
  }  
}


// cette fonction construit une url en fonction des checkbox cochée
function checkRadio(radio,nomvar){
  var url=''; var i=1;
  while($(''+radio+'['+ i +']') != undefined){
    if($(''+radio+'['+ i +']').checked == true){
      url += '&'+nomvar+'['+i+']='+$(''+radio+'['+ i +']').value;
    }
    i++;
  } 
  return url; 
}
  
// cette fonction affiche ou non un bloc et va chercher le contenu dans un fichier
function afficheBloc(bloc,url,affichage){
  if(bloc.style.display == 'none' && affichage!='none'){
    bloc.innerHTML = '<br><br><center><img src=\'/images/spinner.gif\'></center>';
    GDownloadUrl('/includes/'+url, function(data, responseCode) {
      bloc.innerHTML = data;
    });
    $('fleche_'+bloc.id+'').src='/images/fleche_bas.gif';
    bloc.style.display='block';
  }
  else{
    $('fleche_'+bloc.id+'').src='/images/fleche_droite.gif';
    bloc.style.display='none';
  }
//return false;
}

function AddBookmark() {
  var title="Comparateur de vols low cost - Voyageons.fr";
  var url="http://www.voyageons.fr";
  if (window.sidebar) {
    window.sidebar.addPanel(title,url,"");
  } else if( window.external ) {
    window.external.AddFavorite(url,title);
  } else if(window.opera && window.print) {
    alert("Pressez CTRL+D Pour ajouter cette page à vos favoris.")
  }
}

function agrandirReduireSurPlace(fenetre,texte){
  if(fenetre.id == 'iframeHotels')
    $('iframeLocationVoitures').height=320;
  else 
    $('iframeHotels').height=320;
  
  if(fenetre.height == 1800){
    fenetre.height=320;
    texte.innerHTML = 'Agrandir cette fenêtre';
    $('image'+fenetre.id+'').src = '/images/fleche_droite.gif'
  }
  else {
    fenetre.height=1800;
    texte.innerHTML = 'Réduire cette fenêtre';
    $('image'+fenetre.id+'').src = '/images/fleche_bas.gif'
  }
}

