(function($) {
$.fn.feedback = function(s) {
	s = $.extend({
		name: '',
		phone: '',
		email: '',
		message: '',
		code: '#feedback-code',
		errors: []
	}, s);
	
	s.it = $(this);
	s.name = $(s.name);
	s.phone = $(s.phone);
	s.email = $(s.email);
	s.message = $(s.message);
	s.code = $(s.code);
	
	s.it.click(_click);
	
	function _click(){
		if (!_valid()) {_show_errors(); return false;}
		
		_send();
		return false;
	}
	
	function _valid(){
		var errs = [];
		if (s.name.val() == '') errs.push(s.name);
		if (s.phone.val() == '') errs.push(s.phone);
		if (s.email.val() == '') errs.push(s.email);
		if (s.message.val() == '') errs.push(s.message);
		
		s.errors = errs;
		
		if (errs.length > 0) return false;
		return true;
	}
	
	function _show_errors(){
		s.name.removeClass('error');
		s.phone.removeClass('error');
		s.email.removeClass('error');
		s.message.removeClass('error');
		for (k in s.errors){
			s.errors[k].addClass('error');
		}
		
		_captcha_update();
	}
	
	function _show_errors2(){
		s.name.removeClass('error');
		s.phone.removeClass('error');
		s.email.removeClass('error');
		s.message.removeClass('error');
		console.log(s.errors);
		for (k in s.errors){
			s[s.errors[k]].addClass('error');
		}
		
		_captcha_update();
	}
	
	function _successfull(){
		var IE='\v'=='v';
		var h = $('.fb-iefix').height();
		$('.fb-iefix').animate({opacity:0}, 600);
		
		s.it.animate({opacity:0, height:0}, 600);
		
		setTimeout(function(){
			$('.fb-iefix').height(h);
			$('.fb-iefix').html('<div class="succes">Ваше сообщение отправлено</div>');
			$('.fb-iefix').animate({opacity:1}, 600);
		}, 1000);
	}
	
	function _fatal_error(){alert('Ошибка сервера, пожалуйстапопробуйте еще раз');}
	
	var _captcha_update = function(){
		$('.feedback .captcha').attr('src', '/ajax/image.php?' + Math.random() + '=' + Math.random());
	}
	$('.feedback .captcha').click(_captcha_update).css({cursor:'pointer', 'vertical-align':'middle'});
	
	function _send(){
		$.getJSON('/_send/', {type:'feedback', name: s.name.val(), phone: s.phone.val(), email: s.email.val(), message: s.message.val(), code: s.code.val()}, function(d){
			if (d.fatal == 1){ _fatal_error(); return false;}
			
			if (d.length > 0){s.errors = d; _show_errors2(); return false;}
			
			_successfull();
			return false;
		})
	}
	
	return s.it;
}})(jQuery);
