//

// Funkcja wywolywana z kalendarza (plik popupdate.js) w momencie wybrania daty

// na kalendarzu.

//

function ValidatePopupDate(elementId)

{

	var result = true;

	

	var e = eval('document.' + elementId);

	var form = e.form;



	if (e.name==arrivalDateName || e.name==departureDateName)

	{

		var arrivalDate = parseDate(form[arrivalDateName].value);

		var depDate = parseDate(form[departureDateName].value);

		var today = new Date();

		today.setHours(0);

		today.setMinutes(0);

		today.setSeconds(0);

		today.setMilliseconds(0);



		if (arrivalDate < today)

		{

			alert('Data Przybycia nie może być wcześniejsza od daty dzisiejszej.');	//"Data Przybycia nie może być wcześniejsza od daty dzisiejszej."

			result = false;

		}

		

		if (e.name==arrivalDateName)

		{

			form[departureDateName].value = formatDate(addDaysToDate(arrivalDate, parseInt(form[numOfNightsSelect].value)));

		}

		else if (depDate <= arrivalDate)

		{

			alert('Data Wyjazdu musi być późniejsza od Daty Przybycia.');	//"Data Wyjazdu musi być późniejsza od Daty Przybycia."

			result = false;

		}

		

		if (result==false)

		{

			if (e.name==arrivalDateName)

				form[arrivalDateName].value = formatDate(addDaysToDate(depDate, -1));

			else

				form[departureDateName].value = formatDate(addDaysToDate(arrivalDate, 1));

		}

		

		var tempResult = onDepartureDateChange(form, form[departureDateName].value);

		result = result && tempResult;

	}

	

	return result;

}



//

// Funkcja obslugi zdarzenia - zmiana wartosci w okienku edycyjnym ArrivalDate.

//

function onArrivalDateChange(form, arrivalDate, hotel)

{

	var arrivalDate = parseDate(arrivalDate);

	if (arrivalDate==null)

	{

		alert('Nieprawidłowy format Daty Przybycia.\n\nPrawidłowy format daty: YYYY-MM-DD.');	//"Nieprawidłowy format Daty Przybycia..."

		return false;

	}

	

	var today = new Date();

	today.setHours(0);

	today.setMinutes(0);

	today.setSeconds(0);

	today.setMilliseconds(0);

	

	if (arrivalDate < today)

	{

		alert('Data Przybycia nie może być wcześniejsza od daty dzisiejszej.');	//"Data Przybycia nie może być wcześniejsza od daty dzisiejszej."

		return false;

	}



	if (hotel)

		form[departureDateName].value = formatDate(addDaysToDate(arrivalDate, parseInt(form[numOfNightsSelect].value)));

}



//

// Funkcja obslugi zdarzenia - zmiana wartosci w okienku edycyjnym DepartureDate.

//

function onDepartureDateChange(form, departureDate)

{

	var arrivalDate = parseDate(form[arrivalDateName].value);

	if (arrivalDate==null)

	{

		alert('Nieprawidłowy format Daty Przybycia.\n\nPrawidłowy format daty: YYYY-MM-DD.');	//"Nieprawidłowy format Daty Przybycia..."

		return false;

	}

	

	var depDate = parseDate(departureDate);

	if (depDate==null)

	{

		alert('Nieprawidłowy format Daty Wyjazdu.\n\nPrawidłowy format daty: YYYY-MM-DD.');	//"Nieprawidłowy format Daty Wyjazdu..."

		return false;

	}

	

	if (depDate <= arrivalDate)

	{

		alert('Data Wyjazdu musi być późniejsza od Daty Przybycia.');	//"Data Wyjazdu musi być późniejsza od Daty Przybycia."

		return false;	

	}

	if ((depDate-arrivalDate)/(1000*60*60*24) > 60)

	{

		alert('Data Wyjazdu nie może być późniejsza niż 60 dni od Daty Przybycia.');	//"Data Wyjazdu nie może być późniejsza niż 60 dni od Daty Przybycia."

		return false;

	}

	//alert( Math.round((depDate.getTime() - arrivalDate.getTime())/(1000*60*60*24)) );

	//form[numOfNightsSelect].value = parseInt((depDate.getTime() - arrivalDate.getTime())/(1000*60*60*24));

	form[numOfNightsSelect].value = Math.round((depDate.getTime() - arrivalDate.getTime())/(1000*60*60*24));

}



//

// Funkcja obslugi zdarzenia - zmiana wartosci w liscie NumOfNights.

//

function onNumOfNightsChange(form, numOfNights)

{

	var arrivalDate = parseDate(form[arrivalDateName].value);

	if (arrivalDate==null)

	{

		alert('Nieprawidłowy format Daty Przybycia.\n\nPrawidłowy format daty: YYYY-MM-DD.');	//"Nieprawidłowy format Daty Przybycia..."

		return false;

	}

	

	numOfNights = parseInt(numOfNights);

	

	var newDate = new Date(arrivalDate.getFullYear(), arrivalDate.getMonth(), arrivalDate.getDate()+numOfNights);

	

	form[departureDateName].value = formatDate(newDate);

}



//

// Funkcja obslugi zdarzenia - zmiana wartosci w liscie NumOfAdults.

//

function onNumOfAdultsChange(form, numOfAdults)

{

	var numOfBeds = form[numOfBedsSelect];

	var count = numOfBeds.options.length;

	var i;

	

	for (i=0; i<count; i++)

	{

		numOfBeds.remove(0);

	}

	

	numOfBeds.selectedIndex = 0;

	

	//var start = numOfAdults > 1 ? Math.ceil(numOfAdults/2) : 1;

	var start = numOfAdults > 1 ? numOfAdults-1 : 1;

	var stop = numOfAdults > 4 ? 4 : numOfAdults;

	

	for (i=start; i<=stop; i++)

	{

		var el = document.createElement('OPTION');

		el.text = String(i);

		el.value = i;

		numOfBeds.add(el, document.all ? i : null);

		//numOfBeds.selectedIndex++;

	}

	

	form[numOfBedsSelect].value = stop;

}



//

// Funkcja obslugi zdarzenia - zmiana wartosci w liscie NumOfBeds.

//

function onNumOfBedsChange(form, numOfBeds)

{

	if (numOfBeds > form[numOfAdultsSelect].value)

		form[numOfAdultsSelect].value = numOfBeds;

	else if (numOfBeds*2 < form[numOfAdultsSelect].value)

		form[numOfAdultsSelect].value = numOfBeds*2;

}



function formSubmit(form)

{

	/*  Na razie bez popupa

	

	if (parseInt(form[numOfNightsSelect].value) > 10)

	{

		var win = window.open("search_popup.php?lang=polish", "_blank", "left=50,top=50,height=150,width=250,toolbar=no,menubar=no,location=no,directories=no,status=no");

	}*/

	return true;

}



function putDate( obj ,addDays )

{

	dzisiaj = new Date();

	document.write(

		dzisiaj.getYear() + '-' +

		( dzisiaj.getMonth() + 1 ) + '-' +

		dzisiaj.getDate() + '&nbsp;(YYYY-MM-DD):'

	);

}



function onStartLocationChange(form, oStartLocation)

{

	var oEndLocation = form.whatendLocation;

	if (oStartLocation.selectedIndex==oEndLocation.selectedIndex)

	{

		oEndLocation.selectedIndex = oStartLocation.selectedIndex == 0 ? 1 : 0;

	}

}



function onEndLocationChange(form, oEndLocation)

{

	var oStartLocation = form.whatstartLocation;

	if (oEndLocation.selectedIndex==oStartLocation.selectedIndex)

	{

		oStartLocation.selectedIndex = oEndLocation.selectedIndex == 0 ? 1 : 0;

	}

}


