/*
* fonction Ã  appeler lors du changement d'un pays
*/
function getIdContinent(){
	var xhr = getXhr();
	// On dÃ©fini ce qu'on va faire quand on aura la rÃ©ponse
	xhr.onreadystatechange = function(){
		loadingMessage(xhr);
		// On ne fait quelque chose que si on a tout reÃ§u et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			// on selectionne le continent suivant le pays renseigner  
			for (var i=0; i<document.getElementById("continent").options.length; i++) {
			  if (document.getElementById("continent").options[i].value == xhr.responseText ) {
			    document.getElementById("continent").options[i].selected = true;
			  }
			}			
		}
	}
	// url de script traitant la requete AJAX
	xhr.open("POST","include/idcontinent_js_av.php",true);
	// ne pas oublier Ã§a pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// parametres Ã  poster 
	value = document.getElementById("pays").options[document.getElementById("pays").selectedIndex].value;
	data = "pays="+value;
	xhr.send(data);
}

/*
* fonction Ã  appeler pour le rechargement du combo continent
*/
function changeContinent(vue){
	var xhr = getXhr();
	// On dÃ©fini ce qu'on va faire quand on aura la rÃ©ponse
	xhr.onreadystatechange = function(){
		loadingMessage(xhr);
		// On ne fait quelque chose que si on a tout reÃ§u et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById("continent_ajax").innerHTML = xhr.responseText;
		}
	}
	// url de script traitant la requete AJAX
	xhr.open("POST","include/continent_js_av.php",true);
	// ne pas oublier Ã§a pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

	xhr.send(getParameters(vue));
}

/*
* fonction Ã  appeler pour le rechargement du combo pays
*/
function changeCountries(vue){
	var xhr = getXhr();
	// On dÃ©fini ce qu'on va faire quand on aura la rÃ©ponse
	xhr.onreadystatechange = function(){
		loadingMessage(xhr);
		// On ne fait quelque chose que si on a tout reÃ§u et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById("pays_ajax").innerHTML = xhr.responseText;
		}
	}
	// url de script traitant la requete AJAX
	xhr.open("POST","include/pays_js_av.php",true);
	// ne pas oublier Ã§a pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

	xhr.send(getParameters(vue));
}

/*
* fonction Ã  appeler pour le rechargement du combo type de voyages
*/
function changeProductType(vue){
	var xhr = getXhr();
	// On dÃ©fini ce qu'on va faire quand on aura la rÃ©ponse
	xhr.onreadystatechange = function(){
		loadingMessage(xhr);
		// On ne fait quelque chose que si on a tout reÃ§u et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById("type_prod_ajax").innerHTML = xhr.responseText;
		}
	}
	
	// url de script traitant la requete AJAX
	xhr.open("POST","include/type_prod_js.php",true);
	// ne pas oublier Ã§a pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

	xhr.send(getParameters(vue));
}

/*
* fonction Ã  appeler pour le rechargement du combo niveaux
*/
function changeLevel(vue){
	var xhr = getXhr();
	// On dÃ©fini ce qu'on va faire quand on aura la rÃ©ponse
	xhr.onreadystatechange = function(){
		loadingMessage(xhr);
		// On ne fait quelque chose que si on a tout reÃ§u et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById("niveau_ajax").innerHTML = xhr.responseText;
		}
	}
	// url de script traitant la requete AJAX
	xhr.open("POST","include/niveau_js.php",true);
	// ne pas oublier Ã§a pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

	xhr.send(getParameters(vue));		
}

/*
* fonction Ã  appeler pour le rechargement du combo thÃ©matiques
*/
function changeThematic(vue){
	var xhr = getXhr();
	// On dÃ©fini ce qu'on va faire quand on aura la rÃ©ponse
	xhr.onreadystatechange = function(){
		loadingMessage(xhr);
		// On ne fait quelque chose que si on a tout reÃ§u et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById("thematique_ajax").innerHTML = xhr.responseText;
		}
	}
	// url de script traitant la requete AJAX
	xhr.open("POST","include/thematiques_js.php",true);
	// ne pas oublier Ã§a pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

	xhr.send(getParameters(vue));		
}

/*
* fonction Ã  appeler pour le rechargement de la durÃ©e
*/
function changeDuration(vue){
	var xhr = getXhr();
	// On dÃ©fini ce qu'on va faire quand on aura la rÃ©ponse
	xhr.onreadystatechange = function(){
		//loadingMessage(xhr);
		// On ne fait quelque chose que si on a tout reÃ§u et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			// On se sert de innerHTML pour rajouter les options a la liste
			//document.getElementById("loading").innerHTML = xhr.responseText;
		}
	}
	// url de script traitant la requete AJAX
	xhr.open("POST","include/nb_jours_js.php",true);
	// ne pas oublier Ã§a pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

	xhr.send(getParameters(vue));		
}

/*
* fonction retourne le nombre resultats
*/
function getCountResults(vue){
	var xhr = getXhr();
	
	// On dÃ©fini ce qu'on va faire quand on aura la rÃ©ponse
	xhr.onreadystatechange = function(){
		loadingMessage(xhr);
		// On ne fait quelque chose que si on a tout reÃ§u et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			// On se sert de innerHTML pour rajouter les options a la liste
			var valid_msg = "   Aucun voyage";

			if(xhr.responseText > 1 ){
				valid_msg = "   Voir les " + xhr.responseText + " voyages ";
			}
			if(xhr.responseText == 1 ){
				valid_msg = "   Voir le voyage ";
			}

			var annee = document.getElementById("annee").options[document.getElementById("annee").selectedIndex].value;
			var mois = document.getElementById("mois").options[document.getElementById("mois").selectedIndex].value;
			var annee_fin = document.getElementById("annee_fin").options[document.getElementById("annee_fin").selectedIndex].value;
			var mois_fin = document.getElementById("mois_fin").options[document.getElementById("mois_fin").selectedIndex].value;
			var jour_fin = document.getElementById("jour_fin").options[document.getElementById("jour_fin").selectedIndex].value;
			
			if (checkDateDepart(new Array(mois,annee)) == "oui" && xhr.responseText == 0 ) {
				alert("DÃ©solÃ© mais il n'y a pas de dÃ©part pour la date sÃ©lectionnÃ©e");
			}
			if (checkDateDepart(new Array(mois,annee)) != "oui" &&  checkDateDepart(new Array(mois,annee)) != "non"){
				valid_msg = "   Aucun voyage";
			}

			if (checkDateArray(new Array(jour_fin,mois_fin,annee_fin)) != "oui" &&  checkDateArray(new Array(jour_fin,mois_fin,annee_fin)) != "non"  ){
				valid_msg = "   Aucun voyage";
			}
			document.getElementById("valid_2").value = valid_msg;
			
			/*
			if(vue == "v_recherche"){
				if(xhr.responseText == 0){
					//document.getElementById("valid").disabled = true;
				}
				document.getElementById("valid").value = valid_msg;
			}else{
				if(xhr.responseText == 0){
					//document.getElementById("valid_2").disabled = true;
				}
				document.getElementById("valid_2").value = valid_msg;
			}*/
		}
	}
	// url de script traitant la requete AJAX
	xhr.open("POST","include/nombre_resultat_RAV.php",true);
	// ne pas oublier Ã§a pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// parametres Ã  poster 
	idContinent = document.getElementById("continent").options[document.getElementById("continent").selectedIndex].value;

	xhr.send(getParameters(vue));
}

/*
* parametres Ã  envoyer si on change de continent/pays/....
*/
function getParameters(vue){
	// parametres Ã  poster
	var data = "vue="+vue; 

	if(document.getElementById("type_petiteg").checked == true){
		data += "&type_voyage[]="+document.getElementById("type_petiteg").value;
	}
	if(document.getElementById("type_famille").checked == true){
		data += "&type_voyage[]="+document.getElementById("type_famille").value;
	}	
	if(document.getElementById("type_exceptionnel").checked == true){
		data += "&type_voyage[]="+document.getElementById("type_exceptionnel").value;
	}
	if(document.getElementById("type_liberte").checked == true){
		data += "&type_voyage[]="+document.getElementById("type_liberte").value;
	}
	if(document.getElementById("type_sans_vol").checked == true){
		data += "&type_voyage[]="+document.getElementById("type_sans_vol").value;
	}

	value = document.getElementById("pays").options[document.getElementById("pays").selectedIndex].value;
	data += "&pays="+value;
	value = document.getElementById("continent").options[document.getElementById("continent").selectedIndex].value;
	data += "&continent="+value;
	value = document.getElementById("type_prod").options[document.getElementById("type_prod").selectedIndex].value;
	data += "&type_prod="+value;
	value = document.getElementById("thematique").options[document.getElementById("thematique").selectedIndex].value;
	data += "&thematique="+value;
	value = document.getElementById("niveau").options[document.getElementById("niveau").selectedIndex].value;
	data += "&niveau="+value;
	value = document.getElementById("budget").options[document.getElementById("budget").selectedIndex].value;
	data += "&budget="+value;
	value = document.getElementById("nb_jours").options[document.getElementById("nb_jours").selectedIndex].value;
	data += "&nb_jours="+value;

	var annee = document.getElementById("annee").options[document.getElementById("annee").selectedIndex].value;
	var mois = document.getElementById("mois").options[document.getElementById("mois").selectedIndex].value;
	var annee_fin = document.getElementById("annee_fin").options[document.getElementById("annee_fin").selectedIndex].value;
	var mois_fin = document.getElementById("mois_fin").options[document.getElementById("mois_fin").selectedIndex].value;
	var jour_fin = document.getElementById("jour_fin").options[document.getElementById("jour_fin").selectedIndex].value;

	if (checkDateDepart(new Array(mois,annee)) != "oui"){
		if (checkDateDepart(new Array(mois,annee)) != "non"){
			alert(checkDateDepart(new Array(mois,annee)));
		}
	}else if (checkDateDepart(new Array(mois,annee)) == "oui"){
		data += "&annee="+annee+"&mois="+mois;
	}
	if ( checkDateArray(new Array(jour_fin,mois_fin,annee_fin))	!= "oui"  ){
		if ( checkDateArray(new Array(jour_fin,mois_fin,annee_fin)) != "non"){
			alert(checkDateArray(new Array(jour_fin,mois_fin,annee_fin)));
		}
	}else if (checkDateArray(new Array(jour_fin,mois_fin,annee_fin)) == "oui"){
		data += "&annee_fin="+annee_fin+"&mois_fin="+mois_fin+"&jour_fin="+jour_fin;
	}

	if(document.getElementById("promotion") && document.getElementById("promotion").checked == true){
		data += "&promotion="+document.getElementById("promotion").value;
	}
	if(document.getElementById("depart_immediat") && document.getElementById("depart_immediat").checked == true){
		data += "&depart_immediat="+document.getElementById("depart_immediat").value;
	}	
	if(document.getElementById("depart_assure") && document.getElementById("depart_assure").checked == true){
		data += "&depart_assure="+document.getElementById("depart_assure").value;
	}
	if(document.getElementById("prix_club") && document.getElementById("prix_club").checked == true){
		data += "&prix_club="+document.getElementById("prix_club").value;
	}
	return data;
}

/*
* fonction Ã  appeler lors de changement d'un continent
*/
function onContinentChange(vue){
	changeCountries(vue);
	if(document.getElementById("type_prod").options[document.getElementById("type_prod").selectedIndex].value == ""){
		changeProductType(vue);
	}
	if(document.getElementById("thematique").options[document.getElementById("thematique").selectedIndex].value == ""){
		changeThematic(vue);
	}
	if(document.getElementById("niveau").options[document.getElementById("niveau").selectedIndex].value == ""){
		changeLevel(vue);
	}
	getCountResults(vue);
}

/*
* fonction Ã  appeler lors de changement d'un pays
*/
function onCountryChange(vue){
	getIdContinent();
	if(document.getElementById("type_prod").options[document.getElementById("type_prod").selectedIndex].value == ""){
		changeProductType(vue);
	}
	if(document.getElementById("thematique").options[document.getElementById("thematique").selectedIndex].value == ""){
		changeThematic(vue);
	}
	if(document.getElementById("niveau").options[document.getElementById("niveau").selectedIndex].value == ""){
		changeLevel(vue);
	}
	getCountResults(vue);
}

/*
* fonction Ã  appeler lors de changement d'un parametre
*/
function onParamChange(vue){
	if(document.getElementById("continent").options[document.getElementById("continent").selectedIndex].value == ""){
		changeContinent(vue);
	}	
	if(document.getElementById("pays").options[document.getElementById("pays").selectedIndex].value == ""){
		changeCountries(vue);
	}
	if(document.getElementById("type_prod").options[document.getElementById("type_prod").selectedIndex].value == ""){
		changeProductType(vue);
	}	
	if(document.getElementById("niveau").options[document.getElementById("niveau").selectedIndex].value == ""){
		changeLevel(vue);
	}
	if(document.getElementById("thematique").options[document.getElementById("thematique").selectedIndex].value == ""){
		changeThematic(vue);
	}
	//changeThematic(vue);
	//thematique = document.getElementById("thematique").options[document.getElementById("thematique").selectedIndex].value;
	//alert(thematique);
	//document.getElementById("thematique").options[document.getElementById("thematique").selectedIndex].value = thematique;
	getCountResults(vue);
}

/*
* fonction Ã  appeler lors de clique d'un checkbox 
*/
function onClickProductType(vue){
	if(document.getElementById("continent").options[document.getElementById("continent").selectedIndex].value == ""){
		changeContinent(vue);
	}
	if(document.getElementById("pays").options[document.getElementById("pays").selectedIndex].value == ""){
		changeCountries(vue);
	}
	if(document.getElementById("type_prod").options[document.getElementById("type_prod").selectedIndex].value == ""){
		changeProductType(vue);
	}
	if(document.getElementById("thematique").options[document.getElementById("thematique").selectedIndex].value == ""){
		changeThematic(vue);
	}
	if(document.getElementById("niveau").options[document.getElementById("niveau").selectedIndex].value == ""){
		changeLevel(vue);
	}
	getCountResults(vue);
}

/**
 * 
 * 
*/
function onMonthChange(vue){
	if(document.getElementById("mois").options[document.getElementById("mois").selectedIndex].value != "MM" && document.getElementById("annee").options[document.getElementById("annee").selectedIndex].value != "AAAA"){
		getCountResults(vue);
	}
}

/**
 * 
 * 
*/
function onYearChange(vue){
	if(document.getElementById("mois").options[document.getElementById("mois").selectedIndex].value != "MM" && document.getElementById("annee").options[document.getElementById("annee").selectedIndex].value != "AAAA"){
		getCountResults(vue);
	}
}

/**
 * boutons radio pour 
 *  comment voulez-vous voyager ?
*/
function onClickradio(id,val){
	document.getElementById("type_petiteg").value = "";
	document.getElementById("type_famille").value = "";
	document.getElementById("type_liberte").value = "";
	document.getElementById("type_exceptionnel").value = "";
		
	document.getElementById("type_petiteg").checked=false;
	document.getElementById("type_famille").checked=false;
	document.getElementById("type_liberte").checked=false;
	document.getElementById("type_exceptionnel").checked=false;
	
	document.getElementById(id).checked=true;
	document.getElementById(id).value = val;
	return true;
}

function getSearchSelectedParams() {
	var selected = {};
	selected.continent = $('#continent').val();
	selected.pays = $('#pays').val();
	selected.type_prod = $('#type_prod').val();
	selected.thematique = $('#thematique').val();
	selected.niveau = $('#niveau').val();

	return selected;
}

function changeSearchSelectBox(vue) {
	var selected = getSearchSelectedParams();
	var url = 'include/list_js.php';

	$.post(url, getParameters('') + '&vue=' + vue, function(data){
		$.each(selected, function(id, select){
			if(!data[id]){
				$("#" + id).removeOption(/./);
				return true;
			}

			el = $("#" + id);
			el.removeOption(/./);

			$.each(data[id], function(i,val) {
				el.addOption(val.id,val.lib);
			});

			el.selectOptions(select);

			$("#" + id + ' option:contains(:d)').each(function(){
				var ar = this.text.split(':d');
				this.text = ar[0];
				this.disabled = 'disabled';
			});
		});
	}, 'json');
}

function getSimpleSearchSelectedParams() {
	var selected = {};
	selected.continent = $('#continent_g').val();
	selected.pays = $('#pays_rpd').val();

	return selected;
}

function changeSimpleSearchSelectBox(vue) {
	var selected = getSimpleSearchSelectedParams();
	var url = 'include/list_js.php';
	
	var data = "vue="+vue;
	
	if(vue == 'v_recherche') {
		elTypeVoyage = $('#ptiblocrecherche input[name="type_voyage[]"]');
	
		if(elTypeVoyage.size() > 0 && elTypeVoyage.val() != '') {
			data += '&type_voyage[]=' + elTypeVoyage.val();
		}
	
		if($('#ptiblocrecherche input[name="type_prod"]').size() > 0 && $('#ptiblocrecherche input[name="type_prod"]').val() != '') {
			data += '&type_prod=' + $('#ptiblocrecherche input[name="type_prod"]').val();
		}
	}

	if($('#pays_rpd').val() != '') {
		data += '&pays=' + $('#pays_rpd').val();
	}
	
	if($('#continent_g').val() != '') {
		data += '&continent=' + $('#continent_g').val();
	}
	
	$.post(url, data, function(data){
		$.each(selected, function(id, select){
			if(!data[id]){
				$("#" + id).removeOption(/./);
				return true;
			}

			el = $("#ptiblocrecherche [id^='" + id + "']");
			el.removeOption(/./);

			$.each(data[id], function(i,val) {
				el.addOption(val.id,val.lib);
			});

			el.selectOptions(select);

			$("#" + el.attr('id') + ' option:contains(:d)').each(function(){
				var ar = this.text.split(':d');
				this.text = ar[0];
				this.disabled = 'disabled';
			});
		});
	}, 'json');
}
