var urlSite = window.location.protocol + '//' + window.location.hostname;
var tabVilles = [];



function loadForSearch(mLettre,num)
{
	var xmlH = getHTTPObject();
	
	xmlH.open('GET', urlSite + '/Xml/GetVillesForJs.aspx?p=' + idPays + '&v=' + mLettre);
	xmlH.onreadystatechange = function() 
	{
		if (xmlH.readyState == 4 && xmlH.status == 200) {
			var contenu = xmlH.responseText;

			eval('tabVilles[mLettre] = ' + contenu);
			GetListeVilleOk(num);
		}
	}
	xmlH.send(null);
}

function loadForSearchMenu(mLettre,num)
{
	var xmlH = getHTTPObject();
	xmlH.open('GET', urlSite + '/Xml/GetVillesForJsMenu.aspx?p=' + idPays + '&v=' + mLettre);
	xmlH.onreadystatechange = function() 
	{
		if (xmlH.readyState == 4 && xmlH.status == 200) {
			var contenu = xmlH.responseText;
			//alert(contenu);

			eval('tabVilles[mLettre] = ' + contenu);
			GetListeVilleMenuOk(num);
		}
	}
	xmlH.send(null);
}

function GetListeVilleOk(num)
{
	document.getElementById('stateVille' + num).src="/library/img/bt_pics/pic_no.jpg";
	var mVille = document.getElementById('TbVille' + num).value;
	mVille = mVille.replace(" ", "");
	document.getElementById('TbVille' + num).value = mVille;
	
	if(mVille!='' && mVille.length>=3)
	{		
		var mLettre = mVille.substring(0,3);
		var htmlSearch = '';
		
		if(!tabVilles[mLettre])
		{
			loadForSearch(mLettre,num);
		}
		else
		{
			var nVille = 0;
			var findVille = false;
			var i=0;
			while(i<=tabVilles[mLettre].villes.length-1 && mVille.toLowerCase() == document.getElementById('TbVille' + num).value.toLowerCase())
			{
				if(tabVilles[mLettre].codepostal[i].substring(0,mVille.length).toLowerCase()==mVille.toLowerCase())
				{
					htmlSearch += '<a href="javascript:selectVille(\'' + num + '\',\'' + tabVilles[mLettre].codepostal[i] + '\',\'' + tabVilles[mLettre].villes[i].replace('\'','\\\'') + '\');">' + tabVilles[mLettre].villes[i] + ' (' + tabVilles[mLettre].codepostal[i] + ')</a><br>';
					nVille++;
				}
				if(tabVilles[mLettre].codepostal[i].toLowerCase()==mVille.toLowerCase())
				{
					document.getElementById('TbVille' + num).value = tabVilles[mLettre].codepostal[i];
					document.getElementById('stateVille' + num).src="/library/img/bt_pics/pic_ok.jpg";
					document.getElementById('SelectedVille' + num).value= tabVilles[mLettre].villes[i];
					findVille = true;
				}
				i++;
			}
			if(mVille.toLowerCase() == document.getElementById('TbVille' + num).value.toLowerCase())
			{
				if(nVille==1 && findVille)
				{
					document.getElementById('listeChoixVilleLi' + num).style.display='none';
					document.getElementById('listeChoixVille' + num).style.display='none';
					document.getElementById('listeChoixVille' + num).innerHTML = '';
				}
				else if(nVille==0)
				{
					document.getElementById('listeChoixVilleLi' + num).style.display='block';
					document.getElementById('listeChoixVille' + num).style.display='block';
					document.getElementById('listeChoixVille' + num).innerHTML = listeVilleVide;
				}
				else
				{
					document.getElementById('listeChoixVilleLi' + num).style.display='block';
					document.getElementById('listeChoixVille' + num).style.display='block';
					document.getElementById('listeChoixVille' + num).innerHTML = htmlSearch;
				}
			}
		}
	}
	else
	{
		document.getElementById('listeChoixVilleLi' + num).style.display='none';
		document.getElementById('listeChoixVille' + num).style.display='none';
		document.getElementById('listeChoixVille' + num).innerHTML = '';
	}
}


// num = toujours à 1 (encart pour pas avoir à tout modifier)
function GetListeVilleMenuOk(num)
{
	var wucPath = "WucHomeGauche1_WucHomeMenu1_";
		
	document.getElementById('stateVille' + num).src="/library/img/bt_pics/pic_no.jpg";
	document.getElementById('stateVille' + num).style.display='none';
	
	var mVille = document.getElementById(wucPath+ 'TbVille' + num).value;
	if(mVille != null) mVille = mVille.replace(" ", "");
		
	document.getElementById(wucPath+ 'TbVille' + num).value = mVille;
	
	if(mVille!='' && mVille.length>=3)
	{		
		var mLettre = mVille.substring(0,3);
		var htmlSearch = '';
		
		if(!tabVilles[mLettre])
		{
			loadForSearchMenu(mLettre,num);
		}
		else
		{
			document.getElementById('stateVille' + num).style.display='inline';
			
			var nVille = 0;
			var findVille = false;
			var i=0;
			while(i<=tabVilles[mLettre].villes.length-1 && mVille.toLowerCase() == document.getElementById(wucPath+ 'TbVille' + num).value.toLowerCase())
			{
			    // bd : Liste des villes voisine du code saisi
				if(tabVilles[mLettre].codepostal[i].substring(0,mVille.length).toLowerCase()==mVille.toLowerCase())
				{					
					htmlSearch += "<a href='" + tabVilles[mLettre].url[i] + "' >" + tabVilles[mLettre].villes[i] + "</a><br/>";
					nVille++;
				}
				
				//bd : ville correspondant au code postal tapé
				
				if(tabVilles[mLettre].codepostal[i].toLowerCase() == mVille.toLowerCase())
				{
					//document.getElementById(wucPath+ 'TbVille' + num).value = tabVilles[mLettre].codepostal[i];
					document.getElementById('stateVille' + num).src="/library/img/bt_pics/pic_ok.jpg";
					//document.getElementById('SelectedVille' + num).value= tabVilles[mLettre].villes[i];
					findVille = true;
					
				}
				
				i++;
			}
			
			
		
			if(mVille.toLowerCase() == document.getElementById(wucPath+ 'TbVille' + num).value.toLowerCase())
			{
				/*if(nVille==1 && findVille)
				{
					document.getElementById('listeChoixVilleLi' + num).style.display='none';
					document.getElementById('listeChoixVille' + num).style.display='none';
					document.getElementById('listeChoixVille' + num).innerHTML = '';
				}
				else*/ if(nVille==0)
				{
					document.getElementById('listeChoixVilleLi' + num).style.display='block';
					document.getElementById('listeChoixVille' + num).style.display='block';
					document.getElementById('listeChoixVille' + num).innerHTML = listeVilleVide;
				}
				else
				{
					document.getElementById('listeChoixVilleLi' + num).style.display='block';
					document.getElementById('listeChoixVille' + num).style.display='block';
					document.getElementById('listeChoixVille' + num).innerHTML = htmlSearch;
				}
			}
		}
	}
	else
	{
		document.getElementById('listeChoixVilleLi' + num).style.display='none';
		document.getElementById('listeChoixVille' + num).style.display='none';
		document.getElementById('listeChoixVille' + num).innerHTML = '';
	}
}


function selectVille(num,codepostal,ville)
{
	if(codepostal != '' && ville != '')
	{
		document.getElementById('SelectedVille' + num).value= ville;
		document.getElementById('TbVille' + num).value=codepostal;
		document.getElementById('stateVille' + num).src="/library/img/bt_pics/pic_ok.jpg";
		document.getElementById('listeChoixVilleLi' + num).style.display='none';
		document.getElementById('listeChoixVille' + num).style.display='none';
		document.getElementById('listeChoixVille' + num).innerHTML = '';
	}
}

function selectVilleMenu(idLocation,ville)
{
	if(codepostal != '' && ville != '')
	{
		document.getElementById('SelectedVille1').value= ville;
		document.getElementById('TbVille1').value=codepostal;
		document.getElementById('stateVille').src="/library/img/bt_pics/pic_ok.jpg";
		document.getElementById('listeChoixVilleLi1').style.display='none';
		document.getElementById('listeChoixVille1').style.display='none';
		document.getElementById('listeChoixVille1').innerHTML = '';
	}
}

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
        xmlhttp = false;
        }
      }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
      } catch (e) {
      xmlhttp = false;
      }
    }
  return xmlhttp;
  }
  
var appelGetInfo = 0;
var xhr 
//Appel Ajax avec message d'attente
function GetInfo(mysource,cible)
{
	if(appelGetInfo==0)
	{
		appelGetInfo++;
		
		if(xhr)
		{
			xhr.onreadystatechange = function () {};
			xhr.abort();
			xhr = false;
		}
		xhr = null;
		xhr = getHTTPObject();
		
		xhr.open("GET", mysource);
		xhr.onreadystatechange = function() 
		{
			if (xhr.readyState == 4 && xhr.status == 200) {
				var contenu = xhr.responseText;
				cible.innerHTML=contenu;
				appelGetInfo--;
				xhr = null;
			}else
			if (xhr.readyState == 4) {
				appelGetInfo--;
				var contenu = xhr.responseText;
				cible.innerHTML='<div align="center"><br>Une erreur s\'est produite !</div><br>' + contenu;
				appelGetInfo--;
				xhr = null;
				}
			else
				cible.innerHTML='<div align="center"><br><br><br><br>Veuillez patienter...</div>';
		}
		xhr.send(null);
	}
}
