// global variables that keep track of the 
// date and the associated div element which currently we are working on.
//var varCurrDateField;
//var varCurrentDateDiv;

var boolIsCalendarPanelEnd = false;
var ArrivalDateTextField;

function BrowseDate(dateInputField, divDateControl, PanelDateName, ToggleCalendar) 
{
	
	ArrivalDateTextField = document.getElementById(startDateInputName).value; //startDateInputName is declared and assigned in the AccomodationContentControl.ascx
	
	// Check if there is a calendar element created already. Only one calendar could be valid a at a time.
	// if there is no calendar div element created, create one, else clear the calendar children. 
	var objPanel = document.getElementById(PanelDateName);
	if (PanelDateName == "CalendarPanelEnd") {
		boolIsCalendarPanelEnd = true;
	} else {
		boolIsCalendarPanelEnd = false;
	}
	
	if(objPanel==null)
	{
		var varCurrDateField = document.getElementById(dateInputField);
		var varCurrentDateDiv = document.getElementById(divDateControl);
		var strDate = document.getElementById(dateInputField).value;
		var arrParts=strDate.split("/");
		
		if(arrParts[0]!=null&&arrParts[0].length>0&&arrParts[0].charAt(0)=="0")
			arrParts[0]=arrParts[0].charAt(1);
		if(arrParts[1]!=null&&arrParts[1].length>0&&arrParts[1].charAt(0)=="0")
			arrParts[1]=arrParts[1].charAt(1);
		
		try
		{
			if(isDate(strDate,1)) {
				OpenCalendar(parseInt(arrParts[2]), parseInt(arrParts[0]), parseInt(arrParts[1]), PanelDateName, divDateControl, dateInputField);
			} else {	
				OpenCalendar("undefined", "undefined", "undefined", PanelDateName, divDateControl, dateInputField);
			}
		}
		catch (error) 
		{
			OpenCalendar("undefined", "undefined", "undefined", PanelDateName, divDateControl, dateInputField);
		}
		
	}
	else if(ToggleCalendar)
		HideCalendar(PanelDateName, divDateControl);
}

function CalendarCallback(strSelectedDate, dateInputField) 
{
	var date=new Date(strSelectedDate);
	var varCurrDateField = document.getElementById(dateInputField);
	varCurrDateField.value = (date.getMonth()+1)+"/"+ date.getDate()+"/"+date.getFullYear();
	//if the date is the arrival date and it is later than the current departure date, reset the departure date to the arrival date + 1
	if (!boolIsCalendarPanelEnd) {
		var departureDate = document.getElementById(endDateInputName);
		var departureDateValue = departureDate.value;
		if (isDate(departureDateValue, 1)) {
			var arrDepartureDateParts = departureDateValue.split("/");
			if(arrDepartureDateParts[0]!=null&&arrDepartureDateParts[0].length>0&&arrDepartureDateParts[0].charAt(0)=="0")
				arrDepartureDateParts[0]=arrDepartureDateParts[0].charAt(1);
			if(arrDepartureDateParts[1]!=null&&arrDepartureDateParts[1].length>0&&arrDepartureDateParts[1].charAt(0)=="0")
				arrDepartureDateParts[1]=arrDepartureDateParts[1].charAt(1);
			objDepartureDate = new Date(arrDepartureDateParts[2], arrDepartureDateParts[0]-1, arrDepartureDateParts[1]);
			if (CompareTwoDates(objDepartureDate, date)) {
				//set the departure date in the future
				var dDate = new Date(strSelectedDate);
				dDate.setDate(dDate.getDate() + 1);
				departureDate.value = (dDate.getMonth()+1)+"/"+ (parseInt(dDate.getDate())) +"/"+dDate.getFullYear();
			}
		}
	}
}

function resetTextField(whichItemID, format) 
{
	switch(format) {
		case "date":
			if (document.getElementById(whichItemID).value == "") 
			{
				//document.getElementById(whichItemID).value = "mm/dd/yyyy";
			}
			break;
	}
}

function TextBlurHide(whichItemID, PanelDateName, divDateControl)
{
	if(event.srcElement.id!="cntlSearchNonAccomm_ctrlCalendarControl_txtStartDate")
		HideCalendar(PanelDateName, divDateControl);
}

function clearTextField(whichItemID) 
{
	document.getElementById(whichItemID).value = "";
}

function ValidateAccommSearch(elemStartDate, elemEndDate)
{
	var bIsValid = true;
	var varElemStartDate = document.getElementById(elemStartDate);
	var varElemEndDate = document.getElementById(elemEndDate);
	var todayDate = new Date();
	var compareDate = new Date(todayDate.getFullYear(), todayDate.getMonth(), todayDate.getDate())
	var vStartDate;
	var vEndDate;
	var arrParts;
	
	
	if(varElemStartDate!=null&&varElemStartDate.value!=null&&varElemStartDate.value.length>0 && varElemStartDate.value != "mm/dd/yyyy")
	{
		arrParts=varElemStartDate.value.split("/");
		vStartDate = new Date(parseInt(arrParts[2]), parseInt(arrParts[0])-1, parseInt(arrParts[1]));	
			
		if(!isDate(varElemStartDate.value,1)) 			
		{
			alert("Überprüfen Sie das Ankunftsdatum.");
			bIsValid=false;
		}
	}
	else
	{
		alert("Überprüfen Sie das Ankunftsdatum");
		bIsValid=false;
	}
			
	if(varElemEndDate!=null&&varElemEndDate.value!=null&& varElemEndDate.value.length>0 && varElemEndDate.value != "mm/dd/yyyy" )
	{
		arrParts=varElemEndDate.value.split("/");
		vEndDate = new Date(parseInt(arrParts[2]), parseInt(arrParts[0])-1, parseInt(arrParts[1]));
		
		if(!isDate(varElemEndDate.value,1)) 
		{
			alert("Überprüfen Sie das Abreisedatum.");
			bIsValid=false;
		}
	}
	else
	{
		alert("Überprüfen Sie das Abreisedatum.");
		bIsValid=false;	
	}
		
		
	if(bIsValid && vStartDate!=null&&vEndDate!=null && vEndDate<=vStartDate&&!isNaN(vEndDate)&& !isNaN(vStartDate))
	{
		alert("Der Abreisetag muss nach dem Anreisetag liegen. Bitte überprüfen Sie die Daten.");
		bIsValid=false;
	}
	return bIsValid;
}


function ValidateSearch(elemStartDate, elemEndDate)
{	
	var bIsValid = true;
	var varElemStartDate = document.getElementById(elemStartDate);
	var varElemEndDate = document.getElementById(elemEndDate);
	var todayDate = new Date();
	var compareDate = new Date(todayDate.getFullYear(), todayDate.getMonth(), todayDate.getDate())
	var vStartDate;
	var vEndDate;
	var arrParts;
	
	
	if(varElemStartDate!=null&&varElemStartDate.value!=null&&varElemStartDate.value.length>0 && varElemStartDate.value != "mm/dd/yyyy")
	{
		arrParts=varElemStartDate.value.split("/");
		vStartDate = new Date(parseInt(arrParts[2]), parseInt(arrParts[0])-1, parseInt(arrParts[1]));	
		
		if(!isDate(varElemStartDate.value,1)) 	
		{
			alert("Bitte geben Sie einen gültiges Anfangsdatum ein.");
			bIsValid=false;
		}
	}
	
	if(varElemEndDate!=null&&varElemEndDate.value!=null&& varElemEndDate.value.length>0 && varElemEndDate.value != "mm/dd/yyyy" )
	{
		arrParts=varElemEndDate.value.split("/");
		vEndDate = new Date(parseInt(arrParts[2]), parseInt(arrParts[0])-1, parseInt(arrParts[1]));
		
		if(!isDate(varElemEndDate.value,1)) 	
		{
			alert("Bitte geben Sie ein gültiges Enddatum ein.");
			bIsValid=false;
		}
	}
	
	if(bIsValid && vStartDate!=null&&vEndDate!=null && vEndDate<vStartDate&&!isNaN(vEndDate)&& !isNaN(vStartDate))
	{
		alert("Das Enddatum muss nach dem Anfangsdatum liegen.");
		bIsValid=false;
	}
	return bIsValid;
}
