/*CONFIG*/

/*
1. Placer les 2 scripts (makeListingVilles.js & villes.js) dans le repertoire désiré
2. Appeller le script dans la page où lister les villes
	ex: <script src="../web/makeListingVilles.js"></script>
3. Ajouter un champ hidden au formulaire
	<input type="hidden" name="charge" value="0" />
4. Syntaxe du champ ville :
	<input type="text" name="ville" id="ville" onBlur="cacheDiv('divMenu')" onFocus="loadScript(this,event)" onKeyPress="this.value.toUpperCase();" onKeyUp="makeDiv(this,event)" size="30" autocomplete="off" />
	<div name="divMenu" id="divMenu">
		
	</div>	
*/

function creerObjet() {
    var obj;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        obj = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        obj = new XMLHttpRequest();
    }
    return obj;
}

var http = creerObjet();
var url = "../web/listerVillefranceByCpXml.do?cp=";
var nava = (document.layers);
var dom = (document.getElementById);
var iex = (document.all);
var initPaysWidth = 300;

function getVilleByCp(champ){
    var nomChamp = eval(champ);
    var valueUpper =  nomChamp.value.toUpperCase();
    cp = format(valueUpper);
    nomChamp.value = cp;
    if(cp.length>=2){
        http.open('get', '../web/listerVillefranceByCpXml.do?cp=' + escape(cp), true);
        http.onreadystatechange = reponse;
        http.send(null);
    }
}

var url = "../web/listerVillefranceXml.do?lettre=";
function getVille(champ){
    var nomChamp = eval(champ);
    var valueUpper =  nomChamp.value.toUpperCase();
    lettre = format(valueUpper);
    nomChamp.value = lettre;
    if(lettre.length>=2){
        http.open('get', url + escape(lettre), true);
        http.onreadystatechange = reponse;
        http.send(null);
    }
}

//avec param supp pour verifier que le pays est la france
function getVillePays(champ,pays){
    var nomChamp = eval(champ);
    var valueUpper =  nomChamp.value.toUpperCase();

    var nomPays = eval(pays);
    var valuePaysUpper =  nomPays.value.toUpperCase();
    if(valuePaysUpper=="FRANCE") {
        lettre = format(valueUpper);
        nomChamp.value = lettre;
        if(lettre.length>=2){
            http.open('get', url + escape(lettre), true);
            http.onreadystatechange = reponse;
            http.send(null);
        }    
    } else {
    	nomChamp.value =  nomChamp.value.toUpperCase();    
    }

}

function reponse() {
  if(http.readyState == 4){
        var texte = http.responseText;
        results = texte.split("|");
        var contenu = "<table border=1 bordercolor=\"#cfcfcf\" width=205 align=left cellpadding=0 cellspacing=0><tr><td bordercolor=\"#ffffff\">";
        contenu += "<table border=0 width=\"100%\" align=left cellpadding=0 cellspacing=0>";

        for(v=0;v<results.length;v++) {
            contenu += "<tr id=\"tr" + v + "\" name=\"tr" + v + "\" bordercolor=\"#ffffff\" style=\"cursor:default\"><td id=\"td" + v + "\" name=\"td" + v + "\" class=\"ligneDivOff\" onMouseDown=\"villeSelectByClick(this);\" onMouseOver=\"this.className='ligneDivOn';\" onMouseOut=\"this.className='ligneDivOff';\">" + results[v].toUpperCase() + "</td></tr>\n";
        }
        contenu += "</table></td></tr></table>";
			if(results.length>0) {
				apparDiv(contenu,'divMenu');		
			} else {
				cacheDiv('divMenu');
			}
   }
}
function format(lettre){
    lettre = lettre.toUpperCase();
    results = lettre.split(" ");
    var newLettre = "";
    for(i=0 ; i<results.length ; i++){
        newLettre += results[i];
            if(i!=(results.length-1)){
                newLettre += "-";
            }
    }
    newLettre = newLettre.replace("ST-","SAINT-");
    return newLettre;
}
function apparDiv(content,division) {

	if (nava) {
		divActive = document.division;
		divActive.document.write(content);
		divActive.document.close();
		
	
	} else if (dom) {
		document.getElementById(division).innerHTML = content;
		divActive = document.getElementById(division).style;
		
	} else {
		document.all(division).innerHTML = content;
		divActive = division.style;
	}
	divActive.visibility = "visible";

	//premiere ligne active
	if(document.getElementById('td0')!=null) {
		trZeroActive = document.getElementById('td0');
		trZeroActive.className = "ligneDivOn";		
	}
	
	//bug dû au select
	if(document.getElementById('pays')!=null) {
		champPays = document.getElementById('pays').style;
		initPaysWidth = champPays.width;
		champPays.width = 100;
	}
}

function cacheDiv(division) {
	if (nava) {
		divActive = document.division;
	} else if (dom) {
		divActive = document.getElementById(division).style;
		
	} else {
		divActive = division.style;
	}
	divActive.visibility = "hidden";
	
	//bug dû au select
	if(document.getElementById('pays')!=null) {
		champPays = document.getElementById('pays').style;
		var newWidth = 300;
		if(initPaysWidth!='' && initPaysWidth!=0) {
			newWidth = initPaysWidth;
		}
		champPays.width = newWidth;
	}
}

function villeSelect(ville) {
	champInput = document.getElementById('ville');
	champInput.value = w[ville];
	cacheDiv('divMenu');
}

function villeSelectByClick(tdActive) {
	nomVille = tdActive.innerHTML;
	villeSelectByEnter(nomVille);	
}

function villeSelectByEnter(nomVille) {
	champInput = document.getElementById('ville');
	champInput.value = nomVille;
	cacheDiv('divMenu');
}
