
	var check;
	var OB;
	var xpos1;
	var ypos1;
	
	// Identification du navigateur
	var isNav = navigator.appName.indexOf("Netscape") != -1;
	var isNav6 = navigator.appName.indexOf("Netscape") != -1 &&	parseInt(navigator.appVersion) != 4;
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	
	// Calcule du date
	var Now = new Date;
	var NowDay = Now.getDate();
	var NowMonth = Now.getMonth();
	var NowYear = Now.getYear();
	var NowHour = Now.getHours();
	var NowMinute = Now.getMinutes();
	var NowZone = Now.getUTCHours();
	if (NowYear < 2000) {
		NowYear += 1900;
	}

	var Secteur = "";
	var listSecteur = "";
	var FirstSelectDay = "";
	var FirstSelectMonth = "";
	var FirstSelectYear = "";
	var FirstSelectHour = "";
	var FirstSelectZone = "";
	var jourReel;
	var heureReel; 
	var moisReel;
	var anneeReel;
	var Submit = "";
	
	var jour=new Array();
	var xmlHttpRequest = null; 

	function handleErr2(msg,url,l)	{
		//Desole, Votre navigateur ne supporte pas l'ajax
		txt="Il y a une erreur sur cette page.\n\n";
		txt+="Erreur: " + msg + "\n";
		txt+="URL: " + url + "\n";
		txt+="Line: " + l + "\n\n";
		txt+="Cliquer sur OK pour continuer.\n\n";
		alert(txt);
		return true;
	}
	
	function MM_reloadPage(init) {
		if (init == true) {
			with (navigator) {
				if (appName == "Netscape" && parseInt(appVersion) == 4) {
					document.MM_pgW = innerWidth;
					document.MM_pgH = innerHeight;
					onresize = MM_reloadPage;
				}
			}
		} else if (innerWidth != document.MM_pgW || innerHeight != document.MM_pgH) {
			location.reload();
		}
	}

	function MM_swapImgRestore() {
		var i, x, a = document.MM_sr;
		for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) {
			x.src = x.oSrc;
		}
	}

	function MM_preloadImages() {
		var d = document;
		if (d.images) {
			if (!d.MM_p) {
				d.MM_p = new Array;
			}
			var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
			for (i = 0; i < a.length; i++) {
				if (a[i].indexOf("#") != 0) {
					d.MM_p[j] = new Image;
					d.MM_p[j++].src = a[i];
				}
			}
		}
	}

	function MM_findObj(n, d) {
		var p, i, x;
		if (!d) {
			d = document;
		}
		if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
			d = parent.frames[n.substring(p + 1)].document;
			n = n.substring(0, p);
		}
		if (!(x = d[n]) && d.all) {
			x = d.all[n];
		}
		for (i = 0; !x && i < d.forms.length; i++) {
			x = d.forms[i][n];
		}
		for (i = 0; !x && d.layers && i < d.layers.length; i++) {
			x = MM_findObj(n, d.layers[i].document);
		}
		if (!x && document.getElementById) {
			x = document.getElementById(n);
		}
		return x;
	}

	function MM_swapImage() {
		var i, j = 0, x, a = MM_swapImage.arguments;
		document.MM_sr = new Array;
		for (i = 0; i < a.length - 2; i += 3) {
			if ((x = MM_findObj(a[i])) != null) {
				document.MM_sr[j++] = x;
				if (!x.oSrc) {
					x.oSrc = x.src;
				}
				x.src = a[i + 2];
			}
		}
	}

	function cleanUp(s) {
		var returnString = "";
		for (var i = 0; i < s.length; i++) {
			c = s.charAt(i);
			if (c == "+") {
				c = " ";
			}
			returnString += c;
		}
		return unescape(returnString);
	}

	function envoiSecteur(a) {
		document.form1.secteur.value = a;
		onSubmit = ouvreMenu();
		document.form1.target = "Interroger";
		document.form1.submit();
		//debug("envoiSecteur(" + a + ")");
	}

	function ouvreMenu() {
		var l = screen.width / 2;
		var propFen = "left=" + l + ",top=30,toolbar=no,menubar=no,status=no,scrollbars=no,resizable=no,width=320,height=150";
		window.open("", "Interroger", propFen);
	}

	function DaysInMonth(WhichMonth, WhichYear) {
		var DaysInMonth = 31;
		if (WhichMonth == "3" ||
			WhichMonth == "5" || WhichMonth == "8" || WhichMonth == "10") {
			DaysInMonth = 30;
		}
		if (WhichMonth == "1" && WhichYear / 4 != Math.floor(WhichYear / 4)) {
			DaysInMonth = 28;
		}
		if (WhichMonth == "1" && WhichYear / 4 == Math.floor(WhichYear / 4)) {
			DaysInMonth = 29;
		}
		return DaysInMonth;
	}

	function ChangeOptionDays(Which) {
		
		var DaysObject = eval("document.Form1." + Which + "Day");
		var MonthObject = eval("document.Form1." + Which + "Month");
		var YearObject = eval("document.Form1." + Which + "Year");
		
		Month = MonthObject[MonthObject.selectedIndex].value;
		Year = YearObject[YearObject.selectedIndex].text;
		DaysForThisSelection = DaysInMonth(Month, Year);
		CurrentDaysInSelection = DaysObject.length;
		
		if (CurrentDaysInSelection > DaysForThisSelection) {
			for (i = 0; i < CurrentDaysInSelection - DaysForThisSelection; i++) {
				DaysObject.options[DaysObject.options.length - 1] = null;
			}
		}
		if (DaysForThisSelection > CurrentDaysInSelection) {
			for (i = 0; i < DaysForThisSelection - CurrentDaysInSelection; i++) {
				NewOption = new Option(DaysObject.options.length + 1);
				DaysObject.options[DaysObject.options.length] = NewOption;
			}
		}
		if (DaysObject.selectedIndex < 0) {
			DaysObject.selectedIndex == 0;
		}
	}

	function SetToToday(Which) {
		
		var DaysObject = eval("document.Form1." + Which + "Day");
		var MonthObject = eval("document.Form1." + Which + "Month");
		var YearObject = eval("document.Form1." + Which + "Year");
		var HourObject = eval("document.Form1." + Which + "Hour");
		var MinuteObject = eval("document.Form1." + Which + "Minute");
		var ZoneObject = eval("document.Form1." + Which + "Zone");	 
		try {
			document.Form1.listSecteur[eval(getParameter("secteur")) - 1].selected = true;
		} catch (e){}
		YearObject[document.getElementById(NowYear).index].selected = true;
		MonthObject[NowMonth].selected = true;
		ChangeOptionDays(Which);
		DaysObject[NowDay - 1].selected = true;
		HourObject[bonneHeure()].selected = true;
		ZoneObject[positionZone()].selected = true;
	}

	function getParameter(name) {
		name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
		var regexS = "[\\?&]" + name + "=([^&#]*)";
		var regex = new RegExp(regexS);
		var results = regex.exec(window.location.href);
		if (results == null) {
			return "";
		} else {
			return results[1];
		}
	}

	function positionZone() {
		if (NowZone < NowHour) {
			NowZone = NowZone + 24;
		}
		if (NowZone - NowHour == 5) {
			Zone = 0;
		} else {
			if (NowZone - NowHour == 4) {
				Zone = 1;
			} else {
				Zone = 2;
			}
		}
		return Zone;
	}



	function bonneHeure() {
		if (NowMinute >= 30) {
			Heure = eval(NowHour + 1);
		} else {
			Heure = NowHour;
		}
		return Heure;
	}

	function afficheTemps() {
		tempsChoisi = new Date(FirstSelectYear, FirstSelectMonth, FirstSelectDay, FirstSelectHour);
		var a = formatter(tempsChoisi);
		return (a.jourJ + " " + a.moisM + " " + a.an + ", " + a.heureH + " " + FirstSelectZone);
	}

	function formatter(temps) {
		var an = temps.getYear();
		var moisM;
		var jourJ;
		var heurH;
		if (an < 2000) {
			an += 1900;
		}
		switch (temps.getMonth()) {
		  case 0:  moisM = "janvier"; break;
		  case 1:  moisM = "fevrier"; break;
		  case 2:  moisM = "mars"; break;
		  case 3:  moisM = "avril"; break;
		  case 4:  moisM = "mai"; break;
		  case 5:  moisM = "juin"; break;
		  case 6:  moisM = "juillet"; break;
		  case 7:  moisM = "aout"; break;
		  case 8:  moisM = "septembre"; break;
		  case 9:  moisM = "octobre"; break;
		  case 10: moisM = "novembre"; break;
		  case 11: moisM = "decembre"; break;
		  default:;
		}
		switch (temps.getDate()) {
		  case 1:
			jourJ = "1er";
			break;
		  default:
			jourJ = temps.getDate();
		}
		switch (temps.getHours()) {
		  case 0:  heureH = "23:00-00:30"; break;
		  case 1:  heureH = "00:30-01:30"; break;
		  case 2:  heureH = "01:30-02:30"; break;
		  case 3:  heureH = "02:30-03:30"; break;
		  case 4:  heureH = "03:30-04:30"; break;
		  case 5:  heureH = "04:30-05:30"; break;
		  case 6:  heureH = "05:30-06:30"; break;
		  case 7:  heureH = "06:30-07:30"; break;
		  case 8:  heureH = "07:30-08:30"; break;
		  case 9:  heureH = "08:30-09:30"; break;
		  case 10: heureH = "09:30-10:30"; break;
		  default: heureH = (new Date(temps.getTime() - 3600000)).getHours() + ":30-" + temps.getHours() + ":30";
		}
		return {an:an, moisM:moisM, jourJ:jourJ, heureH:heureH};
	}

	function afficheCarte() {
		var imageCourant = new Image;
		if (FirstSelectZone == "HNE") {
			afficheCarteAvecLaZone(5);
		} else {
			if (FirstSelectZone == "HAE") {
				afficheCarteAvecLaZone(4);
			} else {
				afficheCarteAvecLaZone(0);
			}
		}	 
	}
	
	function writeHtmlMsg(tag, msg) {
		var placeholder=document.getElementById(tag);
		if (placeholder!== null){
			var newline=document.createElement("div");
			placeholder.appendChild(newline);
			var txt=document.createTextNode(msg);
			newline.appendChild(txt);
		}
	}

	function afficheCarteAvecLaZone(TZ) {	 
		// Calcule de la date en prenant en consideration la TZ (time zone)
		var zoneTemps = new Date(tempsChoisi.getTime() + TZ * 60 * 60 * 1000);
		heureReel = zoneTemps.getHours();
		jourReel = zoneTemps.getDate();
		moisReel = zoneTemps.getMonth();
		anneeReel = zoneTemps.getYear();
		if (anneeReel < 2000) {
			anneeReel += 1900;
		}
		var strMois = "" + (moisReel + 1);
		if (strMois.length == 1) {
			strMois = "0" + strMois;
		}

	   	xmlHttpRequest = FactoryXMLHttpRequest();

		if(xmlHttpRequest) {
	 		xmlHttpRequest.onreadystatechange = carteCallback;
	 		//TODO uncomment ligne below for dynamic data
			//debug("sendRequest to " + "../../data/" + anneeReel + "/" + strMois + ".dat");
	 		sendRequest("../../data/" + anneeReel + "/" + strMois + ".dat","GET", "");	
						//debug("done");
	 	} else {
			alert("Desole, Votre navigateur ne supporte pas l'ajax");
	 		return;
	 	}
	}
	
	function afficheErreur(msg) {
		var console=document.getElementById('erreurs');
		if (console !== null){
			var newline=document.createElement("div");
			console.appendChild(newline);
			var txt=document.createTextNode(msg);
			newline.appendChild(txt);
		}
	}

	function sendRequest (url, httpMethod, params){
		if (!httpMethod){
			httpMethod="POST"; // Use POST if expected data from identical URL (ex: realtime data) change over time.
		}
		if (xmlHttpRequest){
			try {
			if (httpMethod == "GET") {
				if (params == "") {
					//debug("step 1: " + url);
			  		xmlHttpRequest.open("GET", url ,true);
					xmlHttpRequest.send(null);
				} else {
					//debug("step 2: " + url);
					xmlHttpRequest.open(httpMethod, url + "?"+ params ,true);
					xmlHttpRequest.send(null);
				}
			} else if (httpMethod == "POST") {
				//debug("step 3: " + url);
				xmlHttpRequest.open("POST", url ,false);
				xmlHttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				xmlHttpRequest.setRequestHeader("Accept-Encoding", "gzip, deflate");
				xmlHttpRequest.setRequestHeader("Content-length", params.length);
				xmlHttpRequest.setRequestHeader("Connection", "close");
				//debug("Sending request");
				xmlHttpRequest.send(params);		
			} 
			} catch (err) {

			}
	  	}
	}
	// Function used to output debugging messages from 
	// javascript into the html page. Output is appended to 
	// console element declared in index.jsp
	function debug(data){
		var DEBUG = true;
		if (DEBUG) {
			writeHtmlMsg('console',data);
		}
	}
	
	function carteCallback() {
		var READY_STATE_COMPLETE=4;
		var STATUS_OK = 200;
		var STATUS_LOCAL_OK = 0;
		if ((xmlHttpRequest.readyState == READY_STATE_COMPLETE)  // only if req shows "loaded"
		  		&& ((xmlHttpRequest.status == STATUS_OK) ||
		  			(xmlHttpRequest.status == STATUS_LOCAL_OK) ) 	) { 
			//Lire chaque ligne (jour[#]=...
		  	var lignes = xmlHttpRequest.responseText.split('\n');
			for(i=0; i<lignes.length; i++) {
				// Sauter les lignes vides
   				if (trim(lignes[i]) != "") {
   					// evaluer (executer) la ligne pour attribuer le valeur du jour
   					eval(lignes[i]);
   				}
			}
			// Inserer l'image dans le fichier html
			var placeholder=document.getElementById('imagePlaceHolder');
			if (placeholder!== null){
				var newImage = document.createElement("img");
				newImage.src= "../../imgCom/planches/" + listSecteur + "/" + trim(jour[jourReel][heureReel]) + ".gif";
				imagePlaceHolder.appendChild(newImage);
			}
		  }
	}
	
	function FactoryXMLHttpRequest() {
		if( window.XMLHttpRequest) {
			return new XMLHttpRequest();
		}
		else if( window.ActiveXObject) {
			var msxmls = new Array(
				'Msxml2.XMLHTTP.5.0',
				'Msxml2.XMLHTTP.4.0',
				'Msxml2.XMLHTTP.3.0',
				'Msxml2.XMLHTTP',
				'Microsoft.XMLHTTP');
			for (var i = 0; i < msxmls.length; i++) {
				try {
					return new ActiveXObject(msxmls[i]);
				} catch (e) {
				}
			}
		}
		throw new Error( "Could not instantiate XMLHttpRequest factory");
	}

	function rePage(H) {
		document.transfer.Annee.value = Annee;
		document.transfer.Mois.value = Mois;
		document.transfer.listSecteur.value = listSecteur;
		document.transfer.FirstSelectHour.value = heureJ(H);
		document.transfer.FirstSelectYear.value = FirstSelectYear;
		document.transfer.FirstSelectMonth.value = FirstSelectMonth;
		document.transfer.FirstSelectDay.value = FirstSelectDay;
		document.transfer.FirstSelectZone.value = FirstSelectZone;
		document.transfer.avantApres.value = avantApres;
		document.transfer.xpos1.value = xpos1;
		document.transfer.ypos1.value = ypos1;
		document.transfer.target = "_self";
		document.transfer.submit();
	}

	function heureJ(H) {
		avantApres = eval(avantApres) + H;
		if (avantApres < 7 && avantApres > -7) {
			nouveauTemps = new Date(tempsChoisi.getTime() + H * 3600000);
			FirstSelectYear = nouveauTemps.getYear();
			if (FirstSelectYear < 2000) {
				FirstSelectYear += 1900;
			}
			FirstSelectMonth = nouveauTemps.getMonth();
			FirstSelectDay = nouveauTemps.getDate();
			FirstSelectHour = nouveauTemps.getHours();
		} else {
			alert("Vous ne pouvez explorer que six heures avant ou apr\uFFFDs l'heure choisie pour la requ\uFFFDte. Faites une nouvelle requ\uFFFDte.");
			avantApres = eval(avantApres - H);
		}
		return FirstSelectYear, FirstSelectMonth, FirstSelectDay, FirstSelectHour;
	}

	function checkVersion4() {
		x = navigator.appVersion;
		y = x.substring(0, 4);
		if (y >= 4) {
			setVariables();
		}
	}

	function setVariables() {
		if (navigator.appName == "Netscape") {
			dS = "document.";
			sD = "";
			h = ".left=";
			v = ".top=";
		} else {
			dS = "";
			sD = ".style";
			h = ".pixelLeft=";
			v = ".pixelTop=";
		}
		OB = "11";
		check = "no";
	}

	function moveOB() {
		if (isNav6) {
			objet.style.left = Xpos;
			objet.style.top = Ypos;
		} else {
			eval(dS + "object1" + sD + h + Xpos);
			eval(dS + "object1" + sD + v + Ypos);
		}
	}

	function afficheCibleur() {
		if (navigator.appName == "Netscape" &&
			parseInt(navigator.appVersion) == 4) {
			document.write("<layer id=\"object1\"  visibility=\"visible\" left=\"" + xpos1 + "\" top=\"" + ypos1 + "\" z-index=\"2\">");
			document.write("<a name=\"avant\" href=\"javascript:void(0)\" onMouseDown=\"setObject()\" >");
			document.write("<IMG src=\"../../imgCom/pointeur.gif\" border=\"0\" ALT=\"Cliquez sur la cible pour la saisir et double-cliquez pour la rel&acirc;cher.\" width=\"18\" height=\"18\"></a>");
			document.write("</layer>");
		} else {
			document.write("<div id=\"object1\" onMouseDown=\"setObject()\" style=\"position:absolute; visibility:show; left:" + xpos1 + "px; top:" + ypos1 + "px; z-index:2\">");
			document.write("<a name=\"avant\" href=\"javascript:void(0)\" title=\"Cliquez sur la cible pour la saisir et double-cliquez pour la rel&acirc;cher.\") onFocus=\"this.blur()\">");
			document.write("<IMG src=\"../../imgCom/pointeur.gif\" border=\"0\" width=\"18\" height=\"18\"></a>");
			document.write("</div>");
		}
		document.close();
	}

	function setObject() {
		OB = "1";
		XX = xpos1;
		YY = ypos1;
	}

	function getObject() {
		if (isNav) {
			document.captureEvents(Event.MOUSEMOVE);
		}
		if (isNav6) {
			objet.addEventListener("mousemove", Netscape6, true);
			event.cancelBubble = true;
		}
	}

	function releaseObject() {
		if (isNav) {
			document.releaseEvents(Event.MOUSEMOVE);
		}
		if (isNav6) {
			objet.removeEventListener("mousemove", Netscape6, true);
		}
		check = "no";
		OB = "11";
		document.close();
	}

	function moveHandler(e) {
		if (OB == "1") {
			Xpos = isIE ? event.clientX : e.pageX;
			Ypos = nsValue ? e.pageY : event.clientY;
			if (check == "no") {
				diffX = XX - Xpos;
				diffY = YY - Ypos;
				check = "yes";
			}
			xpos1 = Xpos += diffX;
			ypos1 = Ypos += diffY;
			moveOB();
		}
	}

	function init() {
		document.onclick = getObject;
		document.onmousemove = isNav6 ? Netscape6 : moveHandler;
		document.ondblclick = releaseObject;
		if (isNav) {
			document.captureEvents(Event.CLICK);
			document.captureEvents(Event.DBLCLICK);
		}
		if (isNav6) {
			objet = document.getElementById("object1");
			objet.addEventListener("mousemove", Netscape6, true);
			objet.addEventListener("click", getObject, true);
			objet.addEventListener("dblclick", releaseObject, true);
			document.body.addEventListener("dblclick", releaseObject, true);
		}
	}

	function Netscape6(event) {
		if (OB == "1") {
			Xpos = event.clientX;
			Ypos = event.clientY;
			if (check == "no") {
				diffX = XX - Xpos;
				diffY = YY - Ypos;
				check = "yes";
			}
			xpos1 = Xpos += diffX;
			ypos1 = Ypos += diffY;
			moveOB();
		}
	}
	
	// Removes leading whitespaces
	function LTrim( value ) {
		
		var re = /\s*((\S+\s*)*)/;
		return value.replace(re, "$1");
		
	}
	
	// Removes ending whitespaces
	function RTrim( value ) {
		
		var re = /((\s*\S+)*)\s*/;
		return value.replace(re, "$1");
		
	}
	
	// Removes leading and ending whitespaces
	function trim( value ) {
		
		return LTrim(RTrim(value));
		
	}
	
	//onerror=handleErr
	MM_reloadPage(true);
  
	var queryString = window.location.search;
	var queryElements = new Array;
	var queryElementIndex = 0;
	if (window.location.search != "") {
		var andPos = 0;
		queryString = queryString.substring(1, queryString.length);
		while (queryString.indexOf("&") != -1) {
			andPos = queryString.indexOf("&");
			queryElements[queryElementIndex] = queryString.substring(0, andPos);
			queryString = queryString.substring(andPos + 1, queryString.length);
			queryElementIndex++;
		}
		queryElements[queryElementIndex] = queryString;
		for (var i = 0; i < queryElements.length; i++) {
			var equalPos = queryElements[i].indexOf("=");
			var elementName = queryElements[i].substring(0, equalPos);
			var elementValue = cleanUp(queryElements[i].substring(equalPos + 1, queryElements[i].length));
			eval("" + elementName + "=\"" + elementValue + "\"");
		}
	}


