/**
 * @author christophe
 */

 
var url = _ADDR_ + "moteur/lib/eligibilite/numericable/";


function f(id){
	return document.getElementById(id);	
}

function inputNumericable(input){

	if(input == 'adresse'){
		var selectAdresse = document.getElementById('voie').options[document.getElementById('voie').selectedIndex].text
		var adresse = document.getElementById('inputAdresse');
		adresse.value = selectAdresse;
		return true;
	}
	
	if(input == 'ville'){
		var selectVille = document.getElementById('ville').options[document.getElementById('ville').selectedIndex].text
		var ville = document.getElementById('inputVille');
		ville.value = selectVille;
		return true;
	}
}

//=============================
// affichage d'une gif attente
//=============================
function debut_attente()
{
  f('boite').style.display="none";
  f('attente').style.display="block";
}

function fin_attente()
{
  f('attente').style.display="none";
  f('boite').style.display="block";
}

function getAjax() {

    // Firefox et autres
    if(window.XMLHttpRequest) {
        ajax = new XMLHttpRequest();

    // Internet Explorer
    } else if(window.ActiveXObject) {
        try {
           	 ajax = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
           	 ajax = new ActiveXObject("Microsoft.XMLHTTP");
        }
    // Non supporté par le navigateur
    } else {
     		   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
     		   ajax = false;
    }
   
    return ajax;
}
//==========================================================================
//    En cas d'erreur du web service 
// (le code d'erreur deja affiché pour les autres operateurs est conservé)
//==========================================================================
 function erreur()
 {
 
	var code='<table width="540" cellspacing="0" cellpadding="0" border="0"><tr>';
		code+='<td class="nom_offre" colspan="3">';
		code+='<span style="font-weight: bold; font-size: 12px; color: #fff;" class="noir">Avertissement</span>';
		code+='</td></tr><tr><td class="nom_offre_descr" colspan="3">';
		code+='Service momentanément indisponible, veuillez réessayer ultérieurement';
		code+='</td></tr></table>';
		return code;				
}
//==================================================
// Retourne la liste communes d'un code postal
//=================================================		
function TestCodePostal(valeur)
{
	var ajax = getAjax();
	if ((new RegExp('^[0-9]{5}$')).test(valeur)) {
	
		debut_attente();
		// traitement	
		f("ligne2").style.display = "none";
		f("ligne3").style.display = "none";
		
		if (!ajax) 
			return false;
		var params = null;
		
		var adr = url + "TestCodePostal.php" + "?CodePostal=" + valeur;
		
		ajax.open("GET", adr, false);
		ajax.send(params);
		if (ajax.readyState == 4) {
		
			fin_attente();
			if (typeof(ajax.responseText) != "undefined" && ajax.responseText != "errcp" &&
			ajax.responseText != "errin") {
				f("ligne2").style.display = "block";
				f("ligne2").innerHTML = ajax.responseText;
				if (f("ville").options.length == 1) {
					TestCommune(f("ville").value);
				}
				
				
			}
			else {
				if (ajax.responseText == "errin") {
					//f("boite").innerHTML = erreur();
					alert('Attention, le code postal saisie n\'est pas valide ou non éligible');
					return false;
				}
				else {
					f("ligne2").style.display = "block";
					f("ligne2").innerHTML = "Le code postal fourni n'est pas valide";
					f("ligne3").style.display = "none";
					f("ligne4").style.display = "none";
				}
			}
		}
		
		
		ajax.onreadystatechange = function(){
			fin_attente();
			if (ajax.readyState == 4) {
				var tmp = ajax.responseText;
				
				if (typeof(tmp) != "undefined" && tmp != "errcp" && ajax.responseText != "errin") {
				
					f("ligne2").innerHTML = tmp;
					if (f("ville").options.length == 1) {
						TestCommune(f("ville").value);
					}
					else {
						if (ajax.responseText == "errin") {
							//f("boite").innerHTML = erreur();
							return false;
						}
						else {
							f("ligne2").innerHTML = "Le code postal fourni n'est pas valide";
							f("ligne3").style.display = "none";
							f("ligne4").style.display = "none";
							f("ligne2").style.display = "block";
						}
					}
				}
			}
		}
	}
	else {
		if (valeur.length == 5) {
			f("ligne2").innerHTML = "Le code postal fourni n'est pas valide";
		}
		else {
			f("ligne2").style.display = "none";
			f("ligne3").style.display = "none";
			f("ligne4").style.display = "none";
		}
	}
	
	
	
}	
//==================================================
// Retourne la liste des rues eligibles d'une commune
//=================================================	
function TestCommune(valeur){
	if ((new RegExp('^[0-9]+$')).test(valeur)) {
		debut_attente();
		var ajax = getAjax();
		if (!ajax) 
			return false;
		document.getElementById("ligne3").style.display = "block";
		// Traitement
		
		var adr = url + "TestCommune.php" + "?CodeInsee=" + valeur;
		ajax.open("GET", adr, false);
		ajax.send(null);
		if (ajax.readyState == 4) {
			fin_attente();
			//alert(ajax.responseText);	
			if (typeof(ajax.responseText) != "undefined" && ajax.responseText != "errcp" && ajax.responseText != "errin") {
				f("ligne3").innerHTML = ajax.responseText;
				f("ligne3").style.display = "block";
			}
			else {
			
				if (ajax.responseText == "errin") {
					//f("boite").innerHTML = erreur();
					return false;
				}
				else {				
					f("ligne3").innerHTML = "Paramétres incorrects"; //  code d'erreur 
					f("ligne4").style.display = "none";
				}
			}
			
			
		}
		else {
			f("ligne3").style.display = "none";
		}
		fin_attente();
		
	}
}
//===================================
//  traitement de la reponse ajax
//===================================

function reponse(reptxt, id){
	if (typeof(ajax.responseText) != "undefined" && ajax.responseText != "errcp" &&
	ajax.responseText != "errin") {
		f(id).innerHTML = ajax.responseText;
		f(id).style.display = "block";
		
	}
	else {
		if (ajax.responseText == "errin") {
			//f("boite").innerHTML = erreur();
			return false;
		}
		else {
			f(id).style.display = "block";
			f(id).innerHTML = "Paramétres incorrects"; //  code d'erreur 
			//f("ligne4").style.display = "none";
		}
	}
}

		
//=======================================
// Retourne la liste des numeros de rue
//======================================
function TestRue(valeur){
	//alert(valeur);
	//if ((new RegExp('^[A-Z0-9]+$')).test(valeur)) {
		
		if (f('ville') && f('voie')) {
			debut_attente();
			// traitement
			var ajax = getAjax();
			if (!ajax) 
				return false;
			var adr = url + "TestRue.php" + "?CodeInsee=" + encodeURI(f('ville').value) + "&CodeRIVOLI=" + encodeURI(f('voie').value);
			ajax.open("GET", adr, false);
			ajax.send(null);
			if (ajax.readyState == 4) {
				fin_attente();
				if (typeof(ajax.responseText) != "undefined" && ajax.responseText != "errcp" &&
				ajax.responseText != "errin") {
					//alert(ajax.responseText);
					f("ligne4").innerHTML = ajax.responseText;
					f("ligne4").style.display = "block";
				}
				else {
					if (ajax.responseText == "errin") {
						//f("boite").innerHTML = erreur();
						return false;
					}
					else {
						f("ligne4").innerHTML = "Paramétres incorrects"; //  code d'erreur  
					}
				}
			}
			
		}
		f("ligne4").style.display = "block";
	/* }else {
		f("ligne4").style.display = "none";
	}*/
	fin_attente();
}
//=======================================
// Test d'eligibilité d'un numeros de rue
//=======================================
function TestNumRue(valeur){
	// traitement
	debut_attente();
	if (f('ville') && f('voie')) {
		// traitement
		var ajax = getAjax();
		if (!ajax) 
			return false;
		
		var codepostal = encodeURI(f('codePostal').value);
		var ville = encodeURI(f('ville').value);
		var voie = encodeURI(f('voie').value);
		
		var adr = url + "TestLogement.php" + "?CodePostal=" + codepostal + "&CodeInsee=" + ville + "&CodeRIVOLI=" + voie + "&NumeroRue=" + encodeURI(valeur);
		ajax.open("GET", adr, false);
		ajax.send(null);
		if (ajax.readyState == 4) {
			//alert(ajax.responseText);	
			if (typeof(ajax.responseText) != "undefined" && ajax.responseText != "errcp" && ajax.responseText != "errin") {
				fin_attente();
				//alert(ajax.responseText);
				var tbl_res = ajax.responseText.split('=**=');
				//f("boite").innerHTML = tbl_res[0];
			}/*
			else {
				if (ajax.responseText == "errin") {
					f("boite").innerHTML = erreur();
				}
				else {
					f("ligne4").innerHTML = "Paramétres incorrects"; //  code d'erreur  
				}
			}*/
		}
		
		f("parametre").value = tbl_res[1];
	}
}

//=======================================
// Affichage Test d'eligibilité Numericable
//=======================================
function TestNumRueNumericable(valeur){
	// traitement
	//debut_attente();
	// traitement
	var ajax = getAjax();
	if (!ajax) 
		return false;

	var tbl_param = valeur.split('*|*');

	var adr = url + "TestLogement.php" + "?CodePostal=" + tbl_param[0] + "&CodeInsee=" + tbl_param[1] + "&CodeRIVOLI=" + tbl_param[3] + "&NumeroRue=" + tbl_param[2];
	ajax.open("GET", adr, false);
	ajax.send(null);
	if (ajax.readyState == 4) {
		//alert(ajax.responseText);	
		if (typeof(ajax.responseText) != "undefined" && ajax.responseText != "errcp" && ajax.responseText != "errin") {
			fin_attente();
			
			var tbl_res = ajax.responseText.split('=**=');
			f("boite").innerHTML = tbl_res[0];
		}
		else {
			if (ajax.responseText == "errin") {
				f("boite").innerHTML = erreur();
			}
			else {
				f("ligne4").innerHTML = "Paramétres incorrects"; //  code d'erreur  
			}
		}
	}
}

//=======================================
// Affichage Test d'eligibilité Darty
//=======================================
function TestNumRueDarty(valeur){
	// traitement
	//debut_attente();
	// traitement
	var ajax = getAjax();
	if (!ajax) 
		return false;

	var adr = url + "TestLogement2.php" + "?parametre=" + valeur;
	ajax.open("GET", adr, false);
	ajax.send(null);
	if (ajax.readyState == 4) {
		//alert(ajax.responseText);	
		if (typeof(ajax.responseText) != "undefined" && ajax.responseText != "errcp" && ajax.responseText != "errin") {
			//fin_attente();
			f("boite2").innerHTML = ajax.responseText;
		}
		else {
			if (ajax.responseText == "errin") {
				f("boite2").innerHTML = erreur();
			}
			else {
				f("ligne4").innerHTML = "Paramétres incorrects"; //  code d'erreur  
			}
		}
	}
}

//=======================================
// Test d'eligibilité d'un logement
//=======================================
function TestLogement(valeur){
	debut_attente();
	if ((new RegExp('^[0-9]+$')).test(valeur)) {
		f("ligne3").style.display = "block";
		var ajax = getAjax();
		if (!ajax) 
			return false;
		var adr = url + "TestLogement.php";
	}
	else {
		f("ligne3").style.display = "none";
		f("ligne4").style.display = "none";
	}
	fin_attente();
}


//=======================================
// Valide le formulaire
//=======================================
function validationTest(){
	if($('parametre').value != ''){
		var tbl_split = $('parametre').value.split('*|*');
		if(tbl_split.length != 9 ){
			return false;
		}
	} else {
		return false;
	}
	return true;
}
