/*
* obtenir un objet xmlhhtprequest
*/
function getXhr(){
    var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
	   	try {
       		xhr = new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e) {
        	xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
	}
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	   xhr = false; 
	} 
    return xhr;
}
/*
* loading message
*/
function loadingMessage(xhr){
	if(xhr.readyState < 4 ){
		document.getElementById("loading").innerHTML = "veuillez patientez, mise à jour des voyages";
		//document.getElementById("loading").innerHTML = "<img src='images/loader.gif' width='100' alt='Veuillez patienter, telechargement des donnees ...' />";
	}else if(xhr.readyState == 4 ){
		document.getElementById("loading").innerHTML = "";
	}
}
/*
* VERIFICATION DE LA DATE 
*/
function checkDate(){
	var annee = document.getElementById("annee").options[document.getElementById("annee").selectedIndex].value;
	var mois = document.getElementById("mois").options[document.getElementById("mois").selectedIndex].value;
	var jour = document.getElementById("jour").value;
	
	if(jour != "JJ" && mois != "MM"){
		var date = new Array(jour,mois,annee);
		var nbJours = new Array('',31,28,31,30,31,30,31,31,30,31,30,31);
		result = "oui";
		if ( date['2']%4 == 0 && date['2']%100 > 0 || date['2']%400 == 0 ){
			nbJours['2'] = 29;
		}
		if( isNaN(date['2']) ){
			result = "Attention la date sélectionnée n'est pas valide, veuillez la saisir à nouveau.";
		}
		if ( isNaN(date['1']) || date['1'] > 12 || date['1'] < 1 ){
			result = "Attention la date sélectionnée n'est pas valide, veuillez la saisir à nouveau.";
		}
		if ( isNaN(date['0']) || date['0'] > nbJours[Math.round(date['1'])] || date['0'] < 1 ){
			result = "Attention la date sélectionnée n'est pas valide, veuillez la saisir à nouveau.";
		}
		if (result == "oui"){
			var datAujourdhui = new Date();
			var client_Date = new Date(parseInt(date['2'],10), parseInt(date['1'],10) -1, parseInt(date['0'],10));
			if (client_Date < datAujourdhui){
				result = "Attention la date sélectionnée est passée, veuillez la saisir à nouveau.";			 	
			}
		}
		return result;
	}
}


function checkDateArray(param){
	/**
	var annee = document.getElementById("annee").options[document.getElementById("annee").selectedIndex].value;
	var mois = document.getElementById("mois").value;
	var jour = document.getElementById("jour").value;
	*/
	result = "non";
	if(param[0] != "JJ" && param[1] != "MM" && param[2] != "AAAA" ){
		var date = new Array(param[0],param[1],param[2]);
		var nbJours = new Array('',31,28,31,30,31,30,31,31,30,31,30,31);
		result = "oui";
		if ( date['2']%4 == 0 && date['2']%100 > 0 || date['2']%400 == 0 ){
			nbJours['2'] = 29;
		}
		if( isNaN(date['2']) ){
			result = "Attention la date sélectionnée n'est pas valide, veuillez la saisir à nouveau.";
		}
		if ( isNaN(date['1']) || date['1'] > 12 || date['1'] < 1 ){
			result = "Attention la date sélectionnée n'est pas valide, veuillez la saisir à nouveau.";
		}
		if ( isNaN(date['0']) || date['0'] > nbJours[Math.round(date['1'])] || date['0'] < 1 ){
			result = "Attention la date sélectionnée n'est pas valide, veuillez la saisir à nouveau.";
		}
		if (result == "oui"){
			var datAujourdhui = new Date();
			var client_Date = new Date(parseInt(date['2'],10), parseInt(date['1'],10) -1, parseInt(date['0'],10));
			if (client_Date < datAujourdhui){
				result = "Attention la date sélectionnée est passée, veuillez la saisir à nouveau.";			 	
			}
		}
		//return result;
	}
	return result;
}

function checkDateDepart(param){
	result = "non";
	if(param[0] != "MM" && param[1] != "AAAA" ){
		var date = new Array(param[0],param[1]);
		result = "oui";
		if( isNaN(date['1']) ){
			result = "Attention la date sélectionnée n'est pas valide, veuillez la saisir à nouveau.";
		}
		if ( isNaN(date['0']) || date['0'] > 12 || date['0'] < 1 ){
			result = "Attention la date sélectionnée n'est pas valide, veuillez la saisir à nouveau.";
		}
		if (result == "oui"){
			var datAujourdhuiFull = new Date();
			var datAujourdhui = new Date(datAujourdhuiFull.getFullYear(),datAujourdhuiFull.getMonth());
			var client_Date = new Date(parseInt(date['1'],10), parseInt(date['0'],10) -1);
			if (client_Date < datAujourdhui){
				result = "Attention la date sélectionnée est passée, veuillez la saisir à nouveau.";			 	
			}
		}
	}
	return result;
}


/*
* envoi formulaire avec controle de la date
*
*/
function sendForm(){
	var valid = "non";
	var annee = document.getElementById("annee").options[document.getElementById("annee").selectedIndex].value;
	var mois = document.getElementById("mois").options[document.getElementById("mois").selectedIndex].value;
	if ( checkDateDepart(new Array(mois,annee)) != "oui"  && checkDateDepart(new Array(mois,annee)) != "non" ){
		alert(checkDateDepart(new Array(mois,annee)));
		valid = "non";
		return false ;
	}else if (checkDateDepart(new Array(mois,annee)) == "oui"){
		valid = "oui";
	}	
	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 ( checkDateArray(new Array(jour_fin,mois_fin,annee_fin))	 != "oui"  && checkDateArray(new Array(jour_fin,mois_fin,annee_fin)) != "non" ){
		alert(checkDateArray(new Array(jour_fin,mois_fin,annee_fin)));
		valid = "non";
		return false ;
	}else if (checkDateArray(new Array(jour_fin,mois_fin,annee_fin)) == "oui"){
		valid = "oui";
	}
	
	if (valid == "oui"){
		getCountResultsSimple("date");
		document.form.submit();
	}	
	
}

function sendFormSMP(){
	var annee = document.getElementById("annee_rpd").options[document.getElementById("annee_rpd").selectedIndex].value;
	var mois = document.getElementById("mois_rpd").options[document.getElementById("mois_rpd").selectedIndex].value;

	if ( checkDateDepart(new Array(mois,annee))	 != "oui"  && checkDateDepart(new Array(mois,annee)) != "non" ){
		alert(checkDateDepart(new Array(mois,annee)));
		return false ;
	}else if (checkDateDepart(new Array(mois,annee)) == "oui"){
		getCountResultsSimple("date");
		document.form.submit();
	}	
}

function sendFormSLC(){
	var annee = document.getElementById("annee").options[document.getElementById("annee").selectedIndex].value;
	var mois = document.getElementById("mois").options[document.getElementById("mois").selectedIndex].value;
	
	if ( checkDateDepart(new Array(mois,annee))	 != "oui"  && checkDateDepart(new Array(mois,annee)) != "non" ){
		alert(checkDateDepart(new Array(mois,annee)));
		return false ;
	}else if (checkDateDepart(new Array(mois,annee)) == "oui"){
		getCountResultsSimple("date");
		document.form_slc.submit();
	}	
}

function sendFormProduct(){
	checkCodePack();
}

/** reecriture **/

function cleanStr(str) {
	var s_pattern = ['À','Â','à','â','Ô','Ö','ô','ö','È','É','Ê','Ë','é','è','ê','ë','Ç','ç','Î','Ï','î','ï','Ù','Û','Ü','ù','û','ü',' ',"'"];
	var r_pattern = ['A','A','a','a','O','O','o','o','E','E','E','E','e','e','e','e','C','c','I','I','i','i','U','U','U','u','u','u','-','-'];

	for(i in s_pattern) {
		eval('str = str.replace(/' + s_pattern[i] + '/g, "' + r_pattern[i] + '")');
	}

	return str;
}

function MapTypeVoyage(val) {
	var type = '';
	switch(val) {
		case 'type_famille' :
			type = 'famille';
			break;
		case 'type_petiteg' :
			type = 'petit_groupe';
			break;
		case 'type_liberte' :
			type = 'liberte';
			break;
		case 'type_exceptionnel' :
			type = 'exceptionnel';
			break;
	}

	return type;
}

function writeUrl(formId, skip) {
	elArray = $('#' + formId).serializeArray();
	var str = '';

	$.each(elArray, function(i,el) {
		if(		el.value != ''
			&&	el.value != 'AAAA'
			&&	el.name  != 'rechercheok'
			&&	el.name	 != 'mois'
			&&	el.name	 != 'mois_fin'
			&&	el.name	 != 'jour_fin'
			&&	el.name	 != 'type'
			&&	( el.name != skip || skip == '' )
		) {
			var ele = $('#' + formId + ' [name="'+el.name+'"]');
			switch (el.name)
			{
				case 'type_voyage[]' :
					if(str.indexOf("voyage:") < 0) {
						str += ';voyage:';
						if(ele.size() > 1) {
							j = 0;
							ele.each(function(i,el) {
								if(el.checked || ( $(el).attr('type') == 'hidden' && el.value != '')) {
									if(j>0) {
										str += ',';
									}
									str += MapTypeVoyage(el.id);
									j++;
								}
							});
						} else {
							str += MapTypeVoyage(ele[0].id);
						}
					}
					break;
				case 'promotion':
					str += ';' + el.name;
					break;
				case 'depart_immediat':
					str += ';' + el.name;
					break;
				case 'depart_assure':
					str += ';' + el.name;
					break;
				case 'prix_club':
					str += ';' + el.name;
					break;
				case 'type_sans_vol':
					str += ';rdv_sur_place';
					break;
				case 'continent':
					str += ';destination:' + cleanStr(ele.children('option:selected').text());
					break;
				case 'nb_jours':
					str += ';duree:' + cleanStr(ele.children('option:selected').text());
					break;
				case 'type_prod':
					if(ele.val() == 'trek_randos') {
						str += ';type_voyage:trek_randos';
					} else {
						if(ele[0].tagName == 'SELECT') {
							str += ';type_voyage:' + cleanStr(ele.children('option:selected').text());
						} else {
							str += ';type_voyage:' + cleanStr(el.value);
						}
					}
					break;
				case 'annee' :
					str += ';depart:';
					elMois = $('#' + formId + ' [name="mois"]');

					if(elMois.val() != 'MM' && elMois.val() != '') {
						str += elMois.val() + '-';
					}

					str += el.value;
					break;
				case 'annee_fin' :
					str += ';retour:';

					elJour = $('#' + formId + ' [name="jour_fin"]');
					elMois = $('#' + formId + ' [name="mois_fin"]');

					if(elMois.val() != 'MM' && elMois.val() != '') {
						if(elJour.val() != 'JJ' && elJour.val() != '') {
							str += elJour.val() + '-';
						}

						str += elMois.val() + '-';
					}

					str += el.value;
					break;
				case 'budget':
					val = ele.children('option:selected').text();
					val = val.replace(' €','');

					str += ';budget:' + cleanStr(val);
					break;
				default:
					if(el.name == 'niveau' || el.name == 'thematique' || el.name == 'pays') {
						if(ele[0].tagName == 'SELECT') {
							str += ';' + el.name + ':' + cleanStr(ele.children('option:selected').text());
						} else {
							str += ';' + el.name + ':' + cleanStr(el.value);
						}
					}
					break;
			}
		}
	});

	return str;
}

/** fin reecriture **/