$(function(){
	// settings
	var lang = $('html').attr('lang');
	var dateFormat = 'mm/dd/y';
	
	if(lang == 'fr' || lang == 'es') dateFormat = 'dd/mm/y';
	
	$("a[rel^='pretty']").prettyPhoto({
		deeplinking: false
	});
	
	$.address.change(function(e){
		if(e.value != $('#menu .current').attr('href') && e.value != $('#submenu .current-submenu').attr('href'))
		{
			// define click source
			var current = -1;
			var currentRoom = -1;
			$('#menu a').each(function(i){
				if($(this).attr('href') == e.value) current = i - 1;
			});
			
			if(current == -1 && $('#submenu-hotel').length == 1) current = 1;
			else if(current == -1 && $('#submenu-rooms').length == 1) current = 2;
			else if(current == -1) return false;
			
			$('#to-load-wrapper').load(e.value + ' #to-load');
			
			$('#more-details').hide();
			var left = -891 + (-891 * current);

			$('#slideshow-content').animate({
				left: left
			}, 1000, function(){
				$('.current-slide').removeClass('current-slide');
				$('#slides-line > ul > li').eq(current + 1).addClass('current-slide');

				if($('.current-slide img').length > 0)
				{
					if($('.current-slide').is('.slideshow-inner')) // if slide has inner slides
					{
						$('.current-slide li img:not(#book-now img)').hide();
						
						if($('.current-slide').is('.slideshow-inner:eq(0)')) var slideIsHotel = true;
						else var slideIsHotel = false;
						
						if(!slideIsHotel)
						{
							$('#submenu-rooms a').each(function(i){
								if($(this).attr('href') == e.value)
								{
									currentRoom = i;
								}
							});
						}
						else
						{
							$('#submenu-hotel a').each(function(i){
								if($(this).attr('href') == e.value)
								{
									currentRoom = i - 1;
								}
							});
						}
						
						$('.submenu-current').removeClass('submenu-current');
						if(currentRoom != -1 && !slideIsHotel) $('#submenu-rooms a').eq(currentRoom).addClass('submenu-current');
						else if(currentRoom != -1 && slideIsHotel) $('#submenu-hotel a').eq(currentRoom + 1).addClass('submenu-current');
						
						stopSlide();
						$('.current-slide > img:not(#book-now img)').fadeOut(300);
						if(currentRoom != -1) $('.current-slide').removeClass('current-slide');
						if(currentRoom != -1 && slideIsHotel) $('#slides-line > ul > li:eq(2) li').eq(currentRoom).addClass('current-slide').find('img:eq(0)').fadeIn(300);
						else if(currentRoom != -1 && !slideIsHotel) $('#slides-line > ul > li:eq(3) li').eq(currentRoom).addClass('current-slide').find('img:eq(0)').fadeIn(300);
						setSlide();
						
						$('#more-details').fadeIn();
					}
					else // if it's another page
					{
						if($('.current-slide').is('#slideshow-gallery'))
						{
							for(var i = 3; i< 28; i++)
							{
								$('#slideshow-gallery').append('<img style="display: none;" src="/assets/pages/gallery/' + i + '.jpg" alt="">');
							}
						}
						setSlide();
						
						$("a[rel^='pretty']").prettyPhoto({
							deeplinking: false,
							social_tools: ''
						});
						
						if(current != 3) $('#more-details').fadeIn();
					}
				}
			});
		}
	});
	
	
	// slider
	$('#slides-line li').each(function(){
		$(this).find('img:gt(0):not(#book-now img)').hide();
	});
	var interval;
	
	function setSlide()
	{
		stopSlide();
		
		interval = setInterval(function(){
			var index = $('.current-slide > img:visible').index();
			$('.current-slide > img:visible').fadeOut(300);
			
			setTimeout(function(){
				if(index == $('.current-slide > img').length - 1) var nextImg = 0;
				else var nextImg = index + 1;
				
				$('.current-slide > img').eq(nextImg).fadeIn(300);
				
			}, 300);
		}, 3000);
	}
	
	function stopSlide()
	{
		clearInterval(interval);
		$('.current-slide > img:gt(0)').fadeOut(300);
		$('.current-slide > img:eq(0)').fadeIn(300);
	}
	
	setSlide();
	
	
	// resa
	$.datepicker.setDefaults( $.datepicker.regional[lang] );
	
	$('#arrival, #departure').datepicker({
		dateFormat: dateFormat,
		minDate: new Date(),
		onSelect: function(dateText, inst){
			if($('#arrival').val() != '' && $('#departure').val() != '')
			{
				var arrival = $('#arrival').datepicker('getDate');
				var departure = $('#departure').datepicker('getDate');
				
				var arrivalTime = arrival.getTime();
				var departureTime = departure.getTime();
				
				var diff = Math.abs(arrivalTime - departureTime) / (1000 * 60 * 60 * 24);
				
				$("#gg").val(arrival.getDate());
				$("#mm").val(arrival.getMonth() + 1);
				$("#aa").val(arrival.getFullYear());
                $("#notti_1").val(diff)
			}
		}
	});
	
	
	// menus
	$('#menu a:not(:last, .btn-gallery)').click(function(){
		$.address.value($(this).attr('href'));
		$('.current').removeClass('current');
		$(this).addClass('current');
		return false;
	});
	
	$('#submenu-rooms a').live('click', function(){
		$.address.value($(this).attr('href'));
		return false;
	});
	
	$('.ajaxed').live('click', function(){
		$.address.value($(this).attr('href'));
		return false;
	});
	
	$('.btn-gallery').click(function(){
		var gallery = [];
		var titles = [];
		var descriptions = [];
		for(var i = 0; i< 28; i++)
		{
			gallery.push('/assets/pages/gallery/' + i + '.jpg');
			titles.push('');
			descriptions.push('');
		}
		$.prettyPhoto.open(gallery, titles, descriptions);
		return false;
	});
	
	// map
	$(window).load(function(){
		var latlng = new google.maps.LatLng(48.8526735, 2.3661868);
		var mapOptions = {
			zoom: 13,
			center: latlng,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};

		var map = new google.maps.Map(
			document.getElementById('map'),
			mapOptions
		);

		var marker = new google.maps.Marker({
			position: latlng, 
			map: map, 
			title:"Hôtel Castex"
		});
	});
	
	// details
	$('#more-details').click(function(){
		$(window).scrollTo($(this).attr('href'), 500, {
			easing: 'linear'
		});
		return false;
	});
	
	$('footer .right a:first-child').click(function(){
		$(window).scrollTo($(this).attr('href'), 500, {
			easing: 'linear'
		});
		
		return false;
	});
	
	// contact
	$('#contact-form').live('submit', function(){
		var sentData = {
			name: $('#contact-form #name').val(),
			email: $('#contact-form #email').val(),
			tel: $('#contact-form #phone').val(),
			message: $('#contact-form #message').val()
		};
		
		$(this).hide();
		$(this).parent().append('<img id="preloader" src="/assets/img/loader.gif" alt="">');
		
		$.post('/utils/send-message.php', {lang: lang, name: sentData.name, email: sentData.email, phone: sentData.phone, message: sentData.message}, function(data){
			var result = data.split('|');
			$('#preloader').remove();
			if(result[0] == 0)
			{
				$('#contact-form').show();
				alert(result[1]);
			}
			else if(result[0] == 1)
			{
				$('#text .left').append('<p>' + result[1] + '</p>');
			}
		});
		
		return false;
	});
});
