﻿// il faut revoir des trucs sur le onfocus et onclick de calculer
// lorsqu'on quitte searchfor. On a pas tjs le meme comportement suivant
// les navigateurs. Le focus provoque un onclick sur IE ou Opera notammentF
// j'ai mis en retard sur le onfocus, mais cela n'arrange rien... je ne sais pas trop
// commment m'en tirer.

	var nb=0;
	var nbtrous=0;
	var depart=2;
	var departText=new Array("M","M","M","M","M","D","D","D","D","D");
	var departClass=new Array("noirs","blancs","jaunes","bleus","rouges","noirs","blancs","jaunes","bleus","rouges");
	var departs;
	var logo="-";
	var pub="-";
	
	var title=new Object();
	var parinput=new Object();var hcpinput=new Object();var leScoreinput=new Object();
	var dist=new Object();
	var time=new Object();
	var objXHR=new Object();var objXHR2=new Object();var objXHR3=new Object();var objXHR4=new Object();var objXHR5=new Object();
	var numerosgolf=new Object();var noms=new Object();var parcours=new Object();
			
	var compact=false;
	var linkRight='-';
	var linkLeft='-';

	function StatPub(){
		var ask="<infos>";
		objXHR4=createXMLHttp();
		objXHR4.open("post","statPub.php",false);
		objXHR4.setRequestHeader("Content-Type","text/xml");
		if(navigator.appName=='Netscape') objXHR4.overrideMimeType("text/xml");
		ask+="<golf>"+document.getElementById("Hnom").value+"<\/golf>";
		ask+="<pub>"+document.getElementById("pub").value+"<\/pub>";
		ask+="<index>"+(document.getElementById("index").value*10)+"<\/index>";
		var genre;
		if (depart<5){
			genre="homme";
		} else genre="femme";
		ask+="<genre>"+genre+"<\/genre><\/infos>";
		objXHR4.send(ask);
	};
	function pdfcarte(blackAndWhite){
		/* test sur les donnees */
		var testparAller=true;
		var testparRetour=true;
		var testhcpAller=true;
		var testhcpRetour=true;
		var testSSS=true;
		var testslope=true;
		for(i=0;i<9;i++) if (parinput[i].value=="") {testparAller=false;}
		for(i=10;i<18;i++) if (parinput[i].value=="") {testparRetour=false;}
		for(i=0;i<9;i++) if (hcpinput[i].value=="") testhcpAller=false;
		for(i=9;i<18;i++) if (hcpinput[i].value=="") testhcpRetour=false;
		
		var k=depart; /*while ((!departinput[k].checked)&&(k<10)) k++;*/
		if (SSSinput[k].value=="") testSSS=false;
		if (slopeinput[k].value=="") testslope=false;
		
		var notready="";
		if (((!testparAller)&&document.getElementById("aller").checked)||((!testparRetour)&&document.getElementById("retour").checked)) 
			notready+="Liste des Pars incomplète.\n";
		if (((!testhcpAller)&&document.getElementById("aller").checked)||((!testhcpRetour)&&document.getElementById("retour").checked)) 
			notready+="Liste des Coups Reçus incomplète. \n";
		
		if (!testslope) notready+="Quel est le Slope ?\n";
		if (!testSSS) notready+="Quel est le SSS ?\n";
		if ((!document.getElementById("aller").checked)&&(!document.getElementById("retour").checked))
			notready="Il faut  séléctionner au moins l'aller ou le retour !";
		
		if (notready!="") {alert("   DES DONNEES SONT MANQUANTES    \n ------------------------------------------ \n"+notready);} else {
		/* création du document XML =requete de calcul */
		var ask="<carte>";
		ask+="<black>"+blackAndWhite+"<\/black>";
		for(i=0;i<9;i++) ask+="<par>"+parinput[i].value+"<\/par>";
		for(i=10;i<19;i++) ask+="<par>"+parinput[i].value+"<\/par>";
		//ask+="\n";
		for(i=0;i<18;i++) ask+="<hcp>"+hcpinput[i].value+"<\/hcp>";
		//ask+="\n";
		for(i=0;i<9;i++) ask+="<score>"+leScoreinput[i].value+"<\/score>";
		for(i=10;i<19;i++) ask+="<score>"+leScoreinput[i].value+"<\/score>";
		//ask+="\n";
		ask+="<depart>"+depart+"<\/depart>";
		for(i=0;i<10;i++) ask+="<SSS>"+SSSinput[i].value+"<\/SSS>";
		for(i=0;i<10;i++) ask+="<slope>"+slopeinput[i].value+"<\/slope>";
		ask+="<SSJ>"+document.getElementById("SSJ").value+"<\/SSJ>";
		ask+="<index>"+document.getElementById("index").value+"<\/index>";
		ask+="<nbtrous>"+nbtrous+"<\/nbtrous>";
		ask+="<nomduterrain>"+document.getElementById("Hparcours").value+"<\/nomduterrain>";
		ask+="<nomdugolf>"+document.getElementById("Hnom").value+"<\/nomdugolf>";
		ask+="<aller>"+document.getElementById("aller").checked+"<\/aller>";
		ask+="<retour>"+document.getElementById("retour").checked+"<\/retour>";
		for (i=0;i<20;i++) for (k=0;k<5;k++){
				ask+="<dist>"+dist[k][i].getElementsByTagName("input")[0].value+"<\/dist>";
		}
		for (i=0;i<20;i++){
				ask+="<time>"+time[i].getElementsByTagName("input")[0].value+"<\/time>";
			};
		var joueur=document.getElementById("joueur");
		if (joueur.className=="init"){
			ask+="<joueur><\/joueur>";
		} else {
			ask+="<joueur>"+document.getElementById("joueur").value+"<\/joueur>";
		}
		var date=document.getElementById("date");
		if (date.className=="init"){
			ask+="<date><\/date>";
		} else {
			ask+="<date>"+document.getElementById("date").value+"<\/date>";
		}
		ask+="<logo>"+document.getElementById("logoGolf").value+"<\/logo>";
		ask+="<pub>"+document.getElementById("pub").value+"<\/pub>";
		ask+="<\/carte>";
		document.getElementById("pdfinfos").value=ask;
		document.getElementById("pdf").submit();
	}}
	function testdonnees(){
		var testparAller=true;
		var testparRetour=true;
		var testhcpAller=true;
		var testhcpRetour=true;
		var testSSS=true;
		var testslope=true;
		for(i=0;i<9;i++) if (parinput[i].value=="") {testparAller=false;}
		for(i=10;i<18;i++) if (parinput[i].value=="") {testparRetour=false;}
		for(i=0;i<9;i++) if (hcpinput[i].value=="") testhcpAller=false;
		for(i=9;i<18;i++) if (hcpinput[i].value=="") testhcpRetour=false;
		
		var k=depart; /*while ((!departinput[k].checked)&&(k<10)) k++;*/
		if (SSSinput[k].value=="") testSSS=false;
		if (slopeinput[k].value=="") testslope=false;
		
		var notready="";
		if (((!testparAller)&&document.getElementById("aller").checked)||((!testparRetour)&&document.getElementById("retour").checked)) 
			notready+="Liste des Pars incomplète.\n";
		if (((!testhcpAller)&&document.getElementById("aller").checked)||((!testhcpRetour)&&document.getElementById("retour").checked)) 
			notready+="Liste des Coups Reçus incomplète. \n";
		
		if (!testslope) notready+="Quel est le Slope ?\n";
		if (!testSSS) notready+="Quel est le SSS ?\n";
		if ((!document.getElementById("aller").checked)&&(!document.getElementById("retour").checked))
			notready="Il faut  séléctionner au moins l'aller ou le retour !";
		return notready;
		return notready;
	}	
	function displaycoups(){
		var x=document.getElementById("coupsRendus").getElementsByTagName("span");
		var y=document.getElementById("coupsRendus").getElementsByTagName("input");
		for(i=0;i<20;i++) {
			x[i].innerHTML=y[i].value;
		 }
	}
	function displayScoretot(){
		document.getElementById("scorealler").getElementsByTagName("span")[0].innerHTML=document.getElementById("scorealler").getElementsByTagName("input")[0].value;
		document.getElementById("scoreretour").getElementsByTagName("span")[0].innerHTML=document.getElementById("scoreretour").getElementsByTagName("input")[0].value;
	}
	function displayparallerretour(){
		document.getElementById("paraller").getElementsByTagName("span")[0].innerHTML=document.getElementById("paraller").getElementsByTagName("input")[0].value;
		document.getElementById("parretour").getElementsByTagName("span")[0].innerHTML=document.getElementById("parretour").getElementsByTagName("input")[0].value;
	};
	function afficheresult(bavard){
		if (objXHR3.readyState == 4 && objXHR3.status == 200){
			var resultat=objXHR3.responseXML;
			var xr=resultat.getElementsByTagName("par");
			if(resultat.getElementsByTagName("aucunjoue")[0].firstChild.nodeValue=="0"){
				document.getElementById("stableford").innerHTML=resultat.getElementsByTagName("stableford")[0].firstChild.nodeValue;
				document.getElementById("indexnew").innerHTML=resultat.getElementsByTagName("indexnew")[0].firstChild.nodeValue;
				document.getElementById("indexeq").innerHTML=resultat.getElementsByTagName("indexeq")[0].firstChild.nodeValue;/* Mise en transparence */
				if (bavard){
					document.body.style.backgroundColor="black";
					document.getElementById("white").setAttribute("class","transparent");
					document.getElementById("white").setAttribute("classname","transparent");
					setTimeout('document.body.style.backgroundColor="white";document.getElementById("white").setAttribute("class","");document.getElementById("white").setAttribute("classname","");',1500);
				}
				document.getElementById("resultats").style.visibility="visible";
			} else {
				document.getElementById("resultats").style.visibility="hidden";
			};
			var coupsRendus=document.getElementById("coupsRendus").getElementsByTagName("input");
			var tot=0;
			for(i=0;i<9;i++){
				coupsRendus[i].value=resultat.getElementsByTagName("couprendu")[i].firstChild.nodeValue;
				tot+=parseInt(resultat.getElementsByTagName("couprendu")[i].firstChild.nodeValue);
			}
			coupsRendus[9].value=tot;
			tot=0;
			for(i=9;i<18;i++){
				coupsRendus[i+1].value=resultat.getElementsByTagName("couprendu")[i].firstChild.nodeValue;
				tot+=parseInt(resultat.getElementsByTagName("couprendu")[i].firstChild.nodeValue);
			}
			coupsRendus[19].value=tot;
			displaycoups();
			
			tot=0;
			var num=true;
			var nonnul=false;
			for(i=0;i<9;i++){ 
				if (leScoreinput[i].value!="") nonnul=true;
				if (leScoreinput[i].value==""+parseInt(leScoreinput[i].value)) {
					tot+=parseInt(leScoreinput[i].value);
				} else num=false;
			}
			if(num) {
				document.getElementById("scorealler").getElementsByTagName("input")[0].value=tot;
			} else {
				if( nonnul) {
					document.getElementById("scorealler").getElementsByTagName("input")[0].value="X";
				} else
						document.getElementById("scorealler").getElementsByTagName("input")[0].value="";
			}
			tot=0;
			num=true;
			for(i=10;i<19;i++){ 
				if (leScoreinput[i].value!="") nonnul=true;
				if (leScoreinput[i].value==""+parseInt(leScoreinput[i].value)) {
					tot+=parseInt(leScoreinput[i].value);
				} else num=false;
			}
			if(num) {
				document.getElementById("scoreretour").getElementsByTagName("input")[0].value=tot;
			} else {
				if( nonnul) {
					document.getElementById("scoreretour").getElementsByTagName("input")[0].value="X";
				} else
						document.getElementById("scoreretour").getElementsByTagName("input")[0].value="";
			}
			displayScoretot();
	}
	}
	function calculer(bavard){
		/* test sur les donnees */
		notready=testdonnees();
		if ((notready!="")&&(bavard)) {
			alert("   DES DONNEES SONT MANQUANTES    \n ------------------------------------------ \n"+notready);
			document.getElementById("resultats").style.visibility="hidden";
		} else 
		if (notready!=""){
			var coupsRendus=document.getElementById("coupsRendus").getElementsByTagName("input");
			var coupsRendusSpan=document.getElementById("coupsRendus").getElementsByTagName("span");
			for(i=0;i<20;i++) {
				coupsRendus[i].value="";
				coupsRendusSpan.innerHTML="";
			}
			document.getElementById("resultats").style.visibility="hidden";
		}
		if (notready=="") {
		/* création du document XML =requete de calcul */
		var ask="<carte>";
		for(i=0;i<9;i++) ask+="<par>"+parinput[i].value+"<\/par>";
		for(i=10;i<19;i++) ask+="<par>"+parinput[i].value+"<\/par>";
		ask+="\n";
		for(i=0;i<18;i++) ask+="<hcp>"+hcpinput[i].value+"<\/hcp>";
		ask+="\n";
		for(i=0;i<9;i++)
			ask+="<score>"+leScoreinput[i].value+"<\/score>";
		for(i=10;i<19;i++)
			ask+="<score>"+leScoreinput[i].value+"<\/score>";
		ask+="\n";
		ask+="<SSS>"+SSSinput[depart].value+"<\/SSS>";
		ask+="<slope>"+slopeinput[depart].value+"<\/slope>";
		ask+="<SSJ>"+document.getElementById("SSJ").value+"<\/SSJ>";
		ask+="<index>"+document.getElementById("index").value+"<\/index>";
		ask+="<aller>"+document.getElementById("aller").checked+"<\/aller>";
		ask+="<retour>"+document.getElementById("retour").checked+"<\/retour>";
		ask+="<compact>"+compact+"<\/compact>";
		ask+="<\/carte>";
		
		//console.info(ask);
		objXHR3=createXMLHttp();
		objXHR3.open("post","compute.php",true);
		objXHR3.onreadystatechange=function(){afficheresult(bavard);};
		objXHR3.setRequestHeader("Content-Type","text/xml")
		if(navigator.appName=='Netscape') objXHR3.overrideMimeType("text/xml");
		objXHR3.send(ask);
		
	}}
	function changePub(){
		if (objXHR4.readyState == 4 && objXHR4.status == 200){
			var resultat=objXHR4.responseXML;
			document.getElementById("pub").value=resultat.getElementsByTagName("pub")[0].firstChild.data;
			document.getElementById("site").value=resultat.getElementsByTagName("site")[0].firstChild.data;
			var logoright=document.getElementById("minilogo_right");
			if (document.getElementById("pub").value!="-") {
				logoright.getElementsByTagName("img")[0].setAttribute("src","images/puuuuub/"+document.getElementById("pub").value+".jpg");
			} else {
				logoright.getElementsByTagName("img")[0].setAttribute("src","images/pardefaut.jpg");
			};
			if(document.getElementById("site").value!='-') {
				logoright.setAttribute("class","active");
				logoright.setAttribute("classname","active");
			} else {
				logoright.setAttribute("class","");
				logoright.setAttribute("classname","");
			};
		}
	};
	function GetPub(){
		objXHR4=createXMLHttp();
		objXHR4.open("post","getpub.php",true);
		objXHR4.onreadystatechange=changePub;
		objXHR4.setRequestHeader("Content-Type","text/xml")
		if(navigator.appName=='Netscape') objXHR4.overrideMimeType("text/xml");
		objXHR4.send(null);
	};
	function cleanscore(){
		for(i=0;i<18;i++) leScoreinput[i].value="";
		document.getElementById("scorealler").getElementsByTagName("input")[0].value="";
		document.getElementById("scoreretour").getElementsByTagName("input")[0].value="";
		displayScoretot();
	}
	function displayinfos(){
		for(i=0;i<20;i++) for (k=0;k<5;k++)
		 dist[k][i].getElementsByTagName("span")[0].innerHTML=dist[k][i].getElementsByTagName("input")[0].value;
		for(i=0;i<20;i++) 
		 time[i].getElementsByTagName("span")[0].innerHTML=time[i].getElementsByTagName("input")[0].value;
	}
	function displaylogos(){
		var logoleft=document.getElementById("minilogo_left");
		var logo=document.getElementById("logoGolf").value;
		var pub=document.getElementById("pub").value;
		var site=document.getElementById("site").value;
		var web=document.getElementById("web").value;
		if (logo!="-") {
			logoleft.getElementsByTagName("img")[0].setAttribute("src","images/logo_def/"+logo+".jpg");
		} else {
			logoleft.getElementsByTagName("img")[0].setAttribute("src","images/pardefaut.jpg");
		};
		linkLeft=web;
		if(web!='-') {
			logoleft.setAttribute("class","active");
			logoleft.setAttribute("classname","active");
		} else {
			logoleft.setAttribute("class","");
			logoleft.setAttribute("classname","");
		};
		var logoright=document.getElementById("minilogo_right");
		if (pub!="-") {
			srcRight="images/puuuuub/"+pub+".jpg";
			logoright.getElementsByTagName("img")[0].setAttribute("src","images/puuuuub/"+pub+".jpg");
		} else {
			logoright.getElementsByTagName("img")[0].setAttribute("src","images/pardefaut.jpg");
		};
		linkRight=site;
		if(site!='-') {
			logoright.setAttribute("class","active");
			logoright.setAttribute("classname","active");
		} else {
			logoright.setAttribute("class","");
			logoright.setAttribute("classname","");
		};
	}
	function changeinfos(){
		if (objXHR2.readyState == 4 && objXHR2.status == 200){
			/* on efface les anciens par */
			cleanscore();
			/* on charge les nouvelles infos */
			var resultat=objXHR2.responseXML;
			var pars=resultat.getElementsByTagName("par");
			var hcps=resultat.getElementsByTagName("hcp");
			var SSSs=resultat.getElementsByTagName("SSS");
			var slopes=resultat.getElementsByTagName("slope");
			var dists=resultat.getElementsByTagName("dist");
			var times=resultat.getElementsByTagName("time");
			document.getElementById("nbtrous").value=resultat.getElementsByTagName("nbtrous")[0].firstChild.data;
			document.getElementById("Compact").value=resultat.getElementsByTagName("compact")[0].firstChild.data;
			document.getElementById("logoGolf").value=resultat.getElementsByTagName("logo")[0].firstChild.data;
			document.getElementById("pub").value=resultat.getElementsByTagName("pub")[0].firstChild.data;
			document.getElementById("site").value=resultat.getElementsByTagName("site")[0].firstChild.data;
			document.getElementById("web").value=resultat.getElementsByTagName("web")[0].firstChild.data;
			displaylogos();
			var complet=true;
			var nbslope=0;
			var nbSSS=0;
			var tot=0;
			var tots=0;
			var totm=0;
			var toth=0;
			for(i=0;i<9;i++) if (pars[i].firstChild.data!=0) {parinput[i].value=pars[i].firstChild.data; tot+=parseInt(pars[i].firstChild.data);} else {parinput[i].value=""; complet=false;};
			parinput[9].value=tot;
			tot=0;
			for(i=10;i<19;i++) if (pars[i-1].firstChild.data!=0) {parinput[i].value=pars[i-1].firstChild.data; tot+=parseInt(pars[i-1].firstChild.data);} else {parinput[i].value=""; complet=false;};
			parinput[19].value=tot;
			for(i=0;i<18;i++) if (hcps[i].firstChild.data!=0) {hcpinput[i].value=hcps[i].firstChild.data;} else {hcpinput[i].value=""; complet=false;};
			displayparallerretour();
			
			for(k=0;k<5;k++){
				tot=0;
				for (i=0;i<9;i++)  if ((dists[i+k*18].firstChild.data!="-")&&(dists[i+k*18].firstChild.data!="0")) 
						{
							dist[k][i].getElementsByTagName("input")[0].value=dists[i+k*18].firstChild.data; 
							tot+=parseInt(dists[i+k*18].firstChild.data);
						}  else 
							dist[k][i].getElementsByTagName("input")[0].value="-"; 
				if ((tot!=0)&&(!isNaN(tot)))
					{
						dist[k][9].getElementsByTagName("input")[0].value=tot;
					} else 
						dist[k][i].getElementsByTagName("input")[0].value="-";
			}
			
			for(k=0;k<5;k++){
				tot=0;
				for (i=9;i<18;i++) if ((dists[i+k*18].firstChild.data!="-")&&(dists[i+k*18].firstChild.data!="0"))  
						{
							dist[k][i+1].getElementsByTagName("input")[0].value=dists[i+k*18].firstChild.data; 
							tot+=parseInt(dists[i+k*18].firstChild.data);
						} else 
							dist[k][i+1].getElementsByTagName("input")[0].value="-"; 
				if((tot!=0)&&(!isNaN(tot))) {
					dist[k][19].getElementsByTagName("input")[0].value=tot;
				} else 
					dist[k][19].getElementsByTagName("input")[0].value="-";
			}
			tots=0;totm=0;
			{
				for (i=0;i<9;i++)  if ((times[i].firstChild.data!="-") &&(times[i].firstChild.data!="00:00"))  
						{
							time[i].getElementsByTagName("input")[0].value=times[i].firstChild.data; 
							valtime=times[i].firstChild.data.split(":");
							totm+=parseInt(valtime[0]);
							tots+=parseInt(valtime[1]);
						} else 	time[i].getElementsByTagName("input")[0].value=times[i].firstChild.data; 
				totm=totm+parseInt(tots/60);
				toth=parseInt(totm/60);
				totm=totm%60;
				tots=tots%60;
				var Totm=totm; var Tots=tots;
				if (totm<10) Totm="0"+totm;
				if (tots<10) Tots="0"+tots;
				if (((toth!=0)||(Totm!="00")||(Tots!="00"))&&(!isNaN(tots))&&(!isNaN(totm))) {
					time[9].getElementsByTagName("input")[0].value=toth+':'+Totm+':'+Tots;
				} else 
					time[9].getElementsByTagName("input")[0].value="-";
			}
			tots=0;totm=0;
			{
				for (i=9;i<18;i++) if ((times[i].firstChild.data!="-")&&(times[i].firstChild.data!="00:00"))  
						{
							time[i+1].getElementsByTagName("input")[0].value=times[i].firstChild.data; 
							valtime=times[i].firstChild.data.split(":");
							totm+=parseInt(valtime[0]);
							tots+=parseInt(valtime[1]);
						} else 
							time[i+1].getElementsByTagName("input")[0].value="-"; 
				totm=totm+parseInt(tots/60);
				toth=parseInt(totm/60);
				totm=totm%60;
				tots=tots%60;
				var Totm=totm; var Tots=tots;
				if (totm<10) Totm="0"+totm;
				if (tots<10) Tots="0"+tots
				if (((toth!=0)||(Totm!="00")||(Tots!="00"))&&(!isNaN(tots))&&(!isNaN(totm))){
					time[19].getElementsByTagName("input")[0].value=toth+':'+Totm+':'+Tots;	
				} else
					time[19].getElementsByTagName("input")[0].value="-"; 
			}
			for(i=0;i<10;i++) if(SSSs[i].firstChild!=null) if (SSSs[i].firstChild.data!=0) {SSSinput[i].value=SSSs[i].firstChild.data; nbslope++;} else {SSSinput[i].value="";};
			for(i=0;i<10;i++) if(slopes[i].firstChild!=null) if (slopes[i].firstChild.data!=0) {slopeinput[i].value=slopes[i].firstChild.data; nbSSS++;} else {slopeinput[i].value="";};
			if (nbslope==0) complet=false;
			if (nbSSS==0) complet=false;
			
			displayinfos(); // peut faire apparaitre une barre de defilement
			PosElements();
			
			calculer(false);
		//	if (!complet) {title.innerHTML="Il nous manque des données sur ce golf. Il vous faudra les compléter à la main.";};
	}}
	function focusList(){
				var golflist=document.getElementById("golflist");
				var golfs=golflist.getElementsByTagName("td");
				golfs[nb].style.backgroundColor="#FFFFFF"; 
				this.style.backgroundColor="#CCCCCC"; 
				nb=0;
				while ((golfs[nb].style.backgroundColor!="#cccccc")&&(golfs[nb].style.backgroundColor!="rgb(204, 204, 204)")&&(nb<9)) 
					nb++;
				};		
	function actualiseGolfs(){
		if (objXHR.readyState == 4 && objXHR.status == 200){
			var golflist=document.getElementById("golflist");
			var resultat=objXHR.responseXML;
			noms=resultat.getElementsByTagName("nom");
			parcours=resultat.getElementsByTagName("parcours");
			numerosgolf=resultat.getElementsByTagName("numerogolf");
			var gl=golflist.getElementsByTagName("tbody");
			/* On efface les anciens enfants */
			var x=gl[0].firstChild;
			while(x!=null){gl[0].removeChild(x); x=gl[0].firstChild;};
			/* on ajoute les nouveaux golfs */
			var imax=noms.length;
			for(i=0;i<imax;i++) {
				var texttoadd=noms[i].firstChild.nodeValue;
				if (parcours[i].firstChild!=null) texttoadd+=" ("+parcours[i].firstChild.nodeValue+")";
				//var n0=document.createTextNode(texttoadd);
				var n1=document.createElement("td");
				var n2=document.createElement("tr");
				//n1.appendChild(n0);
				/* modification de textto add : Mise en gras de la chaine detecetee */
				var reg=new RegExp("[ ,;]+", "g");
				var tabnom=trim(document.getElementById("searchfor").value).split(reg);
				var ltabnom=tabnom.length;
				for (k=0;k<ltabnom;k++)  if (tabnom[k].length>1){
					if ((tabnom[k].toUpperCase()=='ST')||(tabnom[k].toUpperCase()=='SAINT')){
						if(tabnom[k].toUpperCase()=='SAINT') {texttoadd=miseEnGras(texttoadd,'ST ');} else {texttoadd=miseEnGras(texttoadd,'ST');};
						texttoadd=miseEnGras(texttoadd,'SAINT');
					} else texttoadd=miseEnGras(texttoadd,tabnom[k]);
					}
				n1.innerHTML=texttoadd;
				n2.appendChild(n1);
				gl[0].appendChild(n2);
			}
			
			var golfs=golflist.getElementsByTagName("td");
			nb=0;
			if (golfs.length>0) golfs[nb].style.backgroundColor="#CCCCCC";
			for (i=0;i<golfs.length;i++) golfs[i].onmouseover=focusList;
		
			if (golfs.length>0) {golflist.style.visibility="visible";}
			else {golflist.style.visibility="hidden";};
		};
	};
	function focusElement(Name){
		var tofocus=document.getElementById(Name);
		if (tofocus.className==="init"){
			tofocus.setAttribute("className","");
			tofocus.setAttribute("class","");
			tofocus.value="";
			} 
	}
	function leaveElement(Name){
		var toleave=document.getElementById(Name);
		if (toleave.value==""){
			toleave.setAttribute("className","init");
			toleave.setAttribute("class","init");
			toleave.value="Saise facultative";
			} 
	}
	function focusSearchFor(){
		var searchfor=document.getElementById("searchfor");
		if (searchfor.className==="init"){
			searchfor.setAttribute("className","");
			searchfor.setAttribute("class","");
			searchfor.value="";
			} else {
				renewGolfs();
			};
	}
	function leaveSearchFor(){
		setTimeout("document.getElementById('golflist').style.visibility='hidden'; initsearchfor();",200);
	}
	function displaynom(){
			document.getElementById("nom").innerHTML=document.getElementById("Hnom").value;
			if (document.getElementById("Hparcours").value!="") {
				document.getElementById("parcours").innerHTML="("+document.getElementById("Hparcours").value+")";
			} else {
				document.getElementById("parcours").innerHTML="";
			}
	}
	function selectGolf(){
		var golflist=document.getElementById("golflist");
		var golfs=golflist.getElementsByTagName("td")
		if(golfs.length>nb)
		{
			if(nb>noms.length-1) nb=noms.length-1;
			var nomgolf=noms[nb].firstChild.nodeValue;
			var nomparcours="";
			if(parcours[nb].firstChild!=null) {
				nomparcours=parcours[nb].firstChild.nodeValue;
			};
		
			document.getElementById("Hnom").value=nomgolf.replace(/&/, "&amp;");
			document.getElementById("Hparcours").value=nomparcours.replace(/&/, "&amp;");
			displaynom();
			
			document.getElementById("golflist").style.visibility="hidden";
			/* Acutalise le par, SSS et slope */
		
			objXHR2=createXMLHttp();
			objXHR2.open("post","GetPar.php",true);
			objXHR2.onreadystatechange=changeinfos;
			objXHR2.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			if(navigator.appName=='Netscape') objXHR2.overrideMimeType("text/xml");
			objXHR2.send("numerogolf="+numerosgolf[nb].firstChild.data);
		}
		}
	function keyUp(e){	
		if(!e) e=window.event;
		getGolfs(e);
		touche=e.keyCode;
		if (touche=="13") {
				document.getElementById("calculer").focus();
			};
	}
	function keyDown(e){	
		if(!e) e=window.event;
		touche=e.keyCode;
		var golflist=document.getElementById("golflist");
		var golfs=golflist.getElementsByTagName("td");
		if ((touche=="13")||(touche=="9")){
			selectGolf();
		}
		else if (touche=="40") 
		{	if  (nb+1<golfs.length){
				golfs[nb].style.backgroundColor="#FFFFFF";
				nb++; 
				golfs[nb].style.backgroundColor="#CCCCCC";
			}
		}
		else if (touche=="38"){ 
			if  (nb>0){
				golfs[nb].style.backgroundColor="#FFFFFF";
				nb--;
				golfs[nb].style.backgroundColor="#CCCCCC";
		}};
	}
	function renewGolfs(){
		var golflist=document.getElementById("golflist");
		var golfs=golflist.getElementsByTagName("td")
		var reg=new RegExp("[ ,;]+", "g");
		var tabnom=trim(document.getElementById("searchfor").value).split(reg);
		var ask="<list>\n";
		var l=tabnom.length;
		for(i=0;i<l;i++) ask+="<nom>"+tabnom[i]+"</nom>\n";
		ask+="</list>";
		
		objXHR=createXMLHttp();
		objXHR.open("post","GetGolf.php",true);
		objXHR.onreadystatechange=actualiseGolfs;
		objXHR.setRequestHeader("Content-Type","text/xml");
		if(navigator.appName=='Netscape') objXHR.overrideMimeType("text/xml");
		objXHR.send(ask);
	}
	function getGolfs(e){
		if(!e) e=window.event;
		touche=e.keyCode;
		if ((touche!="13")&&(touche!="40")&&(touche!="38"))	renewGolfs();	
	}	
	function openFenetreDepart(){
			document.getElementById("fenetreDepart").style.visibility="visible";
	}	
	function openOrCloseFenetreDepartDown(){
		var x=document.getElementById("fenetreDepart");
		if (!((x.style.visibility=="hidden" || x.style.visibility==""))) {
			x.style.visibility="hidden";
		} else {
			x.style.visibility="visible";
		}
	}
	function openOrCloseFenetreDepartUp(){
		var x=document.getElementById("fenetreDepart");
		if (!(x.style.visibility=="hidden" || x.style.visibility=="")) {
			document.getElementById("choixDepart").focus(); 
	 	};		
	}
	function closeFenetreDepart(){
			document.getElementById("fenetreDepart").style.visibility="hidden";
			calculer(false);
	}
	function setChoixDepart(){
		var choixDepart=document.getElementById("choixDepart");
		choixDepart.value=departText[depart];
		choixDepart.setAttribute("class",departClass[depart]);
		choixDepart.setAttribute("className",departClass[depart]);
		for (k=0;k<10;k++) {departs[k].firstChild.nodeValue=" ";};
		departs[depart].firstChild.nodeValue="X";
		document.getElementById("repere").value=depart;
	}
	function initChoixDepart(){
		depart=parseInt(document.getElementById("repere").value);
		setChoixDepart();
	}
	function unsetChoixDepart(){
		departs[depart].firstChild.nodeValue=" ";
	}
	function selectDepartStatut(e){
		if(!e) e=window.event;
		touche=e.keyCode;
		if ((touche=="39")&&(depart<9)) {
			unsetChoixDepart();
			depart++;
			setChoixDepart();
		}
		else if ((touche=="37")&&(depart>0)){
			unsetChoixDepart();depart--;setChoixDepart();
		}
		else if (touche=="13"){
			closeFenetreDepart();
			//document.getElementById("firstPar").focus();
		} 
		else if ((touche=="9")&&(!e.shiftKey)){
			//document.getElementById("lastCoupsRecus").focus();
		}
	}
	function selectDepart(k){
		depart=k;
		setChoixDepart();
	}
	function focusDepart(){
		unsetChoixDepart();
		this.firstChild.nodeValue="X";
		depart=0;
		while ((departs[depart].firstChild.nodeValue!="X")&&(depart<9)) 
					depart++;
		setChoixDepart();
	}
	function PosElements(){
	// on positionne les resultats (par rapport au resultats caches)
		var xResTab=document.getElementById("resultatsH").getElementsByTagName("table")[0];
		xResTab.offsetTop; xResTab.offsetLeft;
		var res=findPos(xResTab);
		var TopPos=res[1];
		var LeftPos=res[0];
		document.getElementById("resultats").style.top=TopPos+"px";
		document.getElementById("resultats").style.left=LeftPos+"px";
		
	// on positionne la liste des golfs 
		res=findPos(document.getElementById("searchfor"));
		TopPos=res[1];
		LeftPos=res[0];
		Height=document.getElementById("searchfor").offsetHeight;
		TopList=TopPos+Height; 
		document.getElementById("golflist").style.top=(TopList-1)+"px";
		document.getElementById("golflist").style.left=LeftPos+"px";
	
	// on positionne les departs
		res=findPos(document.getElementById("choixDepart"));
		TopPos=res[1];
		LeftPos=res[0]; 
		Height=document.getElementById("fenetreDepart").offsetHeight;
		TopList=TopPos-Height;
		LeftPos+=-document.getElementById("fenetreDepart").offsetWidth+document.getElementById("choixDepart").offsetWidth; 				
		document.getElementById("fenetreDepart").style.top=(TopList+ 1)+"px";
		document.getElementById("fenetreDepart").style.left=(LeftPos)+"px";
	};
	function checkOrUncheck(aller){
		var x=document.getElementById("retour");
		var init=10;
		var iinput=-1;
		if (aller=="aller") {
			x=document.getElementById("aller");
			init=0;
			iinput=0;
		}
		var className="unchecked";
		if (x.checked) className="";
		var Scores=document.getElementById("leScore").getElementsByTagName("td");
		var pars=document.getElementById("par").getElementsByTagName("td");
		var hcps=document.getElementById("coupsRecus").getElementsByTagName("td");
		var coupsRendus=document.getElementById("coupsRendus").getElementsByTagName("td");
		var trous=document.getElementById("trous").getElementsByTagName("td");
		for (var i=init;i<10+init;i++) {
			time[i].setAttribute("className",className);
			time[i].setAttribute("class",className);
			for (var k=0;k<5;k++){
				dist[k][i].setAttribute("className",className);
				dist[k][i].setAttribute("class",className);
			}
			Scores[i].setAttribute("className",className);
			Scores[i].setAttribute("class",className);
			pars[i].setAttribute("className",className);
			pars[i].setAttribute("class",className);
			hcps[i].setAttribute("className",className);
			hcps[i].setAttribute("class",className);
			coupsRendus[i].setAttribute("className",className);
			coupsRendus[i].setAttribute("class",className);
			if (i!=9+init) {
				trous[i].setAttribute("className",className);
				trous[i].setAttribute("class",className);
				parinput[i+iinput].disabled=!x.checked;
				hcpinput[i+iinput].disabled=!x.checked;
				leScoreinput[i+iinput].disabled=!x.checked;
			}
		}
		calculer(false);
	}
	function ClickonPuborSite(IsRight){
		var site;
		if (IsRight) {
			site=document.getElementById("site").value;
		} else {
			site=document.getElementById("web").value;
		};
		if (site!='-'){
			if(IsRight) StatPub();
			document.getElementById("gotosite").setAttribute("action",site);
			document.getElementById("gotosite").submit();
		}
	}
	function initsearchfor(){
		var searchfor=document.getElementById("searchfor");
		searchfor.setAttribute("className","init");
		searchfor.setAttribute("class","init");
		searchfor.value="Nom du Golf/Parcours";

	}
	function goNext(e){	
		if(!e) e=window.event;
		var touche=e.keyCode;
		if (touche==13) {
			var inputElements=document.getElementsByTagName("input");
			var k=0;
			while(inputElements[k]!=this) k++;
			k++;
			while(inputElements[k].type=="hidden") k++;
			inputElements[k].focus();
		}
	}
	function lastScore(e){
		if(!e) e=window.event;
		var touche=e.keyCode;
		if (touche==13) calculer("true");
	}
	function initialisation(){
		title=window.document.getElementById("title");
		var hcp=document.getElementById("coupsRecus");
		var par=document.getElementById("par");
		var leScore=document.getElementById("leScore");
		dist[0]=document.getElementById("dist0").getElementsByTagName("td");
		dist[1]=document.getElementById("dist1").getElementsByTagName("td");
		dist[2]=document.getElementById("dist2").getElementsByTagName("td");
		dist[3]=document.getElementById("dist3").getElementsByTagName("td");
		dist[4]=document.getElementById("dist4").getElementsByTagName("td");
		time=document.getElementById("time").getElementsByTagName("td");
		departs=document.getElementById("fenetreDepart").getElementsByTagName("td")
	
	
		displayinfos();displaycoups();displayScoretot();displayparallerretour();displaynom();initChoixDepart();
		
	// reperage des balises  input 
		parinput=par.getElementsByTagName("input");
		hcpinput=hcp.getElementsByTagName("input");
		leScoreinput=leScore.getElementsByTagName("input");
		
	// gestion de return : next element (sur les balise input de type text)
		for	(i=0;i<19;i++){
		//	parinput[i].style.backgroundColor="black";
			parinput[i].onkeyup=goNext;
			}
		for	(i=0;i<18;i++)	hcpinput[i].onkeyup=goNext;
		for	(i=0;i<18;i++) leScoreinput[i].onkeyup=goNext;
		leScoreinput[18].onkeyup=lastScore;
		
		var SSS=document.getElementById("SSS");
		SSSinput=SSS.getElementsByTagName("input");
		var slope=document.getElementById("slope");
		slopeinput=slope.getElementsByTagName("input");
		
		PosElements();
		window.onresize=PosElements;
	// on initialise le champ depart par sa valeur par defaut
		setChoixDepart();
		
	// initialisation de searchfor
		initsearchfor();
	
	// initialisation de joueur
		var joueur=document.getElementById("joueur");
		joueur.setAttribute("className","init");
		joueur.setAttribute("class","init");
		joueur.value="Saisie facultative";
	
	// initialisation de date
		var date=document.getElementById("date");
		date.setAttribute("className","init");
		date.setAttribute("class","init");
		date.value="Saisie facultative";
	
	// initalisation de la pub
		GetPub();
		displaylogos();
		
		
	// Afficher / Masquer une partie du parcours
	//checkOrUncheck("aller");
	//checkOrUncheck("retour");
	// Gestion des Evenements  
		document.getElementById("searchfor").onkeyup=keyUp; 	// arrows not always detected with onkeyup 
		if (navigatorTest('safari')||navigatorTest('msie')){
			document.getElementById("searchfor").onkeydown=keyDown;// onkeydown acts like onkeypress on safari (at least for arrows)
			}
		else {
			document.getElementById("searchfor").onkeypress=keyDown; // arrows not detected with onkeypress on safari (and it seems not on IE6 to)
		};
																
		document.getElementById("searchfor").onblur=leaveSearchFor;
		document.getElementById("searchfor").onfocus=focusSearchFor;
		document.getElementById("golflist").onclick=function(){
			selectGolf(); 
			document.getElementById("calculer").focus();
		};
		
		document.getElementById("joueur").onfocus=function(){focusElement("joueur");};
		document.getElementById("joueur").onblur=function(){leaveElement("joueur");};
		document.getElementById("date").onfocus=function(){focusElement("date");};
		document.getElementById("date").onblur=function(){leaveElement("date");};
		
		document.getElementById("calculer").onclick=function (){calculer(true);};
		document.getElementById("index").onchange=function(){calculer(false);};
		document.getElementById("SSJ").onchange=function(){calculer(false);};
		
		document.getElementById("PdfGO").onclick=function(){pdfcarte(false);};
		document.getElementById("PdfGOBW").onclick=function(){pdfcarte(true);};
	
		document.getElementById("choixDepart").onfocus=openFenetreDepart; 
		document.getElementById("choixDepart").onblur =closeFenetreDepart;
		/* on click est effectuee quand la souris ce leve */
		document.getElementById("choixDepart").onmousedown=openOrCloseFenetreDepartDown;
		document.getElementById("choixDepart").onclick=openOrCloseFenetreDepartUp;
				
		
		document.getElementById("minilogo_right").onclick=function(){ClickonPuborSite(true);};
		document.getElementById("minilogo_left").onclick=function(){ClickonPuborSite(false);};
		
		if (navigatorTest('safari')||navigatorTest('msie')){
			document.getElementById("choixDepart").onkeydown=selectDepartStatut; }
		else {
			document.getElementById("choixDepart").onkeypress=selectDepartStatut; 
		};
		for(var k=0;k<10;k++) departs[k].onmouseover=focusDepart;

		document.getElementById("aller").onclick=function(){checkOrUncheck("aller")};
		document.getElementById("retour").onclick=function(){checkOrUncheck("retour")};
		
		//document.getElementById("cacheChoixDepart").onclick=function(){document.getElementById("choixDepart").focus();}; 
		//for(var k=0;k<10;k++) departs[k].onclick=function (){ setlectDepart(k); };
		//document.getElementById("resultats").style.visibility="hidden";
	  	
			
	// On a fini, on inclus les image de fond
	//	getImg();
	};
	window.onload=initialisation;

