$(document).ready(function(){
	var checkName    = function () {
		name = $('#name').val();
		if(name == '') {
			$('#name').removeClass().addClass('error');
			if($('#nameMsg').text() == '') {
				$('#messages').append('<div id="nameMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>: The <b>name</b> field cannot be empty!</div>').fadeIn('slow');
			}
			$('#submit').attr("disabled", "disabled");
			return false;
		}
		else {
			$('#name').removeClass().addClass('ok');
			$('#nameMsg').empty().fadeOut();
			if($('#messages').text() == '') {
				$('#messages').empty().slideUp();
			}
			$('#submit').attr("disabled", "");
			return true;
		}
	}
	var checkCountry = function () {
		country = $('#country').val();
		if(country == '') {
			$('#country').addClass('warning');
			if($('#countryMsg').text() == '') {
				$('#messages').append('<div id="countryMsg"><b>&raquo;</b>&nbsp;<font color="orange">Warning</font></b>: Inserting your <b>country</b> is a good idea! It allows the webmaster to do a basic geotrageting. Thanks!</div>').fadeIn('slow');
			}
			$('#submit').attr("disabled", "disabled");
		}
		else {
			$('#country').removeClass().addClass('ok');
			$('#countryMsg').empty().fadeOut();
			if($('#messages').text() == '') {
				$('#messages').empty().slideUp();
			}
			$('#submit').attr("disabled", "");
			return true;
		}
	}
	var checkEmail   = function () {
		email = $('#email').val();
		if(email != '') {
			$.post(
				"php/validateForm.php",
				{check: 'email', emailAddress: email},
				function(data) {
					if(data=='no') {
						$('#email').removeClass().addClass('error');
						if($('#emailMsg').text() == '') {
				  			$('#messages').append('<div id="emailMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>: The provided <b>email</b> address is not valid!</div>').fadeIn('slow');	
						}
						$('#submit').attr("disabled", "disabled");
				  		return false;
	          		}
	          		else {
						$('#email').removeClass().addClass('ok');
						$('#emailMsg').empty().fadeOut();
						if($('#messages').text() == '') {
							$('#messages').empty().slideUp();
						}
						$('#submit').attr("disabled", "");
						return true;
					}
				}			
			)
		}
		else {
			$('#email').removeClass().addClass('error');
			if($('#emailMsg').text() == '') {
				$('#messages').append('<div id="emailMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>: The <b>email</b> field cannot be empty!</div>').fadeIn('slow');
			}
			$('#submit').attr("disabled", "disabled");
			return false;	
		}
	}
	var checkWebsite = function () {
		var url = $('#website').val();
		if(url != 'http://') {
			$.post(
				"php/validateForm.php",
				{check: 'url', website: url},
				function(data) {
					if(data=='no') {
						$('#website').removeClass().addClass('error');
						if($('#websiteMsg').text() == '') {
				  			$('#messages').append('<div id="websiteMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>: The provided <b>website</b> URL address is not valid!</div>').fadeIn('slow');	
						}
						$('#submit').attr("disabled", "disabled");
						return false;
	          		}
	          		else {
						$('#website').removeClass().addClass('ok');
						$('#websiteMsg').empty().fadeOut();
						if($('#messages').text() == '') {
							$('#messages').empty().slideUp();
						}
						$('#submit').attr("disabled", "");	  		
						return true;
					}
				}			
			)
		}
		else {
			$('#website').removeClass().addClass('warning');
			if($('#websiteMsg').text() == '') {
				$('#messages').append('<div id="websiteMsg"><b>&raquo;</b>&nbsp;<b><font color="orange">Warning</font></b>: The <b>website</b> field should be filled. No "nofollow" links here!</div>').fadeIn('slow');	
			}
			$('#submit').attr("disabled", "disabled");
			return true;
		}
	}
	var checkCAPTCHA = function () {
		var verification = $('#verification').val();
		var verificationnr = $('input[name=verificationnr]').val();
		if(verification != verificationnr) {
			$("#verification").removeClass().addClass('error');
			if($('#captchaMsg').text() == '') {
				$('#messages').append('<div id="captchaMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>: The entered <b>verification number</b> is not correct!</div>').fadeIn('slow');	
			}
			$('#submit').attr("disabled", "disabled");
			return false;
		}
		else {
			$('#verification').removeClass().addClass('ok');
			$('#captchaMsg').empty().fadeOut();
			if($('#messages').text() == '') {
				$('#messages').empty().slideUp();
			}
			$('#submit').attr("disabled", "");
			return true;
		}
	}
	var checkMessage = function () {
		var message = $('#message').val();
		if(message == '') {
			$("#message").removeClass().addClass('error');
			if($('#messageMsg').text() == '') {
				$('#messages').append('<div id="messageMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>: The <b>message</b> field cannot be empty! If it could, what would be the point?!</div>').fadeIn('slow');	
			}
			$('#submit').attr("disabled", "disabled");
			return false;
		}
		else {
			$("#message").removeClass().addClass('ok');
			$('#messageMsg').empty().fadeOut();
			if($('#messages').text() == '') {
				$('#messages').empty().slideUp();
			}
			$('#submit').attr("disabled", "");
			return true;
		}
	}
	$('#addEntryLink').click(function(){
		$('#addEntry').slideDown();
	});
	$('input[type=reset]').click(function(){ 
		$('#messages').empty().hide();
	});
	$('input[name=cancel]').click(function(){
		$('#addEntry').slideUp();
		$('#messages').empty().hide();
	});
	$('#name').blur(checkName);
	$('#country').blur(checkCountry);
	$('#email').blur(checkEmail);
	$('#website').blur(checkWebsite);
	$('#verification').blur(checkCAPTCHA);
	$('#message').blur(checkMessage);
	$('#submit').click(function(){
		if($('#name').val() != '' && $('#email').val() != '' && $('#verification').val() != '' && $('input[name=verification]').val() == $('input[name=verificationnr]').val() && $('#message').val() != '') {
			name = $('#name').val();
			country = $('#country').val();
			email = $('#email').val();
			url = $('#website').val();
			message = $('#message').val();
			$.post(
				"php/validateForm.php",
				{check: 'newEntry', userName: name, userCountry: country, userEmail: email, userURL: url, userMessage: message},
				function(data, status) {
					if(status!='success') {
						$('#website').removeClass().addClass('error');
						if($('#websiteMsg').text() == '') {
				  			$('#messages').append('<div id="websiteMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>:An error with adding your post occured. Please try again!</div>').fadeIn('slow');	
						}
						alert(status);
	          		}
	          		else {
	          			$('input[name=name], input[name=country], input[name=email], input[name=verification]').val('');
	          			$('input[name=website]').val('http://');
	          			$('textarea').val('');
						$('#newEntry').html(data).fadeIn('slow');
					}
				});
			var oldNumber = $('#noEntries').text();
			var newNumber = +oldNumber+1;
			$('#noEntries').html(newNumber);
			$('#addEntry').fadeOut('slow');	
		}
		else {
			if($('#name').val() == '')
				if($('#nameMsg').text() == '') {
					$('#messages').append('<div id="nameMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>: The <b>name</b> field cannot be empty!</div>').fadeIn('slow');
				}
			if($('#email').val() == '')
				if($('#emailMsg').text() == '') {
					$('#messages').append('<div id="emailMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>: The provided <b>email</b> address is not valid!</div>').fadeIn('slow');	
				}
			if(($('#verification').val() == '') || ($('input[name=verification]').val() != $('input[name=verificationnr]').val())) {
				if($('#captchaMsg').text() == '') {
					$('#messages').append('<div id="captchaMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>: The entered <b>verification number</b> is not correct!</div>').fadeIn('slow');	
				}
			}
			if($('#message').val() == '') {
				if($('#messageMsg').text() == '') {
					$('#messages').append('<div id="messageMsg"><b>&raquo;</b>&nbsp;<b><font color="red">ERROR</font></b>: The <b>message</b> field cannot be empty! If it could, what would be the point?!</div>').fadeIn('slow');	
				}
			}
		}
	});	
});
