Event.observe('email_article', 'submit', function(event) {

	//var comment = $F('comment_comment').strip();
	//var name = $F('comment_user_name').strip();
	
	$('email_article').request({
		onComplete: function(transport) {
  			//console.log(transport.responseJSON);
  			if(transport.responseJSON.code == -1) {
  				$('challenge').addClassName("error");
  				$('challenge_err').update(transport.responseJSON.message);
  			} else if(transport.responseJSON.code == 1) {
  				$('email_article_ok').update(transport.responseJSON.message);
  				$('email_article_ok').highlight();
  				$('email_article').reset();
  				resetSuccess();
  				new Effect.BlindUp('email-article',{delay: 3});
  			}
  			
  		}
	})
	
	Event.stop(event);
});

// user_email
Event.observe('user_email', 'blur', function(event) {
	validateEmailBlur('user_email');
});
Event.observe('user_email', 'focus', function(event) {
	validateEmailFocus('user_email');
});


// user_name
Event.observe('user_name', 'blur', function(event) {
	validateNotEmptyBlur('user_name');
});
Event.observe('user_name', 'focus', function(event) {
	validateNotEmptyFocus('user_name');
});

// dest_email
Event.observe('dest_email', 'blur', function(event) {
	validateEmailBlur('dest_email');
});
Event.observe('dest_email', 'focus', function(event) {
	validateEmailFocus('dest_email');
});

// dest_name
Event.observe('dest_name', 'blur', function(event) {
	validateNotEmptyBlur('dest_name');
});
Event.observe('dest_name', 'focus', function(event) {
	validateNotEmptyFocus('dest_name');
});

// challenge
Event.observe('challenge', 'keyup', function(event) {
	if(validateRequired()) {
		$('email_submit').enable();
	}
});


function validateEmailBlur(element) {
	if($F(element) != "") {
		if(checkEmail($F(element))) {;
			$(element+'_ok').addClassName("form_success");
			$(element+'_ok').appear();
		} else {
			$(element).addClassName("error");
			$(element+'_err').update("Email nicht g&uuml;ltig!");
			if($(element+'_ok').hasClassName("form_success")) $(element+'_ok').removeClassName("form_success");
		}
		enableDisableForm();
	}
}

function validateEmailFocus(element) {
	if(!checkEmail($F(element))) {
		$(element).removeClassName("error");
		$(element+'_err').update("");
	}
}

function validateNotEmptyBlur(element) {
	if(!$F(element).strip().stripTags().empty()) {
		$(element+'_ok').addClassName("form_success");
		$(element+'_ok').appear();
	} else {
		$(element).addClassName("error");
		$(element+'_err').update("Leeres Feld nicht g&uuml;tig!");
		if($(element+'_ok').hasClassName("form_success")) $(element+'_ok').removeClassName("form_success");
	}
	enableDisableForm();
}

function validateNotEmptyFocus(element) {
	if($(element).hasClassName("error")) {
		$(element).removeClassName("error");
		$(element+'_err').update("");
	}
}

function enableDisableForm() {
	if(validateRequired()) {
		$('email_submit').enable();
	} else {
		$('email_submit').disable();
	}
}

function validateRequired() {
	return !$F('user_name').empty() && !$F('dest_name').empty() && checkEmail($F('dest_email')) && checkEmail($F('user_email')) && $F('challenge').length == 5;
}

function resetSuccess() {
	$$('#email_article div').each(function(s) {if(s.hasClassName('form_success')) s.removeClassName('form_success');});
	$('email_submit').disable();
}

function generateCaptcha(element) {
	var date = new Date();
	new Ajax.Request('/services/antispam/generateCaptcha.php',
		{parameters: {element: element}, onSuccess: function() {
			$(element).src = "/services/antispam/kaptcha.php?"+date.getTime();
		}});
}

function checkEmail(email) {
	return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email)
}