/**********************************************************
** (C) Copyright CNI
** DESCRIPTION : Javacript Regroupant les fonctions 
** principales
**********************************************************/

//VARIABLES

var httpGetIdRechVol = getHTTPObject();
var httpEtatRecherche = getHTTPObject();
var appel_id_rech = 0;
var hasReqestedVersion = DetectFlashVer(8, 0, 0);
var idAffilie = 1;

//--- FONCTION GET OBJECT

function getHTTPObject() {
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5)
	try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
	try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) {
	xmlhttp = false;
	}
	}
	@else
	xmlhttp = false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp = false;
		}
	}
	return xmlhttp;
}


//---

//--- FONCTION D'APPEL D'UNE PAGE EN AJAX QUI CHARGE LE MOTEUR
function AppelAjaxMoteur(url, champ, start){
	
	url=str_replace("&amp;", "&", url);
	
	var http_request = false;
	if (window.XMLHttpRequest) { //POUR MOZILLA
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
		//	http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // POUR INTERNET EXPLORER
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = function() { gestionRetour(http_request, champ, start); };
	http_request.open('GET', url, true);
	http_request.send(null);

	
}
function gestionRetour(http_request, champ, start) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			document.getElementById(champ).innerHTML = http_request.responseText;
			initAutoCompleteProv(document.getElementById('Moteur'),document.getElementById('prov'));
			initAutoCompleteDest(document.getElementById('Moteur'),document.getElementById('dest'));
			if(start == 1){
				//On se positionne sur le moteur
				window.location.href="#MoteurVol";
				//On demarre la recherche
				VerifMoteurVol();
			}
		}
	}
}
//---

//--- FONCTION QUI PERMET DE CHANGER L'AFFICHAGE ALLER RETOUR SUR LE MOTEUR VOL
function AllerRetour(){
	if(document.getElementById('DateRetour').style.display == ''){
		document.getElementById('DateRetour').style.display = 'none';
	}else{
		document.getElementById('DateRetour').style.display = '';
	}
}
//---

//--- FONCTION DE VERIFICATION DU FORMULAIRE RECHERCHE VOL
function VerifMoteurVol(){
	
	var frm = document.Moteur;
	
	//On vérifie que les champs sont remplis
	if(frm.prov.value.length < 3){ 
		AlerteErreur('prov', '', 'La ville de départ n\'est pas remplie !');
		return false;
	}
	if(frm.dest.value.length < 3){ 
		AlerteErreur('dest', '', 'La ville de destination n\'est pas remplie !'); 
		return false;
	}
	if(frm.dest.value == frm.prov.value){ 
		AlerteErreur('prov', 'dest', 'Les deux villes ne peuvent être les mêmes !'); 
		return false;
	}
	if(frm.date1.value.length < 1){ 
		AlerteErreur('date1', '', 'La date de départ n\'est pas remplie !'); 
		return false;
	}
	if(frm.date2.value.length < 1){ 
		AlerteErreur('date2', '', 'La date de retour n\'est pas remplie !'); 
		return false;
	}
	
	
	//On vérifie les dates
	var jour=frm.DD.value;
	if(jour.length<2) {
		jour = "0" + jour;
	}
	var jour1=frm.DD1.value; 
	if(jour1.length<2) {
		jour1 = "0" + jour1;
	}  
	var mois=frm.MM.value;
	var mois1=frm.MM1.value;
	var MM=mois.split("-");
	AA = MM[1];
	MM=MM[0];

	var MM1=mois1.split("-");
	AA1=MM1[1];
	MM1=MM1[0];
	
	// On compare avec la date du jour
	var datedujour = new Date();
	var jourjour = datedujour.getDate();
	var anneejour = datedujour.getFullYear();
	var moisjour = (datedujour.getMonth()+1);
	
	if (AA<anneejour) {
		AlerteErreur('date1', 'date2', ''); 
		return false;

	} else if (AA==anneejour) {
		
		if(MM<moisjour) {
			AlerteErreur('date1', 'date2', ''); 
			return false;
			
		} else if ((jour<jourjour) && (MM == moisjour )) {
			AlerteErreur('date1', 'date2', ''); 
			return false;
			
		} 
	}
	
	val = frm.AR[0].value;
	
	if (val==1)  {
		
		if (AA1<AA) {
			AlerteErreur('date2', 'date1', 'La date de retour est inférieur à la date de départ !'); 
			return false;

		} else if (AA1==AA) {
			if(MM1<MM) {
				AlerteErreur('date2', 'date1', 'La date de retour est inférieur à la date de départ !'); 
				return false;
				
			} else if ((jour1<jour) && (MM1 == MM )) {
				AlerteErreur('date2', 'date1', 'La date de retour est inférieur à la date de départ !'); 
				return false;

			}
		}
	}
	
	document.getElementById('BouttonSubmit').src='/img/boutton/BtnRechercheVolAttente.png';
	document.getElementById('BouttonSubmit').onclick='';
	document.Moteur.submit();
}
//---

//--- FONCTION ALERTE ERREUR FORMULAIRE
function AlerteErreur(champ, champ2, message){
	
	//document.getElementById('AlerteErreur').innerHTML = message;
	//document.getElementById('AlerteErreur').style.display = '';
	//document.getElementById('AlerteErreurAttente').style.display = 'none';
	document.getElementById(champ).style.background = '#ff4e4e';
	document.getElementById(champ).style.color = '#FFFFFF';
	
	if(champ == 'date1' && message == ''){
		document.getElementById('date1').focus();
		disp_cal('Moteur', 'date1', new Date(), '');
	}
	
	if(champ2 != ''){
		document.getElementById(champ2).style.background = '#ff4e4e';
		document.getElementById(champ2).style.color = '#FFFFFF';
	}
	
	if(champ != 'prov' && champ2 != 'prov'){
		document.getElementById('prov').style.background = '#FFFFFF';
		document.getElementById('prov').style.color = '#333333';
	}
	if(champ != 'dest' && champ2 != 'dest'){
		document.getElementById('dest').style.background = '#FFFFFF';
		document.getElementById('dest').style.color = '#333333';
	}
	if(champ != 'date1' && champ2 != 'date1'){
		document.getElementById('date1').style.background = '#FFFFFF';
		document.getElementById('date1').style.color = '#333333';
	}
	if(champ != 'date2' && champ2 != 'date2'){
		document.getElementById('date2').style.background = '#FFFFFF';
		document.getElementById('date2').style.color = '#333333';
	}
	
	if(message != ''){
		alert(message);
	}
}
//---

//--- FONCTION MISE A JOUR DE LA DATE
function majDateDepart(){
	
	var val1=document.getElementById('date1').value; 
	var tabDate = val1.split("/");
	
	if(tabDate[0]<10){
		tabDate[0] = "0"+tabDate[0];
	}
	ddtemp = tabDate[0];
	ddtemp=ddtemp.replace(/00/g,'0');
	tabDate[0] = ddtemp;
	document.Moteur.DD.value = tabDate[0];
	
	if(tabDate[1]<10){
		tabDate[1] = "0"+tabDate[1];
	}
	tabDate[1] = str_replace("00","0",tabDate[1]);
	ddtemp = tabDate[1];
	ddtemp=ddtemp.replace(/00/g,'0');
	tabDate[1] = ddtemp;	

	document.Moteur.MM.value = tabDate[1]+"-"+tabDate[2];
	AA =tabDate[2];
	MM =tabDate[1];
	DD =tabDate[0];
	
	var val2=document.getElementById('date2').value; 
	var tabDate2 = val2.split("/");	
	
	if(tabDate2[0]<10){
		tabDate2[0] = "0"+tabDate2[0];
	}
	//tabDate2[0] = str_replace("00","0",tabDate2[0]);
	ddtemp = tabDate2[0];
	ddtemp=ddtemp.replace(/00/g,'0');
	tabDate2[0] = ddtemp;	
	
	if(tabDate2[1]<10){
		tabDate2[1] = "0"+tabDate2[1];
	}
	//tabDate2[1] = str_replace("00","0",tabDate2[1]);
	ddtemp = tabDate2[1];
	ddtemp=ddtemp.replace(/00/g,'0');
	tabDate2[1] = ddtemp;	
	
	AA1 =tabDate2[2];
	MM1 =tabDate2[1];
	DD1 =tabDate2[0];
	
	if (AA1<AA) {
		document.getElementById('date2').value=document.getElementById('date1').value; 
		majDateRetour();
	} else if (AA1==AA) {
		if(MM1<MM) {
			document.getElementById('date2').value=document.getElementById('date1').value; 
			majDateRetour();
		} else if ((DD1<DD) && (MM1 == MM )) {
			document.getElementById('date2').value=document.getElementById('date1').value; 
			majDateRetour();
		} 
	}
}

function majDateRetour(){
	var val1=document.getElementById('date2').value; 
	var tabDate = val1.split("/");
	if(tabDate[0]<10){
		tabDate[0] = "0"+tabDate[0];
	}
	///tabDate[0] = str_replace("00","0",tabDate[0]);
	ddtemp = tabDate[0];
	ddtemp=ddtemp.replace(/00/g,'0');
	tabDate[0] = ddtemp;
	
	if(tabDate[1]<10){
		tabDate[1] = "0"+tabDate[1];
	}
	ddtemp = tabDate[1];
	ddtemp=ddtemp.replace(/00/g,'0');
	tabDate[1] = ddtemp;
	document.Moteur.DD1.value = tabDate[0];
	document.Moteur.MM1.value = tabDate[1]+"-"+tabDate[2];
}
//---

//--- CHARGEMENT DU FLASH
function ChargeFlashMoteurVol(){
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="950" height="600" align="middle" id="flightSearch">\n'); 
document.write('<param name="movie" value="/flightSearchV1/flightSearch.swf" />\n'); 
document.write('<param name="quality" value="high" />\n'); 
document.write('<param name="menu" value="false" />\n'); 
document.write('<param name="bgcolor" value="#FFFFFF" />\n'); 
document.write('<param name="wmode" value="transparent" />\n'); 
document.write('<param name="FlashVars" value="REINIT_RECHERCHE=&Iprov=&Idest=&prov=&dest=&MM=&DD=&MM1=&DD1=&AD=&EN=&BB=&CL=&VD=&id_rech=&AFFILIE=&VALIDE=" />\n');
document.write('<embed swliveconnect="true" name="flightSearch" wmode="transparent"  src="/flightSearchV1/flightSearch.swf" quality=high bgcolor=#ffffff width=950  height=600  type="application/x-shockwave-flash" flashvars="REINIT_RECHERCHE=&Iprov=&Idest=&prov=&dest=&MM=&DD=&MM1=&DD1=&AD=&EN=&BB=&CL=&VD=&id_rech=&AFFILIE=&VALIDE=" pluginspage="http://www.macromedia.com/go/getflashplayer"  \n'); 
document.write('</embed>\n'); 
document.write('</object>\n'); 
}
//---

//--- DEMARRAGE DE LA RECHERCHE
function startSearch(){
	
	//Recup formulaire
	var form = document.Moteur;
	
	//Definition variables passés en paramètres
	Today = new Date();
	
	if(form.AR1.checked == true) {
		varAR=1;
	} else {
		varAR=0;
	}
	
	id_rech=0;
	appel_id_rech=appel_id_rech + 1;
	max_id_visite = 0
	
	//Création url
	parametres= "id_affilie=2&Idest=" + form.Idest.value + "&Iprov=" + form.Iprov.value + "&DD=" + form.DD.value + "&MM=" + form.MM.value + "&DD1=" + form.DD1.value + "&MM1=" + form.MM1.value + "&AD=" + form.AD.value + "&EN=" + form.EN.value + "&BB=" + form.BB.value + "&CL=" + form.CL.value + "&AR=" + varAR + "&Time=" + Today.getTime() + "&max_id_visite=" + max_id_visite + "&appel_id_rech=" + appel_id_rech ;
	
	urlScript = "/flightSearchV1/getIdRech.php?" + parametres;		
	//window.open(urlScript);
	httpGetIdRechVol = getHTTPObject();
	httpGetIdRechVol.open("GET", urlScript, true);
	httpGetIdRechVol.onreadystatechange = handleHttpGetIdRechVol;
	httpGetIdRechVol.send(null);
	
	window.setTimeout("callInitFlash();", 500);
	window.setTimeout("callIdRechTest();", 10000);
}
//---

//--- CHANGEMENT DE L'ETAT DE LA RECHERCHE AU NIVEAU DU FLASH
function callInitFlash(){
	
	if(id_rech>0) {
		window.setTimeout("initFlash();", 200);
		httpEtatRecherche.open("GET", "/flightSearchV1/etatRecherche.php?id_rech="+ id_rech + "&etat=2&Time=" + Today.getTime(), true);	
		httpEtatRecherche.onreadystatechange = handleHttpEtatRecherche;
		httpEtatRecherche.send(null);	
	} else {
		window.setTimeout("callInitFlash();", 500);
	}
}
//---

//--- TEST DE L'ID RECH = 0 SINON REDEMANDE ID RECH
function callIdRechTest() {
	if(appel_id_rech!=0) {
		if(appel_id_rech<3) {
			startSearch();
		}
	}
}
//---

//--- INITIALISATION DU FLASH
function initFlash(){
	/*
	if (hasReqestedVersion) {
	*/	
		try {
			
			movie = getFlashMovieObject('flightSearch');
			var doesExistFlash= typeof(movie)!='undefined' ? true : false;
			
			if(doesExistFlash==true) {	
				
				var form = document.Moteur;
				sendText = form.Iprov.value;
	
				movie.SetVariable("Iprov", sendText);
				sendText = form.Idest.value;
				movie.SetVariable("Idest", sendText);
				sendText = form.prov.value;
				movie.SetVariable("prov", sendText);
				sendText = form.dest.value;
				movie.SetVariable("dest", sendText);
				sendText = form.MM.value;
				movie.SetVariable("MM", sendText);	
				sendText = form.DD.value;
				movie.SetVariable("DD", sendText);	
				sendText = form.MM1.value;
				movie.SetVariable("MM1", sendText);	
				sendText = form.DD1.value;
				movie.SetVariable("DD1", sendText);	
				sendText = form.AD.value;
				movie.SetVariable("AD", sendText);	
				sendText = form.EN.value;
				movie.SetVariable("EN", sendText);	
				sendText = form.BB.value;
				movie.SetVariable("BB", sendText);
				sendText = form.CL.value;
				movie.SetVariable("CL", sendText);	
				
				if(form.AR1.checked == true){
					sendText = "1";	
				}else{
					sendText = "0";	
				}
				movie.SetVariable("AR", sendText);
				
				movie.SetVariable("id_rech", id_rech);
				
				movie.SetVariable("AFFILIE", idAffilie);
				movie.SetVariable("STOP_RECHERCHE", "0");
				movie.SetVariable("RESULTAT_DEJA_OBTENU", "0");
				movie.SetVariable("VALIDE", "1");
				
			}else {	
				window.setTimeout("initFlash();", 500);
			}
		} catch(e) {
			httpEtatRecherche.open("GET", "/flightSearchV1/etatRecherche.php?id_rech="+ id_rech + "&etat=13&Time=" + Today.getTime(), true);	
			httpEtatRecherche.onreadystatechange = handleHttpEtatRecherche;
			httpEtatRecherche.send(null);
			window.setTimeout("initFlash();", 1000);
		}
		/*
	} else { 
		httpEtatRecherche.open("GET", "/flightSearchV1/etatRecherche.php?id_rech="+ id_rech + "&etat=12&Time=" + Today.getTime(), true);	
		httpEtatRecherche.onreadystatechange = handleHttpEtatRecherche;
		httpEtatRecherche.send(null);		
	}
	*/
}
//---

//--- FONCTION QUI TERMINE httpGetIdRechVol()
function handleHttpGetIdRechVol(retour) {
	if (httpGetIdRechVol.readyState == 4) {
		appel_id_rech = 0;
		results = httpGetIdRechVol.responseText;
		tabTmp=results.split(";;;");
		id_rech_cache = tabTmp[2];
		if(id_rech_cache>0){
			document.location.href='flightResults.php?id_rech2='+id_rech_cache+'&id_rech=' + tabTmp[1];
		}else{
			if (tabTmp[1] != "maximum") {
				id_rech = tabTmp[1];
			}/* else {
				AffichDivMaxRecherche();
			}		*/	
		}	
	}
}
//---

//--- FONCTION QUI TERMINE httpEtatRecherche()
function handleHttpEtatRecherche() {
	if (httpEtatRecherche.readyState == 4) {
		var resultErreur = httpEtatRecherche.responseText;
	}
}
//---

//--- FONCTION QUI REGARDE SI LE FLASH EXISTE
function getFlashMovieObject(movieName){
	if (window.document[movieName]){
		return window.document[movieName];
	}
	
	if (navigator.appName.indexOf("Microsoft Internet")==-1){
		if (document.embeds && document.embeds[movieName]){
			return document.embeds[movieName]; 
		}
		
	}else{ // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
		return document.getElementById(movieName);
	}
}
//---