// fonction d'initialisation des listes avec les codes contenus
// dans les variables globales preSelectedCountryCode, preSelectedCityCode et preSelectedDepCityCode
function initCitiesAndCountries(form) {
    loadCountry(form, preSelectedCountryCode, preSelectedCityCode);
    loadDepartureCities(form, preSelectedDepCityCode);
}

// récupérer le nom d'une ville de départ en fonction du code IATA
function getDepartureAirportName(airportCode) {
    var index;
    var name;
    var i;
    for (i=0;i<departureAirportsCode.length;i++) {
        if (departureAirportsCode[i] == airportCode) {
            index = i;
            break;
        }
    }

    if (i == departureAirportsCode.length) {
        name = airportCode;
    }
    else {
        name = departureAirportsName[index];
    }

    document.write(name);
}

// fonction de création de la liste des villes de départ (ttes)
function loadDepartureCities(theForm, depCityCode) {
    var form = theForm;
    if (form.departureCityCode && form.departureCityCode.options) {
        var i;
        var index = 0;
        form.departureCityCode.options.length = 0;
        form.departureCityCode.options[form.departureCityCode.length] = new Option("Toutes villes", "");
        for (i=0; i < departureAirportsCode.length; i++) {
            form.departureCityCode.options[form.departureCityCode.length] =
                                      new Option(departureAirportsName[i], departureAirportsCode[i]);
            if (departureAirportsCode[i] == depCityCode) {
                index = form.departureCityCode.length - 1;
            }
        }
        form.departureCityCode.selectedIndex = index;
    }
}

// fonction de création de la liste des villes de départ (filtrées pour le produit)
function loadProductDepCities(theForm, depCityCode) {
    var i;
    var form = theForm;
    var index = 0;
    if (form.departureCityCode && form.departureCityCode.options) {
        var defaultDepCityCode = depCityCode;
        if (depCityCode == null || depCityCode == "") {
            defaultDepCityCode = defaultDepartureAiportCode;
        }
        form.departureCityCode.options.length = 0;

        for (i=0; i < departureAirportsCode.length; i++) {
            if (isInArray(prodDepAirportsCode, departureAirportsCode[i])) {
                form.departureCityCode.options[form.departureCityCode.length] =
                        new Option(departureAirportsName[i], departureAirportsCode[i]);
                if (departureAirportsCode[i] == defaultDepCityCode) {
                    index = form.departureCityCode.length - 1;
                }
            }
        }
        form.departureCityCode.selectedIndex = index;
    }
}

// fonctions de gestion d'une destination en fonction du code IATA
function loadCountry(theForm, countryCode, cityCode) {
    var i;
    var form = theForm;
    var index = 0;

    form.country.options.length = 0;
    for (i=0; i < countryCodeList.length; i++) {
        form.country.options[form.country.length] =
                                  new Option(countryNameList[i], countryCodeList[i]);
        if (countryCodeList[i] == countryCode) {
            index = i;
        }
    }
    if (countryCode == "noCountrySelected") {
        index = 0;
    }
    form.country.selectedIndex = index;
    if (cityCode == null) {
        cityCode = '';
    }
    updateArrival(form, indexes[index], indexes[index + 1], cityCode);
}

function changeCities(theForm) {
    var selectedIndex;
    var form = theForm;

    selectedIndex = form.country.options.selectedIndex;
    updateArrival(form, indexes[selectedIndex], indexes[selectedIndex + 1], '');
}

function updateArrival(theForm, begin, end, cityCode) {
    var i;
    var form = theForm;
    form.city.options.length = 0;
    var index = 0;
    var j = 0;
    for (i=begin; i < end; i++) {
        form.city.options[form.city.length] =
                                  new Option(cityNameList[i], cityCodeList[i]);
        if (cityCodeList[i] == cityCode) {
            index = j;
        }
        j ++;
    }
    form.city.selectedIndex = index;
}

function getCountryName(countryCode) {
    var index = -1;
    var name;
    var i;
    for (i=0;i<countryCodeList.length;i++) {
        if (countryCodeList[i] == countryCode) {
            index = i;
        }
    }
    if (index == -1) {
        name = "Inconnu";
    } else {
        name = countryNameList[index];
    }
    document.write(name);
}

function getCountryNameFromCode(countryCode, allCode, allLibelle) {
  if (countryCode == allCode) {
    document.write(allLibelle);
  } else {
    getCountryName(countryCode);
  }
}

function getCityName(cityCode) {
    var index;
    var name;
    var i;
    for (i=0;i<cityCodeList.length;i++) {
        if (cityCodeList[i] == cityCode) {
            index = i;
        }
    }
    name = cityNameList[index];
    document.write(name);
}