$(function() {

	//-- Обратная связь --------------------------------------------------------

	// Проверка обязательных полей формы обратной связи
	function _feedback_check_fields()
	{
		var fields = $('form#feedback input[required], form#feedback textarea[required]');
		var valid  = true;
		var msg    = [];

		for (var i = 0; i < fields.length; i++)
		{
			valid = $.trim($(fields[i]).val()).length > 0;

			if (!valid)
			{
				msg = 'Поля &quot;Имя&quot;, &quot;Email&quot; и &quot;Сообщение&quot; обязательны для заполнения.';
			}

			// Простая проверка формата адреса электронной почты
			if (valid && $(fields[i]).attr('name') == 'email')
			{
				valid = /^[\w\d\.\_\-\+]+@[\d\w\_\.\-]+\.\w+$/i.test($.trim($(fields[i]).val()));

				if (!valid)
				{
					msg = 'Введён неправильный адрес электронной почты.';
				}
			}

			if (!valid)
			{
				$(fields[i]).focus();
				break;
			}
		}

		return msg.length > 0
			? msg
			: true;
	}




	     $('.centD:gt(3)').css('height' , '150px');
		 $('.centD:gt(7)').css('height' , '120px');
         $('.centD:gt(11)').css('height' , '100px');
	// Отправка формы обратной связи
	$('form#feedback').submit(function() {
		$('form#feedback input[type="submit"]').attr('disabled', true);
		$('form#feedback #feedback_message').remove();

		// Проверка обязательных полей
		var check = _feedback_check_fields();

		if (check.constructor == String)
		{
			var msg = '<p id="feedback_message" class="errors">' + check + '</p>';

			$(msg).prependTo($(this));
			$('form#feedback input[type="submit"]').removeAttr('disabled');

			return false;
		}

		// Отправка формы
		$.ajax({
			url: '/feedback',
			type: 'post',
			data: $('form#feedback').serialize(),

			success: function(data) {
				if (data == 'OK')
				{
					$('form#feedback').parent()
						.replaceWith('<p id="feedback_message" class="success">Спасибо, Ваше сообщение отправлено.</p>');
				}
				else
				{
					$('<p id="feedback_message" class="errors">Не удалось отправить сообщение.</p>')
						.prependTo($('form#feedback'));
				}
			},

			error: function(xhr) {
				$('<p id="feedback_message" class="errors">Не удалось отправить сообщение.</p>')
					.prependTo($('form#feedback'));
			},

			complete: function() {
				$('form#feedback submit').attr('disabled', false);
			}
		});

		return false;
	});


	//-- Онлайн-заявка ---------------------------------------------------------

	$('#req_form :input').blur(function(){
		$(this).removeClass('input_errors');
	});

	// Отправка формы онлайн-заявки
	$('#req_form').submit(function() {
		// Скрытие показанного сообщения
		$(this).parent().find('#req_message').hide();

		// Деактивация кнопки отправки формы
		$(this).find('input[type="submit"]').attr('disabled', 'disabled');

		// Проверка заполненности всех полей
		var inputs = $(this).find('input[type="text"], textarea');
		var valid  = true;

		inputs.removeClass('input_errors');

		for (var i = 0; i < inputs.length; i++)
		{
			if ($.trim($(inputs[i]).val()).length == 0)
			{
				$(inputs[i]).addClass('input_errors');

				valid = false;
			}
		}

		// Проверка выбора радио-баттонов
		if (valid)
		{
			valid = $(this).find('*[name="type"]:radio:checked').length > 0
				&& $(this).find('*[name="pay_type"]:radio:checked').length > 0
				&& $(this).find('*[name="pay_payer"]:radio:checked').length > 0;
		}

		if (!valid)
		{
			// Отображение сообщения о необходимости заполнить все поля
			$(this).parent().find('#req_message')
				.html('Для отправки онлайн-заявки необходимо заполнить все поля.')
				.addClass('errors')
				.show();

			// Активация кнопки отправки формы
			$(this).find('input[type="submit"]')
				.removeAttr('disabled');

			return false;
		}

		// Отправка заявки
		$.ajax({
			url:	$(this).attr('action'),
			type:	$(this).attr('method'),
			data:	$(this).serialize(),

			beforeSend: function() {
				// Скрытие формы и показ загрузчика
				$('#req_form').hide();
				$('#req_form').parent().find('.ajax-loader').show();
			},

			complete: function() {
				// Скрытие загрузчика
				$('#req_form').parent().find('.ajax-loader').hide();

				// Активация кнопки отправки формы
				$('#req_form').find('input[type="submit"]')
					.removeAttr('disabled');
			},

			success: function(data) {
				// Отображение сообщения об успешном приёме заявки
				$('#req_form').parent().find('#req_message')
					.html('Спасибо, Ваша заявка принята.')
					.addClass('success')
					.show();

				// Очистка формы онлайн-заявки
				$('#req_form').find('input[type="radio"]')
					.removeAttr('checked');

				$('#req_form').find('input[type="radio"][value="rail"]')
					.attr('checked', 'checked');

				var inputs = $('#req_form').find('input[type="text"], textarea');

				for (var i = 0; i < inputs.length; i++)
				{
					$(inputs[i]).val('');
				}
			},

			error: function(xhr) {
				var message = xhr.status == 400
					? 'Для отправки онлайн-заявки необходимо заполнить все поля.'
					: 'Заявка не принята из-за ошибки на сервере.';

				// Отображение сообщения об ошибке
				$('#req_form').parent().find('#req_message')
					.html(message)
					.addClass('errors')
					.show();

				// Показ формы онлайн-заявки
				$('#req_form').show();
			}
		});

		return false;
	});

/*
	// прокрутка страницы вверх
		(function(jq) {
			jq.autoScroll = function(ops) {
			ops = ops || {};
			ops.styleClass = ops.styleClass || 'scroll-to-top-button';
			var t = jq('<div class="'+ops.styleClass+'"></div>'),
            d = jq(ops.target || document);
			jq(ops.container || 'body').append(t);

			t.css({
				opacity: 0,
				position: 'absolute',
				top: 0,
				right: 0
			}).click(function() {
				jq('html,body').animate({
					scrollTop: 0
				}, ops.scrollDuration || 1000);
			});

			d.scroll(function() {
				var sv = d.scrollTop();
				if (sv < 10) {
					t.clearQueue().fadeOut(ops.hideDuration || 200);
					return;
				}

				t.css('display', '').clearQueue().animate({
					top: sv,
					opacity: 0.4
				}, ops.showDuration || 500);
			});
		};
	})(jQuery);


	$(document).ready(function(){
		$.autoScroll({
			scrollDuration: 500,
			showDuration: 300,
			hideDuration: 300
		});
	});
    */

	//-- Отзывы и предложения --------------------------------------------------

	$('form#suggestion').submit(function() {
		$(this).find('.errors').remove();

		if ($(this).find('.LabelSelected').length < 2)
		{
			$(this).prepend('<p class="errors">Пожалуйста, ответьте, насколько вы удовлетворены обслуживанием в нашей компании и как часто пользуетесь нашими услугами.</p>');
			return false;
		}

		return true;
	});

	// RADIO BUTTON
	/*$('.CheckBoxLabelClass').click(function(){
		//$(this).find(':radio').click();
	});

	$('.radioclass').change(function(){
		if($(this).is(":checked"))
		{
			$('.LabelSelected:not(:checked)').removeClass('LabelSelected');
			$(this).parent('label').addClass('LabelSelected');
		}
	});*/

	$(function() {
		$('a[rel^=lightbox]').lightBox();
	});

	//-- Карты складов ---------------------------------------------------------

	var store_map = new YMaps.Map(document.getElementById('store_map'));
	var store_placemark = null;

	store_map.addControl(new YMaps.TypeControl());
	store_map.addControl(new YMaps.ToolBar());
	store_map.addControl(new YMaps.Zoom());

	store_map.enableScrollZoom();

	$('a[rel^="store_map"]').click(function() {
		var coord = $(this).attr('rel').match(/store_map\(([\d.]+),\s*([\d.]+)\)/);

		if (!coord || coord.length < 3)
		{
			return false;
		}

		show_store_map(coord[1], coord[2], $(this).attr('title'));

		return false;
	});

	$('#store_map_bg').click(function() {
		$('#store_map_bg, #store_map_container').fadeOut(100);
	});

	function show_store_map(coord_x, coord_y, description)
	{
		$('#store_map_bg').css({opacity: '0.5'});
		$('#store_map_bg, #store_map_container').fadeIn(100);

		if (store_placemark != null)
		{
			store_map.removeOverlay(store_placemark);
		}

		var point = new YMaps.GeoPoint(coord_x, coord_y);

		store_placemark = new YMaps.Placemark(point, {
			draggable: false,
			balloonOptions: {
				mapAutoPan: true,
				maxWidth: 300
			}
		});

		store_placemark.name = null;
		store_placemark.description = description;

		store_map.addOverlay(store_placemark);
		store_map.setCenter(point, 15);

		store_placemark.openBalloon();
	}


});

