function validate(field, min_length, max_length) {
	var val = $.trim($('input[name="' + field + '"]').val());
	if ($.type(min_length) == 'undefined') min_length = null;
	if ($.type(max_length) == 'undefined') max_length = null;
	if (val == '') return false;
	if (min_length != null && val.length < min_length) return false;
	if (max_length != null && val.length > min_length) return false;
	return true;
}

function tvalidate(field, min_length, max_length) {
	var val = $.trim($('textarea[name="' + field + '"]').val());
	if ($.type(min_length) == 'undefined') min_length = null;
	if ($.type(max_length) == 'undefined') max_length = null;
	if (val == '') return false;
	if (min_length != null && val.length < min_length) return false;
	if (max_length != null && val.length > min_length) return false;
	return true;
}

function validate_email(field) {
	var pattern = /^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}$/i;
	var val = $.trim($('input[name="' + field + '"]').val());
	return (pattern.test(val));
}

$(document).ready(function(){

	if (!Modernizr.borderradius) {
		$('.green_round').each(function(){
			$(this).append('<span class="gtl">&nbsp;</span><span class="gtr">&nbsp;</span><span class="gbl">&nbsp;</span><span class="gbr">&nbsp;</span>');
		});
	}

	if (!Modernizr.fontface) {
		$.getScript('/styles/js/cufon-yui.js', function(){
			Cufon.replace('#content h1, #content h2, div.page_title', {fontFamily: 'Fedra Sans Pro LF'});
		});
	}

	$.get(
		'styles/forms/forms.html',
		function(response) {
			$('#wrapper').append(response);

			$('.apply_box a').on('click', function(event){
				event.preventDefault();
				$('.apply_form').show();
			});

			$('.apply_form a.close, .apply_form a.iclose').on('click', function(event){
				event.preventDefault();
				$('.apply_form').hide();
			});

			var inp = $('<input/>').attr({
				type : 'hidden',
				name: 'token',
				value : token
			});
			$('.apply_form form').append(inp);

			$('.price_field').prepend('<li><div class="layout-slider"><input id="price_slider" type="slider" name="price" value="400;500" /></div></li>');
			$('.year_field').prepend('<li><div class="layout-slider"><input id="year_slider" type="slider" value="2006" /></div></li>');
			$("#price_slider").slider({
				from : 100,
				to : 800,
				step : 10,
				scale : ['100', '|', '<div class="rub">тыс. рублей</div>', '|', '800'],
				limits : false,
				dimension : '',
				onstatechange : function(value){
					value = value.split(';');
					$('#price_from').val(value[0]);
					$('#price_to').val(value[1]);
				}
			});
			$("#year_slider").slider({
				from : 2000,
				to : 2012,
				step : 1,
				scale : ['2000', '|', '|', '|', '2012'],
				limits : false,
				dimension : '',
				onstatechange : function(value){
					$('#year').val(value);
				}
			});

			$('input').on('change, blur', function(){
				$(this).parent().removeClass('f_error');
			});

			$('.send').on('click', function(event){
				event.preventDefault();

				var error = 0;
				if (!validate('model')){
					error = 1;
					$('input[name="model"]').parent().addClass('f_error');
				}
				if (!validate('year', 4)) {
					error = 1;
					$('input[name="year"]').parent().addClass('f_error');
				}
				if (!validate('price_from')) {
					error = 1;
					$('input[name="price_from"]').parent().addClass('f_error');
				}
				if (!validate('price_to')) {
					error = 1;
					$('input[name="price_to"]').parent().addClass('f_error');
				}
				if (!validate('phone')) {
					error = 1;
					$('input[name="phone"]').parent().addClass('f_error');
				}
				if (!validate('person')) {
					error = 1;
					$('input[name="person"]').parent().addClass('f_error');
				};
				if (!validate_email('email')) {
					error = 1;
					$('input[name="email"]').parent().addClass('f_error');
				};

				if (error == 1){
					$('.error').show().find('p').html('Заполните все обязательные поля');
					return false;
				}

				$('#apply_form').ajaxSubmit({
					dataType:  'json',
					beforeSubmit : function() {
						$('.ok').show().find('p').html('Отправка заявки...');
						$('.error').hide();
					},
					success : function(response){
						if (response.error == 0){
							$('.ok p').html('Спасибо, Ваша заявка принята!<br />Мы с Вами свяжемся в течении 24 часов');
							$('#apply_form').resetForm();
							$('#price_slider').slider('value', 400, 500);
							$('#year_slider').slider('value', 2006);
							$('.apply_form').hide();
						} else {
							$('.ok').hide();
							$('.error').show().find('p').html('Заполните все обязательные поля');
						}
					}
				});
			});

			$('.online_consultant').on('click', function(event){
				event.preventDefault();
				$('.online_form').show();
			});

			$('.online_form a.close, .online_form a.iclose').on('click', function(event){
				event.preventDefault();
				$('.online_form').hide();
			});

			var inp = $('<input/>').attr({
				type : 'hidden',
				name: 'token',
				value : token
			});
			$('.online_form form').append(inp);

			$('.online_form .send').on('click', function(event){
				event.preventDefault();

				var error = 0;
				if (!tvalidate('question')) error = 1;
				if (!validate_email('qw_email')) error = 1;

				if (error == 1){
					$('.error').show().find('p').html('Заполните все обязательные поля');
					return false;
				}

				$('#online_form').ajaxSubmit({
					dataType:  'json',
					beforeSubmit : function() {
						$('.ok').show().find('p').html('Добавление вопроса...');
						$('.error').hide();
					},
					success : function(response){
						if (response.error == 0){
							$('.ok p').html('Спасибо, Ваша вопрос добавлен!');
							$('#online_form').resetForm();
							$('.online_form').hide();
						} else {
							$('.ok').hide();
							$('.error').show().find('p').html('Заполните все обязательные поля');
						}
					}
				});
			});
		}
	);

	$('.slide_nav nav').carouFredSel({
		scroll : {
			items : 1,
			duration : 1000,
			pauseOnHover : true
		},
		items : {visible : 1},
		prev : {button : '.slide_nav_l'},
		next : {button : '.slide_nav_r'},
		width : 272,
		height : 16,
		align : 'center',
		circular : true,
		infinite : false,
		auto : true
	});

	if ($('#special_inner').length != 0) {
		$('#special_inner').carouFredSel({
			scroll : {
				items : 1,
				duration : 2000,
				pauseOnHover : true
			},
			items : {visible : 1},
			prev : {button : '.special_left'},
			next : {button : '.special_right'},
			circular:false,
			infinite:true,
			auto:true
		});
	}

	$('#search_form div input[type="text"]').on({
		'focus' : function(){
			if ($(this).val() == 'Поиск по сайту') {
				$(this).val('');
			}
		},
		'blur' : function(){
			if ($.trim($(this).val()) == '') {
				$(this).val('Поиск по сайту');
			}
		}
	});

	$('#search_form p a').on('click', function(event){
		event.preventDefault();
		$('#search_form div input[type="text"]').val($(this).text());
	});

	$('#search_form div a').on('click', function(event){
		event.preventDefault();
		$('#search_form').submit();
	});

	$('body').append('<div class="ok"><div class="ok_inner"><a href="#" class="close">&nbsp;</a><p></p></div></div>');
	$('.ok a.close').on('click', function(event){
		event.preventDefault();
		$('.ok').hide();
	});

	$('body').append('<div class="error"><div class="error_inner"><a href="#" class="close">&nbsp;</a><p></p></div></div>');
	$('.error a.close').on('click', function(event){
		event.preventDefault();
		$('.error').hide();
	});
});
