function checkMailSyntax(mail){
	var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]­{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');

	if (!reg.test(mail))
		return false;
	return true;
}

function hideResponse(){
	$('.response').fadeOut('slow');
}

function submitAction() {
	$.ajax({
		type: 'POST',
		url: $('form').attr('action'),
		async: false,
		data: {
			name: $("input[name = name]").val(),
			mail: $("input[name = mail]").val(),
			subject: $("input[name = subject]").val(),
			message: $('textarea[name = message]').val(),
			destid: $('input[name = destid]').val(),
			challengeField: $('#recaptcha_challenge_field').val(),
            responseField: $('#recaptcha_response_field').val()
		},
		dataType: 'json',
		success: function (node){
			$('#contactform #submit').attr('disabled','');
			$('.response').remove();
			$('#contactform').before('<p class="response">'+node.errorMessage+'</p>');
			
			if (node.errorCode == 0)
				$('.response').removeClass('error, success').addClass('success');
			else {
				$('.response, '+node.errorFields).removeClass('error, success').addClass('error');
				$('input, textarea').attr('disabled','');
				Recaptcha.reload();
			}
			
			if (node.errorMessage != null)
				$('.response').text(node.errorMessage).slideDown("slow"/*, setTimeout('hideResponse()', 8000)*/);
			if (node.captchaError != null)
				$('.response').append(' - '+node.captchaError);
		}
	});
}

function checkDest() {
	var dest = window.location.hash.substr(1);
	if (dest) {
		$.ajax({
			type: 'POST',
			url: $('form').attr('action'),
			cache: false,
			data: {
				checkName: dest
			},
			dataType: 'json',
			success: function (node){
				if (node == null)
					$('#contactform li:first-child').remove();
				else
				{
					$('#contactform input[name=dest]').val(node.userName);
					$('#contactform input[type=hidden][name=destid]').val(node.userId);
				}
			}
		});
	}
	else
		$('#contactform li:first-child').remove();
}

function checkEmptyField(){
	if ($(this).val() == '' && $(this).text() == '')
			$(this).addClass('error');
		else
			$(this).addClass('success');
//	$(this).removeClass('error, success').addClass(class);
}

function checkMail()
{
	if (!checkMailSyntax($(this).val()))
		$(this).addClass('error');
	else
		$(this).addClass('success');
}

$(function(){
	Recaptcha.get_challenge();
	//Recaptcha.get_response();
	
	//$('input:not(#dest), textarea').val('').text('').attr('disabled', '');
	$('#contactform input:not(#mail), #contactform textarea, #recaptcha_response_field').keyup(checkEmptyField);
	$('#contactform input[name=mail]').keyup(checkMail);
	$('#contactform input:not(#mail), #contactform textarea, #recaptcha_response_field').focusout(checkEmptyField);
	$('#contactform input[name=mail]').focusout(checkMail);

	$('form').submit(function()
	{
		var check = true;
		$('#name, #mail, #message').each(function (i, el) {
			if ($(el).val() == '' || ($(el).attr('name') == 'mail' && !checkMailSyntax($(el).val())))
				$(el).removeClass('error, success').addClass('error');
			else
				$(el).removeClass('error');

			if ($(el).hasClass('error'))
				check = false;
		});
		if (!check)
			return false;
		$('input, textarea').attr("disabled","disabled");
		submitAction();
		return false;
	});
	
	checkDest();
});
