function answerQuestion( question_id, answer, baseUrl, loadingText, isGuest )
{
	$('#createAnswerResponse').addClass('loading').html(loadingText).show();
	$('.answer-post div.action input').attr('disabled', 'disabled');

	jQuery.ajax({
		'type' : 'POST',
		'url' : baseUrl + '/answer/create',
		'data' : {'answer[question_id]' : question_id, 'post[content]' : answer},
		'success' : function( data, textStatus )
		{
			showUrl = baseUrl + '/answer/show';
			$('#createAnswerResponse').removeClass('loading').html('');
			$('.answer-post div.action input').attr('disabled', '');

			switch( $('status', data).text() )
			{
				case 'error':
				var redirect =  $('redirect', data).text();
				if( redirect != '' )
				{
					window.location.replace( redirect );
				}
				
				var errorMsg = '';
				$('line', data).each( function(i) {
					errorMsg += $(this).text() + '<br/>';
				});

				$('#createAnswerResponse').html(errorMsg).removeClass('successMessage').addClass('errorMessage').slideDown('fast');
					break;
				case 'ok':
				var msg = $('message', data).text();
				$('#createAnswerResponse').html(msg).removeClass('errorMessage').addClass('successMessage').slideDown('fast');

				id = $('answerId', data).text();
				$.get(showUrl, { id: id },
				  function(data){
					$('.answers').append(data);
					$('.answers #answer_'+id).addClass('new');

					  $('.previewer').slideUp('fast');
					  $('#markItUp').val('');

						//show register modal if user is not registered
						if(isGuest)
						{
							var ol = $("#register_modal").overlay({ 	 
								// some expose tweaks suitable for modal dialogs 
								expose: { 
									color: '#333', 
									loadSpeed: 200, 
									opacity: 0.5 
								}, 
								top:'center',
								absolute:true,
								closeOnClick: false,	
								api: true 
							});

							setTimeout(function(){
								ol.load();							
							}, 2000);
						}
				  });

				  break;
			}
		},
		'error' : function( XMLHttpRequest, textStatus, errorThrown )
		{
			$('#errorMessages').text('There was an error: ' + textStatus + errorThrown);
		}
	});
}
