$(document).ready(function() {
    
    $("#countryid").change(function() {
        change_city();
    }
    );
    
    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/english/search_box/kalendarz.gif',
        buttonImageOnly: true,
        dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ] ,
        monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
        closeText: 'Close',
        currentText: 'Today'
    }
    );
    
    $("#checkout").datepicker( {
        numberOfMonths: 2,
        showButtonPanel: true,
        dateFormat: 'yy-mm-dd',
        minDate: new Date(year, time.getMonth(), time.getDate()),
        showOn: 'both',
        buttonImage: '/datastore/images/english/search_box/kalendarz.gif',
        buttonImageOnly: true,
        dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ] ,
        monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
        closeText: 'Close',
        currentText: 'Today'
    }
    );
    
    $("#OrgAirport").autocomplete("/AirOnline/autocomplete/", {
        width: 320,
        selectFirst: false,
		  formatItem:formatItem,	
        autoFill:false
    }
    );
    
    $("#OrgAirport").result(function(event, data, formatted) {
        
        if (data) {
            $("#OrgAirportC").val(data[1]);
				 $("#OrgAirport").val(data[0] + " - " + data[2]);
        }
    }
    );

    
    $("#DstAirport").autocomplete("/AirOnline/autocomplete/", {
        width: 320,
        selectFirst: false,
		  formatItem:formatItem,		
        autoFill:false
    }
    );
    
    $("#DstAirport").result(function(event, data, formatted) {
        if (data) {
            $("#DstAirportC").val(data[1]);
				$("#DstAirport").val(data[0] + " - " +data[2]);
        }
    }
    );
    
    
    
    var time=new Date();
    var year=time.getYear()
    
    if (year < 2000)
    year = year + 1900;
    
    $("#DepartDate").datepicker( {
        numberOfMonths: 2,
        showButtonPanel: true,
        dateFormat: 'yy-mm-dd',
        minDate: new Date(year, time.getMonth(), time.getDate()),
        showOn: 'both',
        buttonImage: '/datastore/images/english/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'
    }
    );
    
    $("#ReturnDate").datepicker( {
        numberOfMonths: 2,
        showButtonPanel: true,
        dateFormat: 'yy-mm-dd',
        minDate: new Date(year, time.getMonth(), time.getDate()),
        showOn: 'both',
        buttonImage: '/datastore/images/english/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'
    }
    );
    
	$(".accordion").tabs(".accordion div.pane", {tabs: 'h2', effect: 'slide', initialIndex: null});
	$(".oferty_specjalne_home").tabs(".oferty_specjalne_home div.superoferta", {tabs: 'h2', effect: 'slide', initialIndex: null});
    
   // $('#bilety').hide();

}
);

function formatItem(row) {
	return "<div class=auto_text>" + row[0] + " [" + row[1] + "] " + row[2] + "</div>";
}

function  paneltabs (x) {
    if(x==1) {
        $('#hotele').show();
        $('#bilety').hide();
			
		  $("#hotel_active").removeClass('hotel_off');	
		  $('#hotel_active').addClass('hotel_active');
			
		  $("#bilety_off").removeClass('bilety_active');		
		  $('#bilety_off').addClass('bilety_off');
    }
    if(x==2) {
        $('#hotele').hide();
        $('#bilety').show();
			
		  $("#hotel_active").removeClass('hotel_active');	
		  $('#hotel_active').addClass('hotel_off');
			
		  $("#bilety_off").removeClass('bilety_off');		
		  $('#bilety_off').addClass('bilety_active');
    }
}


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;
}


function change_city() {
    $("#cityid").html("");
    var countryid = $("#countryid").val();
    
    if (countryid==-1) {
        $("#cityid").prepend(new Option(' - wybierz kraj -', 0));
        $("#cityid").attr("disabled","disabled");
        return;
    }
    
    var x = 0;
    var cities = countries[countryid];
    for(var i=0; i<cities.length; i+=2) {
        $("#cityid").append("<option value="+cities[i]+">"+cities[i+1]+"</option>");
        x++;
    }
}

//bilety

function changeAirCheckIn() {
    var arrivalDate = parseDate( $("#DepartDate").val() );
    if (arrivalDate==null) {
        alert('Nieprawidłowy format Daty Przybycia.\n\nPrawidłowy format daty: YYYY-MM-DD.');
        $("#DepartDate").val( $("#_DepartDate").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.');
        $("#DepartDate").val( $("#_DepartDate").val() );
        return false;
    }
    
    $("#ReturnDate").val( formatDate( addDaysToDate(arrivalDate, parseInt( $("#airnights").val() ) ) ) );
    $("#_ReturnDate").val( $("#ReturnDate").val() );
}


function changeAirCheckOut() {
    var arrivalDate = parseDate( $("#DepartDate").val() );
    var depDate = parseDate( $("#ReturnDate").val() );
    
    if (arrivalDate==null) {
        alert('Nieprawidłowy format Daty Przybycia.\n\nPrawidłowy format daty: YYYY-MM-DD.');
        $("#ReturnDate").val( $("#_ReturnDate").val() );
        return false;
    }
    
    if (depDate==null) {
        alert('Nieprawidłowy format Daty Wyjazdu.\n\nPrawidłowy format daty: YYYY-MM-DD.');
        $("#ReturnDate").val( $("#_ReturnDate").val() );
        return false;
    }
    
    if (depDate <= arrivalDate) {
        alert('Data Wyjazdu musi być późniejsza od Daty Przybycia.');
        $("#ReturnDate").val( $("#_ReturnDate").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.');
        $("#ReturnDate").val( $("#_ReturnDate").val() );
        return false;
    }
    
    $("#airnights").val( Math.round((depDate.getTime() - arrivalDate.getTime())/(1000*60*60*24)) );
    $("#_ReturnDate").val( $("#ReturnDate").val() );
    return true;
}

