"use strict";

(function ($) {
    $(document).ready(function() {
        /*$(document).trigger('grecReset', []);*/
        let contactForm = $('#contactForm'),
            enquiry = $('select[name=enquiry]'),
            updateStorelocator = function () {
                let storeLocatorInput = contactForm.find('.storelocator-container'),
                    enquirySelected = enquiry.find('option:selected');

                if (enquirySelected.data('code') && enquirySelected.data('code') === 'service') {
                    storeLocatorInput.show();
                    document.getElementById('store').required = true;

                } else {
                    storeLocatorInput.hide();
                    document.getElementById('store').required = false;
                }
            },
            initStoreFinder = function () {
                if ('undefined' === typeof beauAppComponents.productFormModal) {
                    let beauComponentsTimeout = setInterval(function() {
                        if ('object' === typeof beauAppComponents.productFormModal) {
                            beauAppComponents.productFormModal.handleStoreFinder(null, $('#store'));
                            clearInterval(beauComponentsTimeout);
                        }
                    },100);
                } else {
                    beauAppComponents.productFormModal.handleStoreFinder(null, $('#store'));
                }
            },
            bindEvents = function () {
                enquiry.on('change', function () {
                    updateStorelocator();
                });


                contactForm.on('submit', function () {
                    let enquiryData = enquiry.find('option:selected').data();
                    if (!enquiryData || enquiryData.code !== 'service') {
                        //Prevent sending store data if not service enquiry selected
                        let storeIdEl = contactForm.find('.store-finder-id'),
                            storeContactEl = contactForm.find('.store-finder-contact');
                        if (storeIdEl.length) {
                            storeIdEl.val('');
                        }
                        if (storeContactEl.length) {
                            storeContactEl.val('');
                        }
                    }

                    return true;
                });
            }

        //Init
        updateStorelocator();
        initStoreFinder();
        bindEvents();
    });
})(jQuery);
