//Retourne l'objet permettant de faire de l'AJAX en fonction du browser
function getXmlHttpObject(handler){
	var objXMLHttp=null;
	if (window.XMLHttpRequest){// Firefox et autres
		objXMLHttp=new XMLHttpRequest();
	}else if (window.ActiveXObject){// Internet Explorer 
		try{
			objXMLHttp=new ActiveXObject("Msxml2.XMLHTTP") //For IE>=6
		}catch(ex1){
			try{
				objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP") //For IE5.5
			}catch(ex2){
				objXMLHttp=null;
			}
		}
	}
	return objXMLHttp;
}

//Ajoute un synonyme à l'unité génétique côté serveur
function ajoutSynonym(indexList){
//	var url = "squelette1/php/fonctions/synonym_gu.php?add="+indexList;
//	xmlHttp=getXmlHttpObject();
//	if (xmlHttp==null){
//		alert ("Browser does not support HTTP Request");
//		return;
//	}
//	xmlHttp.onreadystatechange = new Function("ajoutSynonymClient("+indexList+");");
//	xmlHttp.open("POST",url,true);
//	xmlHttp.send(url);
	ajoutSynonymClient(indexList);
}

//Supprime un synonyme associé à l'unité génétique côté serveur
function supprimeSynonym(indexList){
//	var url = "squelette1/php/fonctions/synonym_gu.php?remove="+indexList;
//	xmlHttp=getXmlHttpObject();
//	if (xmlHttp==null){
//		alert ("Browser does not support HTTP Request");
//		return;
//	}
//	xmlHttp.onreadystatechange = new Function("supprimeSynonymClient("+indexList+");");
//	xmlHttp.open("POST",url,true);
//	xmlHttp.send(url);
	supprimeSynonymClient(indexList);
}

//Ajoute un synonyme à l'unité génétique côté client
function ajoutSynonymClient(indexList){
//	if (xmlHttp.readyState==4 || xmlHttp.readyState=='complete'){
		var tableCadre = document.getElementById('cadreSyn');
		var lignes = tableCadre.getElementsByTagName('tr');
		var tr = document.createElement('tr');
		var td1 = document.createElement('th');
		var td2 = document.createElement('th');
		var td3 = document.createElement('td');
		var td4 = document.createElement('th');
		var td5 = document.createElement('td');
		var td6 = document.createElement('td');
		var td7 = document.createElement('td');
		var boutonPlus = document.createElement('input');
		var boutonMoins = document.createElement('input');
		var inputNat = document.createElement('input');
		var selectPays = document.createElement('select');
		var indiceMoins = lignes.length;
		var indicePlus = lignes.length+1;
		var textSyn = document.createTextNode('Synonym '+indicePlus);
		var textPays = document.createTextNode('Country');
		var textNat = document.createTextNode('National ID');
		// Construction de la ligne
		td1.align = 'right';
		td1.className = 'intitule';
		td2.align = 'right';
		td2.className = 'intitule2';
		td4.align = 'right';
		td4.className = 'intitule2';
		boutonMoins.type = 'button';
		boutonMoins.value = '-';
		boutonMoins.title = 'Remove this synonym';
		boutonMoins.onclick = new Function("supprimeSynonym("+indiceMoins+");");
		boutonPlus.type = 'button';
		boutonPlus.value = '+';
		boutonPlus.title = 'Add a new synonym';
		boutonPlus.onclick = new Function("ajoutSynonym("+indicePlus+");");
		inputNat.type = 'text';
		inputNat.size = 20;
		inputNat.id = 'synnational'+lignes.length;
		inputNat.name = 'synnats['+lignes.length+']';
		// Assemblage du select
		selectPays.id = 'syncountry'+lignes.length;
		selectPays.name = 'syncous['+lignes.length+']';
		var pays = document.getElementById('idpays');
		var optionPays = document.createElement('option');
		optionPays.value = '';
		optionPays.text = '-';
		try	{
			selectPays.add(optionPays,null);
		} catch(ex) {// IE only
			selectPays.add(optionPays);
		}
		for (numpays = 0 ; numpays < pays.length ; numpays++) {
			optionPays = document.createElement('option');
			optionPays.value = pays.options[numpays].value;
			optionPays.text = pays.options[numpays].text;
			try	{
				selectPays.add(optionPays,null);
			} catch(ex) {// IE only
				selectPays.add(optionPays);
			}
		}
		// Assemblage du code HTML
		td1.appendChild(textSyn);
		td2.appendChild(textPays);
		td3.appendChild(selectPays);
		td4.appendChild(textNat);
		td5.appendChild(inputNat);
		td6.appendChild(boutonMoins);
		td7.appendChild(boutonPlus);
		tr.appendChild(td1);
		tr.appendChild(td2);
		tr.appendChild(td3);
		tr.appendChild(td4);
		tr.appendChild(td5);
		tr.appendChild(td6);
		tr.appendChild(td7);
		tableCadre.appendChild(tr);
		// On décale les valeurs intercalées
		for (num = lignes.length - 1 ; num > indexList ; num--) {
			document.getElementById('synnational'+num).value = document.getElementById('synnational'+(num-1)).value;
			document.getElementById('syncountry'+num).value = document.getElementById('syncountry'+(num-1)).value;
		}
		document.getElementById('synnational'+indexList).value = '';
		document.getElementById('syncountry'+indexList).value = '';
//	}
}

//Supprime un synonyme de l'unité génétique côté client
function supprimeSynonymClient(indexList){
//	if (xmlHttp.readyState==4 || xmlHttp.readyState=='complete'){
		var tableCadre = document.getElementById('cadreSyn');
		var lignes = tableCadre.getElementsByTagName('tr');
		// S'il ne reste qu'un élément, on réinitialise juste la ligne
		if(lignes.length == 1){
			document.getElementById('synnational0').value = '';
			document.getElementById('syncountry0').value = '';
		} else {
			// On décale les valeurs intercalées
			for (var num = indexList ; num < lignes.length - 1 ; num++) {
				document.getElementById('synnational'+num).value = document.getElementById('synnational'+(num+1)).value;
				document.getElementById('syncountry'+num).value = document.getElementById('syncountry'+(num+1)).value;
			}
			// On efface la ligne
			tableCadre.removeChild(lignes[lignes.length-1]);
		}
//	}
}
