/**********************************************/
/*	fonction javascript de Garrod webmaster   */
/**********************************************/

<!-- masque pour les anciens navigateurs; dommage pas d'ajax alors! ;-)

//fonction de construction de l'objet XMLHttpRequest
function newXMLHttpRequest(){
	if ((typeof XMLHttpRequest != "undefined")&&( typeof XMLHttpRequest != "non defini")){
			return new XMLHttpRequest();
	}else if (window.ActiveXObject){
		var aVersions = ["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp","Microsoft.XmlHttp"];
		for (var i = 0; i< aVersions.length; i++){
			try{
				var objetXMLHttp = new ActiveObject(aVersions[i]);
				return objetXMLHttp;
			}catch (Erreur){
				//tant pis!
			}
		}
	}
	throw new Error("impossible de créer un objet XMLHttp.");
}

//-----------------fonction pour l envoi des données du formulaire par XMLHttpRequest----------------//
// fonction du bouton submit du fomulaire qui envoie les données sur le serveur
function gSendToDB(idForm,methodeSubmit,selecteur,nbreDeBalise){
    var oForm = document.getElementById(idForm);
	var sBody = getRequestBody(oForm,nbreDeBalise);
	var sendXmlData=newXMLHttpRequest();
	sendXmlData.open(methodeSubmit, oForm.action, true);
	sendXmlData.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	sendXmlData.onreadystatechange=function(){
		if(sendXmlData.readyState==4 && sendXmlData.status ==200){
			switch(selecteur){
				case 1: displayResponse(sendXmlData.responseText);
						break;
				case 2: displayInfo(sendXmlData,"newpatineur");
						break;
			}
		}
	}
sendXmlData.send(sBody);	
}

// fonction du bouton submit du fomulaire d'ajout de patineur qui envoie les données sur le serveur
// meme fonction que la precedente...A OPTIMISER
function gSendToDBBis(idForm){
    var oForm = document.getElementById(idForm);
	var sBody = getRequestBodyPat(oForm);
	var sendXmlData=newXMLHttpRequest();
	sendXmlData.open("post", oForm.action, true);
	sendXmlData.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	sendXmlData.onreadystatechange=function(){
		if(sendXmlData.readyState==4 && sendXmlData.status ==200){
			displayInfo(sendXmlData,"newpatineur");
			//displayResponse(sendXmlData.responseText);
		}
	}
sendXmlData.send(sBody);	
}

// fonction d affichage du résultat de la transmission du formulaire, declenché par onreadystatechange
function displayResponse(message){
	var divStatus = document.getElementById("divStatus");
	divStatus.innerHTML = message;
} 

// fonction qui recupère les données du formulaire et formate les données pour l'envoi
function getRequestBody(oForm,nbreDeBalise){
	var aParams = new Array();
	//var sParam = encodeURIComponent(nombre_pat);
	//sParam+="=";
	//sParam+= encodeURIComponent(nbreDeBalise);
	//aParams.push(sParam);
	/*for( var i = 0; i< nbreDeBalise+4;i++){
		var sParam = encodeURIComponent(oForm.elements[i].name);
		sParam+="=";
		sParam+= encodeURIComponent(oForm.elements[i].value);
		aParams.push(sParam);
	}*/
	var type_compet = document.getElementById('type_compet');
	var sParam = encodeURIComponent(type_compet.id);
	sParam+="=";
	sParam+= encodeURIComponent(type_compet.value);
	aParams.push(sParam);
	var compet_result = document.getElementById('compet_result');
	var sParam = encodeURIComponent(compet_result.id);
	sParam+="=";
	sParam+= encodeURIComponent(compet_result.value);
	aParams.push(sParam);
	var categorie_result = document.getElementById('categorie_result');
	var sParam = encodeURIComponent(categorie_result.id);
	sParam+="=";
	sParam+= encodeURIComponent(categorie_result.value);
	aParams.push(sParam);
	var nombre_pat = document.getElementById('nombre_pat');
	var sParam = encodeURIComponent(nombre_pat.id);
	sParam+="=";
	sParam+= encodeURIComponent(nombre_pat.value);
	aParams.push(sParam);
	
	var nombreDeLigne = 2 // lorsqu'on n'est pas dans le formulaire de la page principale mais dans celle d ajout de patineur
	//var nombreDeLigne = document.getElementById("nombre_pat").value;
	var nombreDeLigne = nbreDeBalise;
	for( var j = 1; j<= nombreDeLigne;j++){
		var indice = "patin_result"+j;
		var baliseSelect = document.getElementById(indice);
		var valeurbalise = baliseSelect.options[baliseSelect.selectedIndex].value;
		var sParam = encodeURIComponent(baliseSelect.name);
		sParam+="=";
		sParam+= encodeURIComponent(valeurbalise);
		aParams.push(sParam);
		var tableauIndice = ["place","pointsC","pointsL"];
		for(i=0;i< tableauIndice.length;i++){
			var indice = tableauIndice[i]+j;
			var balise = document.getElementById(indice);
			var valeurbalise = balise.value;
			var sParam = encodeURIComponent(balise.name);
			sParam+="=";
			sParam+= encodeURIComponent(valeurbalise);
			aParams.push(sParam);			
		}
	}
	return aParams.join("&");
}

// fonction qui recupère les données du formulaire et formate les données pour l'envoi dédiée a l'ajout patineur...
function getRequestBodyPat(oForm){
	var aParams = new Array();
	for( var i = 0; i< oForm.elements.length;i++){
		var sParam = encodeURIComponent(oForm.elements[i].name);
		sParam+="=";
		sParam+= encodeURIComponent(oForm.elements[i].value);
		aParams.push(sParam);
	}
	return aParams.join("&");
}

//----------------fonction d'instanciation de la requête XMLHttprequest-----------------------------------------//
function createXMLHttp(method,url,async,type,nbreDeBalise){
        requestData=newXMLHttpRequest();
		requestData.open(method,url,async);
		requestData.onreadystatechange=function(){
			if(requestData.readyState==4 && requestData.status ==200){
				displayInfo(requestData,type,nbreDeBalise);
				//ajout du status...
			}
		}
		requestData.send("");
}

//--------------fonction qui va chercher les donnees sur le serveur par une requete asynchrone pour le nouveau patineur
function requestPatineurInfo() {
       createXMLHttp("GET","getDatapatineurData.php",true,"newpatineur");
}

//--------------fonction qui va chercher les donnees sur le serveur par une requete asynchrone pour la liste de compétition
function requestList(idBalise,idResultat,nbreDeBalise,idBalise2) {
			
            var baliseSelect = document.getElementById(idBalise);
			var sId = baliseSelect.options[baliseSelect.selectedIndex].value;
			baliseSelect.options[baliseSelect.selectedIndex].setAttribute("selected", 'selected');
			if (idBalise2){
            		var baliseSelect2 = document.getElementById(idBalise2);
					var sId2 = baliseSelect2.options[baliseSelect2.selectedIndex].value;
			}else{ var sId2 = "";idBalise2="noValue";}			
			if (sId!=0){
					createXMLHttp("GET","gRequestList.php?"+idBalise+"=" + sId +"&"+idBalise2+"="+ sId2,true,idResultat,nbreDeBalise);
			}else {document.getElementById("divStatus").innerHTML="Zut!";}
}

//--------------fonction qui recupere les données bruts du serveur, les place dans un tableau et appelle la fonction qui va afficher ce tableau
function displayInfo(sText,liste,nbreDeBalise) {
			
			var stringFromApache = sText.responseText;
            var tableauPatineurs = stringFromApache.split("@@");
			switch(liste){
				case "patineur": 	
										suggerer(tableauPatineurs,nbreDeBalise);
										break;
				case "newpatineur": 
										suggerer1(tableauPatineurs);
										break;
				case "compet_result": 
										suggerer2(tableauPatineurs,"compet_result",nbreDeBalise);
										break;
				//case "categorie_result": 	
										//suggerer2(tableauPatineurs,liste,nbreDeBalise);
										//break;
				//case "selCategorie": 	suggerer2(tableauPatineurs,liste,nbreDeBalise);
										//break;
				case "divResult":
										var divResponse=document.getElementById(liste);
										divResponse.innerHTML = tableauPatineurs;
										break;
				case "divResult2":
										var divResponse=document.getElementById(liste);
										divResponse.innerHTML = tableauPatineurs;
										break;
				default:				suggerer2(tableauPatineurs,liste,nbreDeBalise);
										break; 
			}
        }
//--------------fonction qui affiche/ajoute les données du tableau dans une balise celle du new pat <select>
function suggerer1(values){
			
			var nombreDeLigne = window.opener.document.getElementById("nombre_pat").value;
			for(n=1;n<=nombreDeLigne;n++){
				var idPatin= "patin_result"+n;
				var suggest = window.opener.document.getElementById(idPatin);
				option= window.opener.document.createElement("option");
				option.innerHTML=values[0];
				option.setAttribute("value", values[0]);
				suggest.appendChild(option);
				suggest.setAttribute("size", 1);
				suggest.style.display="block";
			}
			var divStatus=document.getElementById("divReponseAjax");
			//divStatus.innerHTML="Le patineur a été ajouté à la base et au formulaire de saisie de r&eacute;sultats";
			divStatus.style.display="block";
}

//--------------fonction qui affiche les données du tableau dans une balise <select> la aussi il faudra fusionner avec la precedente
function suggerer2(values,idPatin,nbreDeBalise){
				
			for(n=1;n<=nbreDeBalise;n++){
				var suggest = document.getElementById(idPatin);
				//supprimer les suggestionbs eventuelles
				suggest.innerHTML="";
				//Ajouter les nouvelles suggestions
				option= document.createElement("option"); //le premier element pour le choix...
				option.innerHTML="Choisir...";
				option.setAttribute("value", "0");
				suggest.appendChild(option);
				for(i=1;i<values.length;i++){
					option= document.createElement("option");
					var optionName = values[i].substring(0,values[i].indexOf("Id="));
					option.innerHTML = optionName;
					var optValue = values[i].substring(values[i].indexOf("Id=")+3);
					option.setAttribute("value", optValue);
					suggest.appendChild(option);
				}
				//Montrer toutes les options en liste déroulante
				suggest.setAttribute("size", 1);
				//Afficher
				suggest.style.display="block";
				//bouttonEffacer.style.display="inline";
			}
}
//--------------fonction qui affiche les données du tableau dans une balise <select>
function suggerer(values,nombreDeLigne){
			
			for(n=1;n<=nombreDeLigne;n++){
				var idPatin= "patin_result"+n;
				var suggest = document.getElementById(idPatin);
				//Ajouter les nouvelles suggestions
				option= document.createElement("option"); //le premier element pour le choix...
				option.innerHTML="Choisir...";
				option.setAttribute("value", "0");
				suggest.appendChild(option);
				for(i=1;i<values.length-1;i++){
					option= document.createElement("option");
					option.innerHTML=values[i];
					option.setAttribute("value", values[i]);
					suggest.appendChild(option);
				}
				//Montrer toutes les options en liste déroulante
				suggest.setAttribute("size", 1);
				//Afficher
				suggest.style.display="block";
				//bouttonEffacer.style.display="inline";
			}
}
//-->