var prvniNacteni = true;

$(document).ready(function() {
	
	$("a.fancybox").fancybox({
		'zoomOpacity'			: true,
		'overlayShow'			: true,
		'zoomSpeedIn'			: 500,
		'zoomSpeedOut'			: 500,
		'hideOnContentClick'	: true
	});
	
	$('#mena').bind('change', function() {
		self.location.href = $('#mena').val();
	});
	
	if ($("#pozadavek_na_dostupnost").val() == "ano") {
		naplnitPocetNoci(false);
		nastaveniKalendare(false);
		
		// nastavení počtu nocí
		if ($("#dotaz_v_pocetNoci").val() != "") {
			($('#dotaz_pocetNoci')[0]).selectedIndex = $('#dotaz_v_pocetNoci').val() - 1;
		}
		
		// nastavení dne
		if ($("#dotaz_v_den").val() != "") {
			($('#dotaz_d')[0]).selectedIndex = $('#dotaz_v_den').val() - 1;
		}
		
		// nastavení měsíce a roku
		if ($("#dotaz_v_mesicArok").val() != "") {
			var mesice = $('select#dotaz_mesicArok').children("option");
			var vybrat_index = 0;
			for (var i = 0; i < mesice.length; i++) {
				if ($(mesice[i]).val() == $('#dotaz_v_mesicArok').val()) {
					break;
				}
				vybrat_index++;
			}
			($('#dotaz_mesicArok')[0]).selectedIndex = vybrat_index;
		}
		
		// promítnout změny i do kalendáře (jinak by se pokaždé přenastavoval na aktuální datum)
		var pole = $('#dotaz_mesicArok').val().split("-");
		var d = new Date( pole[1], 
						  (pole[0] - 1), 
						  $('#dotaz_d').val() );
		$('#dotaz_date-pick').dpSetSelected(d.asString());
	}
	
	if ($("#vybrat_tab").val() != "") {
		
		switch ($("#vybrat_tab").val()) {
			case "dostupnost":	// dostupnost je vždy poslední
				var lis = $("#tabs > ul").children("li");
				var poradiDostupnosti = lis.length - 1;
				$('#tabs > ul').tabs({selected: poradiDostupnosti});
				break;
			case "dotaz":					// vybrání tabu s dotazem v případě, že např. nastala chyba
				var lis = $("#tabs > ul").children("li");
				var poradiDotazu = lis.length - 1;
				$('#tabs > ul').tabs({selected: poradiDotazu});
				zobrazitDotaz = true;
				break;
			case "pozadavek_dostupnost_1":	// tab Rezervacni formular je vzdy na konci
			case "pozadavek_dostupnost_2":	// tab Zaslat je take vzdy na konci
				var lis = $("#tabs > ul").children("li");
				var poradiDotazu = lis.length - 1;
				$('#tabs > ul').tabs({selected: poradiDotazu});
				break;
		}
		
		// pokud je prvni zobrazeny tab mapa, musi se zinicializovat uz pri nacteni stranky
		if (prvniNacteni) {
			prvniNacteni = false;
			initialize();
		}
		
		if ( (($("#map_x").val() != '0.00000000') 	&& ($("#map_y").val() != '0.00000000')) && 
			 (($("#map_x").val() != '0.0000') 		&& ($("#map_y").val() != '0.0000')) && 
			 (($("#map_x").val() != '') 			&& ($("#map_y").val() != '')) ) {
			 	 
				$('.ui-tabs-nav').bind('tabsshow', function(event, ui) {
					initialize();
				});
		}
	}
	else {
		$('#tabs > ul').tabs();
		if ( (($("#map_x").val() != '0.00000000') 	&& ($("#map_y").val() != '0.00000000')) && 
			 (($("#map_x").val() != '0.0000') 		&& ($("#map_y").val() != '0.0000')) && 
			 (($("#map_x").val() != '') 			&& ($("#map_y").val() != '')) ) {
				
				// pokud je prvni zobrazeny tab mapa, musi se zinicializovat uz pri nacteni stranky
				if (prvniNacteni) {
					prvniNacteni = false;
					initialize();
				}
				
				// inicializace mapy pri prepnuti tabu
				$('.ui-tabs-nav').bind('tabsshow', function(event, ui) {
					initialize();
				});
		}
	}
	
	if ($('#h_maxPocetNoci').val() && ($("#pozadavek_na_dostupnost").val() != "ano")) {
		
		$("#vyhledat").click(function() {
			var url = "/" + $('#param_jazyk').val() + "/";
			if ($('#param_mena').val())
				url += $('#param_mena').val() + "/";
			
			url += $('#param_hotel').val() + "/"
			
			// upravení data příjezdu
			var mesicArok = $('#mesicArok').val();
			var mesic = mesicArok.substr(0, 2);
			var rok = mesicArok.substr(3);
			var pomDatPrijezdu = rok + "-" + mesic + "-" + $('#d').val();  // pomocná prom., která poté vytvoří datum příjezdu
			
			// spočtení data odjezdu
			var pom2DatPrijezdu = new Date(mesic + "/" + $('#d').val() + "/" + rok);
			var pn = ($('#pocetNoci').val())*1;			// převedení řetězce na číslo
			var pomDatOdjezdu = pom2DatPrijezdu.addDays(pn);
			
			// pomocné proměnné pro sestavení data odjezdu
			var odjezdMesic = pomDatOdjezdu.getMonth()+1;
			var odjezdDen = pomDatOdjezdu.getDate();
			
			// doplnění nul před čísla měsíce a dne odjezdy, pokud jsou menší než 10
			if (odjezdMesic < 10)
				odjezdMesic = "0"+odjezdMesic;
			if (odjezdDen < 10)
				odjezdDen = "0"+odjezdDen;

			// naplnění konečných hodnot
			var datumPrijezdu = pomDatPrijezdu + "/";
			var datumOdjezdu = pomDatOdjezdu.getFullYear() + "-" + odjezdMesic + "-" + odjezdDen + "/";
			var pocetNoci = $('#pocetNoci').val();
			
			// dokončení sestavení URL
			url += datumPrijezdu + datumOdjezdu + pocetNoci;
			url += "/tab-dostupnost";
			
			// přesměrování
			self.location.href = url;
			return false;
		});

		
		// naplnění počtu nocí
		naplnitPocetNoci(true);
		
		// nastavení počtu nocí
		($('#pocetNoci')[0]).selectedIndex = $('#h_pocetNoci').val() - 1;
		
		nastaveniKalendare(true);
	}
	
	setZemeHandlers();
});

function setZemeHandlers() {	
	$('#zeme').bind('change', function() {
		var url = "/kosik.php?zeme="+$("#zeme").val()+"&detail=ano";
		var telefon = $("#telefon").val();
		var tridaTelefonu = $("#telefon").attr("class");
		$("#ajax_div").load(url, function() { 
			setZemeHandlers();
			$("#telefon").val(telefon);
			$("#telefon").attr("class", tridaTelefonu);
		});
	});
}

function naplnitPocetNoci(tab_dostupnost) {
	
	// naplnění počtu nocí
	var maxPocetNoci;
	
	if (tab_dostupnost) {
		maxPocetNoci = ($('#h_maxPocetNoci').val());
		var pocetNoci = "";
		for (i = 1; i <= maxPocetNoci; i++) {
			pocetNoci += '<option value="'+ i +'">'+ i +'</option>';
		}
		$('#pocetNoci').html(pocetNoci);
	}
	else {
		maxPocetNoci = ($('#dotaz_h_maxPocetNoci').val());
		var pocetNoci = "";
		for (i = 1; i <= maxPocetNoci; i++) {
			pocetNoci += '<option value="'+ i +'">'+ i +'</option>';
		}
		$('#dotaz_pocetNoci').html(pocetNoci);
	}
}

function nastaveniKalendare(tab_dostupnost) {
	
	// formát data v XML: 2008-04-25 
	// počáteční datum povoleného příjezdu
	var datum = "";
	if (tab_dostupnost)
		datum = $('#h_dnesniDatum').val();
	else
		datum = $('#dotaz_h_dnesniDatum').val();
	var pocDatum = datum.split("-");
	var strPocDatum = pocDatum[2] + "/" + pocDatum[1] + "/" + pocDatum[0];
	
	// poslední datum povoleného příjezdu
	datum = $('#h_maxDatumPrijezdu').val();
	if (tab_dostupnost)
		datum = $('#h_maxDatumPrijezdu').val();
	else
		datum = $('#dotaz_h_maxDatumPrijezdu').val();
	var koncDatum = datum.split("-");
	var strKoncDatum = koncDatum[2] + "/" + koncDatum[1] + "/" + koncDatum[0];
	
	// den příjezdu
	datum = $('#h_datumPrijezdu').val()
	if (tab_dostupnost)
		datum = $('#h_datumPrijezdu').val();
	else
		datum = $('#dotaz_h_datumPrijezdu').val();
	var denPrijezdu = datum.split("-");
	var strDenPrijezdu = denPrijezdu[2];
	
	// nastavení dne příjezdu
	if (tab_dostupnost)
		($('#d')[0]).selectedIndex = strDenPrijezdu - 1;
	else
		($('#dotaz_d')[0]).selectedIndex = strDenPrijezdu - 1;
	
	// měsíc a rok příjezdu
	var datumPrijezdu = datum.split("-");
	var mesicPrijezdu = datumPrijezdu[1];
	var rokPrijezdu = datumPrijezdu[0];
	
	// nastavení měsíce a roku příjezdu
	var today = new Date();
	if (rokPrijezdu != today.getFullYear()) {
		var do12mesicu = 12 - today.getMonth();
		var index = mesicPrijezdu - 0 + do12mesicu;
		if (tab_dostupnost)
			($('#mesicArok')[0]).selectedIndex = index - 1;
		else
			($('#dotaz_mesicArok')[0]).selectedIndex = index - 1;
	}
	else {
		if (tab_dostupnost)
			($('#mesicArok')[0]).selectedIndex = mesicPrijezdu - today.getMonth() - 1;
		else
			($('#dotaz_mesicArok')[0]).selectedIndex = mesicPrijezdu - today.getMonth() - 1;
	}
	
	
	// initialise the "Select date" link
	if (tab_dostupnost) {
		$('#date-pick').datePicker(	{
			createButton:false,
			startDate: strPocDatum,
			endDate:strKoncDatum
			
		}).bind('click',function() {
			// when the link is clicked display the date picker
			updateSelects($(this).dpGetSelected()[0]);
			$(this).dpDisplay();
			return false;
			
		}).bind('dateSelected', function(e, selectedDate, $td, state) {
			// when a date is selected update the SELECTs
			updateSelects(selectedDate);
			
		}).bind('dpClosed',	function(e, selected) {
			updateSelects(selected[0]);
		});
	}
	else {
		$('#dotaz_date-pick').datePicker(	{
			createButton:false,
			startDate: strPocDatum,
			endDate:strKoncDatum
			
		}).bind('click',function() {
			// when the link is clicked display the date picker
			updateSelects($(this).dpGetSelected()[0]);
			$(this).dpDisplay();
			return false;
			
		}).bind('dateSelected', function(e, selectedDate, $td, state) {
			// when a date is selected update the SELECTs
			updateSelects(selectedDate);
			
		}).bind('dpClosed',	function(e, selected) {
			updateSelects(selected[0]);
		});
	}
		
	var updateSelects = function (selectedDate)
	{
		var today = new Date();
		selectedDate = new Date(selectedDate);
		var d = selectedDate.getDate();
		var m = selectedDate.getMonth();
		var y = selectedDate.getFullYear();
		
		if (tab_dostupnost)
			($('#d')[0]).selectedIndex = d - 1;
		else
			($('#dotaz_d')[0]).selectedIndex = d - 1;
			
		if (y != today.getFullYear()) {
			var do12mesicu = 12 - today.getMonth();
			if (tab_dostupnost)
				($('#mesicArok')[0]).selectedIndex = m + do12mesicu;
			else
				($('#dotaz_mesicArok')[0]).selectedIndex = m + do12mesicu;
		}
		else
			if (tab_dostupnost)
				($('#mesicArok')[0]).selectedIndex = m - today.getMonth();
			else
				($('#dotaz_mesicArok')[0]).selectedIndex = m - today.getMonth();
	}
	
	// listen for when the selects are changed and update the picker
	if (tab_dostupnost) {
		$('#d, #mesicArok').bind('change', function() {
			pole = $('#mesicArok').val().split("-");
			var d = new Date( pole[1], 
							  (pole[0] - 1), 
							  $('#d').val() );
			$('#date-pick').dpSetSelected(d.asString());
		});
		
		$('#date-pick').dpSetOffset(25, 0);
		// and update the datePicker to reflect it...
		$('#d').trigger('change');
	}
	else {
		$('#dotaz_d, #dotaz_mesicArok').bind('change', function() {
			pole = $('#dotaz_mesicArok').val().split("-");
			var d = new Date( pole[1], 
							  (pole[0] - 1), 
							  $('#dotaz_d').val() );
			$('#dotaz_date-pick').dpSetSelected(d.asString());
		});
		
		$('#dotaz_date-pick').dpSetOffset(25, 0);
		// and update the datePicker to reflect it...
		$('#dotaz_d').trigger('change');
	}
}
