var dp_datePickerDivID = "datepicker";
var dp_iFrameDivID = "datepickeriframe";
var dp_minMonth = "";
var dp_maxMonth = "";
var gDaySelected = "";
var dp_defaultDateSeparator = '/';
var dp_defaultDateFormat    = "dmy";
var dp_dateSeparator        = dp_defaultDateSeparator;
var dp_dateFormat           = dp_defaultDateFormat;

var statusinfo = false;
var dp_dayArrayShort   = new Array('Mo','Tu','We','Th','Fr','Sa','Su');
var dp_dayArrayLong   = dp_dayArrayShort; //new Array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');
var dp_monthArrayLong = new Array('January','February','March','April','May','June','July','August','September','October','November','December');


function PickDate(theDateField, theBelowObject, theFirstMonth, theLastMonth)
{	// Function to run the dp_displayDatePicker but copying the selected date from the selection boxes first
	//    MonthField  (string holding fieldname)
	//       is the field that holds the month (have to have a selected value)
	//    DayField    (string holding fieldname)
	//      is the field that holds the day (have to have a selected value)
	//   BelowObject (string holding fieldname)
	//      if the object to where to display the calendar.
	//      Set it to false if MonthField shall be used.
	//   FirstMonth  (string)
	//      A month value (format: MMYYYY)
	//      OR
	//      Select Field name to get the value from (the selected option value - format: MMYYYY)
	//   LastMonth   (string)
	//      A month value (format: MMYYYY)
	//      OR
	//      Select Field name to get the value from (the last option value - format: MMYYYY)
	var DateField  = document.getElementById(theDateField);
	gDaySelected = DateField.value.substr(0,2);
	if (theBelowObject)
		var BelowObject = document.getElementsByName(theBelowObject).item(0)
	else
		var BelowObject = DateField;
	
	var tmpField;
	var FirstMonth;
	if (isNaN(theFirstMonth))
	{
		tmpField = document.getElementById(theFirstMonth);
		FirstMonth = tmpField.value;
	}
	else
		FirstMonth = new String(theFirstMonth);
		
	var LastMonth;
	if (isNaN(theLastMonth))
	{
		tmpField = document.getElementById(theLastMonth);
		LastMonth = tmpField.value;
	}
	else
		LastMonth = new String(theLastMonth);
	
	dp_minMonth = FirstMonth.substr(6,4) + FirstMonth.substr(3,2);
	
	dp_maxMonth = (parseInt(LastMonth.substr(6,4))+1) + "12";
	// Closing the calendar if it is open already
	dp_updateDateField(theDateField); 
	
	// Hook en dokument event til at lukke:
	document.onmousedown = dp_CloseIfClickOutsideDatepicker;
	dp_displayDatePicker(DateField, BelowObject);
}
function dp_CloseIfClickOutsideDatepicker(e)
{
	//var myevent     = (navigator.appName == "Netscape")  ? e : event;
	//var eventbutton = (navigator.appName == "Netscape") ? myevent.which : myevent.button;
	var eventbutton = (navigator.appName == "Netscape") ? e.which : event.button;
	if (eventbutton>0) 
	{
		// check to see if the div exists
		var pickerDiv = document.getElementById(dp_datePickerDivID);
		if (pickerDiv) {
			var dp_mouseX = 0;
			var dp_mouseY = 0;
			if (e != '')
				//if (document.layers)
				if (navigator.appName == "Netscape")
				{
					dp_mouseX = e.pageX;
					dp_mouseY = e.pageY;
				}
				else
				{
					dp_mouseX = event.x;
					dp_mouseY = event.y + document.body.scrollTop;
				}
			
			var dp_posX = 0;
			var dp_posY = 0;
			var dp_Height = 0;
			var dp_Width = 0;
			dp_posX = parseInt(pickerDiv.style.left);
			dp_posY = parseInt(pickerDiv.style.top);
			dp_Width = parseInt(pickerDiv.offsetWidth);
			dp_Height = parseInt(pickerDiv.offsetHeight);
			
			// Checking that the clik is 
			if ( (dp_mouseX < dp_posX || dp_mouseX > (dp_posX + dp_Width)) ||(dp_mouseY < dp_posY || dp_mouseY > (dp_posY + dp_Height)) )
				dp_CloseDatePicker();
		}
	}
}
function dp_DateAdd( AddType, Number, StartDate )
{	// Function to add some to a date
	//   AddType can be of the following values:
	//       'yy', 'yyyy' : Year
	//       'mm', 'm'    : Month
	//       'dd', 'd'    : Day
	//       'wk', 'ww'   : Week 
	//       'hh', 'h     : Hour
	//       'mi', 'n'    : Minute
	//       'ss', 's'    : Second 
	//       'ms'         : Millisecond
	//   If anything else is use, the StartDate is returned.
	var tmpType = new String(AddType);
	tmpType = tmpType.toLowerCase();
	
	if (tmpType=='yy' || tmpType=='yyyy')
		return new Date(StartDate.getYear() + Number, StartDate.getMonth(), StartDate.getDate(), StartDate.getHours(), StartDate.getMinutes(), StartDate.getSeconds())
	if (tmpType=='mm' || tmpType=='m')
		return new Date(StartDate.getYear(), StartDate.getMonth() + Number, StartDate.getDate(), StartDate.getHours(), StartDate.getMinutes(), StartDate.getSeconds())
	else if (tmpType=='ww' || tmpType=='wk')
		return new Date(StartDate.getTime() + (Number*7)*24*60*60*1000);
	else if (tmpType=='dd' || tmpType=='d')
		return new Date(StartDate.getTime() + Number*24*60*60*1000);
	else if (tmpType=='hh' || tmpType=='h')
		return new Date(StartDate.getTime() + Number*60*60*1000);
	else if (tmpType=='mi' || tmpType=='n')
		return new Date(StartDate.getTime() + Number*60*1000);
	else if (tmpType=='ss' || tmpType=='s')
		return new Date(StartDate.getTime() + Number*1000);
	else if (tmpType=='ms')
		return new Date(StartDate.getTime() + Number)
	else
		return StartDate;
}
function dp_SetSelectedWithValue(SelectionField, WithValue)
{	// Function to select a specific value in a selectionbxo.
	var SelectionBox = document.getElementsByName(SelectionField).item(0).value=WithValue;
	/*
    for (var i=0;(i<SelectionBox.options.length);i++)
    	if (SelectionBox[i].value == WithValue)
	    	{ SelectionBox[i].selected = true; i = SelectionBox.options.length; }
	*/
}
function dp_PadLeft(Number, MinLength)
{	// Function to make leading zeroes...
	var Result = new String(Number);
	for (;Result.length < MinLength;)
		Result = "0" + Result;
		
	return Result;
}
function dp_Right(Str, Len)
{	// Function that returns Len chars from the right of the string Str
	var Result = new String(Str);
	if (Result.length < Len)
		return Result
	intStartPos = parseInt((Result.length - Len));
	return Result.substr(intStartPos, Len);
}
function dp_displayDatePicker(targetDateField, displayBelowObject)
{
	dp_dateSeparator = dp_defaultDateSeparator;
	dp_dateFormat    = dp_defaultDateFormat;
	var x = displayBelowObject.offsetLeft;
	var y = displayBelowObject.offsetTop + displayBelowObject.offsetHeight;
	var parent = displayBelowObject;
	while (parent.offsetParent) {
		parent = parent.offsetParent;
		x += parent.offsetLeft;
		y += parent.offsetTop ;
	}
	dp_drawDatePicker(targetDateField, x, y);
}
function dp_drawDatePicker(targetDateField, x, y)
{
	var tmpValue = targetDateField.value.substring(0,2) + dp_defaultDateSeparator + (targetDateField.value.substr(3,2)) + dp_defaultDateSeparator + targetDateField.value.substr(6,4);
	var dt = dp_getFieldDate(tmpValue);
	if (!document.getElementById(dp_datePickerDivID)) {
		var newNode = document.createElement("div");
		newNode.setAttribute("id", dp_datePickerDivID);
		newNode.setAttribute("class", "dpDiv");
		newNode.setAttribute("style", "visibility: hidden;");
		document.body.appendChild(newNode);
	}
	var pickerDiv = document.getElementById(dp_datePickerDivID);
	pickerDiv.style.position = "absolute";
	pickerDiv.style.left = x + 134 + "px";
	pickerDiv.style.top = y - 4 + "px";
	pickerDiv.style.visibility = (pickerDiv.style.visibility == "visible" ? "hidden" : "visible");
	pickerDiv.style.display = (pickerDiv.style.display == "block" ? "none" : "block");
	pickerDiv.style.zIndex = 10000;
	dp_refreshDatePicker(targetDateField.name, ("20" + dp_Right(dt.getFullYear(),2)), dt.getMonth(), dt.getDate());
}
function dp_refreshDatePicker(dataDateFieldName, year, month, day)
{
	// This is the function that actually draws the datepicker calendar.
	// if no arguments are passed, use today's date; otherwise, month and year
	// are required (if a day is passed, it will be highlighted later)
	var thisDay = new Date();
	if ((month >= 0) && (year > 0)) {
		thisDay = new Date(year, month, 1, 12, 0, 0);
	} else {
		day = thisDay.getDate();
		thisDay.setDate(1);
	}
	thisDay = dp_DateAdd( "dd", -1, thisDay);
	
	// date selected by user
	var dateSelectedInField = document.getElementById(dataDateFieldName).value;
	
	var dateSelectedInFields = parseInt(dateSelectedInField.substr(0,2), 10) + "." + parseInt(dateSelectedInField.substr(3,2), 10) + "." + dateSelectedInField.substr(6,4); 
	var crlf = "\r\n";
	var TABLE_main1    = "<table cols='1' border='0' cellpadding='0' cellspacing='0' class='dpTableMain1'>";
	var TABLE_main2    = "<table cols='1' border='0' cellpadding='0' cellspacing='0' class='dpTableMain2'>";
	var TABLE_title    = "<table cols='1' border='0' cellpadding='1' cellspacing='0' class='dpTableTitle' width='100%'>";
	var TABLE_calender = "<table cols='7' border='0' cellpadding='1' cellspacing='1' class='dpTableCalendar' width='100%'>";
	var TABLE_button   = "<table cols='1' border='0' cellpadding='1' cellspacing='0' class='dpTableButton' width='100%'>";
	var xTABLE = "</table>" + crlf;
	var TR             = "<tr class='dpTR'>";
	var TR_title       = "<tr class='dpTitleTR'>";
	var TR_days        = "<tr class='dpDayTR'>";
	var TR_todaybutton = "<tr class='dpTodayButtonTR'>";
	var xTR = "</tr>" + crlf;
	var TD              = "<td>"
	var TD_title        = "<td class='dpTitleTD'>";
	var TD_buttonsLeft  = "<td align='left' class='dpButtonTD'>";
	var TD_buttonsRight = "<td align='right' class='dpButtonTD'>";
	var TD_todaybutton      = "<td class='dpTodayButtonTD'>";
	var TD_todaybuttonLeft  = "<td class='dpTodayButtonTD' align='left'>";
	var TD_todaybuttonRight = "<td class='dpTodayButtonTD' align='right'>";
	var TD_unselectedPast = "<td class='dpTDpast'>";
	var TD_daysBusiness = "<td align='right' class='dpDayTDBusiness'>";
	var TD_days       = "<td align='right' class='dpDayTD'>";
	var TD_unselectedBusiness = "<td class='dpTDbusiness' onMouseOut='this.className=\"dpTDbusiness\";' onMouseOver=' this.className=\"dpTDbusinessHover\";' ";
	var TD_unselected = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver=' this.className=\"dpTDHover\";' ";    // leave this tag open, because we'll be adding an onClick event
	var TD_selected   = "<td class='dpDayHighlightTD' onMouseOut='this.className=\"dpDayHighlightTD\";' onMouseOver='this.className=\"dpTDHover\";' ";    // leave this tag open, because we'll be adding an onClick event
	var TD_selected_today = "<td class='dpDayHighlightTDToday' onMouseOut='this.className=\"dpDayHighlightTDToday\";' onMouseOver='this.className=\"dpTDHoverToday\";' ";
	var xTD = "</td>" + crlf;
	var DIV_title    = "<div class='dpTitleText'>";
	var DIV_selected = "<div class='dpDayHighlight'>";
	var xDIV = "</div>";
	
	var xImgLeft = '<img src="/images/calendarArrowLeft.gif" border="0">';
	var xImgRight = '<img src="/images/calendarArrowRight.gif" border="0">';
	// start calendar table
	var html = "";
	html += TABLE_main1;
	html += TR;
	html += TD
	html += TABLE_main2;
	html += TR;
	html += TD;
// Insert title bar with prev and next buttons.
		html += TABLE_title;
		html +=		TR_title;
		html +=			TD_buttonsLeft + dp_getButtonCode(dataDateFieldName, dp_DateAdd("dd", 1, thisDay), -1, xImgLeft) + xTD;
		html +=			TD_title + DIV_title + dp_monthArrayLong[ dp_DateAdd("dd", 1, thisDay).getMonth()] + " " + ("20" + dp_Right(dp_DateAdd("dd", 1, thisDay).getFullYear(),2)) + xDIV + xTD;
		html +=			TD_buttonsRight + dp_getButtonCode(dataDateFieldName, dp_DateAdd("dd", 1, thisDay), 1, xImgRight) + xTD;
		html +=		xTR;
		html += xTABLE;
	html += xTD;
	html += xTR;
	html += TR;
	html += TD;
		
		html += TABLE_calender;
// this is the row that indicates which day of the week we're on
// using only short names now so substring is no longer necessary
// for better depiction of special characters
		html += TR_days;
		for(i = 0; i < dp_dayArrayLong.length; i++)
		{
			if( i < 5 )
				//html += TD_daysBusiness + dp_dayArrayLong[i].substring(0,3) + xTD;
				html += TD_daysBusiness + dp_dayArrayShort[i] + xTD;
			else
				//html += TD_days + dp_dayArrayLong[i].substring(0,3) + xTD;
				html += TD_days + dp_dayArrayShort[i] + xTD;
		}
		html += xTR;
// now we'll start populating the table with days of the month
		html += TR;
		
// first, the leading blanks
		for (i = 0; i < thisDay.getDay(); i++)
			html += TD + "&nbsp;" + xTD;
// set the day variable to today, if it is not set and the current month = month selected
		if(isNaN( day ) && (thisDay.getMonth() == month) )
			day = gDaySelected;
		if( day < thisDay.getDay()  && (thisDay.getMonth() == month)) 
			day = thisDay.getDay();
// now, the days of the month
		var monthSelected = dp_DateAdd( "dd", 1, thisDay).getMonth(); 
		var yearNum = dp_DateAdd( "dd", 1, thisDay).getFullYear(); 
		do {
  		var today = new Date();
			dayNum = dp_DateAdd( "dd", 1, thisDay).getDate();
			TD_onclick = " onclick=\"dp_updateDateField('" + dataDateFieldName + "', '" + dp_getDateString(dp_DateAdd("dd", 1, thisDay)) + "');\">";
	
// compare today with one date from calender picker and set it to active , if the values match
			var CurrentCPDate = dayNum + "." + month + "." + year;
			
			if( (today.getDate()+"."+today.getMonth()+"."+today.getFullYear()) == CurrentCPDate )
				html += TD_selected_today + TD_onclick + dayNum + xTD;
			else 
			{
// compare date selected by user with a date from calendar picker and mark it as selected, it the values match
				if (dateSelectedInFields == dayNum + "." + (monthSelected + 1) + "." + yearNum)
					html += TD_selected + TD_onclick + dayNum + xTD;  
				else
				{
					if( (dayNum < today.getDate() ) && (monthSelected == today.getMonth()))
					{
						html += TD_unselectedPast + dayNum + xTD;
					}
					else
					{
						if (thisDay.getDay() == 5 || thisDay.getDay() == 6 )
							html += TD_unselectedBusiness + TD_onclick + dayNum + xTD;
						else
							html += TD_unselected + TD_onclick + dayNum + xTD;
					}
				}
			}
// if this is a Saturday, start a new row
			if (thisDay.getDay() == 6)
				html += xTR + TR;
// increment the day
			thisDay.setDate(thisDay.getDate() + 1);
		} while (dp_DateAdd( "dd", 1, thisDay).getDate() > 1)
// fill in any trailing blanks
		if (thisDay.getDay() > 0) {
			for (i = 6; i > thisDay.getDay(); i--)
				html += TD + "&nbsp;" + xTD;
		}
		html += xTR;
		html += xTABLE;
		
	html += xTD;
	html += xTR;
	html += TR;
	html += TD
// add a button to allow the user to easily return to today, or close the calendar
	html += TABLE_button;
	html +=	TR_todaybutton;
	html +=	TD_todaybuttonLeft;
//	html +=	"<div class='dpTodayButton' onClick='dp_refreshDatePicker(\"" + dataDayFieldName + "\", \"" + dataMonthFieldName + "\");'>" + dp_ThisMonthText + "</div>";
	html +=	xTD;
	html +=	TD_todaybuttonRight;
	html +=	"<div class='dpTodayButton' onClick='dp_updateDateField(\"" + dataDateFieldName + "\");'>" + "<img src='/images/calendarClose.gif' border='0' alt='Close' />" + "</div>";
	html +=	xTD;
	html +=	xTR;
	html += xTABLE;
		// and finally, close the table
	html += xTD;
	html += xTR;
	html += xTABLE;
	html += xTD;
	html += xTR;
	html += xTABLE;
	
	document.getElementById(dp_datePickerDivID).innerHTML = html;
	dp_adjustiFrame();
}
function dp_getButtonCode(dataFieldDateName, dateVal, adjust, label)
{
	var newDate = new Date(dp_DateAdd( "mm", adjust, dateVal));
	var newMonth = dp_PadLeft(newDate.getMonth(), 2);
	var newYear = ("20" + dp_Right(newDate.getFullYear(),2));
	var ButtonDate = new String( "" + newYear + dp_PadLeft(newDate.getMonth()+1, 2));
	if ( (adjust==1 && ButtonDate > dp_maxMonth) || (adjust==-1 && ButtonDate < dp_minMonth) )
		return '<img src="/icons/ecblank.gif" height="1" width="22" alt="" border="">'
	else
		return "<div class='dpButton' onClick='dp_refreshDatePicker(\"" + dataFieldDateName + "\", " + newYear + ", " + newMonth + ");'>" + label + "</div>";
}
function dp_getDateString(dateVal)
{
	var dayString = "00" + dateVal.getDate();
	var monthString = "00" + (dateVal.getMonth()+1);
	dayString = dayString.substring(dayString.length - 2);
	monthString = monthString.substring(monthString.length - 2);
	switch (dp_dateFormat) {
		case "dmy" :
			return dayString + dp_dateSeparator + monthString + dp_dateSeparator + ("20" + dp_Right(dateVal.getFullYear(),2));
		case "ymd" :
			return ("20" + dp_Right(dateVal.getFullYear(),2)) + dp_dateSeparator + monthString + dp_dateSeparator + dayString;
		case "mdy" :
	default :
		return monthString + dp_dateSeparator + dayString + dp_dateSeparator + ("20" + dp_Right(dateVal.getFullYear(),2));
	}
}
function dp_getFieldDate(dateString)
{
	var dateVal;
	var dArray;
	var d, m, y;
	try
	{
		dArray = dp_splitDateString(dateString);
		if (dArray) {
			switch (dp_dateFormat) 
			{
				case "dmy" :
					d = parseInt(dArray[0], 10);
					m = parseInt(dArray[1], 10) - 1;
					y = parseInt(dArray[2], 10);
					break;
				case "ymd" :
					d = parseInt(dArray[2], 10);
					m = parseInt(dArray[1], 10) - 1;
					y = parseInt(dArray[0], 10);
					break;
				case "mdy" :
				default :
					d = parseInt(dArray[1], 10);
					m = parseInt(dArray[0], 10) - 1;
					y = parseInt(dArray[2], 10);
					break;
			}
			dateVal = new Date(y, m, d);
		} else if (dateString) {
			dateVal = new Date(dateString);
		} else {
			dateVal = new Date();
		}
	} catch(e) {
		dateVal = new Date();
	}
	return dateVal;
}
function dp_CloseDatePicker()
{
	var pickerDiv = document.getElementById(dp_datePickerDivID);
    if (pickerDiv) {
    	document.onmousedown = null;
		pickerDiv.style.visibility = "hidden";
		pickerDiv.style.display = "none";
		
		var iFrameDiv = document.getElementById(dp_iFrameDivID);
		if (iFrameDiv)
			try
			{
				iFrameDiv.style.visibility = pickerDiv.style.visibility ;
				iFrameDiv.style.display = pickerDiv.style.display;
			} catch(e) { }
	}
}
function dp_splitDateString(dateString)
{
	var dArray;
	if (dateString.indexOf("/") >= 0)
		dArray = dateString.split("/");
	else if (dateString.indexOf(".") >= 0)
		dArray = dateString.split(".");
	else if (dateString.indexOf("-") >= 0)
		dArray = dateString.split("-");
	else if (dateString.indexOf("\\") >= 0)
		dArray = dateString.split("\\");
	else
		dArray = false;
	return dArray;
}
function dp_updateDateField(dataDateFieldName, dateString)
{
	if (dateString)
	{
		var tmpValues = dateString.split(dp_defaultDateSeparator);
		dp_SetSelectedWithValue(dataDateFieldName, dateString);
	}
	var pickerDiv = document.getElementById(dp_datePickerDivID);
    if (pickerDiv) {
    	document.onmousedown = null;
		pickerDiv.style.visibility = "hidden";
		pickerDiv.style.display = "none";
	}
	
	if (dataDateFieldName == "PickUpDate")
	{
  	if (dateString)
	  {
  	  dateStringReturn = dp_getDateString(dp_DateAdd("dd", 3, dp_getFieldDate(dateString)));
  		dp_SetSelectedWithValue("ReturnDate", dateStringReturn);
  	}
  	var pickerDiv = document.getElementById(dp_datePickerDivID);
      if (pickerDiv) {
      	document.onmousedown = null;
  		pickerDiv.style.visibility = "hidden";
  		pickerDiv.style.display = "none";
  	}
	}
//	alert( dataDayFieldName );
// set opening hours for Pickup OR Return date	
	//setOpeningHours(dataDayFieldName.substr(0,3))	//defined in Dropdown.js
	dp_adjustiFrame();
	//if (dataMonthFieldName == "ETAMonth"); setETTDay();
//	if (dataMonthFieldName == "ETTMonth") CheckOutMonth();
}
function dp_adjustiFrame(pickerDiv, iFrameDiv)
{
	// Using an "iFrame shim" to make sure the datepicker is in front of list elements
	// Opera doesn't like this, so if we're using Opera, don't even try
	var is_opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
	if (is_opera)
		return;
	try {
		if (!document.getElementById(dp_iFrameDivID))
		{
			var newNode = document.createElement('IFRAME'); 
			newNode.setAttribute("id", dp_iFrameDivID);
			newNode.setAttribute("src", "");
			newNode.setAttribute("scrolling", "no");
			newNode.setAttribute("frameborder", "0");
			document.body.appendChild(newNode);
		}
		if (!pickerDiv)
			pickerDiv = document.getElementById(dp_datePickerDivID);
		if (!iFrameDiv)
			iFrameDiv = document.getElementById(dp_iFrameDivID);
		try
		{
			iFrameDiv.style.position = "absolute";
			iFrameDiv.style.width = pickerDiv.offsetWidth;
			iFrameDiv.style.height = pickerDiv.offsetHeight ;
			iFrameDiv.style.top = pickerDiv.style.top;
			iFrameDiv.style.left = pickerDiv.style.left;
			iFrameDiv.style.zIndex = pickerDiv.style.zIndex - 1;
			iFrameDiv.style.visibility = pickerDiv.style.visibility ;
			iFrameDiv.style.display = pickerDiv.style.display;
		} catch(e) { }
	} catch (ee) { }
}

function setETTDay()
  {
    var xF = document.forms[0];
    var startMonthYear = xF.ETAMonth[xF.ETAMonth.selectedIndex].value;
    var endMonthYear = xF.ETTMonth[xF.ETTMonth.selectedIndex].value;
    var DayLoaded = document.getElementsByName('ETADayLoaded').item(0).value;
  // ETA DAY, MONTH, YEAR
    var sDay = Number( xF.ETADay[xF.ETADay.selectedIndex].value );
    var sMonth = Number( startMonthYear.substr(0,2) );
    var sYear = Number( startMonthYear.substr(2,4) );
  // ETT DAY, MONTH, YEAR
    var eDay = Number( xF.ETTDay[xF.ETTDay.selectedIndex].value );
    var eMonth = Number( endMonthYear.substr(0,2) );
    var eYear = Number( endMonthYear.substr(2,4) );
    // Get the difference between day end - day start. Day start is set in field ETADayLoaded
    var xOffset = DiffDays( eDay+ "."+eMonth+"."+eYear, DayLoaded);
  // update ETADayLoaded value
    document.getElementsByName('ETADayLoaded')[0].value = sDay+"."+sMonth+"."+sYear;
  // Max number of days in selected start Month
    var MaxDays = 31;
    if(sMonth==4 ||sMonth==6 || sMonth==9 || sMonth==11 )
    {
        MaxDays = 30;
    }
    if(sMonth==2)
    {
      MaxDays = 28;
      if(sYear%4==0)  MaxDays = 29;
      if(sYear%100==0) MaxDays = 28;
      if(sYear%400==0) MaxDays = 29;
    }
  // Set start day to the last day of the start month, if selected day > max days
    if( sDay > MaxDays )
    {
      sDay = MaxDays;
      xF.ETADay.selectedIndex = MaxDays - 1;
    }
  // calculate Offset 
  if( xOffset < 0) 
    Diff =  xOffset + MaxDays ;
  else
    Diff = xOffset;
  // Add Offset to the Start date
    var startDateNew = sDay + "." + sMonth + "." + sYear
    var newEndDate = getNextDate( startDateNew, Diff )
    var oNewEndDate = new Array();
    oNewEndDate = newEndDate.split(".");
   
    var newEndDay = oNewEndDate[0];
    var newEndMonth = oNewEndDate[1];
    var newEndYear = oNewEndDate[2];
    xF.ETTDay.selectedIndex = newEndDay - 1;
    setMonthYear( xF.ETTMonth, newEndMonth + '' + newEndYear);
  // set opening hours for ETA and ETT
    setOpeningHours('ETA');
    setOpeningHours('ETT');
  }
