showLoadingforForm = function(element, left, top){
	var css = {
			'position' : 'absolute',
			'opacity' : '0.7',
			'background': '#fff url(\'/uploads/images/loading.gif\') 50% 50% no-repeat',
			'width': element.outerWidth(),
			'height': element.outerHeight(),
			'z-index': '100'
	};

	if (left) css['left'] = left;
	if (top) css['top'] = top;

	if ($('div.overlay', element).length == 0){
		element.prepend($('<div class="overlay">').css(css));
	}
}

hideLoadingforForm = function(element){
	$('.overlay', element).remove();
}

$(document).ready(function() {
			
			/*
			 * Это обязательно надо писать первым
			 * может не правильно работать)
			 */
			$('input[placeholder], textarea[placeholder]').textPlaceholder();

			function custom_toggle() {
				$('.comments').toggle();
				$('.showhidecomments').toggleClass('opened');
			}

			var i_am_bot = true;

			$('input, textarea, select').bind({
				'click': function(){i_am_bot = false;},
				'focus': function(){i_am_bot = false;}
			});
			
			function CheckEmail(email) {
				AtPos = email.indexOf("@");
				StopPos = email.lastIndexOf(".");
				if ((AtPos == -1 || StopPos == -1) || (StopPos < AtPos) || (StopPos - AtPos == 1) || (email == "") || (AtPos == 0)) {
					return false;
				}
				return true;
			}
			
			function CheckTel(tel) {
				if (tel == '') return false;
				
				var minnumbercount = 11;
				reg = /^(\s*\+{0,1}\d{1,}\s*((\({1}\s*\d{2,}\s*\){1})|(\d{2,}))\s*)\d{2,}\s*(|\u2013|\u2014|\u002D){0,1}\s*\d{2,}\s*(|\u2013|\u2014|\u002D){0,1}\s*\d{2,}\s*$///\d{3}(-{0,1}|\s*)\d{2}(-{0,1}|\s*)\d{2}\s*$/;
	
				var numbercount = 0;
				for (var i = 0; i < tel.length; i++){
					if (/\d/.test(tel.charAt(i)) >= 0) numbercount++;
				}

				if (numbercount >= minnumbercount && reg.test(tel)) {
					return true;
				} else {
					return false;
				}
			}
			
			function Check_form_online(){
				var form = '.form_online';
				var correct = true;
				var error_message = '';
				if ($('input[name=name]', $(form)).val() == '') {
					$('input[name=name]').addClass('mistake');
					error_message = error_message + 'Заполните поле "Имя"<br />';
					correct = false;
				} else {
					$('input[name=name]').removeClass('mistake');
				}
				if (!CheckTel($('input[name=tel]', $(form)).val())) {
					$('input[name=tel]').addClass('mistake');
					error_message = error_message + 'Заполните поле "Телефон"<br />';
					correct = false;
				} else {
					$('input[name=tel]').removeClass('mistake');
				}				
				
				if (!CheckEmail($('input[name=mail]', $(form)).val())) {
					$('input[name=mail]').addClass('mistake');
					error_message = error_message + 'Заполните поле "Mail"<br />';
					correct = false;
				} else {
					$('input[name=mail]').removeClass('mistake');				
				}
				
				if ($('input[name=service]', $(form)).val() == '') {
					$('input[name=service]').addClass('mistake');
					error_message = error_message + 'Заполните поле "Услуга"<br />';
					correct = false;
				} else {
					$('input[name=service]').removeClass('mistake');				
				}
				
				if (error_message != '') {
					$('.error_text').html(error_message);
				}
				return correct;
			}
			
			$('.form_online').submit(function(){
				if (Check_form_online() && !i_am_bot){
					showLoadingforForm($('.form_online').parent(), '-1px', '-1px');
					$.ajax({
						url: '/mail_online.php',
						dataType: 'json',
						type: 'post',
						data: {
							'name': $('input[name=name]', $(this)).val(),
							'tel': $('input[name=tel]', $(this)).val(),
							'mail': $('input[name=mail]', $(this)).val(),
							'service': $('select[name=service]', $(this)).val(),
							'comments': $('textarea[name=comments]', $(this)).val()
						},
						success: function (d) { 
							hideLoadingforForm($('.form_online').parent());
							if (d.success) {
								$('.error_text').text('');
								$('.mistake').removeClass('mistake');
								$('input[type=text]').val('');
								$('textarea[class=comments]').val('');
								_gaq.push(['_trackPageview', '/zakaz']);
								alert('Ваше сообщение отправлено');
							} else {
								$('.mistake').removeClass('mistake');
								var error_message = '';
								
								for (var field in d.errors) {
									
									if (field == 'name') {
										$('input[name=name]').addClass('mistake');
										error_message = error_message + 'Заполните поле "Имя"<br />';
									}
										
									if (field == 'tel') {
										$('input[name=tel]').addClass('mistake');
										error_message = error_message + 'Заполните поле "Телефон"<br />';
									}	
									
									if (field == 'mail') {
										$('input[name=mail]').addClass('mistake');
										error_message = error_message + 'Заполните поле "Mail"<br />';
									}
									
									if (field == 'service') {
										$('input[name=service]').addClass('mistake');
										error_message = error_message + 'Заполните поле "Услуга"<br />';
									}
									
								}
								
								if (error_message != '') {
									$('.error_text').html(error_message);
								}
								
							}
						}
					});
				}
				return false;
		    });

			function Check_form_otzyvy(){
				var form = ".form_otzyvy";
				var correct = true;
				var error_message = '';

				if ($('input[name=name]', $(form)).val() == '') {
					$('input[name=name]', $(form)).addClass('mistake');
					error_message = error_message + 'Заполните поле "Контактное лицо"<br />';
					correct = false;
				} else {
					$('input[name=name]', $(form)).removeClass('mistake');
				}

				if ($('input[name=mail]', $(form)).val() != '' && !CheckEmail($('input[name=mail]', $(form)).val())) {
					$('input[name=mail]', $(form)).addClass('mistake');
					error_message = error_message + 'Заполните поле "Mail"<br />';
					correct = false;
				} else {
					$('input[name=mail]', $(form)).removeClass('mistake');
				}
				
				if ($('textarea[name=message]', $(form)).val() == '') {
					$('textarea[name=message]', $(form)).addClass('mistake');
					error_message = error_message + 'Заполните поле "Сообщение"<br />';
					correct = false;
				} else {
					$('textarea[name=message]', $(form)).removeClass('mistake');
				}				
				
				$('.error_text_otzyvy', $(form)).html(error_message);
				return correct;
			}
			
			$('.form_otzyvy').submit(function(){
				if (Check_form_otzyvy() && !i_am_bot){
					showLoadingforForm($('.form_otzyvy'));
					$.ajax({
						url: '/mail_otzyvy.php',
						dataType: 'json',
						type: 'post',
						data: {
							'name': $('input[name=name]', $(this)).val(),
							'mail': $('input[name=mail]', $(this)).val(),
							'message': $('textarea[name=message]', $(this)).val()
						},
						success: function (d) { 
							hideLoadingforForm($('.form_otzyvy'));
							var form = '.form_otzyvy';
							if (d.success) {
								$('input[name=name]', $(form)).val('');
								$('input[name=mail]', $(form)).val('');
								$('textarea[name=message]', $(form)).val('');
								$('.error_text_otzyvy', $(form)).text('');
								$('.mistake', $(form)).removeClass('mistake');
								_gaq.push(['_trackPageview', '/otzyv']);
								//location.href="/otzyv/";
								alert('Ваше сообщение отправлено');
							} else {
								$('.mistake', $(form)).removeClass('mistake');
								var error_message = '';
								for (var field in d.errors) {
									if (field == 'name') {
										$('input[name=name]', $(form)).addClass('mistake');
										error_message = error_message + 'Заполните поле "Контактное лицо"<br />';
									}
										
									if (field == 'mail') {
										$('input[name=mail]', $(form)).addClass('mistake');
										error_message = error_message + 'Заполните поле "E-mail"<br />';
									}
									
									if (field == 'message') {
										$('textarea[name=message]', $(form)).addClass('mistake');
										error_message = error_message + 'Заполните поле "Сообщение"<br />';
									}
								}
								
								if (error_message != '') {
									$('.error_text_otzyvy', $(form)).html(error_message);
								}
							}
						}
					});
				}
				return false;
		    });


			function Check_form_faq(){
				var form = ".form_faq";
				var correct = true;
				var error_message = '';

				if ($('textarea[name=key]', $(form)).val() == '') {
					$('textarea[name=key]', $(form)).addClass('mistake');
					error_message = error_message + 'Заполните поле "Вопрос"<br />';
					correct = false;
				} else {
					$('textarea[name=key]', $(form)).removeClass('mistake');
				}	
				
				if ($('input[name=name]', $(form)).val() == '') {
					$('input[name=name]', $(form)).addClass('mistake');
					error_message = error_message + 'Заполните поле "Ваше имя"<br />';
					correct = false;
				} else {
					$('input[name=name]', $(form)).removeClass('mistake');
				}
				
				if ($('input[name=tel]', $(form)).val() != '' && !CheckTel($('input[name=tel]', $(form)).val())) {
					$('input[name=tel]', $(form)).addClass('mistake');
					error_message = error_message + 'Заполните поле "Ваш телефон"<br />';
					correct = false;
				} else {
					$('input[name=tel]', $(form)).removeClass('mistake');
				}
				
				if (!CheckEmail($('input[name=email]', $(form)).val())) {
					$('input[name=email]', $(form)).addClass('mistake');
					error_message = error_message + 'Заполните поле "Mail"<br />';
					correct = false;
				} else {
					$('input[name=email]', $(form)).removeClass('mistake');
				}
				
				$('.error_text_faq', $(form)).html(error_message);
				return correct;
			}
			
			
			$('.form_faq').submit(function(){     
				if (Check_form_faq() && !i_am_bot){
					showLoadingforForm($('.form_faq'));
					$.ajax({
						url: '/mail_faq.php',
						dataType: 'json',
						type: 'post',
						data: {
							'name': $('input[name=name]', $(this)).val(),
							'tel': $('input[name=tel]', $(this)).val(),
							'email': $('input[name=email]', $(this)).val(),
							'key': $('textarea[name=key]', $(this)).val()
						},
						success: function (d) { 
							hideLoadingforForm($('.form_faq'));
							if (d.success) {
								$('.error_text_faq').text('');
								$('.mistake').removeClass('mistake');
								$('input[type=text]').val('');
								$('textarea[name=key]').val('');
								_gaq.push(['_trackPageview', '/vopros']);
								//location.href="/vopros/";
								alert('Ваше сообщение отправлено');
							} else {
								$('.mistake').removeClass('mistake');
								var error_message = '';
								
								for (var field in d.errors) {
									
									if (field == 'name') {
										$('.form_faq input[name=name]').addClass('mistake');
										error_message = error_message + 'Заполните поле "Имя"<br />';
									}
									
									if (field == 'email') {
										$('.form_faq input[name=email]').addClass('mistake');
										error_message = error_message + 'Заполните поле "Mail"<br />';
									}
									
									if (field == 'key') {
										$('.form_faq textarea[name=key]').addClass('mistake');
										error_message = error_message + 'Заполните поле "Вопрос"<br />';
									}
									
								}
								
								if (error_message != '') {
									$('.error_text_faq').html(error_message);
								}
							}
						}
					});
				}
				return false;
		    });

			function Check_form_callback(){

				var form = ".form_callback";
				var correct = true;
				var error_message = '';

				if ($('input[name=name]', $(form)).val() == '') {
					$('input[name=name]', $(form)).addClass('mistake');
					error_message = error_message + 'Заполните поле "Имя"<br />';
					correct = false;
				} else {
					$('input[name=name]', $(form)).removeClass('mistake');
				}
				
				if (!CheckTel($('input[name=tel]', $(form)).val())) {
					$('input[name=tel]', $(form)).addClass('mistake');
					error_message = error_message + 'Заполните поле "Телефон"<br />';
					correct = false;
				} else {
					$('input[name=tel]', $(form)).removeClass('mistake');
				}
				
				$('.error_text', $(form)).html(error_message);
				return correct;
			}
			
			$('.form_callback').submit(function(){
				if (Check_form_callback() && !i_am_bot){
					showLoadingforForm($('.form_callback').parent(), '-1px', '-1px');
					$.ajax({
						url: '/mail.php',
						dataType: 'json',
						type: 'post',
						data: {
							'name': $('input[name=name]', $(this)).val(),
							'tel': $('input[name=tel]', $(this)).val(),
							'time': $('input[name=time]', $(this)).val()
						},
						success: function (d) {
							hideLoadingforForm($('.form_callback').parent());
							var form = '.form_callback'
							if (d.success) {
								$('.error_text', $(form)).text('');
								$('.mistake', $(form)).removeClass('mistake');
								$('input[type=text]', $(form)).val('');
								_gaq.push(['_trackPageview', '/zvonok']);
								//location.href="/zvonok/";
								alert('Ваше сообщение отправлено');
							} else {
								$('.mistake', $(form)).removeClass('mistake');
								var error_message = '';
								
								for (var field in d.errors) {
									if (field == 'name') {
										$('input[name=name]', $(form)).addClass('mistake');
										error_message = error_message + 'Заполните поле "Имя"<br />';
									}
										
									if (field == 'tel') {
										$('input[name=tel]', $(form)).addClass('mistake');
										error_message = error_message + 'Заполните поле "Телефон"<br />';
									}	
								}
								if (error_message != '') {
									$('.error_text', $(form)).html(error_message);
								}
							}
						}
					});
				}
				return false;
		    });
			
			$("#question").click(function() {
				$('#question').animate({
					width: "462px",
					height: "147px"
					});
				$("#data").show("slow");
			});
			
			$("#service_text").click(function() {
				$(".hidden_fields").show("slow");	
			});
});
