function displayOutwardCalendar(field, link) {
    var outwardCalendar = new CalendarPopup("calendarDIV");
    outwardCalendar.setCssPrefix("calendar-");
    outwardCalendar.setYearSelectStartOffset(0);
    outwardCalendar.setWeekStartDay(1);
    outwardCalendar.setDayHeaders("D","L","M","M","J","V","S");
    outwardCalendar.setTodayText("Aujourd'hui");
    outwardCalendar.setMonthNames("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
    outwardCalendar.setReturnFunction("updateInwardDate");
    outwardCalendar.offsetX = -152;
    outwardCalendar.offsetY = -157;
    var begin = new Date();
    begin.setTime(begin.getTime() + 1 * 24 * 60 * 60 * 1000);
    var end = new Date();
    end.setTime(end.getTime() + 1 * 24 * 60 * 60 * 1000);
    end.setFullYear(end.getFullYear() +1);
    outwardCalendar.addDisabledDates(formatDate(end, "yyyy-MM-dd"), null);
    outwardCalendar.addDisabledDates(null, formatDate(begin, "yyyy-MM-dd"));
    outwardCalendar.select(field, link, 'dd/MM/yyyy');
}
function displayOutwardCalendarBottom(field, link) {
    var outwardCalendar = new CalendarPopup("calendarDIV");
    outwardCalendar.setCssPrefix("calendar-");
    outwardCalendar.setYearSelectStartOffset(0);
    outwardCalendar.setWeekStartDay(1);
    outwardCalendar.setDayHeaders("D","L","M","M","J","V","S");
    outwardCalendar.setTodayText("Aujourd'hui");
    outwardCalendar.setMonthNames("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
    outwardCalendar.offsetX = -152;
    outwardCalendar.offsetY = 15;
    var begin = new Date();
    begin.setTime(begin.getTime() + 1 * 24 * 60 * 60 * 1000);
    var end = new Date();
    end.setTime(end.getTime() + 1 * 24 * 60 * 60 * 1000);
    end.setFullYear(end.getFullYear() +1);
    outwardCalendar.addDisabledDates(formatDate(end, "yyyy-MM-dd"), null);
    outwardCalendar.addDisabledDates(null, formatDate(begin, "yyyy-MM-dd"));
    outwardCalendar.select(field, link, 'dd/MM/yyyy');
}

function displayInwardCalendar(field, link) {
    var inwardCalendar = new CalendarPopup("calendarDIV");
    inwardCalendar.setCssPrefix("calendar-");
    inwardCalendar.setYearSelectStartOffset(0);
    inwardCalendar.setWeekStartDay(1);
    inwardCalendar.setDayHeaders("D","L","M","M","J","V","S");
    inwardCalendar.setTodayText("Aujourd'hui");
    inwardCalendar.setMonthNames("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
    inwardCalendar.offsetX = -152;
    inwardCalendar.offsetY = -157;
    if (typeof(begin) == 'undefined') {
        begin = new Date();
        begin.setTime(begin.getTime() + 7 * 24 * 60 * 60 * 1000);
    }
    var beginTime = getDateFromFormat(field.form.departureDate.value, 'dd/MM/yyyy');
    if (beginTime != 0) {
        var start = new Date(beginTime - 24 * 60 * 60 * 1000);
        var end = new Date();
        end.setTime(end.getTime() + 1 * 24 * 60 * 60 * 1000);
        end.setFullYear(end.getFullYear() +1);
        inwardCalendar.addDisabledDates(formatDate(end, "yyyy-MM-dd"), null);
        inwardCalendar.addDisabledDates(null, formatDate(start, "yyyy-MM-dd"));
	    inwardCalendar.select(field, link, 'dd/MM/yyyy', field.form.returnDate.value);
    } else {
        var end = new Date();
        end.setTime(end.getTime() + 1 * 24 * 60 * 60 * 1000);
        end.setFullYear(end.getFullYear() +1);
        inwardCalendar.addDisabledDates(formatDate(end, "yyyy-MM-dd"), null);
        inwardCalendar.addDisabledDates(null, formatDate(begin, "yyyy-MM-dd"));
	    inwardCalendar.select(field, link, 'dd/MM/yyyy', field.form.departureDate.value);
    }
}
// based on displayInwardCalendar with special treatment for vignette
function displayInwardVignetteCalendar(field, link) {
    var inwardCalendar = new CalendarPopup("calendarDIV");
    inwardCalendar.setCssPrefix("calendar-");
    inwardCalendar.setYearSelectStartOffset(0);
    inwardCalendar.setWeekStartDay(1);
    inwardCalendar.setDayHeaders("D","L","M","M","J","V","S");
    inwardCalendar.setTodayText("Aujourd'hui");
    inwardCalendar.setMonthNames("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
    inwardCalendar.offsetX = -152;
    inwardCalendar.offsetY = -52;

    if (typeof(begin) == 'undefined') {
        begin = new Date();
        begin.setTime(begin.getTime() + 7 * 24 * 60 * 60 * 1000);
    }
    var beginTime = getDateFromFormat(field.form.departureDate.value, 'dd/MM/yyyy');
    if (beginTime != 0) {
        var start = new Date(beginTime);
	    var end = new Date();
	    end.setTime(end.getTime() + 1 * 24 * 60 * 60 * 1000);
	    end.setFullYear(end.getFullYear() + 1);
        inwardCalendar.addDisabledDates(formatDate(end, "yyyy-MM-dd"), null);
        inwardCalendar.addDisabledDates(null, formatDate(start, "yyyy-MM-dd"));
    } else {
	    var end = new Date();
	    end.setTime(end.getTime() + 1 * 24 * 60 * 60 * 1000);
	    end.setFullYear(end.getFullYear() + 1);
        inwardCalendar.addDisabledDates(formatDate(end, "yyyy-MM-dd"), null);
        inwardCalendar.addDisabledDates(null, formatDate(begin, "yyyy-MM-dd"));
    }
    inwardCalendar.select(field, link, 'dd/MM/yyyy', field.form.departureDate.value);
}

function updateInwardDate(y,m,p) {

		if (window.CP_targetInput!=null) {
		var dt = new Date(y,m-1,p,0,0,0);
		if (window.CP_calendarObject!=null) { window.CP_calendarObject.copyMonthNamesToWindow(); }
		window.CP_targetInput.value = formatDate(dt,window.CP_dateFormat);
		}else {
		alert('Use setReturnFunction() to define which function will get the clicked results!');
		}


	var depDate = new Date();
	depDate.setFullYear(y);
	depDate.setMonth(m-1);
	depDate.setDate(p);
	if (document.getElementById("returnDateCal") != null && document.getElementById("returnDateCal").value != null) {
               var dtReturn = document.getElementById("returnDateCal").value;
               var retDateTmp = getDateFromFormat(dtReturn, "dd/MM/yyyy");
	       if (retDateTmp != 0) {
		   var retDate = new Date(retDateTmp - 24 * 60 * 60 * 1000);
		   var result = (retDate.getTime() - depDate.getTime()) / (24 * 60 * 60 * 1000);
		    if (result < 7) {
			    var dateDepartDate = new Date();
			    dateDepartDate.setTime(depDate.getTime() + 7  * 24 * 60 * 60 * 1000);
			    document.getElementById("returnDateCal").value = formatDate(dateDepartDate, 'dd/MM/yyyy');
		   }

		    if (retDate < depDate) {
			 depDate.setTime(depDate.getTime() + 7  * 24 * 60 * 60 * 1000);
			 document.getElementById("returnDateCal").value = formatDate(depDate, 'dd/MM/yyyy');
		    }
	       }
	}
}

