function includeJsFiles(fileName)
{
	document.write("<script type='text/javascript' src='/js/"+fileName+"'></script>" );
}

var month=new Array();
month[0]='Janvier ';
month[1]='Février ';
month[2]='Mars ';
month[3]='Avril ';
month[4]='Mai ';
month[5]='Juin ';
month[6]='Juillet ';
month[7]='Août ';
month[8]='Septembre ';
month[9]='Octobre ';
month[10]='Novembre ';
month[11]='Décembre ';

var now = new Date();
var date_afficher = new Date();

function verif_date(selectMois, selectJour, ecart){
	date_afficher.setTime(now.getTime()+ecart*(24*3600*1000));
	
	var jour = date_afficher.getDate();
	var mois = date_afficher.getMonth();
	var annee = date_afficher.getYear();
	if(annee<1900) annee += 1900;
	
	if(selectMois.options[selectMois.selectedIndex].value-1 == mois){
		var jour_max = ft_jour_max(mois, annee);
		var ind = jour;
	}
	else if(selectMois.options[selectMois.selectedIndex].value-1<mois){
		var jour_max = ft_jour_max(selectMois.options[selectMois.selectedIndex].value-1, annee);
		var ind = 1;
	}
	else {
		var jour_max = ft_jour_max(selectMois.options[selectMois.selectedIndex].value-1, annee+1);
		var ind = 1;
	}
	
	selectJour.options.length = 0;
	
	for(i = ind; i <= jour_max;i++){
		selectJour.options.add(new Option ( i, i));
	}
}

function imprime_date(selectMois, selectJour,ecart){
	date_afficher.setTime(now.getTime()+ecart*(24*3600*1000));
	
	var jour = date_afficher.getDate();
	var mois = date_afficher.getMonth();
	var annee = date_afficher.getYear();
	if(annee<1900) annee += 1900;
	var jour_max = ft_jour_max(mois, annee);
	
	for(i = jour; i <= jour_max;i++){
		selectJour.options.add(new Option ( i, i));
	}
	
	for(i = mois; i < month.length;i++){
		selectMois.options.add(new Option (month[i]+" "+annee, i+1 ));
	}
	
	for(i = 0; i < mois;i++){
		selectMois.options.add(new Option (month[i]+" "+(annee+1), i+1 ));
	}
}

function imprime_date2(idJour, idMois, idAnnee, ecart){
	date_afficher.setTime(now.getTime()+ecart*(24*3600*1000));
	var jour = date_afficher.getDate();
	var mois = date_afficher.getMonth();
	var annee = date_afficher.getYear();
	if(annee<1900) annee += 1900;
	
	idJour.value = jour;
	idMois.value = mois + 1;
	idAnnee.value = annee;
}

function ft_jour_max(m, a){
	switch(m){
		case 0 :
		case 2 :
		case 4 :
		case 6 :
		case 7 :
		case 9 :
		case 11: 
			jour_max = 31;
			break;
		case 3 :
		case 5 :
		case 8 :
		case 10 :
			jour_max = 30;
			break;
		case 1 :
			if(a%4==0)
				if(a%100==0)
					if(a%400==0) jour_max = 29;
					else jour_max = 28;
				else jour_max =28;
			else jour_max = 28;
			break;
	}
	return jour_max;
}

function changement_onglet(div1,div2,div3){
	var onglet1 = "onglet_" + div1;
	var onglet2 = "onglet_" + div2;
	var onglet3 = "onglet_" + div3;
	
	document.getElementById(onglet1).className = "onglet_selec";
	document.getElementById(onglet2).className = "onglet_non";
	document.getElementById(onglet3).className = "onglet_non";
	
	document.getElementById(div1).style.display = "block";
	document.getElementById(div2).style.display = "none";
	document.getElementById(div3).style.display = "none";
}

function checkRedirect()
{
    var check = document.getElementById('CheckOK').value;

    if (check == '1')
    {
      var table = document.getElementById('mainTab');
      var redirect = document.getElementById('redirect').value;
      var tr=document.createElement('tr');
      var td=document.createElement('td');
      td.innerHTML = '<img id="Redirection" visible="false" src="' + redirect + '"/>';
      tr.appendChild(td);
      table.appendChild(tr);
    }
}

function checkError()
{
   var err = document.getElementById('error').value; 
   if (err != '')
   {
       window.alert(err);
   }
}

function calcDevis()
{
    var nba = document.getElementById('ddlAdultes').selectedIndex+1;
    var nbe = document.getElementById('ddlEnfants').selectedIndex;
    var nbb = document.getElementById('ddlBebes').selectedIndex;
    var nbs = 0;
    var tot = nba+nbe+nbb;
    var spantotal = document.getElementById('montantTotal');
    var assur = (document.getElementById('assurance_option1').checked)?1:0;

    var intitule = document.getElementById('intitule').value;
    var dtDepart = document.getElementById('dtDepart').value;
    var stringooL = document.getElementById('ooL').value;
    var stringooP = document.getElementById('ooP').value;
    var ta = document.getElementById('prixPublic').value;
    var te = document.getElementById('prixEnfant').value;
    var tb = document.getElementById('prixBebe').value;
    var ts = document.getElementById('prixSingle').value;
    
    // test
    var testeur = document.getElementById('test').value;

    if (tot%4 == 0)
    {
        nba += nbe;
        nbe = 0;
    }
    else if (2*nbe>nba)
    {
        var nnbe = Math.floor (tot/3);
        nba += nbe - nnbe;
        nbe = nnbe;
    }
    
    /********************************************* CALCUL DU TARIF TOTAL *********************************/
    // tarif total = nb enfants * tarif enfant 
    var t=nbe * te;
    
    // si le nombre d'adulte est impaire : on ajoute le supplément single
    if ((nba)%2 == 1)
        nbs = 1;  
    
    // tarif total = tarif total + 1/0* tarif single + nb adultes * tarif adulte + nb bébé * tarif bébé
    // En simplifiant (avec les tarifs courants) : tarif total = nb enfant * tarif enfant + nb adultes * tarif adulte (+ 1*tarif single si nb adulte impaire)
    t += ((nbs)*ts)+(nba*ta)+(nbb*tb);
    
    
    /******************************************** CHARGEMENT DU CONTENU DE LA LISTE ********************/
    // on récupère la liste et on la nettoie
    var detail=document.getElementById('divDetail');
    while (detail.childNodes.length>0)
        detail.deleteRow(0);
   
    // puis le contenu
    addDetail(detail,intitule,nba,ta);
    
    // si on a un supplément single (nb adulte impaire)
    if (nbs>0) addDetail(detail,'Supplément chambre simple',nbs,ts);
    
    // si on a des enfants
    if (nbe>0) addDetail(detail,'Tarif enfants',nbe,te);
    
    // si on a des bébés
    if (nbb>0) addDetail(detail,'Tarif bébés',nbb,tb);
    
    
    /********************************************* CALCUL ET AFFICHAGE DES OPTIONS **********************/
    
    // Reconstruction des tableaux de libellés et prix d'options
    var ooL = stringooL.split(','); 
    var ooP = stringooP.split(',');
    
    // on parcourt chacune des options
    for (var i=0 ; i<ooL.length ; i++) {
        
        var test = ooL[i];
    
        // on ajoute à la liste : libellé de l'option + tarif option * nb DE PERSONNES (adultes + enfants + bébés)
        addDetail (detail,ooL[i],nba+nbe+nbb,ooP[i]);
        
        // on ajoute ce montant au tarif total
        t += (nba+nbe+nbb)*ooP[i];
    }
    
    /********************************************* CALCUL ET AFFICHAGE DE L'ASSURANCE ********************/
    // si le bouton radio Assurance est sur Oui
    if (assur==1)
    {
        // on ajoute la ligne Assurance avec le montant de l'assurance pour le nb de pers. présentes (adultes + enfants + bébés)
        addDetail(detail,'Assurance',1,calAssurance(nba+nbe+nbb,t));
        
        // on place le montant de l'assurance dans le champ hidden
        document.getElementById('Assurance').value = calAssurance(nba+nbe+nbb,t);
        
        // on ajoute ce montant au tarif total
        t += calAssurance(nba+nbe+nbb,t);
    }
    
    /********************************************* MISE A JOUR TARIF TOTAL ********************************/
    // on met à jour le tarif total
    spantotal.innerHTML=t;
    document.getElementById('total').value = t;
	
    /********************************************* AFFICHAGE DES LIGNES DU TABLEAU DES PARTICIPANTS *************************/

    // on affiche les lignes du tableau
    drawLines (tot);
}


// PERMET D'AJUSTER LE CONTENU DE LA LISTE D'ENFANTS A CELUI DE LA LISTE D'ADULTES 
function selectAdult()
{
    var nba = document.getElementById('ddlAdultes').selectedIndex+1;
    var nbe = document.getElementById('ddlEnfants');

    // si le nombre d'adultes sélectionné multiplié par 2 est supérieur au nombre d'enfants sélectionnable 
    if ((2*nba) >= nbe.options.length-1)
    {
        // on va ajouter des options dans la ComboBox d'enfants pour que le nb d'enfants sélectionnable vale 2 fois le nb d'adultes sélectionné
        for (var i=nbe.options.length ; i<=2*nba ; i++)
        {
            var opt=document.createElement("option");
            opt.text = i;
            nbe.options.add (opt,i);
        }
    } 
    
    // si le nombre d'adultes sélectionné multiplié par 2 n'est pas supérieur au nombre d'enfants sélectionnable
    else {
        // on récupère le nombre d'enfants sélectionné
        var s = nbe.selectedIndex;
        
        // on va diminuer le nombre d'enfants sélectionnable jusqu'à ce que le nb d'adulte * 2 soit supérieur
        for (var i=nbe.options.length-1 ; i>2*nba ; i--)
            nbe.remove(i);
           
        if (s>=nbe.options.length)
            nbe.selectedIndex = nbe.options.length-1;
    }

    nba = nba-Math.ceil(nbe.selectedIndex/2);
    calcDevis();
     
}

function assuranceDevis (ckAssur)
{
    var valid =document.getElementById('assurance_valid');

    if (ckAssur.id=="assurance_option1")
    {
        valid.disable = false;
    }
    else
    {
        valid.disable = true;
    }
    calcDevis();
}

function addDetail(div,lib,qte,px)
{
    var tr=document.createElement('tr');
    
    var td=document.createElement('td');
    td.innerHTML=lib;
    td.className='gauche_table';
    tr.appendChild(td);
    
    td=document.createElement('td');
    td.className='centre_table';
    if (qte>0) td.innerHTML=qte + ' x ' + (1*px) + '&euro;';
    tr.appendChild(td);
    
    td=document.createElement('td');
    td.className='droite_table';
    if (qte>0) 
        td.innerHTML=Math.round(100*qte*px)/100 + '&euro;';
    else
        td.innerHTML=Math.round(100*px)/100 + '&euro;';
    tr.appendChild(td);
    div.appendChild(tr);
}

function initDates (ddlid)
{
    var ddl = document.getElementById(ddlid);
    var now = new Date();
    for (var i=0 ; i<=100 ; i++)
    {
        var opti = document.createElement('Option');
        opti.text = now.getFullYear() - i;
        ddl.options.add(opti);
    }
}

function initDateCB (ddlid)
{
    var ddl = document.getElementById(ddlid);
    var now = new Date();
    for (var i=0 ; i<6 ; i++)
    {
        var opt = document.createElement('Option');
        opt.text = now.getFullYear() + i;
        ddl.options.add(opt);
    }
}

function IsEmpty(entry)
{
    var v = document.getElementById(entry);
    if (v==null)
        alert(entry + ' has no properties');
    if (v.value==null || v.value=='')
    {
        v.style.border='1px solid red';
        return 1;
    }
    else
    {
        v.style.border='1px solid #7F9DB9';
        return 0;
    }
}
function setPax(ctrl,tg)
{
    var t=document.getElementById(tg);
    if (t.value == '')
        t.value = ctrl.value;
}
function checkCompte()
{
    var err = IsEmpty('prenom');
    err += IsEmpty('nom');
    err += IsEmpty('email');
    if (document.getElementById('known').style.display=='none') {
        err += IsEmpty('confirm_psswrd');
        err += IsEmpty('psswrd');
    }
    if (err == 0)
    {
        if (document.getElementById('psswrd').value!=document.getElementById('confirm_psswrd').value)
            alert('Le mot de passe n\'est pas confirmé');
        else
            document.getElementById('Formulaire').submit();
    } else {
            alert('Tous les champs obligatoires ne sont pas remplis');
    }
}


function checkReserver()
{
    var nba = parseInt(document.getElementById('ddlAdultes').selectedIndex+1);
    var nbb = parseInt(document.getElementById('ddlBebes').selectedIndex);
    var nbe = parseInt(document.getElementById('ddlEnfants').selectedIndex);
    
    var err = IsEmpty('prenom0');
    err += IsEmpty('nom0');
    err += IsEmpty('telephone0');
    err += IsEmpty('email0');
	err += IsEmpty('adresse0');
	err += IsEmpty('cp0');
	err += IsEmpty('ville0');
    
    var ass=true;
    var assob=true;
	
	if(!document.getElementById('assurance_option1').checked&&!document.getElementById('assurance_option2').checked)
		assob=false;
	else if(document.getElementById('assurance_option1').checked&&!document.getElementById('assurance_valid').checked)
		ass = false;
	
	var dte=0;
    var dtb = 0;
    for (var i=1 ; i<=nba+nbe+nbb ; i++) {
        //if (i==2)
        //    i++;
        err += IsEmpty('nom' + (i));
        err += IsEmpty('prenom' + (i));
        if (document.getElementById('annee' + (i)).selectedIndex>0)
        {
            var an = document.getElementById('annee' + (i)).options[document.getElementById('annee' + (i)).selectedIndex].text;
            var jo = document.getElementById('jour' + (i)).options[document.getElementById('jour' + (i)).selectedIndex].text;
            var mo = document.getElementById('mois' + (i)).options[document.getElementById('mois' + (i)).selectedIndex].value;
            var dt = new Date(an, mo, jo);
            
            var dtDepart = document.getElementById('dtDepart').value ;
            
            var dtAn = dtDepart.substring(0, 4);
            var dtMo = dtDepart.substring(5, 7);
            var dtJo = dtDepart.substring(8, 10);
            
            var dtdep = new Date(dtAn-2, dtMo, dtJo);
            //dtdep.setFullYear(dtDepart.getFullYear()-2);
            if (dtdep<dt)
                dtb += 1;
            else {
                dtdep = new Date(dtAn-12, dtMo, dtJo);// .setFullYear(dtDepart.getFullYear()-12);
                if (dtdep<dt) {
                    dte += 1;
                }
            }
        }
    }
    
    if (err == 0 && dtb>=nbb && dte>=nbe)
    {
        if (!document.getElementById('cgv').checked){
            alert ('Vous devez accepter les conditions générales de vente');
		}
        else if (!assob){
            alert ('Vous devez choisir de prendre ou refuser une assurance multirisque');
		}
        else if (!ass){
			alert ('Vous devez accepter les conditions d\'assurance voyage');
        }
		else
		{	
			document.getElementById('CheckOK').value = 1;
			document.getElementById('Formulaire').submit();
		}
    } else {
        if (dtb<nbb || dte<nbe)
            alert('Les dates de naissances des enfants ne sont pas renseignées.\nAu moment du départ, les enfants doivent avoir moins de 12 ans, les bébés moins de 2 ans.');
        else
            alert('Tous les champs obligatoires ne sont pas remplis');
    }
}


// Fonction de calcul de l'assurance, 4 et 0.028 sont paramétrables 
// En .NET 4 = ConfigurationManager.AppSettings["AssuranceX"] et 0.028 = ConfigurationManager.AppSettings["AssuranceV"]
// Ici doivent être récupérés dans le fichier de conf "config.php" dans bdc-logique.php puis passé dans les champs hidden
function calAssurance(pax,px) 
{
    var assuX = document.getElementById('AssuranceX').value;
    var assuV = document.getElementById('AssuranceV').value;
    
    return Math.round((assuX*pax)+(assuV*px));
}

function verifie_email(contenu){
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(contenu)) alert('L\'adresse mail n\'est pas une adresse mail valide');
}
    
function verifie_tel(contenu){
	var filter  = /^([0-9\.\-\(\)\s])+$/;
	if (!filter.test(contenu)) alert('Le numéro de téléphone n\'est pas un numéro valide');
}

function verifie_fax(contenu){
	var filter  = /^([0-9\.\-\(\)\s])+$/;
	if (!filter.test(contenu)) alert('Le numéro de fax n\'est pas un numéro valide');
}

function initDates (ddlid){
    var ddl = document.getElementById(ddlid);
    var now = new Date();
    for (var i=0 ; i<=100 ; i++)
    {
        var opti = document.createElement('Option');
        opti.text = now.getFullYear() - i;
        ddl.options.add(opti);
    }
}

function drawLines (tot)
{
    var lines = document.getElementById('lines');
    var line = lines.childNodes[lines.childNodes.length - 2];
    var sepLine = lines.childNodes[lines.childNodes.length - 1];
	
    if (tot > lines.childNodes.length/2)
    {
        // on récupère le nombre à partir du dernier id select
        var selects = line.getElementsByTagName('select');
        var nombreChaine = selects[0].id.substring(8, selects[0].id.length);
        var nombre = parseInt(nombreChaine);
        var ecart = 1;
        
        if (nombre >9)
            ecart = 2;
    
        while (tot > lines.childNodes.length/2)
        {
            nombre ++;
            var newline = line.cloneNode(true);
            newline.id='line';
            //var reg=/1/;
            var sels = newline.getElementsByTagName('select');
            
            for (var j=0 ; j<sels.length ; j++) {
                sels[j].id = sels[j].id.substring(0, sels[j].id.length - ecart) + nombre.toString();
                sels[j].name = sels[j].name.substring(0, sels[j].name.length - ecart) + nombre.toString();
            }
            sels = newline.getElementsByTagName('input');
            for (var j=0 ; j<sels.length ; j++) {
                sels[j].id = sels[j].id.substring(0, sels[j].id.length - ecart) + nombre.toString();
                sels[j].name = sels[j].name.substring(0, sels[j].name.length - ecart) + nombre.toString();
            }
            lines.appendChild(newline);
            lines.appendChild(sepLine.cloneNode(true));
        }
    }
    else if (tot < lines.childNodes.length/2)
    {
        for (var i=lines.childNodes.length-1 ; i>=2*tot ; i--)
            lines.removeChild(lines.childNodes[i]);
    }
}

function rechsimpl(){
	var domaine = 'http://'+window.location.hostname+'/';
	var dest = document.getElementById('txt_destination2').value;
	dest = dest.split("   ").join("-"); // remplace les espaces par des tirets
	dest = dest.split("  ").join("-"); // remplace les espaces par des tirets
	dest = dest.split(" ").join("-"); // remplace les espaces par des tirets
	dest = dest.split("'").join("-"); // remplace les espaces par des tirets
	dest = (dest.toLowerCase()); // remplace maj en minuscules
		dest = dest.replace(/[ÀÁÂÄÃàâäã]/g,"a");
		dest = dest.replace(/[ÈÉÊËèéêë]/g,"e");
		dest = dest.replace(/[ÍÌÎÏìïî]/g,"i");
		dest = dest.replace(/[ÓÒÔÖÕØõòöô]/g,"0");
		dest = dest.replace(/[ÙÚÛÜùüû]/g,"u");
	//alert(dest);
	window.location.href = domaine + "simple/" + dest + ".php";
}

function rechProduits(){
	var domaine = 'http://'+window.location.hostname+'/';
	var ville_dep = document.getElementById('ville_dep').value;
	var dest = document.getElementById('dest').value;
	var cj = document.getElementById('cj').value;
	var cm = document.getElementById('cm').value;
	var ca = document.getElementById('ca').value;
	var lbx_fourchette = document.getElementById('lbx_fourchette').value;
	var lbx_budget = document.getElementById('lbx_budget').value;
	window.location.href = domaine + "recherche/" + ville_dep  + "/" + dest + "/" + cj + "/" + cm + "/" + ca + "/" + lbx_fourchette + "/" + lbx_budget + ".php";
}
