function Questionnaire() {
	this.itemsData = null;

	this.required = {
		'addMember' : {
			'fm_region'			: 'Не указан регион',
			'fm_area'			: 'Не указана область',
			'fm_city'			: 'Не указан город',
			'fm_surname'		: 'Не указана фамилия',
			'fm_name'			: 'Не указано имя',
			'fm_middle_name'	: 'Не указано отчество',
			'fm_nick'			: 'Не указан ник',
			'fm_birth_date'		: 'Не указана дата рождения',
			'fm_blood'			: 'Не указана группа крови',
			'fm_cell_phone'		: 'Не указан мобильный телефон',
			'fm_phone'			: 'Не указан домашний телефон',
			'fm_email'			: 'Не указан e-mail',
			'fm_skype'			: 'Не указан skype',
			'fm_icq'			: 'Не указан icq',
			'fm_address'		: 'Не указан адрес',
			'fm_passport'		: 'Не указаны данные загран. паспорта',
			'fm_driver_license'	: 'Не указано водительское удостоверение',
			'fm_categories'		: 'Не указаны открытые категории',
			'fm_years'			: 'Не указан стад вождения мотоцикла',
			'fm_occupation'		: 'Не указан род деятельности',
			'fm_hobbies'		: 'Не указаны хобби',
			'fm_marital_status'	: 'Не указано семейное положение',
			'fm_bike_brand'		: 'Не указана марка мотоцикла',
			'fm_bike_year'		: 'Не указан год выпуска мотоцикла',
			'fm_bike_color'		: 'Не указан цвет мотоцикла',
			'fm_bike_number'	: 'Не указан гос. номер мотоцикла',
			'fm_bike_vin'		: 'Не указан VIN мотоцикла',
			'fm_sos1_fio'		: 'Не указаны ФИО первого контактного лица',
			'fm_sos1_contacts'	: 'Не указаны контактные данные первого контактного лица',
			'fm_sos2_fio'		: 'Не указаны ФИО второго контактного лица',
			'fm_sos2_contacts'	: 'Не указаны контактные данные второго контактного лица',
			'fm_photo'			: 'Не загружена фотография',
			'fm_photo_bike'		: 'Не загружена фотография с мотоциклом',
			'keystring'			: 'Вы точно не робот? Введите контрольное слово'
		}
	};

	this.init = function() {
		var self = this;
		$('#fm_sendForm').bind('click', function() {
			$('#memberForm').submit();
			return false;
		});

		$('#memberForm').bind('submit', function() {
			self.SendFormAfterCheckingCaptcha();
			return false;
		});

		$('#fm_region').bind('change', function() {
			var tgtId = $(this).children(":selected").attr('area_id');
			self.SwitchArea(tgtId);
			return false;
		});

		$('.region_areas').bind('change', function() {
			self.UpdateArea($(this).val());
			return false;
		});

		// загрузка картинок
		self.InitPicturesUploader();
		self.InitPicturesUploader2();
	};

	// Переключение областей в зависимости от выбранного региона
	this.SwitchArea = function(area_id) {
		$('.region_areas').hide();
		$('#'+area_id).show();
		var newArea = $('#'+area_id).children().eq(0).val();
		Questionnaire.UpdateArea(newArea);
	};


	// Сохранение выбранной области
	this.UpdateArea = function(val) {
		$('#fm_area').val(val);
	};

	// Отправка формы
	this.SendForm = function() {
		if (!this.CheckRequired('addMember'))
			return false;

		$('#fm_sendForm').addClass('loading').attr('disabled', 'disabled');

		var url = '/?daemon=questionnaire';
		var action = 'sendForm';
		var fm_region = $('#fm_region').val();
		var fm_area = $('#fm_area').val();
		var fm_city = $('#fm_city').val();
		var fm_surname = $('#fm_surname').val();
		var fm_name = $('#fm_name').val();
		var fm_middle_name = $('#fm_middle_name').val();
		var fm_nick = $('#fm_nick').val();
		var fm_birth_date = $('#fm_birth_date').val();
		var fm_blood = $('#fm_blood').val();
		var fm_cell_phone = $('#fm_cell_phone').val();
		var fm_phone = $('#fm_phone').val();
		var fm_email = $('#fm_email').val();
		var fm_skype = $('#fm_skype').val();
		var fm_icq = $('#fm_icq').val();
		var fm_address = $('#fm_address').val();
		var fm_passport = $('#fm_passport').val();
		var fm_driver_license = $('#fm_driver_license').val();
		var fm_categories = $('#fm_categories').val();
		var fm_years = $('#fm_years').val();
		var fm_occupation = $('#fm_occupation').val();
		var fm_hobbies = $('#fm_hobbies').val();
		var fm_marital_status = $('#fm_marital_status').val();
		var fm_bike_brand = $('#fm_bike_brand').val();
		var fm_bike_year = $('#fm_bike_year').val();
		var fm_bike_color = $('#fm_bike_color').val();
		var fm_bike_number = $('#fm_bike_number').val();
		var fm_bike_vin = $('#fm_bike_vin').val();
		var fm_sos1_fio = $('#fm_sos1_fio').val();
		var fm_sos1_contacts = $('#fm_sos1_contacts').val();
		var fm_sos1_contacts = $('#fm_sos1_contacts').val();
		var fm_sos2_fio = $('#fm_sos2_fio').val();
		var fm_sos2_contacts = $('#fm_sos2_contacts').val();
		var fm_photo = $('#fm_photo').val();
		var fm_photo_bike = $('#fm_photo_bike').val();

		//var password = hex_md5($('#password').val());

setTimeout(function() { // DEBUG имитация лага при загрузке
		$.ajax({
			url: url,
			data : { 'action':action, 'fm_region':fm_region, 'fm_area':fm_area, 'fm_city':fm_city, 'fm_surname':fm_surname, 'fm_surname':fm_surname, 'fm_name':fm_name , 'fm_middle_name':fm_middle_name, 'fm_nick':fm_nick, 'fm_birth_date':fm_birth_date, 'fm_blood':fm_blood, 'fm_cell_phone':fm_cell_phone, 'fm_phone':fm_phone, 'fm_email':fm_email, 'fm_skype':fm_skype, 'fm_icq':fm_icq, 'fm_address':fm_address, 'fm_passport':fm_passport, 'fm_driver_license':fm_driver_license, 'fm_categories':fm_categories, 'fm_years':fm_years, 'fm_occupation':fm_occupation, 'fm_hobbies':fm_hobbies, 'fm_marital_status':fm_marital_status, 'fm_bike_brand':fm_bike_brand, 'fm_bike_year':fm_bike_year, 'fm_bike_color':fm_bike_color, 'fm_bike_number':fm_bike_number, 'fm_bike_vin':fm_bike_vin, 'fm_sos1_fio':fm_sos1_fio, 'fm_sos1_contacts':fm_sos1_contacts, 'fm_sos2_fio':fm_sos2_fio, 'fm_sos2_contacts':fm_sos2_contacts, 'fm_photo':fm_photo, 'fm_photo_bike':fm_photo_bike },
			dataType : "json",
			type : "post",
			success: function(json) {
				$('#addMemberForm').hide();
				if (json.error == 'false')
					$('#addMemberSuccess').show();
				else
					$('#addMemberError').show();
			},
			error: function(e) {
				alert('Error loading json while trying to send data');
				for (i in e) {
					alert(i+' --- '+e[i]);
				}
			}
		});
}, 0);
	};

	// Проверка заполненности обязательных полей
	this.CheckRequired = function(section) {
		var required = null;
		if (section == 'addMember')
			required = Questionnaire.required.addMember;

		for (var i in required) {
			var curValue = document.getElementById(i).value;
			if (/^(\s)*$/.test(curValue)) {
				alert(required[i]);
				return false;
			}
		}

		return true;
	};

	// Проверка каптчи с последующей отправкой формы
	this.SendFormAfterCheckingCaptcha = function() {
		if (!this.CheckRequired('addMember'))
			return false;

		$('#fm_sendForm').addClass('loading').attr('disabled', 'disabled');

		var url = SITE_URL + '/?daemon=forum';
		var keystring = $('#keystring').val();
setTimeout(function() { // DEBUG имитация лага при загрузке
		$.ajax({
			url: url,
			data : { 'action':'checkCaptcha', 'keystring':keystring },
			dataType : "json",
			type : "post",
			success: function(json) {
				if (json.passed == 1) {
					Questionnaire.SendForm();
				} else {
					alert('Неверно введено контрольное слово');
					$('#keystring').focus().empty();
					$('#fm_sendForm').removeClass('loading').removeAttr('disabled');
				}
			},
			error: function(e) {
				alert('Error loading json while trying to check captcha');
			}
		});
}, 0);
	};

	// Загрузка фотографий в анкету
	this.InitPicturesUploader = function() {

			new AjaxUpload('button_fm_photo', {
				action: '/?daemon=questionnaire',
				name: 'userPic',
				data: {	action : 'loadPicture' },
				autoSubmit: true,
				responseType: 'json',
				onChange: function(file, extension){},
				onSubmit : function(file , ext){
					//$('#userPic').parent().addClass('loading');
					//$('#button_EditUser').attr('disabled', 'disabled');
					if (! (ext && /^(jpg|png|jpeg|gif)$/i.test(ext))){
						//$('#userPic').parent().removeClass('loading');
						//$('#button_EditUser').removeAttr('disabled');
						// extension is not allowed
						alert('Ошибка: Неверный тип файла');
						// cancel upload
						return false;
					}
				},
				onComplete: function(file, response) {
					if (response.error == 'true') {
						alert('Не удалось загрузить файл, скорее всего или он слишком большой, или изображение некорректного формата. Попробуйте загрузить другую картинку - должно сработать.');
					} else {
						var path = SITE_URL+'uploads/club/members/original/tmp/';
						$('#fm_photo_pic').attr('src', path+response.fileName);
						$('#fm_photo').val(response.fileName);
						//$('#userPic').parent().removeClass('loading');
						//$('#button_EditUser').removeAttr('disabled');
					}
				}
			});

	};

	// Загрузка фотографий в анкету
	this.InitPicturesUploader2 = function() {

			new AjaxUpload('button_fm_photo_bike', {
				action: '/?daemon=questionnaire',
				name: 'userPic',
				data: {	action : 'loadPicture' },
				autoSubmit: true,
				responseType: 'json',
				onChange: function(file, extension){},
				onSubmit : function(file , ext){
					//$('#userPic').parent().addClass('loading');
					//$('#button_EditUser').attr('disabled', 'disabled');
					if (! (ext && /^(jpg|png|jpeg|gif)$/i.test(ext))){
						//$('#userPic').parent().removeClass('loading');
						//$('#button_EditUser').removeAttr('disabled');
						// extension is not allowed
						alert('Ошибка: Неверный тип файла');
						// cancel upload
						return false;
					}
				},
				onComplete: function(file, response) {
					if (response.error == 'true') {
						alert('Не удалось загрузить файл, скорее всего или он слишком большой, или изображение некорректного формата. Попробуйте загрузить другую картинку - должно сработать.');
					} else {
						var path = SITE_URL+'uploads/club/members/original/tmp/';
						$('#fm_photo_bike_pic').attr('src', path+response.fileName);
						$('#fm_photo_bike').val(response.fileName);
						//$('#userPic').parent().removeClass('loading');
						//$('#button_EditUser').removeAttr('disabled');
					}
				}
			});

	};

	this.init();
}

$(document).ready(function(){
	Questionnaire = new Questionnaire();
});
