$().ready(function() {

	$('#add_review').click(function() {
		
		$('#overlay form .error').hide();
		$('#overlay form').show();
		$('#overlay form .input input').val('');
		$('#overlay form .textarea textarea').val('');
		$('#overlay_result').html('');
		
		$("#overlay").overlay({
			// top: 20,
			expose: { 
			    color: '#0096D7', 
			    loadSpeed: 200, 
			    opacity: 0.7 
			}, 
			closeOnClick: false, 
			api: true 
		}).load();
		
		return false;
	});
	
	function validateEmail(email) {
		var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
		if(!filter.test(email)) return false;
		else return true;
	}
	
	$('#overlay form').submit(function() {
		
		//
		// Validation
		//
		
		$('#overlay form .error').hide();
		$('#overlay_result').html('');
		var validated = 1;
		
		// Validate Email
		if( $('#reviewTextarea').val().length < 20 ) {
			validated = 0;
			$('#reviewTextarea').focus();
			$('#reviewTextareaError').html('Please enter a review that is <b>at least 20 characters long</b>.');
			$('#reviewTextareaError').fadeIn();
		}
		
		// Validate Email
		if( !validateEmail( $('#emailInput').val() ) ) {
			validated = 0;
			$('#emailInput').focus();
			$('#emailInputError').html('Please enter a valid email address.');
			$('#emailInputError').fadeIn();
		}
		
		// Validate Name
		if( $('#nameInput').val().length == 0 ) {
			validated = 0;
			$('#nameInput').focus();
			$('#nameInputError').html('Please enter a name.');
			$('#nameInputError').fadeIn();
		}
		
		if(!validated) return false;
		
		$('form input[name=dsfiah]').val('securitymeasure');
		
		//
		// Ajax Submit
		//
		$.ajax({
			type: $(this).attr('method'),
			url: $(this).attr('action'),
			cache: false,
			data: $(this).serialize(),
			success: function(output) {
				$('#overlay_result').html(output);
				// Reset the form
				$('#overlay form').hide();
				$('#overlay form .error').hide();
				$('#overlay form .input input').val('');
				$('#overlay form .textarea textarea').val('');
			},
			error: function() { alert('An error has occured. Please try again'); }
		});
		
		return false;
		
	});
	
});
