var feedback_already_loaded = false;

function showFeedbackPopupBox() 
{
	//autoload feedbacks on loading page
	if (!feedback_already_loaded) 
		retrieveFeedbacks();
	$('#feedbackButton').toggleClass('makeInvisible');
	$('#feedbackFullscreenBg').toggleClass('makeVisible');
	$('#feedbackOpacityBorder').toggleClass('makeVisible');
	$('#feedbackContainer').toggleClass('makeVisible');
	$('#feedbackContainer').animate({opacity: 1}, 'fast');
}	

function returnCorrectVoteString(number_of_votes)
{
	return (number_of_votes == 1) ? messages.votes_singular : messages.votes_plural;
}

function retrieveFeedbacks()
{	
	$.ajax({
		url: messages.feedback_process_retrieve_url,
		type: 'post',
		dataType: 'json',
		success: function(response) {
			var content_computed = '';
			if (response) {
				$.each(response, function(index, response){ 
					var votes_text = returnCorrectVoteString(response['votes']);
					
					content_computed += '<div class="submitted_feedback_row clear-both"><div class="voting_container">';
					if (response['can_vote']) {
						if (response['already_voted']) {
							content_computed += '<div class="votes_number already_voted pc_bck make_full_voted"><span class="votes_counter">' + response['votes'] + '</span><br />' + votes_text + '</div>';
						} else {
							content_computed += '<div class="votes_number pc_bck "><span class="votes_counter">' + response['votes'] + '</span></div>\n\
									<div class="vote" data-id="' + response['id'] + '"><a href="#" class="vote_feedback">' 
										+ messages.feedback_vote_button + '</a></div>';
						} 
					} else {
						if (response['already_voted']) {
							content_computed += '<div class="votes_number already_voted pc_bck make_full_voted"><span class="votes_counter">' + response['votes'] + '</span><br />' + votes_text + '</div>';
						} else {
							content_computed += '<div class="votes_number pc_bck"><span class="votes_counter">' + response['votes'] + '</span></div><div class="vote">' + messages.feedback_vote_button + '</div>';
						}
	 				}
					content_computed += '</div><div class="feedback_submitted_container"><div class="feedback_submitted_text pc_bck">\n\
										<div class="short_feedback">' + response['short_feedback'] + '</div><div class="complete_feedback makeDisplayInvisible">' + response['complete_feedback'] + '</div></div>';
					 if (response['pos_found']) { 
						content_computed += '<a href="#" class="read_more">' + messages.more_button + '</a>';
					  } 
					content_computed += '<div class="review_status_box">' + response['status'] + '</div></div></div>';		
				});
			} else {
				content_computed = messages.no_feedback_message;
			}
			$('#feedbackContentWrap .overview').append(content_computed);
			
			$('#scrollbar1').tinyscrollbar();	
			$('#scrollbar1').tinyscrollbar({ size: 414 });
			feedback_already_loaded = true;
		}
	});
}

function repositionFeedbackButton() 
{
	if ($('html').width() < 925) {
		$('#feedbackButton').css({
			'left' : '0',
			'margin-left' : ($('#wrapper').offset().left + $('#wrapper').outerWidth() ) + "px",
			'right' : ''});
	} else {
		$('#feedbackButton').css({
			'left' : '',
			'margin-left' : '',
			'right' : '0'});
	}
}

$(document).ready(function(){
	repositionFeedbackButton();
	$(window).resize(function() {repositionFeedbackButton();});
	
	$('#feedbackButton').die().live('click', function() { 
			showFeedbackPopupBox();
			return false;
		})
		.show();
	
	$('#feedbackCloseButton').die('click').live('click', function() { 
		$('#feedbackButton').toggleClass('makeInvisible');
		$('#feedbackFullscreenBg').toggleClass('makeVisible');
		$('#feedbackOpacityBorder').toggleClass('makeVisible');
		$('#feedbackContainer').animate({opacity: 0},'fast');
		$('#feedbackContainer').toggleClass('makeVisible');
		return false;
	});

	$('#cancelSubmitFeedback').die('click').live('click', function() { 
		$('#submitted_feedback').val('');
		return false;
	});
	
	$('#submit_new_feedback').die('click').live('click', function() {
		$('#feedback_submited').toggleClass('makeInvisible');
		$('#can_submit_feedback').toggleClass('makeInvisible');
		$('#submit_feedback').attr('disabled', '');
		return false;
	});
	
	// submit feedback encharge function
	$('#submit_feedback').die('click').live('click', function() {
		var submitted_feedback = $('#submitted_feedback').val();
		var _token = $('#inputFeedbackHolder input[name=_token]').val();
		var min_length = 20;
		if (submitted_feedback.length < min_length) {
			alert(messages.feedback_too_short);
		} else {
			$(this).attr('disabled', 'disabled');
			$.ajax({
				url: messages.feedback_process_submit_url,
				type: 'post',
				data: {
					action : 'submit_feedback',
					submitted_feedback : submitted_feedback,
					_token: _token
				},
				dataType: 'json',
				success: function(response) {
					if (!response['feedback_error'] && response['feedback_error'] != 'system_error'){
						$('#login_for_submit_feedback').addClass('makeInvisible');
						$('#can_submit_feedback').addClass('makeInvisible');
						$('#feedback_submited').toggleClass('makeInvisible');
						$('#submitted_feedback').val('');
						$(this).attr('disabled', '');
					} else {
						alert(messages.submit_process_failed_system_error);
						$(this).attr('disabled', '');
					}
				},
				error: function() {
					alert(messages.submit_process_failed_system_error);
					$(this).attr('disabled', '');
				}
			});
		}	
		return false;
	});
	
	//place a vote to a feedback
	$('.vote_feedback').die('click').live('click', function() {
		var current_object = this;
		var published_feedback_id = $(this).parent().data('id');
		var _token = $('#inputFeedbackHolder input[name=_token]').val();
		$.ajax({
			url: messages.feedback_process_submit_url,
			type: 'post',
			data: {
				action : 'submit_vote',
				published_feedback_id : published_feedback_id,
				_token: _token
			},
			dataType: 'json',
			success: function(response) {
				if(!response['feedback_error']){
					var votes_parent_class = $(current_object).parent().parent().children('.votes_number');
					votes_parent_class.addClass('already_voted make_full_voted');
					votes_parent_class.children('span').eq(0).text((parseInt(votes_parent_class.children('span').eq(0).text()) + 1 ));
					votes_parent_class.append('<br />' + (returnCorrectVoteString(votes_parent_class.children('span').eq(0).text())));
					$(current_object).parent().remove();
				}
			}
		});
		return false;
	});
	
	// read more link clicked
	$(".read_more").die('click').live('click', function() {
		$(this).text(($(this).text()== messages.more_button) ? messages.less_button : messages.more_button);
		$(this).parent().children('.feedback_submitted_text').children('.short_feedback').toggleClass('makeDisplayInvisible');
		$(this).parent().children('.feedback_submitted_text').children('.complete_feedback').toggleClass('makeDisplayInvisible');
		$('#scrollbar1').tinyscrollbar_update('relative');
		return false;
	});
});

