$(document).ready(function() {
    
	 var time=new Date();
    var year=time.getYear()
    
    if (year < 2000)
    year = year + 1900;
    
    $("#checkin").datepicker( {
        numberOfMonths: 2,
        showButtonPanel: true,
        dateFormat: 'yy-mm-dd',
        minDate: new Date(year, time.getMonth(), time.getDate()),
        showOn: 'both',
        buttonImage: '/datastore/images/polish/search_box/kalendarz.gif',
        buttonImageOnly: true,
        dayNames: ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota' ] ,
        monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
        closeText: 'zamknij',
        currentText: 'Dzisiaj'
    }
    );
    
    $("#checkout").datepicker( {
        numberOfMonths: 2,
        showButtonPanel: true,
        dateFormat: 'yy-mm-dd',
        minDate: new Date(year, time.getMonth(), time.getDate()),
        showOn: 'both',
        buttonImage: '/datastore/images/polish/search_box/kalendarz.gif',
        buttonImageOnly: true,
        dayNames: ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota' ] ,
        monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
        closeText: 'zamknij',
        currentText: 'Dzisiaj'
    }
    );
    

}
);


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;
}


function addDaysToDate(date, numOfDays) {
    return new Date(date.getFullYear(), date.getMonth(), date.getDate()+numOfDays);
}

function changeCheckIn() {
    var arrivalDate = parseDate( $("#checkin").val() );
    if (arrivalDate==null) {
        alert('Nieprawidłowy format Daty Przybycia.\n\nPrawidłowy format daty: YYYY-MM-DD.');
        $("#checkin").val( $("#_checkin").val() );
        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.');
        $("#checkin").val( $("#_checkin").val() );
        return false;
    }
    
    $("#checkout").val( formatDate( addDaysToDate(arrivalDate, parseInt( $("#nights").val() ) ) ) );
    $("#_checkin").val( $("#checkin").val() );
}


function changeCheckOut() {
    var arrivalDate = parseDate( $("#checkin").val() );
    var depDate = parseDate( $("#checkout").val() );
    
    if (arrivalDate==null) {
        alert('Nieprawidłowy format Daty Przybycia.\n\nPrawidłowy format daty: YYYY-MM-DD.');
        $("#checkout").val( $("#_checkout").val() );
        return false;
    }
    
    if (depDate==null) {
        alert('Nieprawidłowy format Daty Wyjazdu.\n\nPrawidłowy format daty: YYYY-MM-DD.');
        $("#checkout").val( $("#_checkout").val() );
        return false;
    }
    
    if (depDate <= arrivalDate) {
        alert('Data Wyjazdu musi być późniejsza od Daty Przybycia.');
        $("#checkout").val( $("#_checkout").val() );
        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.');
        $("#checkout").val( $("#_checkout").val() );
        return false;
    }
    
    $("#nights").val( Math.round((depDate.getTime() - arrivalDate.getTime())/(1000*60*60*24)) );
    $("#_checkout").val( $("#checkout").val() );
    return true;
}

