$(document).ready(function() {

	$('.text-truncate__multiline').each(function(){

		var thisElementId = $(this).attr('id');
		var thisElement = document.getElementById(thisElementId);
		var contentOverflowsContainer = thisElement.scrollHeight > thisElement.clientHeight || thisElement.scrollWidth > thisElement.clientWidth;

		if (contentOverflowsContainer) {
			var visibilityToggleId = $(this).attr('data-visibility-toggle-id');
			$('#' + visibilityToggleId).removeClass('d-none');
		}

	});

	$('.charity-register-charity-details .visibility-toggle').click(function() {

		var contentId = $(this).attr('data-content-id');
		var content = $('#' + contentId);

		if (content.hasClass('text-truncate__multiline')) {

			$(this).text('Less');
			$(this).attr("aria-expanded", "true");

		} else {

			$(this).text('More');
			$(this).attr("aria-expanded", "false");

		}

		content.toggleClass('text-truncate__multiline');

	});

	$('.ccew__details-expand').on('click', function(event){

		var target = $(event.target);

		if (target.hasClass('opened')) {
			target.text('More');
		} else {
			target.text('Less');
		}

		target.toggleClass('opened');

		let table = target.closest('table');

		$(table).find('.govuk-table__row:nth-child(n+11)').toggleClass('hide')
	});

});

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']
	}
);










