(function() {

  var config = {"email": {"label": "By registering you are entitled to a promotional code for free shipping and periodic updates with all the news on our textile creations.", "placeholder": "Email", "subscribeSuccess": "Thanks! Check your inbox to confirm the subscription."}, "title": "NEWSLETTER", "groups": [369], "language": "en", "telegram": {"label": "", "channelId": null, "description": ""}, "messenger": {"label": "", "channelId": null, "description": ""}, "displayDelay": 10, "privacyLabel": "I agree'to the <a href=\"https://eu.societylimonta.com/pages/cookie-privacy-policy\"> Privacy Policy.</a>", "colorCssClass": "style_dark", "subscribeError": "Oops! An error occurred. Please try again in a few moments.", "positionCssClass": "position_bottom-right", "subscribeButtonText": "Subscribe"};
  var messengerAppid = "103271793800311";
  var messengerDataRef = "773b0c02-81c0-4be5-9654-a9b9bac7b6e2";

	if (!(config.hasOwnProperty('displayDelay') && (parseInt(config.displayDelay, 10) >= 0))) {
	    config.displayDelay = 3;
	}

	var scriptUrl = '';
	var messengerButtonColor = '';


	//	console.log("config", config);

	var jQuery;


	if (window.jQuery === undefined || window.jQuery.fn.jquery !== '3.2.1') {
		var script_tag = document.createElement('script');
		script_tag.setAttribute("type","text/javascript");
		script_tag.setAttribute("src",
			"https://code.jquery.com/jquery-3.2.1.min.js");
		if (script_tag.readyState) {
		  script_tag.onreadystatechange = function () {
			  if (this.readyState == 'complete' || this.readyState == 'loaded') {

				  scriptLoadHandler();
			  }
		  };
		} else {
		  script_tag.onload = scriptLoadHandler;
		}

		(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
	} else {

		jQuery = window.jQuery;
		main();
	}


	function scriptLoadHandler() {

		jQuery = window.jQuery.noConflict(true);

		main();
	}


	if (config.colorCssClass == 'style_light')
		messengerButtonColor = 'blue';
	else
		messengerButtonColor = 'white';

	function getScriptUrl($) {
		 scriptUrl = $('#src-mltchnl').attr( "src");
	}

	function validateForm($) {
		var privacyElement = $('#frm-mltchnl #formMailUpEmailSms #privacy');
		var emailElement = $('#frm-mltchnl #formMailUpEmailSms #email');
		var numberElement = $('#frm-mltchnl #formMailUpEmailSms #number');
		var prefixElement = $('#frm-mltchnl #formMailUpEmailSms #prefix');

		var isValid = true;

		if (config.email || config.sms)
			privacyElement.removeClass("is-invalid");

		if (config.email)
			emailElement.removeClass("is-invalid");

		if (config.sms) {
			numberElement.removeClass("is-invalid");
			prefixElement.removeClass("is-invalid");
		}

		if ((config.email || config.sms) && !privacyElement.is(':checked')) {
			privacyElement.addClass("is-invalid");
			isValid = false;
		}
		if (config.email && config.sms && emailElement.val()=='' && numberElement.val()=='' && prefixElement.val()=='') {
			emailElement.addClass("is-invalid");
			numberElement.addClass("is-invalid");
			prefixElement.addClass("is-invalid");
			isValid = false;
		}

		if (config.email && !config.sms && emailElement.val()=='' ) {
			emailElement.addClass("is-invalid");
			isValid = false;
		}

		if (config.sms && !config.email && (numberElement.val()=='' || prefixElement.val()=='')) {
			numberElement.addClass("is-invalid");
			prefixElement.addClass("is-invalid");
			isValid = false;
		}

		if (config.sms) {
			if (numberElement.val()!='' && isNaN(numberElement.val())) {
				numberElement.addClass("is-invalid");
				isValid = false;
			}
			if (prefixElement.val()!='' && isNaN(prefixElement.val())) {
				addClass(prefixElement, "is-invalid");
				isValid = false;
			}
		}

		if (config.email && emailElement.val()!='' && emailElement.val().indexOf("@") <=0) {
			emailElement.addClass("is-invalid");
			isValid = false;
		}

		return isValid;
	}

	function main() {

		jQuery(document).ready(function($) {

			getScriptUrl($);

			var cssUrl =  scriptUrl + '/css';
			$('head').append('<link href="' + cssUrl + '" rel="stylesheet" type="text/css">');

			buildForm($);


			$('#frm-mltchnl').hide();

			if (config.email || config.sms) {
				if (config.email)
					$('#frm-mltchnl #subscribeEmailSuccess').hide();
				if (config.sms)
					$('#frm-mltchnl #subscribeOnlySmsSuccess').hide();

				$('#frm-mltchnl #subscribeEmailError').hide();

				var formMltchnl = $('#frm-mltchnl #formMailUpEmailSms');

				formMltchnl.submit(function (e) {
					  e.preventDefault();
					  if (validateForm($)) {
						saveData($);
					  }
				});

			}

			if (config.email && config.sms) {
				var inputMail = $('#frm-mltchnl #formMailUpEmailSms #email');

				$('#frm-mltchnl #formMailUpEmailSms #email').change(function () {
					if (config.sms) {
						$("#frm-mltchnl #formMailUpEmailSms #number").prop('required', !$(this).val().length);
						$("#frm-mltchnl #formMailUpEmailSms #prefix").prop('required', !$(this).val().length);
					}
				});
				var inputNumber = $('#frm-mltchnl #formMailUpEmailSms #number');
				inputNumber.change(function () {
					if (config.email)
						$("#frm-mltchnl #formMailUpEmailSms #email").prop('required', !$(this).val().length);
				});
				var inputPrefix = $('#frm-mltchnl #formMailUpEmailSms #prefix');
				inputPrefix.change(function () {
					if (config.email)
						$("#frm-mltchnl #formMailUpEmailSms #email").prop('required', !$(this).val().length);
				});
			}

			var btnClose = $('#frm-mltchnl #btnClose');
			btnClose.click(function (e) {
				$("#frm-mltchnl").hide();
			});

		});
	}

	var content = '';

	function buildForm($) {

		content = '<div id="subscription-form" class="size_small ' + config.colorCssClass + ' ' + config.positionCssClass + ' container_break-word"><div id="btnClose" class="close-button"></div>';
		content += '<div><p class="subscription-popup-title">' + config.title + '</p></div>';
		if (config.sms || config.email) {
			content += '<form id="formMailUpEmailSms" action="" >';
			if (config.email || config.sms)
				content += '<div id="subscribeEmailError" class="error-message-post-subscription"><p>' + config.subscribeError + '</p></div>';

			if (config.email) {
				content += '<div class="subscription-form_row"><label>' + config.email.label + '</label><input type="email" name="email" id="email" placeholder="' + config.email.placeholder + '" required></div>';
			}
			if (config.sms) {
				content += '<div><label>' + config.sms.numberLabel + '</label></div>';
				content += '<div class="subscription-form_row"><div class="subscription-form_two-col"><input class="telephon-number_prefix" type="number" id="prefix"  name="prefix" placeholder="' + config.sms.prefixPlaceholder + '" required></div>';
				content += '<div class="subscription-form_two-col">';
				content += '<input class="telephon-number_number" type="number" id="number" name="number" placeholder="' + config.sms.numberPlaceholder + '" required>';
				content += '</div></div>';
			}

			content += '<div class="subscription-form_row"><input type="checkbox" name="privacy" id="privacy" required>';
			content += '<label class="label_privacy">' + config.privacyLabel + '</label></div>';
			content += '<div class="subscription-form_row"><input type="submit" id="btnSave" class="subscription-form_submit" value="' + config.subscribeButtonText + '"></div>';

			content += '</form>';

			if (config.email)
				content += '<div id="subscribeEmailSuccess" class="success-message-post-subscription"><p><span>' + config.email.subscribeSuccess + '</span></p></div>';
			if (config.sms)
				content += '<div id="subscribeOnlySmsSuccess" class="success-message-post-subscription"><p><span>' + config.sms.subscribeSuccess + '</span></p></div>';

		}

		if (config.messenger && config.messenger.channelId) {
			content += '<div class="subscription-form_row" id="cntMessenger">';
			if(config.messenger.description) {
				content+= '<div class="subscription-form_row-bottom-thin"><h2>' + _escapeHTML(config.messenger.description) + '</h2></div>';
			}
			content+= '<div><a target="_blank" class="subscription-form_social-btn subscription-form_messenger-btn" href="' + messengerDataRef + '"><span class="subscription-form_icon-btn"><svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="messenger-icon_g" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><path d="M10,1 C5.02942857,1 1,4.73094444 1,9.33333333 C1,11.9558333 2.30874534,14.2950556 4.35403727,15.8226111 L4.35403727,19 L7.41845342,17.3181667 C8.2362795,17.5445 9.10268323,17.6666667 10,17.6666667 C14.9705714,17.6666667 19,13.9357222 19,9.33333333 C19,4.73094444 14.9705714,1 10,1 Z M10.4736842,12.7 L8.1784689,10.1723404 L3.7,12.7 L8.62631579,7.3 L10.977512,9.82765957 L15.4,7.3 L10.4736842,12.7 Z" id="messenger-icon" fill="#FFFFFF" fill-rule="nonzero"></path></g></span>' + _escapeHTML(config.messenger.label) + '</a></div>';
			content += '</div>';
		}

		if (config.telegram && config.telegram.channelId) {
			content += '<div class="subscription-form_row" id="cntTelegram">';
			if(config.telegram.description) {
				content+= '<div class="subscription-form_row-bottom-thin"><h2>' + _escapeHTML(config.telegram.description) + '</h2></div>';
			}
			content+= '<div><a target="_blank" class="subscription-form_social-btn subscription-form_telegram-btn" href="' + messengerDataRef + '"><span class="subscription-form_icon-btn"><svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="telegram-icon_g" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><path d="M12.6065848,14.5719866 L14.1651786,7.22433036 C14.228795,6.9133169 14.191686,6.69066287 14.0538504,6.55636161 C13.9160149,6.42206034 13.7340041,6.397321 13.5078125,6.48214286 L4.34709821,10.0128348 C4.14211207,10.0905882 4.00251153,10.178943 3.92829241,10.2779018 C3.85407329,10.3768606 3.84523781,10.4705167 3.90178571,10.5588728 C3.95833362,10.6472289 4.07142772,10.7161456 4.24107143,10.765625 L6.58426339,11.4972098 L12.0234375,8.07254464 C12.1718757,7.97358581 12.2849698,7.95238067 12.3627232,8.00892857 C12.4122026,8.04427101 12.3980659,8.09728387 12.3203125,8.16796875 L7.92020089,12.1439732 L7.75055804,14.5613839 C7.91313325,14.5613839 8.07217184,14.4836317 8.22767857,14.328125 L9.37276786,13.2254464 L11.7477679,14.9748884 C12.2001511,15.229354 12.4864205,15.0950547 12.6065848,14.5719866 Z M18.2472098,6.52455357 C18.7490724,7.69792253 19,8.92782095 19,10.2142857 C19,11.5007505 18.7490724,12.7306489 18.2472098,13.9040179 C17.7453472,15.0773868 17.0703167,16.0881654 16.2220982,16.9363839 C15.3738797,17.7846025 14.3631011,18.4596329 13.1897321,18.9614955 C12.0163632,19.4633582 10.7864648,19.7142857 9.5,19.7142857 C8.21353523,19.7142857 6.98363682,19.4633582 5.81026786,18.9614955 C4.6368989,18.4596329 3.62612031,17.7846025 2.77790179,16.9363839 C1.92968326,16.0881654 1.25465281,15.0773868 0.752790179,13.9040179 C0.25092755,12.7306489 0,11.5007505 0,10.2142857 C0,8.92782095 0.25092755,7.69792253 0.752790179,6.52455357 C1.25465281,5.35118461 1.92968326,4.34040603 2.77790179,3.4921875 C3.62612031,2.64396897 4.6368989,1.96893852 5.81026786,1.46707589 C6.98363682,0.965213265 8.21353523,0.714285714 9.5,0.714285714 C10.7864648,0.714285714 12.0163632,0.965213265 13.1897321,1.46707589 C14.3631011,1.96893852 15.3738797,2.64396897 16.2220982,3.4921875 C17.0703167,4.34040603 17.7453472,5.35118461 18.2472098,6.52455357 Z" id="telegram-icon" fill="#FFFFFF"></path></g></svg></span>' + _escapeHTML(config.telegram.label) + '</a></div>';
			content += '</div>';
		}




		content += '</div>';

		renderForm($);
	}

	function renderForm($) {
		$('#frm-mltchnl').detach().appendTo('body');
		$('#frm-mltchnl').append(content);

		setTimeout(function() {
			if (config.email || config.sms || (config.messenger && config.messenger.channelId) || (config.telegram && config.telegram.channelId))
				$('#frm-mltchnl').show();
		}, config.displayDelay * 1000);
	}


	function saveData($) {

		$('#frm-mltchnl #subscribeEmailError').hide();

		var params = {SubscriptionGuid: messengerDataRef};

		if (config.email) {
			if ($("#frm-mltchnl #formMailUpEmailSms  #email").val() != '')
				params.Email= $("#frm-mltchnl #formMailUpEmailSms  #email").val();
		}

		if (config.sms) {
			if ($("#frm-mltchnl #formMailUpEmailSms  #number").val() != '')
				params.Number=$("#frm-mltchnl #formMailUpEmailSms  #number").val();
			if ($("#frm-mltchnl #formMailUpEmailSms  #prefix").val() != '')
				params.Prefix= $("#frm-mltchnl #formMailUpEmailSms  #prefix").val();
		}

		var paramStr = JSON.stringify(params);

    var urlRequest = scriptUrl;

		$('#frm-mltchnl #btnSave').addClass('subscription-form_is-loading');

		$.ajax({
			url : urlRequest,
			type: 'POST',
			data: paramStr ,
			contentType: 'application/json; charset=utf-8',
			success : function (successResponse) {
        $('#frm-mltchnl #btnSave').removeClass('subscription-form_is-loading');
        $('#frm-mltchnl #formMailUpEmailSms').hide();

        if(successResponse == 0) {
          //  solo spunta verde per parte email
          $('#frm-mltchnl #subscribeEmailSuccess p span').hide();
        }

        if (params.Email)
  			  $('#frm-mltchnl #subscribeEmailSuccess').show();
	  		else
		  	  $('#frm-mltchnl #subscribeOnlySmsSuccess').show();
			},
			error : function () {
				 $('#frm-mltchnl #subscribeEmailError').show();
			}
		});
	}

	function _escapeHTML(str) {
		var div = document.createElement('div');
		div.appendChild(document.createTextNode(str));
		return div.innerHTML;
	}

})();
