$(document).ready(function(){
	/* Fixes */
	if(window.top != window.self)
	{
		window.top.location.replace(document.location);
	}

	$('#nav ul li').hover(function(){
		$(this).addClass('active');
	},
	function(){
		$(this).removeClass('active');
	});

	$(':first-child').addClass('first');
	$(':last-child').addClass('last');

	/* Gallery */
	$('a[rel=gallery]').fancybox({
		'transitionIn': 'elastic',
		'transitionOut': 'elastic',
		'titlePosition': 'over',
		'titleFormat': function(title, currentArray, currentIndex, currentOpts){
			return '<span id="fancybox-title-over"><div class="left">' + (title.length ? ' &nbsp; ' + title : '') + '</div><div class="right">Zdjęcie ' + (currentIndex + 1) + ' / ' + currentArray.length + '</div><div class="clear"></div></span>';
		}
	});

	/* Phones */
	$('.phone_trigger').addClass('masterTooltip').attr('title', 'Podczas kontaktu proszę powołać się na serwis nocujmy.pl');

	$('.masterTooltip').hover(function(){
                var title = $(this).attr('title');
                $(this).data('tipText', title).removeAttr('title');
                $('<p class="tooltip"></p>')
                .text(title)
                .appendTo('body')
                .fadeIn('slow');
        }, function() {
                // Hover out code
                $(this).attr('title', $(this).data('tipText'));
                $('.tooltip').remove();
        }).mousemove(function(e) {
                var mousex = e.pageX + 20; //Get X coordinates
                var mousey = e.pageY + 10; //Get Y coordinates
                $('.tooltip')
                .css({ top: mousey, left: mousex })
        });

	var phone_1 = $('.phone_1').text();
	var phone_2 = $('.phone_2').text();
	var phone_3 = $('.phone_3').text();
	var phone_1_hidden = '';
	var phone_2_hidden = '';
	var phone_3_hidden = '';
	var phone_first_time = 1;
	var phone_offset = 3;
	if(phone_1[2] == ' ') phone_offset = 6;

	/*for(var i = 0; i < phone_1.length; i++)
		phone_1_hidden += (i <= phone_offset || phone_1[i] == ' ' || phone_1[i] == '-') ? phone_1[i] : 'X';*/

	if(phone_1 == '')
	{
		phone_2_hidden = phone_2.substr(0, phone_offset) + '... pokaż numer';

		$('.phone_2').text(phone_2_hidden);
		$('.phone_3').parent().addClass('none');
	}
	else
	{
		phone_1_hidden = phone_1.substr(0, phone_offset) + '... pokaż numer';

		for(var i = 0; i < phone_2.length; i++)
			phone_2_hidden += (phone_2[i] == ' ' || phone_2[i] == '-') ? phone_2[i] : 'X';

		$('.phone_1').text(phone_1_hidden);
		$('.phone_2').parent().addClass('none');
		$('.phone_3').parent().addClass('none');
	}
	
	//for(var i = 0; i < phone_3.length; i++)
	//	phone_3_hidden += (phone_3[i] == ' ' || phone_3[i] == '-') ? phone_3[i] : 'X';

	$('.phone_1').text(phone_1_hidden);
	$('.phone_2').text(phone_2_hidden);
	$('.phone_3').text(phone_3_hidden);

	$('.phone_trigger').click(function(){
		$('.phone_1').text(phone_1);
		$('.phone_2').text(phone_2);
		$('.phone_3').text(phone_3);

		$('.phone_2').parent().removeClass('none');
		$('.phone_3').parent().removeClass('none');

		$.ajax({
				url: '/ajax/phone/',
				data: {id: $('#main').attr('data-id')},
				type: 'post',
				success: function(response)
				{
					if(phone_first_time)
					{
						var phone_views = $('.phone_counter').text();
						$('.phone_counter').text(parseInt(phone_views)+1);
					}

					phone_first_time = 0;
				}
		});
	});

	/* Dialog */
	var dialog =
	{
		fading: 450,

		common: function()
		{
			$('#main .dialog_wrapper, #main .dialog .close').click(function(){
				dialog.close();
			});

			$('#main .dialog').click(function(e){
				e.preventDefault();

				return false;
			});
		},

		contact: function(title)
		{
			var content = '<div class="dialog_all none"><div class="dialog_wrapper"><div class="dialog_container"><div class="dialog contact">';
			content += '<div class="top"><div class="left">' + title + '</div><div class="right close" title="Zamknij"></div></div>';
			content += '<div class="content">';
			content += '<div class="info"><div class="message info">Proszę o wypełnienie wszystkich pól formularza</div></div>';
			content += '<form class="contact" action="" method="post">';
			content += '<input type="hidden" name="id" value="' + $('#main').attr('data-id') + '" />';
			content += '<p><span>Imię:</span><input type="text" name="name" value="" /></p>';
			content += '<p><span>Email:</span><input type="text" name="email" value="" /></p>';
			content += '<p><span>Nr tel.:</span><input type="text" name="phone" value="" /></p>';
			content += '<p><span>Wiadomość:</span><textarea name="message"></textarea></p>';
			content += '<input class="button" type="submit" name="submit" value="Wyślij" />';
			content += '</form>';
			content += '</div>';
			content += '</div></div></div></div>';

			$('#main').prepend(content);
			$('#main .dialog_all').fadeIn(this.fading);

			this.common();

			$('form.contact input[type=submit]').click(function(){
				var formData = $(this).parent().serialize();

				$.ajax({
					url: '/contact/',
					data: formData,
					type: 'post',
					success: function(response)
					{
						if(response.valid == true)
						{
							dialog.contactSuccess(response.message);
						}
						else
						{
							dialog.contactError(response.message);
						}
					},
					error: function()
					{
						dialog.contactError();
					}
				});
			});
		},

		contactSuccess: function(text)
		{
			var message = 'Wiadomość została wysłana poprawnie';

			if(text !== null)
			{
				message = text;
			}

			$('.dialog_all .info').html('<div class="message success">' + message + '</div>');
			$('.dialog_all form').addClass('none');
		},

		contactError: function(text)
		{
			var message = 'Nie można wysłać wiadomości';

			if(text !== null)
			{
				message = text;
			}

			$('.dialog_all .info').html('<div class="message error">' + message + '</div>');
		},

		location: function(title, location)
		{
			var content = '<div class="dialog_all none"><div class="dialog_wrapper"><div class="dialog_container"><div class="dialog location">';
			content += '<div class="top"><div class="left">' + title + '</div><div class="right close" title="Zamknij"></div></div>';
			content += '<div id="googleMap" class="content">';
			content += location;
			content += '</div>';
			content += '</div></div></div></div>';

			$('#main').prepend(content);
			$('#main .dialog_all').fadeIn(this.fading);

			$.ajax({
				url: '/map/',
				data: {id: $('#main').attr('data-id')},
				type: 'post',
				success: function(response)
				{
					if(response.map !== false)
					{
						$('#googleMap').html('');
						var mapData = {
							center: {lat: parseFloat(response.map.map_lat), lng: parseFloat(response.map.map_lng)},
							zoom: parseInt(response.map.map_zoom),
							mapTypeId: google.maps.MapTypeId.ROADMAP,
							styles: [{featureType:"landscape",stylers:[{saturation:-100},{lightness:65},{visibility:"on"}]},{featureType:"poi",stylers:[{saturation:-100},{lightness:51},{visibility:"simplified"}]},{featureType:"road.highway",stylers:[{saturation:-100},{visibility:"simplified"}]},{featureType:"road.arterial",stylers:[{saturation:-100},{lightness:30},{visibility:"on"}]},{featureType:"road.local",stylers:[{saturation:-100},{lightness:40},{visibility:"on"}]},{featureType:"transit",stylers:[{saturation:-100},{visibility:"simplified"}]},{featureType:"administrative.province",stylers:[]/**/},{featureType:"administrative.locality",stylers:[]},{featureType:"administrative.neighborhood",stylers:[{visibility:"on"}]/**/},{featureType:"water",elementType:"labels",stylers:[{visibility:"on"},{lightness:-25},{saturation:-100}]},{featureType:"water",elementType:"geometry",stylers:[{hue:"#ffff00"},{lightness:-25},{saturation:-97}]}]
						};

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

						var marker = new google.maps.Marker({
							position: {lat: parseFloat(response.map.map_lat), lng: parseFloat(response.map.map_lng)},
							map: map,
							draggable: false
						});
						marker.setMap(map);
					}
				}
			});

			this.common();
		},

		close: function()
		{
			$('#main .dialog_wrapper').fadeOut(this.fading, function(){
				$('#main .dialog_wrapper').remove();
			});
		}
	};

	$('a.contact').click(function(e){
		e.preventDefault();

		dialog.contact('Formularz kontaktowy');

		return false;
	});

	$('.location .viewmap').click(function(e){
		e.preventDefault();

		dialog.location('Lokalizacja', $(this).parent().find('.map').html());

		return false;
	});

	$('#contact_form input[type=submit]').click(function(e){
		e.preventDefault();

		var formO = $(this);
		var formData = $(this).parent().parent().serialize();

		var content = '<div class="dialog_all none"><div class="dialog_wrapper"><div class="dialog_container"><div class="dialog contact">';
		content += '<div class="top"><div class="left">Formularz kontaktowy</div><div class="right close" title="Zamknij"></div></div>';
		content += '<div class="content">';
		content += '<div class="info"></div>';
		content += '</div>';
		content += '</div></div></div></div>';

		$('#main').prepend(content);
		$('#main .dialog_all').fadeIn(this.fading);

		dialog.common();

		$.ajax({
			url: '/ajax/contact/',
			data: formData,
			type: 'post',
			success: function(response)
			{
				if(response.valid == true)
				{
					dialog.contactSuccess(response.message);

					var prevval = $('#contact_form_sent').html();
					$('#contact_form_sent').html(parseInt(prevval)+1);

					formO.parent().parent().find('input[type=text], input[type=date]').each(function(a, b){$(this).attr('value', '')});
					formO.parent().parent().find('textarea').val('');
				}
				else
				{
					dialog.contactError(response.message);
				}
			},
			error: function()
			{
				dialog.contactError();
			}
		});

		return false;
	});

	/* Cookies information */
	var accepted = $.cookie('accept');

	if(accepted != 1)
	{
		$('#cookies').removeClass('none');

		$('#cookies_accept').click(function(event){
			event.preventDefault();

			$('#cookies').animate({'bottom':'-=' + $('#cookies').height() + 'px', 'opacity':'-=1'}, 'slow');

			$.cookie('accept', 1, { expires: 365, domain: '.nocujmy.pl' });
		});
	}
});

$(window).load(function(){
	$('#slider').nivoSlider();
});
