// This Javascript is granted to the public domain.

// This is the javascript array holding the function list
// The PrintJavascriptArray ASP function can be used to print this array.
var functionlist = Array('Agen','Aix-en-Provence','Ajaccio','Albi','Alfortville','Alès','Amiens','Anderlecht','Angers','Anglet','Angoulême','Annecy','Antibes','Antony','Anvers','Argenteuil','Arles','Arras','Asnières-sur-Seine','Athis-Mons','Aubagne','Aubervilliers','Aulnay-sous-Bois','Auxerre','Avignon','Bagneux','Bagnolet','Bastia','Bayonne','Beauvais','Belfort','Berne','Besançon','Blois','Bobigny','Bondy','Bordeaux','Boulogne-Billancourt','Boulogne-sur-Mer','Bourg-en-Bresse','Bourges','Brest','Brive-la-Gaillarde','Bron','Bruges','Bruxelles','Bruxelles-ville','Bâle','Béziers','Caen','Cagnes-sur-Mer','Calais','Caluire-et-Cuire','Cambrai','Cannes','Carcassonne','Castres','Cayenne','Cergy','Chalon-sur-Saône','Chambéry','Champigny-sur-Marne','Charleroi','Charleville-Mézières','Chartres','Chelles','Cherbourg-Octeville','Choisy-le-Roi','Cholet','Châlons-en-Champagne','Châteauroux','Châtellerault','Châtenay-Malabry','Châtillon','Clamart','Clermont-Ferrand','Clichy','Colmar','Colombes','Colomiers','Compiègne','Conflans-Sainte-Honorine','Corbeil-Essonnes','Courbevoie','Creil','Créteil','Dieppe','Dijon','Douai','Draguignan','Drancy','Dreux','Dunkerque','Fontenay-sous-Bois','Fort-de-France','Franconville','Fréjus','Gagny','Gand','Gap','Garges-lès-Gonesse','Gennevilliers','Genève','Goussainville','Grasse','Grenoble','Haguenau','Houilles','Hyères','Issy-les-Moulineaux','Istres','Ivry-sur-Seine','Ixelles','Joué-lès-Tours','La Ciotat','La Courneuve','La Roche-sur-Yon','La Rochelle','La Seyne-sur-Mer','Lausanne','Laval','Le Blanc-Mesnil','Le Cannet','Le Havre','Le Lamentin','Le Mans','Le Perreux-sur-Marne','Le Port','Le Tampon','Lens','Les Abymes','Les Mureaux','Levallois-Perret','Lille','Limoges','Livry-Gargan','Liège','Liévin','Lorient','Louvain','Lucerne','Lugano', 'Luxembourg', 'Lyon','Lyon 1','Lyon 2','Lyon 3','Lyon 4','Lyon 5','Lyon 6','Lyon 7','Lyon 8','Lyon 9','Maisons-Alfort','Malakoff','Mantes-la-Jolie','Marcq-en-Barœul','Marignane','Marseille','Marseille 01','Marseille 02','Marseille 03','Marseille 04','Marseille 05','Marseille 06','Marseille 07','Marseille 08','Marseille 09','Marseille 10','Marseille 11','Marseille 12','Marseille 13','Marseille 14','Marseille 15','Marseille 16','Martigues','Massy','Maubeuge','Meaux','Melun','Metz','Meudon','Molenbeek-Saint-Jean','Mons','Mont-de-Marsan','Montauban','Montigny-le-Bretonneux','Montluçon','Montpellier','Montreuil','Montrouge','Montélimar','Mulhouse','Mâcon','Mérignac','Namur','Nancy','Nanterre','Nantes','Narbonne','Neuilly-sur-Marne','Neuilly-sur-Seine','Nevers','Nice','Niort','Nogent-sur-Marne','Noisy-le-Grand','Noisy-le-Sec','Nîmes','Orléans','Palaiseau','Pantin','Paris','Paris 01','Paris 02','Paris 03','Paris 04','Paris 05','Paris 06','Paris 07','Paris 08','Paris 09','Paris 10','Paris 11','Paris 12','Paris 13','Paris 14','Paris 15','Paris 16','Paris 17','Paris 18','Paris 19','Paris 20','Pau','Perpignan','Pessac','Plaisir','Poissy','Poitiers','Pontault-Combault','Puteaux','Quimper','Reims','Rennes','Rezé','Roanne','Romans-sur-Isère','Rosny-sous-Bois','Roubaix','Rouen','Rueil-Malmaison','Saint-André','Saint-Benoît','Saint-Brieuc','Saint-Chamond','Saint-Denis','Saint-Gall','Saint-Germain-en-Laye','Saint-Herblain','Saint-Joseph','Saint-Laurent-du-Maroni','Saint-Laurent-du-Var','Saint-Louis','Saint-Malo','Saint-Martin','Saint-Martin-d\'Hères','Saint-Maur-des-Fossés','Saint-Nazaire','Saint-Ouen','Saint-Paul','Saint-Pierre','Saint-Priest','Saint-Quentin','Saint-Raphaël','Saint-Étienne','Sainte-Geneviève-des-Bois','Sainte-Marie','Salon-de-Provence','Sarcelles','Sartrouville','Savigny-sur-Orge','Schaerbeek','Schiltigheim','Sevran','Six-Fours-les-Plages','Sotteville-lès-Rouen','Stains','Strasbourg','Suresnes','Sète','Talence','Tarbes','Thionville','Thonon-les-Bains','Toulon','Toulouse','Tourcoing','Tours','Tremblay-en-France','Troyes','Uccle','Valence','Valenciennes','Vandœuvre-lès-Nancy','Vannes','Vaulx-en-Velin','Versailles','Villefranche-sur-Saône','Villejuif','Villeneuve-Saint-Georges','Villeneuve-d\'Ascq','Villepinte','Villeurbanne','Vincennes','Viry-Châtillon','Vitrolles','Vitry-sur-Seine','Vénissieux','Wattrelos','Winterthour','Zurich','Echirolles','Epinal','Epinay-sur-Seine','Evreux','Evry');

// This is the function that refreshes the list after a keypress.
// The maximum number to show can be limited to improve performance with
// huge lists (1000s of entries).
// The function clears the list, and then does a linear search through the
// globally defined array and adds the matches back to the list.
function handleKeyUp(maxNumToShow)
{
    var selectObj, textObj, functionListLength;
    var i, searchPattern, numShown;

    // Set references to the form elements
    selectObj = document.forms[2].functionselect;
    textObj = document.forms[2].localisation;
    
    selectObj.style.visibility = 'visible';
    selectObj.style.height = 'auto';
    selectObj.style.zIndex = '2';
    
    

    // Remember the function list length for loop speedup
    functionListLength = functionlist.length;

    // Set the search pattern depending
        searchPattern = "^"+textObj.value;


    // Create a regulare expression
    re = new RegExp(searchPattern,"gi");
    // Clear the options list
    selectObj.length = 0;

    // Loop through the array and re-add matching options
    numShown = 0;
    for(i = 0; i < functionListLength; i++)
    {
        if(functionlist[i].search(re) != -1)
        {
            selectObj[numShown] = new Option(functionlist[i],"");
            numShown++;
        }
        // Stop when the number to show is reached
        if(numShown == maxNumToShow)
        {
            break;
        }
    }
    // When options list whittled to one, select that entry
    if(selectObj.length == 1)
    {
        selectObj.options[0].selected = true;
    }
}

// this function gets the selected value and loads the appropriate
// php reference page in the display frame
// it can be modified to perform whatever action is needed, or nothing
function handleSelectClick()
{
    selectObj = document.forms[2].functionselect;
    textObj = document.forms[2].localisation;

    selectedValue = selectObj.options[selectObj.selectedIndex].text;

    textObj.value = selectedValue
    selectObj.style.visibility = 'hidden';
    selectObj.style.height = '0';
    selectObj.style.zIndex = '0';
}



