var ACTION_VALIDE_OU = appliVedPath+'/commun/ValiderOu.do';

var ua		= navigator.userAgent;
var opera	= /opera [56789]|opera\/[56789]/i.test(ua);
var ie = !opera && /msie [56789]/i.test(ua);
var ie6 = ie && /msie 6/i.test(ua);

var validateFormOu = false;
var idForm;
var idDivAmbiguite;
var idDivAlerte;
var idFieldOu;
var insertIFrame = false;


//defaultOu = valeur par défaut du champ ou à ne pas prendre en compte pour la validation
function validationOu(defaultOu,pIdForm,pidDivAmbiguite,pIdDivAlerte,pIdFieldOu,messageAlerte,pInsertIFrame) {
	insertIFrame = pInsertIFrame;
	if (($("#"+pIdForm+" > input[name=idLocalite]").val() != '') && ($("#"+pIdFieldOu).val() != defaultOu) && ($("#"+pIdFieldOu).val() != '')){
		return true;
	}
	idForm = pIdForm;
	idDivAmbiguite = pidDivAmbiguite;
	idDivAlerte = pIdDivAlerte;
	idFieldOu = pIdFieldOu;
	
	//on modifie la valeur du champ "ou" à vide si c'est la valeur par défaut
	if( ($("#"+pIdFieldOu).val().replace(/^\s+/g,'').replace(/\s+$/g,'') == "") || ($("#"+pIdFieldOu).val() == defaultOu)){
		//l'utilisateur n'a rien saisi		
		$("#"+pIdForm+" > #"+pIdDivAlerte+" p:first").html(unescape(messageAlerte));
		$("#"+pIdDivAlerte).show();
		return false;
	}else{
		//appel ajax pour verifier la validite du libelle de localite et afficher le cas echeant 
		//la liste des localites correspondantes	
		var actionAjax = ACTION_VALIDE_OU+"?ou="+$("#"+pIdFieldOu).val()+"&idForm="+idForm+"&idDivAmbiguite="+idDivAmbiguite;
		
		if (ie6) {
			//TRAITEMENT_RETOUR est défini dans le fichier ajax.js (static commun)
			TRAITEMENT_RETOUR = valideSaisieOu;
			appelAjax(actionAjax,"", true); // appel synchrone
		}
		else {
			TRAITEMENT_RETOUR = null;
			appelAjax(actionAjax,"", true); // appel synchrone
			valideSaisieOu();
		}
	}
	return validateFormOu;
	
}

//Fonction appelé par retour ajax lorsque : 
//	- La reponse a ete recue (readyState == 4)
//  - Le format est celui attendu (Flux XML -> ajax.responseXML est non null)
function valideSaisieOu(){
	if (ajax.readyState == '4'){
		if (ajax.responseXML && ajax.responseXML.childNodes.length > 0){
			// Recuperation de l'element racine "isValide"
			var statut = ajax.responseXML.getElementsByTagName("statut");
			if (statut && statut[0]) {
				var value =	statut[0].getAttribute("value");
				if(value=="OK")
				{
					//la localite est valide, submit du formulaire avec l'idLocalite recupere				
					var lieu = statut[0].getElementsByTagName("lieu");
					var codeLieu = lieu[0].getAttribute("codeLieu");
					$("#"+idForm+" > input[name=idLocalite]").val(codeLieu);
					validateFormOu = true;
				}
				else if (value =="EXCEPTION"){
					var message = statut[0].getElementsByTagName("message");
					var messageValue = message[0].getAttribute("value");
					$("#"+idDivAlerte+" p:first").html(messageValue);
					$("#"+idDivAlerte).show();
					validateFormOu = false;
				}else{
					//la localite n'est pas valide, affichage du message retourne dans le xml
					$("#"+idDivAlerte+" p:first").html("La zone géographique n'est pas valide");
					$("#"+idDivAlerte).show();
					validateFormOu = false;
				}
			}
		}else if(ajax.responseText){
			$("#"+idDivAmbiguite).html(ajax.responseText);
			$("#"+idDivAmbiguite).show();
			
			if (insertIFrame){
				$("#"+idDivAmbiguite).after("<iframe id='iframe_"+idDivAmbiguite+"' frameborder='0' scrolling='no'>&nbsp;</iframe>");
				$("#iframe_"+idDivAmbiguite).css("height",$("#"+idDivAmbiguite).height());
				$("#iframe_"+idDivAmbiguite).css("width",$("#"+idDivAmbiguite).width());
				$("#iframe_"+idDivAmbiguite).show();
			}
			validateFormOu = false;
		}
	}
}

function setIdLieu(pIdDivAmbiguite,pIdForm,pIdLieu,pLibelleLieu){
	$("#"+pIdForm+" > input[name=idLocalite]").val(pIdLieu);
	$("#"+idFieldOu).val(unescape(pLibelleLieu));	
	$("#"+pIdDivAmbiguite).hide();
	
	var form = document.getElementById(pIdForm);
	if (form.onsubmit())
	{
 		$("#"+pIdForm).submit();
 	}
}

function fermerAmbiguiteOu(pIdDivAmbiguite)
{
	$("#"+pIdDivAmbiguite).empty();
	$("#"+pIdDivAmbiguite).hide();
	$("#iframe_"+idDivAmbiguite).remove();
	return false;
}

function viderIdLocalite(pIdForm,pIdOu){
	$("#"+pIdForm+" > input[name=idLocalite]").val("");
	$("#"+pIdOu).val("");
}
