$(document).ready(function() {
    $("#cityname").autocomplete({
        source: "/Hotel/autocomplatecity/",
        minLength: 3,
        select: function( event, ui ) {
        	$("#cityname").blur();
            $("#cityid").val(ui.item.id);
        }
    });

});
//
// Zamienia string w formacie YYYY-MM-DD na obiekt typu Date.
//
function parseDate(dateString)
{
    var str = new String(dateString);
    var array = str.split('-');
    if (array.length!=3)
        return null;
    var year = array[0];
    var month = array[1].charAt(0)=='0' ? parseInt(array[1].substr(1, 1)) : parseInt(array[1]);
    var day = array[2].charAt(0)=='0' ? parseInt(array[2].substr(1, 1)) : parseInt(array[2]);
    var date = new Date(year, month-1, day);
    if (isNaN(date))
        return null;
    date.setHours(0);
    date.setMinutes(0);
    date.setSeconds(0);
    date.setMilliseconds(0);
    return date;
}

//
// Zamienia obiekt Date na string w formacie YYYY-MM-DD.
//
function formatDate(date)
{
    return date.getFullYear() + "-" + formatDatePart(date.getMonth()+1) +
    "-" + formatDatePart(date.getDate());
}

//
// Funkcja pomocnicza dla funckcji formatDate(). Dodaje znak '0' do czesci daty.
//
function formatDatePart(value)
{
    var v = String(value);
    return v.length==1 ? "0"+v : v;
}

//
// 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)
        document.hotelbookform.checkout.value = formatDate(addDaysToDate(arrivalDate, parseInt(document.hotelbookform.nights.value)));
}

//
// Funkcja obslugi zdarzenia - zmiana wartosci w okienku edycyjnym DepartureDate.
//
function onDepartureDateChange(form, departureDate)
{
    var arrivalDate = parseDate(document.hotelbookform.checkin.value);
    if (arrivalDate==null)
    {
        alert('Invalid format Check in date.\n\nCorrect date format: YYYY-MM-DD.');	//"Nieprawidłowy format Daty Przybycia..."
        return false;
    }
	
    var depDate = parseDate(departureDate);
    if (depDate==null)
    {
        alert('Invalid format Departure date.\n\nCorrect date format: YYYY-MM-DD.');	//"Nieprawidłowy format Daty Wyjazdu..."
        return false;
    }
	
    if (depDate <= arrivalDate)
    {
        alert('Departure date must be after the date of arrival.');	//"Data Wyjazdu musi być późniejsza od Daty Przybycia."
        return false;	
    }
    if ((depDate-arrivalDate)/(1000*60*60*24) > 60)
    {
        alert('Departure date can not be earlier than 60 days from the date of arrival');	//"Data Wyjazdu nie może być późniejsza niż 60 dni od Daty Przybycia."
        return false;
    }
    document.hotelbookform.nights.value = Math.round((depDate.getTime() - arrivalDate.getTime())/(1000*60*60*24));
}
//
// Dodaje dni do daty.
//
function addDaysToDate(date, numOfDays)
{
    return new Date(date.getFullYear(), date.getMonth(), date.getDate()+numOfDays);
}


function ValidateHotelForm()
{
	
    var arrivalDate = parseDate(document.hotelbookform.checkin.value);
    var depDate = parseDate(document.hotelbookform.checkout.value);
	
    var today = new Date();
    today.setHours(0);
    today.setMinutes(0);
    today.setSeconds(0);
    today.setMilliseconds(0);
	
    if (arrivalDate < today)
    {
        alert('Check in date can not be earlier than today\'s date.');	//"Data Przybycia nie może być wcześniejsza od daty dzisiejszej."
        return false;
    }
	
    if (arrivalDate==null)
    {
        alert('Invalid format Check in date.\n\nCorrect date format: YYYY-MM-DD.');	//"Nieprawidłowy format Daty Przybycia..."
        return false;
    }
	
	
    if (depDate==null)
    {
        alert('Invalid format Departure date.\n\nCorrect date format: YYYY-MM-DD.');	//"Nieprawidłowy format Daty Wyjazdu..."
        return false;
    }
	
    if (depDate <= arrivalDate)
    {
        alert('Departure date must be after the date of arrival.');	//"Data Wyjazdu musi być późniejsza od Daty Przybycia."
        return false;	
    }
	
    if ((depDate-arrivalDate)/(1000*60*60*24) > 60)
    {
        alert('Departure date can not be earlier than 60 days from the date of arrival.');	//"Data Wyjazdu nie może być późniejsza niż 60 dni od Daty Przybycia."
        return false;
    }
//	
//    $("#overlay_loading").center();
//    $("#overlay_loading_bg").center();
//    $("#overlay_loading").show( function(){
//        $("#overlay_loading_bg").show();
//        $("#overlay_loading").show();
   //     
   // });
	return true;
}


