﻿/**
 * Adres do pliku popupa.
 */
var popupHTTPAddress = 'http://aparthotelastor.pl/reservation/popup2/';

/**
 * Adres pliku, który zwraca listę wolnych obiektów.
 */
var urlToFile = popupHTTPAddress+'wyszukaj.php';

/**
 * Adres pliku zwracającego formularz dla danych użytkownika.
 */
var urlToFileZamawiam = popupHTTPAddress+'zamawiam.php'; 

/**
 * Adres, na który wysyłane są dane użytkownika
 */
var urlToZatwierdzamScreen = popupHTTPAddress+'zatwierdzam.php';

/**
 * Adres pliku zwracającego pierwszy wygląd. Kalendarz, Data Picker oraz miejsce
 * na listę obiektów.
 */
var urlToMainFile = popupHTTPAddress+'contenerContent.php'; 

/**
 * Url do pliku czyszczącego sesję
 * */

var ulrToClear = popupHTTPAddress+'czyscSesje.php'; 

// Id formularza z danymi użytkownika
var idZamawiamForm = '#zamawiamForm';

// Id kontenera, który zawiera pozostałe elementy.
var kontenerDivId = "#kontener"; 

// Id elementu wykorzystywanego do wyświetlania czarnego tła.
var maskDivId = "#mask";

// Kladsa dla elementu Data Picker.
// Element (input) o takiej klasie będzie miał przypisane okienko popup z
// kalendarzem, służącym do wyboru daty.
var datePickerClass = ".date-pick";

// Selektor dla okna, w którym wyświetlane są elementy na tel o danym kolorze.
var windowDivSelector = ".window";

// Selektor dla elementu zamykającego okno po kliknięciu.
var windowCloseSelector = ".window .close";

// ID dla pola imput z datą początkową.
var startDateId = '#start-date';
// ID dla pola imput z datą końcową.
var endDateId = '#end-date';

// Klasa dla zaznaczonego elementu.
var zaznaczonaPozycja = "zaznaczonaPozycja";

// Id do wyświetlania podsumowania zamówienia.
var podsumowanieDivId = "#kwotaFormat";

// Selektor dla linku, który będzie wykorzystywany do przejścia do następnego
// widoku, po wybraniu
// wyszukanego obiektu z listy.
var zamawiamSelector = "#zamawiamSubmit a";

// Styl dla pokazywania linku umożliwiającego przejście dalej po wybraniu
// wyszukanego obiektu.
var zamawiamBlockClass  = "block";

// Styl dla ukrywania linku umożliwiającego przejście dalej po wybraniu
// wyszukanego obiektu.
var zamawiamNoneClass  = "none";

// Selektor dla elementu, po kliknięciu którego wyświetli się okienko popup.
var startPopupSelector = "a[name=modal]";

// Id elementu, do którego załadowana zostanie lista wyszukanych obiektów.
var searchResultDivId = "#prawa-czesc";

// Id kontenera dla popup
var popupContenerId = "#popupwindow";

/**
 * Przechowywanie globalnych wartości, aby tego cały czas nie odczytywać. Te
 * dane przekazywane są w AJAX pomiedzy kolejnymi krokami.
 */
var roomId = ''; // id pokoju
var cena = ''; // cena za pokój
var ile = ''; // ile pokoi wybrano
var suma = ''; // suma (cena * ile)
var selectedId = ''; // id zaznaczonego elementu
var dataOd = ''; // data początkowa
var dataDo = ''; // data końcowa
var zaliczka = ''; // zaliczka
var zal = ''; // procent zaliczki
var single = ''; //poj. łóżka
var double = ''; //pod. łóżka
var photo = ''; //zdjęcie
var opcja = false; //zapamiętany stan checkboksa
var fRoomID = ''; //fikcyjne id pokoju
var dodatkowa = 0;
var selObj = 0;
var oldSelItem = 0;
var dorosli = 0;
var dzieci = 0;
var waluta = '';
var metoda = 0;

var lang = 'pl'; 

function loadEnglish()
{
   lang = 'en'; 
	/**
 * Adres do pliku popupa.
 */
    popupHTTPAddress = 'http://aparthotelastor.pl/reservation/en/popup2/';

/**
 * Adres pliku, który zwraca listę wolnych obiektów.
 */
    urlToFile = popupHTTPAddress+'wyszukaj.php';

/**
 * Adres pliku zwracającego formularz dla danych użytkownika.
 */
    urlToFileZamawiam = popupHTTPAddress+'zamawiam.php'; 

/**
 * Adres, na który wysyłane są dane użytkownika
 */
    urlToZatwierdzamScreen = popupHTTPAddress+'zatwierdzam.php';

/**
 * Adres pliku zwracającego pierwszy wygląd. Kalendarz, Data Picker oraz miejsce
 * na listę obiektów.
 */
    urlToMainFile = popupHTTPAddress+'contenerContent.php'; 

/**
 * Url do pliku czyszczącego sesję
 * */

    ulrToClear = popupHTTPAddress+'czyscSesje.php'; 

}

function loadPolish()
{
    lang = 'pl'; 
	/**
 * Adres do pliku popupa.
 */
    popupHTTPAddress = 'http://aparthotelastor.pl/reservation/pl/popup2/';

/**
 * Adres pliku, który zwraca listę wolnych obiektów.
 */
    urlToFile = popupHTTPAddress+'wyszukaj.php';

/**
 * Adres pliku zwracającego formularz dla danych użytkownika.
 */
    urlToFileZamawiam = popupHTTPAddress+'zamawiam.php'; 

/**
 * Adres, na który wysyłane są dane użytkownika
 */
    urlToZatwierdzamScreen = popupHTTPAddress+'zatwierdzam.php';

/**
 * Adres pliku zwracającego pierwszy wygląd. Kalendarz, Data Picker oraz miejsce
 * na listę obiektów.
 */
    urlToMainFile = popupHTTPAddress+'contenerContent.php'; 

/**
 * Url do pliku czyszczącego sesję
 * */

    ulrToClear = popupHTTPAddress+'czyscSesje.php'; 

}


/**
 * Funkcje dodatkowa. Np. preloader.
 */
var loader;
function init(selector){
	var winH = $(window).height();
	var winW = $(window).width();
	// Set the popup window to center
	var wtop = winH/2 - 40;
	var wleft = winW/2;
	jQuery(function() {
		loader = jQuery('<div id="loader"><img src="img/loading.gif" alt="loading..." /></div>')
		.css({position: "absolute", top: wtop, left: wleft,'z-index':25})
		.appendTo("body").hide();
	});	
}
// inicjowanie loadera
init();


/**
 * Funkcja, która ładuje pierwszego okna z kalendarzem oraz listą wyszukanych
 * obiektów. Funkcja wywołuje popupCalInie(), aby możliwe było korzystanie z
 * DataPicker
 */
function laduj(selector){
	loader.show();
	$.ajax({
		type: "POST",
		url: urlToMainFile,
		success: function(msg){
			$(selector).html(msg);
			// ustawienie dat
			if(dataOd && dataDo){
				$(startDateId).val(dataOd);
				$(endDateId).val(dataDo);
				wyszukajTypLokalu();
				if(suma)
					podsumowanie();
			}
			popupCalInit();
			loader.hide();
		}
	});
	
}

/**
 * Funkcja kasująca zamówienie z sesji.
 * */

function usunPozycje(id,kasuj){
	loader.show();
	$.ajax({
		type: "POST",
		url: urlToFileZamawiam,
		data: ({'kasujPozycje' : 'tak','idPozycji' : id, 'kasuj' : kasuj}),
		success: function(msg){
			$(kontenerDivId).html(msg);
			valid(idZamawiamForm);
			wyslijZamowienie(idZamawiamForm);
			loader.hide();
		}
	});
}

/**
 * Po wybraniu przycisku 'zamowienie' wysyłamy dane do kolejnego skryptu, który
 * pokaże podsumowanie oraz formularz do wypełnienia danych użytkownika.
 */
function zamowienie(kasuj){
	loader.show();
	$.ajax({
		type: "POST",
		url: urlToFileZamawiam,
		data: ({'roomId' : roomId, 'fRoomId' : fRoomID, 'cena' : cena,'ile' : ile, 'zaliczka' : zaliczka,'suma' : suma,'dataod' : dataOd,'datado' : dataDo,'single' : single, 'double' : double, 'photo' : photo,'kasuj' : kasuj,'dorosli' : dorosli, 'dzieci' : dzieci}),
		success: function(msg){
			$(kontenerDivId).html(msg);
			valid(idZamawiamForm);
			wyslijZamowienie(idZamawiamForm);
			loader.hide();
		}
	});
}
//powrót z wypełniania danych, czy przejście do wypełniania danych, aby nie przesyłać danych post
function zamowienieBack(kasuj){
	loader.show();
	$.ajax({
		type: "POST",
		url: urlToFileZamawiam,
		data: ({'kasuj' : kasuj}),
		success: function(msg){
			$(kontenerDivId).html(msg);
			valid(idZamawiamForm);
			wyslijZamowienie(idZamawiamForm);
			loader.hide();
		}
	});
}

/**
 * Funkcja prowadząca do ostatniego kroku
 * */

function zatwierdzam(){
	loader.show();
	$.ajax({
		type: "POST",
		url: urlToZatwierdzamScreen,
		data: ({'last' : 'tak','plac' : metoda}),
		success: function(msg){
			$(kontenerDivId).html(msg);
			loader.hide();
		}
	});
}

/**
 * Nowe zamówienie
 */
function nowaRezerwacja(){
	loader.show();
	zeroj();
	$.ajax({
		type: "GET",
		url: ulrToClear,
		//data: ({'roomId' : roomId, 'fRoomId' : fRoomID, 'cena' : cena,'ile' : ile, 'zaliczka' : zaliczka,'suma' : suma,'dataod' : dataOd,'datado' : dataDo,'single' : single, 'double' : double, 'photo' : photo,'kasuj' : kasuj}),
		success: function(msg2){
		}
	}); 
	
	laduj(kontenerDivId);
	loader.hide();
}

function setMethod(value){
	metoda = value;
}

/**
 * Wysłanie danych użytkownika
 */
function wyslijZamowienie(obj){
	loader.show();
	var options = { 
	        beforeSubmit:  validate,  // pre-submit callback
	        success:       showResponse,  // post-submit callback
	 
	        // other available options:
	         url: urlToZatwierdzamScreen, // override for form's 'action'
												// attribute
	         type:  'post'        // 'get' or 'post', override for form's
										// 'method' attribute
	        // dataType: null // 'xml', 'script', or 'json' (expected server
			// response type)
	        // clearForm: true // clear all form fields after successful submit
	        // resetForm: true // reset the form after successful submit
	 
	        // $.ajax options can be used here too, for example:
	        // timeout: 3000
	    };
	$(obj).submit(function(){
		 $(this).ajaxSubmit(options); 
		// return false; 
	});
	loader.hide();
}

function valid(formId){
	if(lang=='pl')
	{
	$(formId).validate({
		rules: {
			imie: {
				required: true,
				minlength: 2
			},
			nazwisko: {
				required: true,
				minlength: 2
			},
			ulica: {
				required: true,
				minlength: 2
			},
			numer: {
				required: true,
				minlength: 2
			},
			kod: {
				required: true,
				minlength: 5
			},
			miasto: {
				required: true,
				minlength: 2
			},
			narodowosc: {
				required: true,
				minlength: 2
			},
			email: {
				required: true,
				email: true
			},
			nip: {
				required: "#faktura:checked",
				minlength: 10
			},
			stacjonarny: {
				conajmniejjeden: {nasid : "#komorkowy"},
				number: true
			},
			komorkowy: {
				conajmniejjeden: {nasid : "#stacjonarny"},
				number: true
			},
			regulamin: {
				required: true
			}
		},
		messages: {
			imie: {
				required: "Imię jest wymagane!",
				minlength: "Imię musi się składać z minimum {0} znaków!"

			},
			nazwisko: {
				required: "Nazwisko jest wymagane!",
				minlength: "Nazwisko musi się składać z minimum {0} znaków!"
			},
			ulica: {
				required: "Nazwa ulicy jest wymagana!",
				minlength: "Nazwa ulicy musi się składać z minimum {0} znaków!"
			},
			numer: {
				required: "Numer jest wymagany!",
				minlength: "Numer musi się składać z minimum {0} znaków!"
			},
			kod: {
				required: "Kod jest wymagany!",
				minlength: "Kod musi się składać z minimum {0} znaków!"
			},
			miasto: {
				required: "Miasto jest wymagane!",
				minlength: "Miasto musi się składać z minimum {0} znaków!"
			},
			narodowosc: {
				required: "Narodowosc jest wymagana!",
				minlength: "Narodowosc musi się składać z minimum {0} znaków!"
			},
			email: {
				required: "E-mail jest wymagane!",
				email: "Podano niepoprawny adres e-mail!"
			},
			nip: {
				required: "Nip jest wymagany!",
				minlength: "Nip musi się składać z minimum {0} znaków!"
			},
			stacjonarny: {
				conajmniejjeden: "Proszę podać telefon stacjonarny lub komórkowy!",
				number: "Proszę podać poprawną wartość numeryczną!"
			},
			komorkowy: {
				conajmniejjeden: "Proszę podać telefon stacjonarny lub komórkowy!",
				number: "Proszę podać poprawną wartość numeryczną!"
			},
			regulamin: {
				required: "Akceptacja regulaminu jest wymagana!"
			}
		},

		submitHandler: function() {}
	});
	}
	else
	{
		$(formId).validate({
		rules: {
			imie: {
				required: true,
				minlength: 2
			},
			nazwisko: {
				required: true,
				minlength: 2
			},
			ulica: {
				required: true,
				minlength: 2
			},
			numer: {
				required: true,
				minlength: 2
			},
			kod: {
				required: true,
				minlength: 5
			},
			miasto: {
				required: true,
				minlength: 2
			},
			narodowosc: {
				required: true,
				minlength: 2
			},
			email: {
				required: true,
				email: true
			},
			nip: {
				required: "#faktura:checked",
				minlength: 2
			},
			stacjonarny: {
				conajmniejjeden: {nasid : "#komorkowy"},
				number: true
			},
			komorkowy: {
				conajmniejjeden: {nasid : "#stacjonarny"},
				number: true
			},
			regulamin: {
				required: true
			}
		},
		messages: {
			imie: {
				required: "Name is required!",
				minlength: "The field must contain at least {0} characters!"

			},
			nazwisko: {
				required: "Surname is required!",
				minlength: "The field must contain at least {0} characters!"
			},
			ulica: {
				required: "Street is required!",
				minlength: "The field must contain at least {0} characters!"
			},
			numer: {
				required: "Street number is required!",
				minlength: "The field must contain at least {0} characters!"
			},
			kod: {
				required: "Post code is required!",
				minlength: "The field must contain at least {0} characters!"
			},
			miasto: {
				required: "Town is required!",
				minlength: "The field must contain at least {0} characters!"
			},
			narodowosc: {
				required: "Nationality is required!",
				minlength: "The field must contain at least {0} characters!"
			},
			email: {
				required: "Email is required!",
				email: "The email has wrong format!"
			},
			nip: {
				required: "Tax reference number is required!",
				minlength: "The field must contain at least {0} characters!"
			},
			stacjonarny: {
				conajmniejjeden: "Phone is required!",
				number: "The field has wrong format!"
			},
			komorkowy: {
				conajmniejjeden: "Mobile phone is required!",
				number: "The field has wrong format!"
			},
			regulamin: {
				required: "You have to accept Booking Terms and Conditions!"
			}
		},

		submitHandler: function() {}
	});
	}

	// jeśli zaznaczono faktura, to wtedy wymagane jest też podanie nip.
	// jeśli faktura nie jest zaznaczona, to trzy pola poniżej nie są aktywne
	var faktura = $("#faktura");
	// newsletter topics are optional, hide at first
	var inital = faktura.is(":checked");
	var topics = $("#wymaganeFaktura")[inital ? "removeClass" : "addClass"]("gray");
	var topicInputs = topics.find("input").attr("disabled", !inital);
	// show when newsletter is checked
	faktura.click(function() {
		topics[this.checked ? "removeClass" : "addClass"]("gray");
		topicInputs.attr("disabled", !this.checked);
	});
};


// własna funkcja sprawdzająca czy conajmniej jeden z dwóch elementów został
// zaznaczony
$.validator.addMethod("conajmniejjeden", function(value,element,params) {
	var object_settings = this.settings;
	var nas = $(params.nasid);
	if(!value){
		if(!nas.val()) return false;
		return true;
	}
	return true;
});


/**
 * Walidacja danych użytkownika przy wprowadzaniu danych do formularza.
 */
function validate(formData, jqForm, options){
	var form = jqForm[0]; 
	/*
	if(!form.roomId.value || !form.cena.value || !form.ile.value || !form.zaliczka.value
			|| !form.suma.value || !form.dataod.value || !form.datado.value){
		// coś nie tak z przekazaniem podstawowych danych.
		alert('Podstawowe dane nie zostały przekazane. Proszę cofnąć się do poprzedniego kroku i jeszcze raz uzupełnić formularz!');
	}
	*/
	if(lang=='pl')
	{
	if (!form.imie.value || !form.nazwisko.value || !form.ulica.value || !form.numer.value
			|| !form.kod.value || !form.miasto.value || !form.narodowosc.value || !form.email.value
			|| (!form.stacjonarny.value && !form.komorkowy.value) || !form.regulamin.checked) { 
			if(!form.regulamin.checked)
		 		alert('Akceptacja regulaminu jest wymagana!'); 
			else 
				alert('Proszę wypełnić wszystkie wymagane dane!'); 
			return false; 
	}
	
	if(form.faktura.checked){
		// sprawdzamy, czy podano nip
		if(!form.nip.value){
			alert('Wybrano opcję z fakturą. Proszę podać nip!');
			return false;
		}
	}
	else{
		form.faktura.value = 'NIE';
	}
	}
	
	else 
	{
	if (!form.imie.value || !form.nazwisko.value || !form.ulica.value || !form.numer.value
			|| !form.kod.value || !form.miasto.value || !form.narodowosc.value || !form.email.value
			|| (!form.stacjonarny.value && !form.komorkowy.value) || !form.regulamin.checked) { 
			if(!form.regulamin.checked)
		 		alert('You have to accept Booking Terms and Conditions!'); 
			else 
				alert('Please fill all the fields'); 
			return false; 
	}
	
	if(form.faktura.checked){
		// sprawdzamy, czy podano nip
		if(!form.nip.value){
			alert('Please fill tax reference number');
			return false;
		}
	}
	else{
		form.faktura.value = 'NIE';
	}
	}
	 
	return true;
}

// po wysłaniu danych z formularza dostajemy odpowiedź i trzeba ją wyświetlić
function showResponse(responseText, statusText){
	loader.show();
	$(kontenerDivId).html(responseText);
	loader.hide();
}




/**
 * Funkcja powrotu z widoku podsumowania i pól formularzy z danymi użytkownika
 * do widoku wyszukiwania.
 */
function wracamy(){
	loader.show();
	laduj(kontenerDivId);	
	loader.hide();
}

/**
	Wracamy, ale i kasujemy pozycję, którą wcześniej wybraliśmy.
*/
function usunPozycjeAndBack(idPozycji){
	loader.show();
	$.ajax({
		type: "POST",
		url: urlToMainFile,
		data: ({'idPozycji' : idPozycji}),
		success: function(msg){
			$(kontenerDivId).html(msg);
			// ustawienie dat
			if(dataOd && dataDo){
				$(startDateId).val(dataOd);
				$(endDateId).val(dataDo);
				wyszukajTypLokalu();
				if(suma)
					podsumowanie();
			}
			popupCalInit();
			loader.hide();
		}
	});
}


/**
 * Zerowanie wartości
 */
function zeroj(){
	roomId = ''; // id pokoju
	cena = ''; // cena za pokój
	ile = ''; // ile pokoi wybrano
	suma = ''; // suma (cena * ile)
	selectedId = ''; // id zaznaczonego elementu
	dataOd = ''; // data początkowa
	dataDo = ''; // data końcowa
	zaliczka = ''; // zaliczka
	zal = ''; // procent zaliczki
	opcja = false;
	single = ''; //poj. łóżka
	double = ''; //pod. łóżka
	photo = ''; //zdjęcie
	fRoomID = '';
	dodatkowa = 0;
	selObj = 0;
	oldSelItem = 0;
	dorosli = 0;
	dzieci = 0;
	metoda = 0;
}
/**
 * Funkcja wyświetlająca podsumowanie na dole okna. Jeśli suma jest większa od
 * zera, to aktywowany jest przycisk, umożliwiający przejście do okna
 * wprowadzania danych.
 */
function podsumowanie(){
	if(suma > 0){
		$(zamawiamSelector).addClass(zamawiamBlockClass);
	}
	else
	{
		$(zamawiamSelector).removeClass(zamawiamBlockClass);
	}
	 
	var st = 'Typ pokoju: <span class="value">'+roomId+'</span> Ile pokoi: <span class="value">'+ile+'</span> Suma: <span class="value">'+suma+''+waluta+'</span>  Zaliczka: <span class="value">'+zaliczka+''+waluta+'</span>';
	if(lang=='en')
		st = 'Room: <span class="value">'+roomId+'</span> Quantity: <span class="value">'+ile+'</span> Sum: <span class="value">'+suma+''+waluta+'</span>  Advance: <span class="value">'+zaliczka+''+waluta+'</span>';
	if(roomId=='')
		st=''; 
	$(podsumowanieDivId).html(st); 
}

/**
 * Aktualizacja podsumowanie po wybraniu elementu listy
 */
function podsumowanieAktualizuj(selectedId){
	 //ile = $("#i"+selectedId+" span select").val();
	 ile = $("#pokojeIleSelect"+selectedId).val();
	 zaliczka = Math.ceil((ile*cena) * zal / 100);
	 suma = ile*cena;
	 podsumowanie();
}
/**
 * Funkcja zwracająca listę wyszukanych obiektów na podstawie daty początkowej
 * oraz końcowej.
 */
function wyszukajTypLokalu(){
	loader.show();
	var poczatek = $(startDateId).val();
	var koniec = $(endDateId).val();
	$.ajax({
		  type: "POST",
		  url: urlToFile,
		  data: ({'poczatek': poczatek, 'koniec': koniec}),
		  success: function(msg){
			$(searchResultDivId).html(msg);
			
			// jeśli jest selectedId, to znaczy, że użytkwonik
			// najprawdopodobniej cofnął akcję
			if(selectedId){
				$("#"+selectedId).addClass(zaznaczonaPozycja);
				$("#i"+selectedId+" select").attr("selectedIndex",ile - 1);	
				//zaznaczenie checkboksa z opcją, jeśli wcześniej opcja była zaznaczona
				
				if(opcja)
					$("#opcja"+selectedId).attr("checked","checked");
				if(selObj)
					$("#"+selObj).attr("checked","checked");
			
			}
			if(selectedId > 2){
				var wysokosc = $(".pokojItem").height();
				// skroolowanie do ostatnio zaznaczonego elementu listy
				// wyszukanych obiektów
				$(searchResultDivId).scrollTop(wysokosc * (selectedId - 1));
			}
			loader.hide();
		  }
		});
}

function ustaw(obj,suma,dor,dz){
	check = $(obj).attr("checked");
	if(check){
		$(":checkbox").each(function(){
			$(this).removeAttr("checked");
		 });
		$(obj).attr("checked","checked");
		dodatkowa = suma;
		selObj = $(obj).attr("id");
		dorosli = dor;
		dzieci = dz;
	}
	else{
		dodatkowa = 0;
		selObj = 0;
		dorosli = 0;
		dzieci = 0;
	}
}

function usunZaznaczenieTypObiektow(){
	$(".pokojItem").each(function(){
				$(this).removeClass(zaznaczonaPozycja);
			}
	);
	roomId = ''; // id pokoju
	cena = ''; // cena za pokój
	ile = ''; // ile pokoi wybrano
	selectedId = ''; // id zaznaczonego elementu
	suma = ''; 
	zaliczka =''; 
	opcja = false;
	dodatkowa = 0;
	selObj = 0;
	oldSelItem = 0;
	podsumowanie(); 
	$(zamawiamSelector).removeClass(zamawiamBlockClass);
	
}

function zaznaczTypObiektu(obj,id,room,cen, znizka,opcjaTyp,cenaOpcja,pojedyncze,podwojne,zdjecie,walutaa){
	waluta = walutaa;
	$(".pokojItem").each(
			function(){
				$(this).removeClass(zaznaczonaPozycja);
			}
	);
	$(obj).addClass(zaznaczonaPozycja);
	
	 selectedId = $(obj).attr('id');
	 
	 if(oldSelItem != selectedId){
		 //odznaczamy checkboksy
		 $(":checkbox").each(function(){
			$(this).removeAttr("checked");
		 });
		 dodatkowa = 0;

	 }
	 oldSelItem = selectedId;
	/**
	 * Dalej przekazujemy roomId, cena, ile oraz suma
	 */
	 
	 
	
	 opcja = $("#opcja"+selectedId).attr("checked");
	
	 if(opcja){
		roomId = opcjaTyp;
		cena = cenaOpcja;
	 } 
	 else{
		roomId = room;
		cena = cen;
	 }
	 
	 if(dodatkowa)
		 cena = dodatkowa;
	 
	 fRoomID = id;
	 single = pojedyncze; //poj. łóżka
	 double = podwojne; //pod. łóżka
	 photo = zdjecie; //zdjęcie
	 zal = znizka;
	 ile = $("#i"+selectedId+" span select").val();// pozycja z listy
													// rozwijanej
	 zaliczka = Math.ceil((ile*cena) * zal / 100);
	 suma = ile*cena;
	 podsumowanie();
}

function toggle(selektor){
	$(selektor).toggle();
}


/**
 * Funkcja dla Data Picker, umożliwiająca wybieranie daty z wyskakującego
 * kalendarzyka.
 */
function popupCalInit(){
	$(datePickerClass).datePicker();
	$(startDateId).bind(
		'dpClosed',
		function(e, selectedDates)
		{
			var d = selectedDates[0];
			if (d) {
				d = new Date(d);
				$(endDateId).dpSetStartDate(d.addDays(1).asString());
				dataOd = $(startDateId).val();
				usunZaznaczenieTypObiektow(); 
				// wysłanie zapytania o listę wolnych typów pokoi
				wyszukajTypLokalu();
			}
		}
	);
	$(endDateId).bind(
		'dpClosed',
		function(e, selectedDates)
		{
			var d = selectedDates[0];
			if (d) {
				d = new Date(d);
				dataDo = $(endDateId).val();
				$(startDateId).dpSetEndDate(d.addDays(-1).asString());
				usunZaznaczenieTypObiektow();
				// wysłanie zapytania o listę wolnych typów pokoi
				wyszukajTypLokalu();
			}
		}
	);
	$(zamawiamSelector).addClass(zamawiamNoneClass);
}

/*
ukrywanie i wlaczanie flasha
*/
function toggleFlash(state) {
	var objects = this.doc.getElementsByTagName("object");
	for (var i = 0; i < objects.length; i++) {
		objects[i].style.visibility = (state == "hide") ? 'hidden' : 'visible';
	}
	var embeds = this.doc.getElementsByTagName("embed");
	for (var i = 0; i < embeds.length; i++) {
		embeds[i].style.visibility = (state == "hide") ? 'hidden' : 'visible';
	}
	if (this.isFrame) {
		for (var i = 0; i < parent.frames.length; i++) {
			try {
				objects = parent.frames[i].window.document.getElementsByTagName("object");
				for (var j = 0; j < objects.length; j++) {
					objects[j].style.visibility = (state == "hide") ? 'hidden' : 'visible';
				}
			} catch(e) { }
			try {
				embeds = parent.frames[i].window.document.getElementsByTagName("embed");
				for (var j = 0; j < embeds.length; j++) {
					embeds[j].style.visibility = (state == "hide") ? 'hidden' : 'visible';
				}
			} catch(e) { }
		}
	}
};



/**
 * Inicjalizowanie okan popup.
 */
$(document).ready(function() {	
	// select all the a tag with name equal to modal
	$(startPopupSelector).click(function(e) {
		// Cancel the link behavior
		e.preventDefault();
		// Get the A tag
		var id = $(this).attr('href'); // pobraliśmy adres i teraz można
										// wykonać akcję np. w ajax, która
										// pobierze kalendarzyk :)
		
		// Get the screen height and width
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
	
		// Set heigth and width to mask to fill up the whole screen
		$(maskDivId).css({'width':maskWidth,'height':maskHeight});
		
		// transition effect
		$(maskDivId).fadeIn(1000);	
		$(maskDivId).fadeTo("slow",0.8);	
	
		// Get the window height and width
		var winH = $(window).height();
		var winW = $(window).width();
              
		// Set the popup window to center
		$(id).css('top',  winH/3-$(id).height()/3);
		$(id).css('left', winW/2-$(id).width()/2);
		
		// transition effect
		$(id).fadeIn(2000); 
		
		// załadowanie kontenera
		laduj(kontenerDivId);
		
		//ukrycie obiektow flash
		$("embed").hide(); 

	
	});
	
	// if close button is clicked
	$(windowCloseSelector).click(function (e) {
		// Cancel the link behavior
		e.preventDefault();
		$(maskDivId).hide();
		$(windowDivSelector).hide();

		//pokazanie obiektow flash
		$("embed").show(); 
	});		
	
	// if mask is clicked
	$(maskDivId).click(function () {
		$(this).hide();
		$(windowDivSelector).hide();

		//pokazanie obiektow flash
		$("embed").show(); 
	});			
});

// inicjowanie popupa dla iFrame
function autoInitPopup(){
	
		var id = popupContenerId; // pobraliśmy adres i teraz można wykonać
									// akcję np. w ajax, która pobierze
									// kalendarzyk :)
		// Get the screen height and width
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
	
		// Set heigth and width to mask to fill up the whole screen
		$(maskDivId).css({'width':maskWidth,'height':maskHeight});
		
		// transition effect
		$(maskDivId).fadeIn(1000);	
		$(maskDivId).fadeTo("slow",0.8);	
	
		// Get the window height and width
		var winH = $(window).height();
		var winW = $(window).width();
	 
		// Set the popup window to center
		$(id).css('top',  winH/3-$(id).height()/3);
		$(id).css('left', winW/2-$(id).width()/2);
		
		// transition effect
		$(id).fadeIn(2000); 
		
		// załadowanie kontenera
		laduj(kontenerDivId);

		
	
	// alert(window.parent.document.body.innerHTML);
		// if close button is clicked
		$(windowCloseSelector).click(function (e) {
			// Cancel the link behavior
			// e.preventDefault();
			$(maskDivId).hide();
			$(windowDivSelector).hide();
			//maciek 
			history.back();
			// window.parent.document.body.innerHTML;
			var el = window.parent.document.getElementById('frame');
			window.parent.document.body.removeChild(el);	
		});		
		
		// if mask is clicked
		$(maskDivId).click(function () {
			$(this).hide();
			$(windowDivSelector).hide();
			//maciek 
			history.back();
			var el = window.parent.document.getElementById('frame');
			window.parent.document.body.removeChild(el);	
		});			

}

// inicjowanie popupa dla iFrame
function autoInitPopupWithDates(poczatek,koniec){
					
		var id = popupContenerId; // pobraliśmy adres i teraz można wykonać
									// akcję np. w ajax, która pobierze
									// kalendarzyk :)
		// Get the screen height and width
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
	
		// Set heigth and width to mask to fill up the whole screen
		$(maskDivId).css({'width':maskWidth,'height':maskHeight});
		
		// transition effect
		$(maskDivId).fadeIn(1000);	
		$(maskDivId).fadeTo("slow",0.8);	
	
		// Get the window height and width
		var winH = $(window).height();
		var winW = $(window).width();
	 
		// Set the popup window to center
		$(id).css('top',  winH/3-$(id).height()/3);
		$(id).css('left', winW/2-$(id).width()/2);
		
		// transition effect
		$(id).fadeIn(2000); 
		
		dataOd = poczatek; 
		dataDo = koniec;
		
		// załadowanie kontenera
		laduj(kontenerDivId);
		
		//zaladowanie dat poczatek i koniec
		

		//$(startDateId).val(poczatek); 
		//$(endDateId).val(koniec); 
		
		
		//usunZaznaczenieTypObiektow(); 
	        // wysłanie zapytania o listę wolnych typów pokoi
		//wyszukajTypLokalu();
		
	
	// alert(window.parent.document.body.innerHTML);
		// if close button is clicked
		$(windowCloseSelector).click(function (e) {
			// Cancel the link behavior
			// e.preventDefault();
			$(maskDivId).hide();
			$(windowDivSelector).hide();
			//maciek 
			//history.back();
			// window.parent.document.body.innerHTML;
			var el = window.parent.document.getElementById('frame');
			window.parent.document.body.removeChild(el);	
		});		
		
		// if mask is clicked
		$(maskDivId).click(function () {
			$(this).hide();
			$(windowDivSelector).hide();
			//maciek 
			//history.back();
			var el = window.parent.document.getElementById('frame');
			window.parent.document.body.removeChild(el);	
		});			

}

function loadDates(poczatek,koniec){
	dataOd = poczatek; 
	dataDo = koniec;
}
