//rappels : variables recupérées avec geo.jsp
// d_maxPeriod; // 407 pour SNMI, 100 pour ECO
// d_maxStay; //23 pour SNM , 7 pour ibis , 6 pour eco

var today            = new Date();
var maxDateOut       = addDays(today,405);

var annee_deb=today.getFullYear();
var annee_fin=addDays(today,405).getFullYear();

var jourArray = new Array();
    jourArray["de"] = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag ","Samstag");
    jourArray["es"] = new Array("domingo","lunes","martes","miercoles","jueves","viernes","sabado");
    jourArray["it"] = new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato");
    jourArray["pt"] = new Array("domingo","segunda","terça","quarta","quinta","sexta","sábado");
    jourArray["gb"] = new Array("sunday","monday","tuesday","wednesday","thursday","friday","saturday");
    jourArray["fr"] = new Array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi");
    jourArray["nl"] = new Array("zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag");
    jourArray["sv"] = new Array("sunday","monday","tuesday","wednesday","thursday","friday","saturday");
    jourArray["zh"] = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
    jourArray["ja"] = new Array("sunday","monday","tuesday","wednesday","thursday","friday","saturday");
	jourArray["pl"] = new Array("niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota");
function initDates(_form,_auto) {
    if (d_stayDates) {
        setCurrentDate(_form,new Date(d_stayDates.yearIn,
                                d_stayDates.monthIn-1,
                                d_stayDates.dayIn));
    } else if (_auto){
        setCurrentDate(_form,today);
    }
   else {
   	    unsetForm(_form);
  }
}

function checkDates(_form,_field) {
    // remise a zero
	
    if ((_field=='j' && _form.jour_arrivee.selectedIndex==0) ||
        (_field=='m' && _form.mois_arrivee.selectedIndex==0) ||
        (_field=='a' && _form.annee_arrivee.selectedIndex==0) ) {
		
   	    unsetForm(_form);
   	    if (document.getElementById('form_date_jour'))
   	        document.getElementById('form_date_jour').innerHTML = "";
   	    return;
		
    } else if ( _form.jour_arrivee.selectedIndex==0  ||
          _form.mois_arrivee.selectedIndex==0  ||
          _form.annee_arrivee.selectedIndex==0 ) { // initialisation d'un champ
          
          switch(_field){
              case 'j' :
                 if ( _form.jour_arrivee.selectedIndex < today.getDate()  ) {//pour TD_WEB3120
                 	var mois_sup=today.getMonth()+2;
                 	if(mois_sup>12){
                 		_form.mois_arrivee.selectedIndex = 1;
                 		_form.annee_arrivee.selectedIndex = _form.annee_arrivee.selectedIndex+2;
                 	}else{
              	  _form.mois_arrivee.selectedIndex = mois_sup;
              	  _form.annee_arrivee.selectedIndex = today.getFullYear() - annee_deb + 1;
              		}
         				}else{
                _form.mois_arrivee.selectedIndex  = today.getMonth()+1;
              	
                _form.annee_arrivee.selectedIndex = today.getFullYear() - annee_deb + 1;
                }
    
                break;
              case 'm' :
                _form.jour_arrivee.selectedIndex  = today.getDate();
                _form.annee_arrivee.selectedIndex = today.getFullYear() - annee_deb + 1;
                break;
              case 'a' :
                _form.jour_arrivee.selectedIndex  = today.getDate();
                _form.mois_arrivee.selectedIndex  = today.getMonth()+1;
                break;
              case 'n' :
                setCurrentDate(_form,today);
          }
      } else {
//      var jour=_form.jour_arrivee.selectedIndex;
 //     var mois=_form.mois_arrivee.selectedIndex-1;
  //    var annee=annee_deb + _form.annee_arrivee.selectedIndex-1;
      
      switch (_field) {
                case "j" : 
         if ( ( getCurrentDate(_form).getDate() < today.getDate() )&& ( getCurrentDate(_form).getMonth() == today.getMonth() ) ) {
         				var mois_sup=today.getMonth()+2;
                 	if(mois_sup>12){
                 		_form.mois_arrivee.selectedIndex = 1;
                 		_form.annee_arrivee.selectedIndex = _form.annee_arrivee.selectedIndex+1;
                 	}else{
              	  _form.mois_arrivee.selectedIndex = mois_sup;
              	  _form.annee_arrivee.selectedIndex = today.getFullYear() - annee_deb + 1;
              		}
         	
                //_form.mois_arrivee.selectedIndex = _form.mois_arrivee.selectedIndex +1;
         } 
         break;
        case "m" :
            if ( ( getCurrentDate(_form).getMonth()< today.getMonth() )&& ( getCurrentDate(_form).getFullYear() == today.getFullYear() ) ) {
                try {
                    _form.annee_arrivee.selectedIndex=_form.annee_arrivee.selectedIndex+1;
                } catch (e) {
                    setCurrentDate(_form,removeDays(maxDateOut,1));
                }
            }
            break;
        case "y" :
            if ( ( getCurrentDate(_form).getMonth()< today.getMonth() )&& ( getCurrentDate(_form).getFullYear() == today.getFullYear() ) ){
                try {_form.annee_arrivee.selectedIndex=_form.annee_arrivee.selectedIndex+1;} catch(e) {setCurrentDate(_form,removeDays(maxDateOut,1));}
            }
            break;
      } 
      
      } 
      setCurrentDate(_form,getCurrentDate(_form)); // trnasforme le 31 avril en 1er mai par exemple
      
      if (getCurrentDate(_form)> maxDateOut)
        setCurrentDate(_form,removeDays(maxDateOut,1));
      
      if (getCurrentDate(_form)< today)
        setCurrentDate(_form,today);


}


function lastDayInMonth(_date){
    var ret = new Date(_date.getFullYear(),getNbDaysMonth(_date.getMonth(),_date.getFullYear()),_date.getDate);
    return ret;
}


function setCurrentDate(_form,_date){
	var yearOptions = _form.annee_arrivee.options;	
	if(yearOptions){
	for(var i=0; i<yearOptions.length; i++)
		if(yearOptions[i].value==_date.getFullYear())
			yearOptions[i].selected=true;	
	}
	
	var monthOptions = _form.mois_arrivee.options;
	if(monthOptions){
	for(var i=0; i<monthOptions.length; i++)
		if(monthOptions[i].value==_date.getMonth()+1)
			monthOptions[i].selected=true;	
	}
	
	var dayOptions = _form.jour_arrivee.options;
	if(dayOptions){
	for(var i=0; i<dayOptions.length; i++)
		if(dayOptions[i].value==_date.getDate())
			dayOptions[i].selected=true;	
	}

     if (document.getElementById('form_date_jour')&& getCurrentDate(_form))
        document.getElementById('form_date_jour').innerHTML = jourArray[d_imagePath][getCurrentDate(_form).getDay()];    
}

function getCurrentDate(_form){
    try {
        return new Date(_form.annee_arrivee.value,
                        _form.mois_arrivee.selectedIndex-1,
                        _form.jour_arrivee.selectedIndex
                        );
    } catch (e){
        return null;
    }
}


//Remet les champs jour, mois, année d'arrivée et nbNuits à '-'
function unsetForm(_form) {
  	_form.jour_arrivee.selectedIndex=0;
	_form.mois_arrivee.selectedIndex=0;
	_form.annee_arrivee.selectedIndex=0;
    if (document.getElementById('form_date_jour'))
    document.getElementById('form_date_jour').innerHTML = "";

}

////////////


function calendrier(_form) {
		
	cal=window.open(
		 '/'+getWebapp()+'/commun/calendrier.jsp?date_min='+(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+'&date_max='+(maxDateOut.getMonth()+1)+'/'+maxDateOut.getDate()+'/'+maxDateOut.getFullYear()+
			'&mois='+(today.getMonth()+1)+
			'&annee='+(today.getFullYear())+
			'&qdate=cal&form='+_form.name,
		'cal',
      'width=246,height=196,toolbar=no,location=no,menubar=no,resizable=no,status=no,screenX=0,left=0,screenY=0,top=0'
	);
}

function met_cal(_d,_m,_y,_formname) {
    
    var _date = new Date(_y,_m-1,_d);
    var _form = document.forms[_formname];
    
    setCurrentDate(_form,_date)
     
      if (_date> maxDateOut) 
        setCurrentDate(_form,removeDays(maxDateOut,1));
      
      if (_date < today) 
        setCurrentDate(_form,today);
      
      if (document.getElementById('form_date_jour') && getCurrentDate(_form))
        document.getElementById('form_date_jour').innerHTML = jourArray[d_imagePath][getCurrentDate(_form).getDay()];

}


////////////

function bissextile(annee) {
    return (annee%4==0 && annee %100!=0 || annee%400==0);
}
//Recuperer le nombre de jours d'un mois
function getNbDaysMonth(_m,_y) {
	
	//Nombre de jours par mois
	var DaysOfMonths = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
        // For fevrier only - annee bisextile
        if (bissextile(_y))
            DaysOfMonths[1] =  29;
        else
            DaysOfMonths[1] =  28;
	return DaysOfMonths[_m];
}

//Trouver la date date1 + jours
function addDays(_date,jours) {
	var C_Day 	= _date.getDate() + jours;
	var C_Month = _date.getMonth();
	var C_Year  = _date.getFullYear();
	while ( C_Day > getNbDaysMonth(C_Month,C_Year) ) {
		C_Day	= C_Day - getNbDaysMonth(C_Month,C_Year);
		C_Month++;
		if (C_Month == 12) {
                	C_Month = 0;
                	C_Year++;
        	}
	}
        var outputDate = new Date(C_Year,C_Month,C_Day);
	return outputDate;
}
//Trouver la date date1 - jours
function removeDays(_date,_nbdays) {
	var C_Day 	= _date.getDate() - _nbdays;
	var C_Month = _date.getMonth();
	var C_Year  = _date.getFullYear();
	while ( C_Day > getNbDaysMonth(C_Month,C_Year) ) {
		C_Day	= C_Day + getNbDaysMonth(C_Month,C_Year);
		C_Month--;
		if (C_Month == -1) {
        	        C_Month = 11;
	                C_Year--;
            	}
	}
        var outputDate = new Date(C_Year,C_Month,C_Day);
		return outputDate;
}
//Le nombre de jours entre deux années a1 et a2
function nb_jour_annee(a1,a2) {
	n=0;
	if (a2>a1)
		for (i=a1; i<a2; i++) {
			n += 365;
			if (bissextile(i))
				n++;
		}
	return n;
}
//le nombre de jours entre 01/01 et date1 de la meme année
function nb_01_01(date1) {
	nb_mois=new Array(12);
	nb_mois=[0,31,59,90,120,151,181,212,243,273,304,334];
	j=date1.getDate();
	m=date1.getMonth();
	a=date1.getFullYear();
	nb=nb_mois[m]+j-1;
	if (bissextile(a) && m>1)
		nb++;
	return nb;
}
//le nombre de jours entre deux date date1 et date2
function nbDays(date1,date2) {
	nb=nb_jour_annee(date1.getFullYear(),date2.getFullYear()) - nb_01_01(date1) + nb_01_01(date2);
	return nb;
}

function createInputDest (dest) {
	var destmin = dest.toLowerCase();
	var createdest = '<input type="radio" id="'+destmin+'" name="destination" value="'+destmin+'" onclick="javascript:emptyDest(\''+dest+'\');" />&nbsp;&nbsp;'+dest;
	document.write (createdest);
}

//fonction de mise à jour bloc_nvlle_recherche  cas PRO  TD_WEB2849
function maj_pro(){
		if(d_contextGeo == "corporate" || d_contextGeo == "travelAgency" || d_contextGeo == "chouchou"){
			var date_du_jour = new Date();
			if(d_stayDates && d_stayDates!=null){
			document.formulaire.jour_arrivee.selectedIndex=d_stayDates.dayIn;
			document.formulaire.mois_arrivee.selectedIndex=d_stayDates.monthIn;
			document.formulaire.annee_arrivee.selectedIndex=d_stayDates.yearIn-date_du_jour.getFullYear()+1;
			}else{
			document.formulaire.jour_arrivee.selectedIndex=date_du_jour.getDate();
			document.formulaire.mois_arrivee.selectedIndex=date_du_jour.getMonth();
			document.formulaire.annee_arrivee.selectedIndex=1;
			}
		}
	}
function check_pro(la_valeur){
	if(d_contextGeo == "corporate" || d_contextGeo == "travelAgency" || d_contextGeo == "chouchou"){
		if(la_valeur=='-'){
		maj_pro();
		}
	}
}
