
function addUserFeedbackEventListener(portletId, resourceCommandName, nameSpace){
	$('#portlet_' + portletId + ' .ccew-user-feedback-button').on('click', function(){
		saveUserFeedback(portletId, resourceCommandName, this.getAttribute('ccew-data-feedback'), nameSpace)
	});
}

function saveUserFeedback(portletId, resourceCommandName, feedbackValue, nameSpace){

		
	AUI().use('aui-io-request','liferay-portlet-url', function(A){
		let url = Liferay.PortletURL.createResourceURL();
		let currentURL = Liferay.currentURL;
		url.setParameter("feedbackValue", feedbackValue);
		url.setParameter("currentURL", currentURL);
	
		url.setPortletId(portletId);
		url.setResourceId(resourceCommandName);
	
		A.io.request(url.toString(), {
			method: 'post',
			on: {
					success: function() {
						showMessage();
				}
			}
		});
	});
}

function showMessage(){
	$('.ccew-user-feedback-icons-wrapper').hide();

	$('.ccew-user-feedback-article').removeClass('hide');
}
AUI.add(

	'uk-gov-ccew-search-export-results',

	function(A) {

		var captchaInput;
		var captchaPanel;
		var captchaPanelClass = 'captcha-panel';
		var errorClass = 'govuk-input--error';
		var errorMessage;
		var errorMessageElement;
		var exportLink;
		var exportButton;
		var hideClass = 'hide';
		var namespace;
		var resourceUrl;

		var ExportCaptchaComponent = {

			init : function(params) {
				namespace = params.namespace;
				captchaInput = $('#' + namespace + params.captchaTextId);
				errorMessage = params.errorMessage;
				errorMessageElement = $('#' + namespace + params.errorMessageElementId);
				exportLink = $('#' + namespace + params.exportLinkId);
				exportButton = $('#' + namespace + params.exportButtonId);
				resourceUrl = params.resourceUrl;

				captchaPanel = $('.' + captchaPanelClass);

				// Remove liferay taglib input
				defaultTextInput = $('#' + namespace + 'captchaText');
				defaultTextInput.remove();

				ExportCaptchaComponent.setUpClickHandler();
			},

			refreshCaptcha : function() {
				document.getElementById($('.' + captchaPanelClass + ' .lfr-icon-item').prop('id')).click();
			},

			setUpClickHandler : function() {
				exportButton.click(function(event) {

					if (captchaPanel.hasClass(hideClass)) {

						captchaPanel.removeClass(hideClass);
						ExportCaptchaComponent.refreshCaptcha();

					} else {

						$.when(

							ExportCaptchaComponent.confirmCaptcha(resourceUrl, captchaInput)

						).done(function(data) {

							if (data.isValid) {

								ExportCaptchaComponent.download(resourceUrl, captchaInput);

							} else {

								captchaInput.addClass(errorClass);
								errorMessageElement.text(errorMessage);

							}
						});
					}
				});
			},

			confirmCaptcha : function(resourceUrl, captchaInput) {
				var confirmCaptchaUrl = resourceUrl + '&' + namespace + 'confirmCaptchaOnly=true';
				confirmCaptchaUrl += '&' + namespace + 'exportCaptchaText=' + captchaInput.val();

				return $.ajax({
					url : confirmCaptchaUrl,
					dataType : 'JSON'
				});
			},

			download : function(resourceUrl, captchaInput) {
				var downloadUrl = resourceUrl + '&' + namespace + 'exportCaptchaText=' + captchaInput.val();
				exportLink.prop('src', downloadUrl);
				ExportCaptchaComponent.cleanUp();
			},

			cleanUp : function() {
				captchaPanel.addClass(hideClass);
				captchaInput.val('');
				captchaInput.removeClass(errorClass);
				errorMessageElement.text('');
			}

		};
		A.ExportCaptchaComponent = ExportCaptchaComponent;
	},
	'',
	{
		requires: ['node-base','liferay-portlet-url']
	}
);










