
$(document).ready(function(){
	//global vars
	
	var form = $("#formID");
	var author = $("#author");
	var email = $("#email");
	var message = $("#message");
	var sumresult = $("#sum");
	
	//On blur
	author.blur(function() {validateAuthor();});
	email.blur(function() {validateEmail();});
	message.blur(function() {validateMessage();});
	sumresult.blur(function() {validateSum();});
		
	//On Submitting
	form.submit(function(){
						 
		if(validateAuthor() && validateEmail() && validateSum()  && validateMessage())
			{return true;}
		else
			{return false;}
	});
	
	//validation functions
	function validateAuthor(){
		//if it's NOT valid
		var filter = /^[a-zA-Z ]+$/; 
		if( (author.val().length < 4) ||  (!filter.test(author.val()))    ) 
		{
			showError('author', 'Use 4 or more letters-only!');
			return false;
		}
		else 
		{
			hideError('author');
			return true;
		}
	}
	
	function validateEmail(){
		//testing regular expression
		var a = email.val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email
		if(filter.test(a))	{hideError('email');return true;}
		else {showError('email', 'Invalid e-mail address!');return false;}
	}
	
	function validateMessage(){
		//if it's NOT valid
		if( message.val().length < 6 ) {showError('message', 'Use at least 6 characters!');return false;}
		else {hideError('message');return true;}
	}
	
	function validateSum()
	{
		var reply = $.ajax({
					type: "POST",
					cache: false,
					url: "/global/scripts/formvalidation/ajaxSubmit.php",
					data: $("#sum"),
					async: false					
					}).responseText;	
		
		if(reply=="true") {hideError('sum'); return true;}						
		else {showError('sum', 'Please enter the right code.');return false;}	
		
	}
	
	
	
	
	
	
	
function showError(e_id, message)
{
	var divFormError = document.createElement('div');
	var formErrorContent = document.createElement('div');
	//linkTofield = $.validationEngine.linkTofield(caller)
	$(divFormError).addClass("formError");
	$(formErrorContent).addClass("formErrorContent");
	$(divFormError).attr("id",e_id+"FormError");
	
	$("body").append(divFormError);
	$(divFormError).append(formErrorContent);
		
	
	var arrow = document.createElement('div');
	$(arrow).addClass("formErrorArrow");
	
	$(divFormError).append(arrow);
	$(arrow).html('<div class="line10"><!-- --></div><div class="line9"><!-- --></div><div class="line8"><!-- --></div><div class="line7"><!-- --></div><div class="line6"><!-- --></div><div class="line5"><!-- --></div><div class="line4"><!-- --></div><div class="line3"><!-- --></div><div class="line2"><!-- --></div><div class="line1"><!-- --></div>');

	$(formErrorContent).html(message)

	callerTopPosition = $("#"+e_id).offset().top;
	callerleftPosition = $("#"+e_id).offset().left;
	callerWidth =  $("#"+e_id).width();
	inputHeight = $(divFormError).height();
	
	callerleftPosition +=  callerWidth -30; callerTopPosition += -inputHeight -10;
	
	$(divFormError).css({
		top:callerTopPosition,
		left:callerleftPosition,
		opacity:0
	})
	$(divFormError).animate({"opacity":0.87},function(){});
}
	
	
function hideError(e_id)
{
	
		$("#"+e_id+"FormError").fadeTo("fast",0,function(){
			$("#"+e_id+"FormError").remove();
		});			
}
	
	
	
	
});
