var map;
var mm_js1;
var speed = 35;
var selected = '#index';

function load() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(48.147762, 17.144777), 12); 
			
		var point = new GLatLng(48.147762, 17.144777);
		var marker = new GMarker(point);
		GEvent.addListener(marker, "click", function() {
			var content = '<h1 style="margin-bottom:10px">Hotel Astra</h1><div style="padding:0px 10px 10px;">Prievozská 14/A<br/>821 09 Bratislava<br/>Slovensko<br/><br/>Tel.: +4212 / 58 23 81 11</div>';
			marker.openInfoWindowHtml(content);
		});
		map.addOverlay(marker);
	}
}

function checkSearchForm()
{
	var search = document.getElementById('search').value;
	
	if(search.length < 3)
	{
		alert('Hladaný text musí mať minimálne 3 znaky');
		return;
	}
	else
	{
		document.form.submit();
	}
}

function validateEmail(email) {
    if( /^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(\.[A-Za-z]{2,4})$/.test(email) ) {
        return true; // valid
    } else {
        return false; // invalid
    }
}

function m_js1()
{
	if(document.getElementById('c_js1').scrollTop >= document.getElementById('p2_js1').offsetTop)
		document.getElementById('c_js1').scrollTop -= document.getElementById('p1_js1').offsetHeight;
	else
		document.getElementById('c_js1').scrollTop++;
}

function scrollingGallery()
{
	clearInterval(mm_js1);
	var i = 0;
	var n = Math.floor(document.getElementById('js1').offsetHeight / document.getElementById('p1_js1').offsetHeight);

	for(i = 0; i <= n; i++)
	{
		document.getElementById('p2_js1').innerHTML += document.getElementById('p1_js1').innerHTML;
	}
	
	mm_js1 = setInterval(m_js1, speed); 
}

$(document).ready(function() {

	scrollingGallery();

	// COOKIE lang
	//
	var lang = $.cookie('lang');


	// Round corners
	//
	$('#languages').corner();
	$('#bottom').corner({br: 0, bl: 0});
	$('#footer').corner({tr: 0, tl: 0});

		
	// UI Tabs
	//
	$('#main > ul').tabs({ fx: { height: 'toggle', opacity: 'toggle' } });

	
	// Scrolling gallery on each tab
	//
	$('#main > ul li a').click(function() {
		var toLoad = $(this).attr('href');
		
		var index = toLoad.indexOf('#');
		toLoad = toLoad.substring(index);
		
		if(toLoad != selected) {		
			var contentHeight = $(toLoad).height() - 50;
			$('.gallery').html("");
			$(toLoad + ' .gallery').html('<div id="js1"><div id="c_js1"><div id="p1_js1"><a rel="lightbox-gallery" href="gallery/astra2.jpg" title="Hotel Astra"><img src="gallery/thumb/astra2_thumb.jpg" alt="" /></a><a rel="lightbox-gallery" href="gallery/astra3.jpg" title="Hotel Astra"><img src="gallery/thumb/astra3_thumb.jpg" alt="" /></a><a rel="lightbox-gallery" href="gallery/astra4.jpg" title="Hotel Astra"><img src="gallery/thumb/astra4_thumb.jpg" alt="" /></a><a rel="lightbox-gallery" href="gallery/astra5.jpg" title="Hotel Astra"><img src="gallery/thumb/astra5_thumb.jpg" alt="" /></a><a rel="lightbox-gallery" href="gallery/astra6.jpg" title="Hotel Astra"><img src="gallery/thumb/astra6_thumb.jpg" alt="" /></a><a rel="lightbox-gallery" href="gallery/astra7.jpg" title="Hotel Astra"><img src="gallery/thumb/astra7_thumb.jpg" alt="" /></a><a rel="lightbox-gallery" href="gallery/astra8.jpg" title="Hotel Astra"><img src="gallery/thumb/astra8_thumb.jpg" alt="" /></a><a rel="lightbox-gallery" href="gallery/astra9.jpg" title="Hotel Astra"><img src="gallery/thumb/astra9_thumb.jpg" alt="" /></a><a rel="lightbox-gallery" href="gallery/astra10.jpg" title="Hotel Astra"><img src="gallery/thumb/astra10_thumb.jpg" alt="" /></a><a rel="lightbox-gallery" href="gallery/astra11.jpg" title="Hotel Astra"><img src="gallery/thumb/astra11_thumb.jpg" alt="" /></a><a rel="lightbox-gallery" href="gallery/astra12.jpg" title="Hotel Astra"><img src="gallery/thumb/astra12_thumb.jpg" alt="" /></a></div><div id="p2_js1"></div></div></div>');
			$(toLoad + ' .gallery').hide();
			$('.ui-tabs-nav').bind('tabsshow', function() {
				$(toLoad + ' .gallery').show();
				scrollingGallery();
				$(toLoad + ' .gallery a').lightbox();
			});
			$('#c_js1').height(contentHeight);
			$('#c_js1').mouseover(function() {
				clearInterval(mm_js1);
			});
			$('#c_js1').mouseout(function() {
				mm_js1 = setInterval(m_js1,speed);
			});
			
			selected = toLoad;
		}
	});
	
	$('#c_js1').mouseover(function() {
		clearInterval(mm_js1);
	});
	$('#c_js1').mouseout(function() {
		mm_js1 = setInterval(m_js1,speed);
	});

	
	// Google maps bug fix
	//
	$('#main > ul li a.load-map').click(function() {
		$('.ui-tabs-nav').bind('tabsshow', function() {
			if(map == null) {
				load();
			}
		});
	});

	
	// UI Datepicker
	//
	$("#start_date,#end_date").datepicker({
		dateFormat: "dd.mm.yy",
		firstDay: 1,
    	beforeShow: customRange
	});
	
	$.datepicker.regional['sk'] = {monthNames: ['Január','Február','Marec','Apríl','Máj','Jún','Júl','August','September','Október','November','December'],
		monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún','Júl','Aug','Sep','Okt','Nov','Dec'],
		dayNames: ['Nedeľa','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'],
		dayNamesMin: ['Ne','Po','Ut','St','Št','Pi','So']};
		
	$.datepicker.regional['de'] = {monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
		monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'],
		dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa']};
	
	if(lang != 'en') {
		if(lang == null) lang = 'sk';
		$.datepicker.setDefaults($.datepicker.regional[lang]);
	}
	
		
	// Form Validation
	//
	$('.error').hide();

	$(".button").click(function() {
			// validate and process form
			// first hide any error messages
		$('.error').hide();
					
		var lastName = $("input#last_name").val();
		if(lastName == "") {
			$("label#last_name_error").show();
			$("input#last_name").focus();
			return false;
		}
		
		var firstName = $("input#first_name").val();
		if(firstName == "") {
			$("label#first_name_error").show();
			$("input#first_name").focus();
			return false;
		}
		
		var country = $("input#country").val();
		if(country == "") {
			$("label#country_error").show();
			$("input#country").focus();
			return false;
		}
		
		var email = $("input#email").val();
		if(email == "") {
			$("label#email_error").show();
			$("input#email").focus();
			return false;
		}
		if(!validateEmail(email)) {
			$("label#email_format_error").show();
			$("input#email").focus();
			return false;
		}
		
		var phone = $("input#phone").val();
		if(phone == "") {
			$("label#phone_error").show();
			$("input#phone").focus();
			return false;
		}
		
		if(document.getElementById("double").checked) {
			var doubleCount = $("input#double_count").val();
			if (doubleCount == "" || doubleCount <= 0) {
				$("span#double_error").show();
				$("input#double_count").focus();
				return false;
			}
		}
		else {
			var doubleCount = "";
			document.getElementById("double_count").value = '';
		}
		
		if(document.getElementById("double_extra").checked) {
			var doubleExtraCount = $("input#double_extra_count").val();
			if (doubleExtraCount == "" || doubleExtraCount <= 0) {
				$("span#double_extra_error").show();
				$("input#double_extra_count").focus();
				return false;
			}
		}
		else {
			var doubleExtraCount = "";
			document.getElementById("double_extra_count").value = '';
		}
		
		if(document.getElementById("apartment").checked) {
			var apartmentCount = $("input#apartment_count").val();
			if (apartmentCount == "" || apartmentCount <= 0) {
				$("span#apartment_error").show();
				$("input#apartment_count").focus();
				return false;
			}
		}
		else {
			var apartmentCount = "";
			document.getElementById("apartment_count").value = '';
		}
		
		if(doubleCount == "" && doubleExtraCount == "" && apartmentCount == "") {
			$("label#room_error").show();
			return false;
		}
		
		var startDate = $("input#start_date").val();
		if(startDate == "") {
			$("label#start_date_error").show();
			return false;
		}
		
		var endDate = $("input#end_date").val();
		if(endDate == "") {
			$("label#end_date_error").show();
			return false;
		}
		
		var phone = $("input#phone").val();
		var fax = $("input#fax").val();
		var note = $("textarea#note").val();
		
		var dataString = 'last_name=' + lastName + '&first_name=' + firstName + '&country=' + country + '&email=' + email + '&phone=' + phone + '&fax=' + fax + '&double_count=' + doubleCount + '&double_extra_count=' + doubleExtraCount + '&apartment_count=' + apartmentCount + '&arrival=' + startDate + '&departure=' + endDate + '&note=' + note;
		// alert(dataString);return false;
				
		if(lang == 'en') {
			var message = 'Reservation successfully completed';
			var linkText = 'New reservation';
		}
		else if(lang == 'de') {
			var message = 'Ihre Reservation wahr erfolgreich';
			var linkText = 'Neue Reservation';
		}
		else {
			var message = 'Vaša rezervácia prebehla úspešne.';
			var linkText = 'Nová rezervácia';
		}
		
		$('#submit-btn').hide();
		$('#ajax-loader').show();
				
		$.ajax({
			type: "POST",
			url: "process.php",
			data: dataString,
			success: function() {
				$('#order-form').html("<div id='message'></div>");
				$('#message').append("<h2>" + message + "</h2>")
				.hide()
				.fadeIn(1500, function() {
					$('#message').append("<img id='checkmark' src='images/check.png' />");
					$('#message').append("<br/><a href=\"http://hotelastra.sk\">&gt;&gt; " + linkText + " &lt;&lt;</a>");
				});
			}
		});
		return false;
	});
});
