/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

define([
    'jquery',
    'mage/template',
    'Magento_Ui/js/modal/confirm',
	'Magento_Ui/js/modal/alert',
	'Magento_Customer/js/customer-data',
    'jquery/ui'
	
], function ($, mageTemplate, uiConfirm, alert, customerData) {
    'use strict';

    $.widget('mage.ajaxDataPost', {
        options: {
            formTemplate: '<form action="<%- data.action %>" method="post">' +
            '<% _.each(data.data, function(value, index) { %>' +
            '<input name="<%- index %>" value="<%- value %>">' +
            '<% }) %></form>',
            postTrigger: ['a[data-ajaxpost]', 'button[ajax-ajaxpost]', 'span[ajax-ajaxpost]'],
            formKeyInputSelector: 'input[name="form_key"]'
        },

        /** @inheritdoc */
        _create: function () {
            this._bind();
        },

        /** @inheritdoc */
        _bind: function () {
            var events = {};

            $.each(this.options.postTrigger, function (index, value) {
                events['click ' + value] = '_postDataAction';
            });

            this._on(events);
        },
		isLoggedIn: function (e){
			var customerInfo = customerData.get('customer')();
			
			return customerInfo.firstname && customerInfo.fullname; 					 
		
		},
        /**
         * Handler for click.
         *
         * @param {Object} e
         * @private
         */
        _postDataAction: function (e) {
            var params = $(e.currentTarget).data('ajaxpost');
			let action = $(e.currentTarget).data('action');
			console.log(action);
			console.log(customerData);
			if(action=='add-to-wishlist' && !this.isLoggedIn()){
				var customerMessages = customerData.get('messages')() || {},
				messages = customerMessages.messages || [];
				messages.push({
					text: 'Please login to add products to wishlist.',
					type: 'warning'
				});
				customerMessages.messages = messages;
				customerData.set('messages', customerMessages);
				$('.authorization-link a').trigger('click')
				return;
			}
			
            e.preventDefault();
            this.postData(params);
        },

        /**
         * Data post action.
         *
         * @param {Object} params
         */
        postData: function (params) {
            var formKey = $(this.options.formKeyInputSelector).val(),
                $form;

            if (formKey) {
                params.data['form_key'] = formKey;
            }

            $form = $(mageTemplate(this.options.formTemplate, {
                data: params
            }));

            $.ajax({
				  type: 'POST',
				  url: params.action,
				  data: params.data,
				  dataType: "json",
				  success: function(resultData) { 
		
					alert({
						title: resultData.title,
						content: '<p>'+resultData.message+'</p>',
						actions: {
							always: function(){}
						}
					});
					
					
					
				}
			});

        }
    });

    $(document).ajaxDataPost();

    return $.mage.ajaxDataPost;
});
