// création de l'objet Ajax
var http;

if(window.XMLHttpRequest)
   http = new XMLHttpRequest();
else if(window.ActiveXObject){
   try {
		http = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		http = new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function recup_liste(e, type) {
	var target = e.target || e.srcElement;
	var sel = document.getElementById(target.name+"_select");
	var txt = document.getElementById(target.name);
	var nb_el = sel.options.length;
	var selIndex = sel.selectedIndex;
	if(type=='saisie')
		document.addRsc.valide.value = 0;
	if(type=='saisie_geo')
		document.addRsc.valide_geo.value = 0;
	if (!txt.value){
		if(type=='saisie' && txt.name!='completion_saisie1' && (document.getElementById('completion_saisie1').value !='' || document.getElementById('completion_saisie2').value !='' || document.getElementById('completion_saisie3').value !='' || document.getElementById('completion_saisie4').value !='' || document.getElementById('completion_saisie5').value !=''))
			document.addRsc.valide.value = 1;
		if(type=='saisie_geo' && txt.name!='completion_saisie_geo1' && (document.getElementById('completion_saisie_geo1').value !='' || document.getElementById('completion_saisie_geo2').value !='' || document.getElementById('completion_saisie_geo3').value !='' || document.getElementById('completion_saisie_geo4').value !='' || document.getElementById('completion_saisie_geo5').value !=''))
			document.addRsc.valide_geo.value = 1;
		sel.style.display = 'none';
	}
	else if(e.keyCode == 40 && nb_el) { // fleche bas
		if (selIndex < sel.options.length - 1)
			sel.selectedIndex = selIndex + 1;
	}
	else if(e.keyCode == 38 && nb_el) { // fleche haut
		if (selIndex > 0)
			sel.selectedIndex = selIndex - 1;
	}
	else if(e.keyCode == 13 && nb_el) { // entrée
		txt.value = sel.options[selIndex].value;
		sel.style.display = 'none';
	}
	else {
		if (txt.value.length >= 3){
			if(type=='geo' || type=='saisie_geo'){
				http.open("GET", "/extension/septentrion/design/septentrion/php/liste_thesaurus.php?geo="+escape(txt.value), true);
			}else{
				http.open("GET", "/extension/septentrion/design/septentrion/php/liste_thesaurus.php?val="+escape(txt.value), true);
			}
			http.onreadystatechange = function()
				{
					if (http.readyState== 4 && http.status==200)
					{
						var liste = eval('(' + http.responseText + ')'); // [id1,id2, ...]
						if(liste.length>20){
							sel.attributes['size'].value=20;
						}else{
							sel.attributes['size'].value = liste.length;
						}

						// on vide le select
						while(sel.options.length > 0)
							sel.options[0] = null

						// on rempli avec les nouveaux
						for(i=0 ; i<liste.length ; i++)
							sel.options[sel.options.length] = new Option(liste[i].toLowerCase(),liste[i]);
						if(sel.options.length){
							sel.style.display = 'block';
						}
						else
							sel.style.display = 'none';
					}
				}
			http.send(null);
		}
	}
}

function recup_liste_click(type, txt)
{
	var txt = document.getElementById(txt.name);
	var sel = document.getElementById(txt.name+"_select");
	txt.value = sel.options[sel.selectedIndex].value;
	if(type=='geo'){
		document.mediaSearch2.commune.value = txt.value;
	}else if(type=='saisie'){
		document.addRsc.valide.value = 1;
		if(document.addRsc.descripteur.value==''){
			document.addRsc.descripteur.value = sel.options[sel.selectedIndex].value;
		}else{
			document.addRsc.descripteur.value = document.addRsc.descripteur.value + '#' + sel.options[sel.selectedIndex].value;
		}
		if(txt.name.substring(txt.name.length-1,txt.name.length)!='5')
			document.getElementById((txt.name.substring(0,txt.name.length-1))+(parseInt(txt.name.substring(txt.name.length-1,txt.name.length))+1)).disabled=false;
	}else if(type=='saisie_geo'){
		document.addRsc.valide_geo.value = 1;
		if(document.addRsc.lieu_geographique.value==''){
			document.addRsc.lieu_geographique.value = sel.options[sel.selectedIndex].value;
		}else{
			document.addRsc.lieu_geographique.value = document.addRsc.lieu_geographique.value + '#' + sel.options[sel.selectedIndex].value;
		}
		if(txt.name.substring(txt.name.length-1,txt.name.length)!='5')
			document.getElementById((txt.name.substring(0,txt.name.length-1))+(parseInt(txt.name.substring(txt.name.length-1,txt.name.length))+1)).disabled=false;
	}else{
		document.mediaSearch2.vocabulaire_specifique.value = txt.value;
		http.open("GET", "/extension/septentrion/design/septentrion/php/liste_thesaurus.php?affiner="+escape(txt.value), true);
		http.onreadystatechange = handleHttpResponse_recup_affine;
		http.send(null);
	}
	sel.style.display = 'none';
}

function handleHttpResponse_recup_affine()
{
	if (http.readyState == 4 && http.status==200)
	{
		var affines = eval('(' + http.responseText + ')');
		var listea = document.mediaSearch2.affiner;
		if(affines.length>0){
			if(affines[0]=='1'){
				document.getElementById('elargir').style.display='none';
			}else{
				document.getElementById('elargir').style.display='block';
			}
			listea.disabled=false;
			while(listea.options.length > 0)
				listea.options[0] = null
			listea.options[0]=new Option('','');
			for(i=1 ; i<affines.length ; i++)
				listea.options[listea.options.length] = new Option(affines[i],affines[i]);
			listea.attributes['size'].value = 1;
		}
		if(listea.length==1 && listea[0].value==""){
			listea.disabled=true;
		}
	}
}

function elargir()
{
	var txt = document.mediaSearch2.completion_text;
	http.open("GET", "/extension/septentrion/design/septentrion/php/liste_thesaurus.php?elargir="+escape(txt.value), true);
	http.onreadystatechange = handleHttpResponse_recup_elargir;
	http.send(null);
}

function handleHttpResponse_recup_elargir()
{
	if (http.readyState == 4 && http.status==200)
	{
		if(!http.responseText){
			document.getElementById('elargir').style.display='none';
		}else{
			var elargi = eval('(' + http.responseText + ')');
			var txt = document.mediaSearch2.completion_text;
			if(elargi[1]=='1')
				document.getElementById('elargir').style.display='none';
			txt.value=elargi[0];
			document.mediaSearch2.vocabulaire_specifique.value = elargi[0];
			var listea = document.mediaSearch2.affiner;
			listea.disabled=false;
			while(listea.options.length > 0)
				listea.options[0] = null
			listea.options[0]=new Option('','');
			for(i=2 ; i<elargi.length ; i++)
				listea.options[listea.options.length] = new Option(elargi[i],elargi[i]);
			listea.attributes['size'].value = 1;
		}
	}
}

function desactive_elargir()
{
	if(document.mediaSearch2.affiner.value!=''){
		document.getElementById('elargir').style.display='none';
		var sel = document.mediaSearch2.affiner;
		document.mediaSearch2.vocabulaire_specifique.value = sel.options[sel.selectedIndex].value;
	}else{
		document.getElementById('elargir').style.display='block';
		var sel = document.mediaSearch2.completion_text_select;
		document.mediaSearch2.vocabulaire_specifique.value = sel.options[sel.selectedIndex].value;
	}
}
