function sendForm () {
	var formularz = $('reservForm');
	var submit = $$('input[name="form_submit"]');

	if (formularz && submit[0]) {
		var errors = false;

		submit[0].value = 'tak';

		var imie = formularz.getElement('input[name="form_imie_i_nazwisko"]');
		if (imie.value == '') { 
			errors = true;
			imie.addClass('error');
		} else {
			imie.removeClass('error');
		}

		var email = formularz.getElement('input[name="form_email"]');
		if (email.value == '' || !(/^([a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-]+(\.{1}[a-zA-Z]{2,6}){1,3})$/i.test(email.value))) {
			errors = true;
			email.addClass('error');
		} else {
			email.removeClass('error');
		}

		var telefon = formularz.getElement('input[name="form_phone"]');
		if (telefon.value == '') { 
			errors = true;
			telefon.addClass('error');
		} else {
			telefon.removeClass('error');
		}

		var przyjazd_rok = formularz.getElement('select[name="form_przyjazd_rok"]');
		if (przyjazd_rok.value == '' || przyjazd_rok.value == '-') {
			errors = true;
			przyjazd_rok.addClass('error');
		} else {
			przyjazd_rok.removeClass('error');
		}

		var przyjazd_miesiac = formularz.getElement('select[name="form_przyjazd_miesiac"]');
		if (przyjazd_miesiac.value == '' || przyjazd_miesiac.value == '-') {
			errors = true;
			przyjazd_miesiac.addClass('error');
		} else {
			przyjazd_miesiac.removeClass('error');
		}

		var przyjazd_dzien = formularz.getElement('select[name="form_przyjazd_dzien"]');
		if (przyjazd_dzien.value == '' || przyjazd_dzien.value == '-') {
			errors = true;
			przyjazd_dzien.addClass('error');
		} else {
			przyjazd_dzien.removeClass('error');
		}

		var wyjazd_rok = formularz.getElement('select[name="form_wyjazd_rok"]');
		if (wyjazd_rok.value == '' || wyjazd_rok.value == '-') {
			errors = true;
			wyjazd_rok.addClass('error');
		} else {
			wyjazd_rok.removeClass('error');
		}

		var wyjazd_miesiac = formularz.getElement('select[name="form_wyjazd_miesiac"]');
		if (wyjazd_miesiac.value == '' || wyjazd_miesiac.value == '-') {
			errors = true;
			wyjazd_miesiac.addClass('error');
		} else {
			wyjazd_miesiac.removeClass('error');
		}

		var wyjazd_dzien = formularz.getElement('select[name="form_wyjazd_dzien"]'); 
		if (wyjazd_dzien.value == '' || wyjazd_dzien.value == '-') {
			errors = true;
			wyjazd_dzien.addClass('error');
		} else {
			wyjazd_dzien.removeClass('error');
		}

		var rodzaj_pokoju = formularz.getElement('select[name="form_rodzaj_pokoju"]');
		if (rodzaj_pokoju.value == '' || rodzaj_pokoju.value == '-') {
			errors = true;
			rodzaj_pokoju.addClass('error');
		} else {
			rodzaj_pokoju.removeClass('error');
		}

		if (!errors) {
			formularz.submit();
		} else {
			alert('nie wszystkie wymagane pola zostały uzupełnione !!!');
		}
		return false;
	}
}

function IEselectInnerHTML(select, options) {
	var select = $(select);
	select.options.length = 0;
	var i = 0;
	var icount = options.length;
	for (i = 0; i < icount; i++) {
/*		var opt = $(document.createElement('OPTION'));
		opt.innerHTML = options[i]['var'];
		opt.value = options[i]['value'];
		select.options.add(opt);*/

		select.options[select.options.length] = new Option(options[i]['value'], options[i]['var']);
	}
}

function prepareForm () {
	var formularz = $('reservForm');

	if (formularz) {
		var i = 0;

		var przyjazd_rok = $$('select[name="form_przyjazd_rok"]');
		var przyjazd_miesiac = $$('select[name="form_przyjazd_miesiac"]');
		var przyjazd_dzien = $$('select[name="form_przyjazd_dzien"]');

		var wyjazd_rok = $$('select[name="form_wyjazd_rok"]');
		var wyjazd_miesiac = $$('select[name="form_wyjazd_miesiac"]');
		var wyjazd_dzien = $$('select[name="form_wyjazd_dzien"]');

		var liczba_nocy = $$('select[name="form_liczba_nocy"]');

		var lata = '';
		var ielata = [];
		var dzisiaj = new Date();
		var rok = dzisiaj.getFullYear();
		lata += '<option value="-">-</options>';
		ielata.push({'var': '-', 'value': '-'});
		for (i = 0; i < 5; i ++) {
			lata += '<option value="' + (rok + i) + '">' + (rok + i) + '</options>';
			ielata.push({'var': rok + i, 'value': rok + i});
		}

		function dniMiesiaca(elem, rok, miesiac) {
			var buffor = '';
			var iebuff = [];
			var ldni = 31;

			switch (miesiac) {
				case 'luty':
					ldni = 28;
					if (rok != '-') {
						if (((rok % 4 == 0) && (rok % 100 != 0)) || (rok % 400 == 0)) ldni = 29;
						else ldni = 28;
					}
					break;
				case 'kwiecień':
				case 'czerwiec':
				case 'wrzesień':
				case 'listopad': 
					ldni = 30;
					break;
			}

			var d = 0;
			buffor += '<option value="-">-</options>';
			iebuff.push({'var': '-', 'value': '-'});
			for (d = 1; d <= ldni; d++) {
				buffor += '<option value="' + d + '">' + d + '</options>';
				iebuff.push({'var': d, 'value': d});
			}
			var tval = elem.value;
			if (Browser.Engine.trident) {
				IEselectInnerHTML(elem, iebuff);
			} else {
				elem.innerHTML = buffor;
			}
			if (tval != '-') {
				if (parseInt(tval) <= ldni) {
					elem.value = tval;
				} else {
					elem.value = ldni;
				}
			}
		}

		function diffDate (date1, date2) {
			var roznica = 0;

			if (date1.day != '-' && date1.month != '-' && date1.year != '-' && date2.day != '-' && date2.month != '-' && date2.year != '-'
			&& date1.day != '' && date1.month != '' && date1.year != '' && date2.day != '' && date2.month != '' && date2.year != '') {
				var miesiace = {'styczeń': 0, 'luty': 1, 'marzec': 2, 'kwieceń': 3, 'maj': 4, 'czerwiec': 5, 'lipiec': 6, 'sierpień': 7, 'wrzesień': 8, 'październik': 9, 'listopad': 10, 'grudzień': 11};

				date1 = new Date(date1.year, miesiace[date1.month], date1.day, 0, 0, 0, 0);
				date1 = date1.getTime();
				date2 = new Date(date2.year, miesiace[date2.month], date2.day, 0, 0, 0, 0);
				date2 = date2.getTime();

				if (date2 > date1) {
					roznica = date2 - date1;
					roznica = Math.round(roznica / (1000 * 60 * 60 * 24));
				}
			}
			return roznica;
		}

		function countDiff() {
			liczba_nocy[0].value = diffDate({
				'year': przyjazd_rok[0].value,
				'month': przyjazd_miesiac[0].value,
				'day': przyjazd_dzien[0].value
			},{
				'year': wyjazd_rok[0].value,
				'month': wyjazd_miesiac[0].value,
				'day': wyjazd_dzien[0].value
			});
		}

		if (Browser.Engine.trident) {
			IEselectInnerHTML(przyjazd_rok[0], ielata);
		} else {
			przyjazd_rok[0].innerHTML = lata;
		}
		przyjazd_rok[0].addEvent('change', function () {
			dniMiesiaca(przyjazd_dzien[0], przyjazd_rok[0].value, przyjazd_miesiac[0].value);
			countDiff();
		});
		przyjazd_miesiac[0].addEvent('change', function () {
			dniMiesiaca(przyjazd_dzien[0], przyjazd_rok[0].value, przyjazd_miesiac[0].value);
			countDiff();
		});
		przyjazd_dzien[0].addEvent('change', function () {
			countDiff();
		});
		dniMiesiaca(przyjazd_dzien[0], '-', '-');

		if (Browser.Engine.trident) {
			IEselectInnerHTML(wyjazd_rok[0], ielata);
		} else {
			wyjazd_rok[0].innerHTML = lata;
		}
		wyjazd_rok[0].addEvent('change', function () {
			dniMiesiaca(wyjazd_dzien[0], wyjazd_rok[0].value, wyjazd_miesiac[0].value);
			countDiff();
		});
		wyjazd_miesiac[0].addEvent('change', function () {
			dniMiesiaca(wyjazd_dzien[0], wyjazd_rok[0].value, wyjazd_miesiac[0].value);
			countDiff();
		});
		wyjazd_dzien[0].addEvent('change', function () {
			countDiff();
		});
		dniMiesiaca(wyjazd_dzien[0], '-', '-');
	} 	
}

function topImages () {
	var obrazy = $$('#obraz .obraz');
	var preloader = $$('#obraz #obraz_preloader .preloader');
	if (obrazy[0] && preloader[0]) {
		var preload = [];
		obrazy.each(function (el, key) {
			preload.push(el.src);
		});

		new Asset.images(preload, {
			onComplete: function() {
				preloader.setStyle('display', 'none');

				var aktualne = 0;
				var liczba = obrazy.length;
				var efekt = new Fx.Elements(obrazy, {link: 'cancel', duration: 400}); 

				obrazy.setStyle('opacity', 0);
				obrazy.setStyle('display', 'block');
				obrazy[0].setStyle('opacity', '1');

				if (liczba > 1) {
					function rotateFoto() {
						aktualne ++;
						if (aktualne == liczba) aktualne = 0;
						stany = {};
						for (i = 0; i < liczba; i++) {
							if (aktualne == i) stany['' + i] = {'opacity': 1}
							else stany['' + i] = {'opacity': 0}
						}
						efekt.start(stany);
					}

					rotateFoto.periodical(4000);
				}
			}
		});
	}
}

function topMenu () {
	var menu = $('menu');
	var linki = $$('#menu a');
	if (menu && linki[0]) {
		var liczba = linki.length;
		var maksymalna = menu.offsetWidth - 21;
		var szerokosc = 0;
		var padding = { 'lewy': 20, 'prawy': 30 };

		function oblicz () {
			var szer = 0;
			linki.each(function (el, key) {
				szer += el.offsetWidth + 20;
			})
			return szer;
		}
		
		szerokosc = oblicz ();

		while (szerokosc > maksymalna) {
			padding.lewy --;
			padding.prawy --;
			if (padding.lewy < 0 || padding.prawy < 0) {
				break;
			} else {
				szerokosc -= 2*liczba;
			}
		}
		if (szerokosc > maksymalna) {
			//usuniecie ostatniej pozycji z menu i powtorzenie wszystkiego jeszcze raz
			linki[liczba - 1].dispose();
			topMenu ();
			return '';
		} else {
			linki.setStyle('padding-left', padding.lewy);
			linki.setStyle('padding-right', padding.prawy);

			var stany = {};
			linki.each(function (el, key) {
				el.setStyle('top', 0);
			});
		}

	}
}

function rightGallery () {
	var galerie = $$('#galeria_anim .galeria');
	if (galerie[0]) {
		var aktualna = 0;
		var liczba = galerie.length;

		galerie.setStyle('opacity', 0);
		galerie[aktualna].setStyle('opacity', 1);
		galerie.setStyle('display', 'block');

		var nawigator = $('galeria_nav');
		if (nawigator) {
			if (liczba < 2) {
				nawigator.setStyle('display', 'none');
			}
			var prev = nawigator.getElement('.galeria_prev');
			var next = nawigator.getElement('.galeria_next');
			var efekt = new Fx.Elements(galerie, {'link': 'chain', duration: 200});

			function rotate () {
				var stany = {};
				var i = 0;

				for (i = 0; i < liczba; i ++) {
					if (i == aktualna) {
						stany['' + i] = { 'opacity': 1 };
					} else {
						stany['' + i] = { 'opacity': 0 };
					}
				}

				efekt.start(stany);
			}

			if (prev) {
				prev.addEvent('click', function () {
					aktualna --;
					if (aktualna < 0) aktualna = liczba - 1;
					rotate ();
					return false;
				});
			}

			if (next) {
				next.addEvent('click', function () {
					aktualna ++;
					if (aktualna == liczba) aktualna = 0;
					rotate ();
					return false;
				});
			}
		}
	}
}

function openLeftMenu () {
	var select = $$('#sub_menu div.sub_menu a.select');
	if (select[0]) {
		select.each(function (el, key) {
			var parent = $(el.parentNode);
			if (parent) {
				var link = $$('#sub_menu a[rel=' + parent.id + ']');
				if (link) link.fireEvent('click');
			}
		});
	}
}

function leftMenu () {
	var linki = $$('#sub_menu a.parent');
	var submenus = $$('#sub_menu div.sub_menu');
	if (linki[0] && submenus[0]) {
		var i = 0;
		var icount = submenus.length;

		var efekt = new Fx.Elements(submenus, {'link': 'chain', duration: 200});

		linki.each(function (el, key) {
			var submenu = false;
			if (el.rel) {
				submenu = $(el.rel);
			}
			if (submenu) {
				var wysokosc = 0;
				var sublink = submenu.getElements('a');
				if (sublink[0]) {
					sublink.each(function (sub, skey) {
						wysokosc += sub.offsetHeight;
					});
				}

				el.addEvent('click', function () {
					if (el.hasClass('opened')) {
						linki.removeClass('opened');

						var stany = {};
						for (i = 0; i < icount; i ++) {
							stany['' + i] = {
								'height': 0,
								'opacity': 0
							}
						}
						efekt.start(stany);
					} else {
						linki.removeClass('opened');
						el.addClass('opened');

						var stany = {};
						for (i = 0; i < icount; i ++) {
							if (submenu.id == submenus[i].id) {	
								stany['' + i] = {
									'height': wysokosc,
									'opacity': 1
								}
							}
						}
						efekt.start(stany);
					}

					return false;
				});
			}
		});
	}
}

window.addEvent('domready', function() {
	topMenu ();
	leftMenu ();
	openLeftMenu ();
	rightGallery ();
	topImages ();
	prepareForm ();
});

