jQuery(document).ready(function() {
	// obsługa klikania w cały element w menu, galeriach itp.
	jQuery(".wrapper-item > a, .gallery-thumbnail > a").each(function(index, obj) {
		var href = jQuery(obj).attr("href");
		jQuery(obj).parents(".wrapper-item")
			.click(function(event) {
				window.location = href;
			})
			.css("cursor", "pointer");
	});

	// fancybox dla zdjęć w galerii
	jQuery(".show_gallery-img a").fancybox({
		'overlayOpacity': 0.5,
		'overlayColor': '#000',
		'titlePosition': 'inside',
		'titleFormat': function(title, currentArray, currentIndex, currentOpts) {
				return '<div id="fancybox-title">Zdjęcie ' +  (currentIndex + 1) + ' z ' + currentArray.length +
							(title && title.length ? '<strong>' + title + '</strong>' : '') +
						'</div>';
			}
	});

	// fancybox dla rezerwacji
	var reservationsFancyBoxSettings = {
		'scrolling': 'no',
		'titleShow': false,
		'overlayOpacity': 0.5,
		'overlayColor': '#000',
		'padding': 0
	};

	// wyświetlenie informacji o statusie złożenia rezerwacji
	$reservation_success = jQuery("#reservation_success");
	if($reservation_success.length != 0) {
		jQuery.fancybox($reservation_success.html(), reservationsFancyBoxSettings);
	}

	jQuery("#reservations-img-link, #reservations-text-link").fancybox(reservationsFancyBoxSettings);

	jQuery("#reservations-form form").submit(function(event) {
			jQuery.fancybox.showActivity();

			jQuery.ajax({
				type: "POST",
				cache: false,
				url: "modules/reservations.php?ajax=true",
				data: jQuery(this).serializeArray(),
				dataType: "json",
				success: function(data, status, jqXHR) {
					var msg = "Nie wykonane";
					if(data.error == "ok") {
						msg = "Pomyślnie wysłano rezerwację";
					}
					else {
						msg = data.error;
					}

					jQuery.fancybox("<div id=\"reservation_success\">" +
										"<p id=\"reservation_success_msg\">" + msg + "</p>" +
									"</div>", reservationsFancyBoxSettings);

					// czyścimy formularz
					jQuery("#reservations-form form").get(0).reset();
				},
				error: function(jqXHR, status, exceptionObj) {
					var msg = "Wystąpił błąd podczas wysyłania rezerwacji";

					jQuery.fancybox("<div id=\"reservation_success\">" +
										"<p id=\"reservation_success_msg\">" + msg + "</p>" +
									"</div>", reservationsFancyBoxSettings);
				}
			});

		event.preventDefault();
		return false;
	});

	// wyświetlanie cennika
	jQuery("#price-table-link").fancybox({
		'scrolling': 'no',
		'titleShow': false,
		'overlayOpacity': 0,
		'overlayColor': '#000',
		'padding': 0
	});

	// ------ slajdy u góry strony ------
	var $firstImg = jQuery("#top-images img:first");
	var $allImgs = jQuery("#top-images img");

	// wyświetlamy loader
	jQuery("#top-images").addClass("loading");
	// ukrywamy wszystkie obrazki
	$allImgs.hide();

	// czekamy aż wszystkie obrazki się załadują
	$firstImg.load(function() {

		jQuery("#top-images").removeClass("loading");  // wyłączamy loader

		$allImgs.fadeIn();  // pokazujemy wszystkie obrazki

		// uruchamiamy pokaz
		jQuery("#top-slideshow").cycle({
			speed: 2000,
			timeout: 8000,
			height: '359px',
			sync: 1
		});
	})
	.attr("src", $firstImg.attr("src"));
	// ta powyższa linijka i to ustwienie jest po to, żeby np. firefox uruchamiał zdarzenie onLoad
	// bo bez tej poprzedniej linijki jeśli obraz wczytal z cache'u przeglądarki, to nie wywoływał zadrzenia i nie
	// pokazywał się obrazek

	// ---------- otwieranie w nowym oknie ------------
	jQuery("a.target_blank").click(function(event) {
		window.open(jQuery(this).attr("href"), '_blank');
		
		event.preventDefault();
		return false;
	});

	// ---------- odpowiednie rozciągnięcie elementów paska przewijania dla scrollable --------------
	var naviHeight = jQuery(".navi").height();
	var naviCount = jQuery(".navi a").length;
	jQuery(".navi a").height(Math.round(naviHeight / naviCount));

	// ---------- pasek przewijania -----------
	var scrollableAPI = jQuery(".scrollable").data("scrollable");  // pobieramy api
	var itemsCount = scrollableAPI.getSize();                      // pobieramy ilość elementów do przewijania

	jQuery(":range").rangeinput({
		min: 1,
		max: itemsCount,
		step: 1,
		change: function(evt, value) {                             // callback jeśli zmieni się ustawienie paska
			scrollableAPI.seekTo(itemsCount - value, "fast");      // to przesuwamy elementy o jeden dalej
		}
	});

	var rangeAPI = jQuery("#scrollbar").data("rangeinput");        // pobieramy api dla scrollbara
	rangeAPI.setValue(itemsCount);                                 // ustawiamy wartość tak żeby przesuwak był na górze

	scrollableAPI.onSeek(function(evt, value) {                    // jeśli przesuwamy elementy przewijane
		rangeAPI.setValue(itemsCount - value);                     // to aktualizujemy też pasek przewijania
	});

	// ustawienie wielkości przesuwaka
	$handle = jQuery(".handle");
	if(itemsCount > 10) {
		$handle.addClass("small");
	}
	else {
		if(itemsCount == 1) {
			$handle.addClass("all");
		}
		else {
			$handle.addClass("big");
		}
	}
});

