modfeedback_sendstate = false;

function modfeedback_fields ()
{
	return Array('name', 'email', 'phone', 'subj', 'message', 'uid');
}

function modfeedback_send ()
{
	if (modfeedback_sendstate)
		return;
	modfeedback_sendstate = true;
	modmessageblock_set();
	modfeedback_state('disable');
	var fields = modfeedback_fields();
	var params = '';
	for (var i in fields)
	{
		var field = document.getElementById('modfeedback_' + fields[i]);
		if ((fields[i] == 'name' || fields[i] == 'email' || fields[i] == 'message') && (!field.value))
		{
			modmessageblock_set('Поля, отмеченные звёздочкой, обязательны для заполнения', 'errorblock');
			modfeedback_state('enable');
			modfeedback_sendstate = false;
			return;
		}
		/*if (strlen(params))
			params += '&';*/
		
		params += field.id + '=' + encodeURIComponent(field.value) + '&';
	}
	
	/* TODO: проверка e-mail на валидность */
	ajax_post("http://" + S_domain + "/ajax/feedback", params, modfeedback_callback);
}

/* FIX: Зависимость от языка */
function modfeedback_callback (result, status)
{
	modfeedback_sendstate = false;
	modfeedback_state('enable');
	if (status != 200)
	{
		modmessageblock_set('Ошибка протокола: ' + status, 'errorblock');
		return;
	}
	
	var data = eval('(' + result + ')');
	
	if (data.status == 'error')
	{
		modmessageblock_set('Ошибка обработчика: ' + data.message, 'errorblock');
		return;
	}
	
	modmessageblock_set('Сообщение отправлено', 'successblock');
	modfeedback_clear();
	modfeedback_setuid();
}

function modfeedback_state (state)
{
	var fields = modfeedback_fields();
	for (var i in fields)
	{
		var field = document.getElementById('modfeedback_' + fields[i]);
		if (state == 'enable')
			field.disabled = false;
		else
			field.disabled = true;
	}
}

function modfeedback_clear ()
{
	var fields = modfeedback_fields();
	for (var i in fields)
	{
		var field = document.getElementById('modfeedback_' + fields[i]);
		field.value = '';
	}
}

function modfeedback_setuid ()
{
	var uid = document.getElementById('modfeedback_uid');
	var date = new Date();
	uid.value = date.getTime() + '' + Math.random();
}
