<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">(function (window){
	"use strict"	
	var map_woo_engine = function(settings){

		var self = this,
		active_instance,
		audio = document.createElement("audio"),
		audioReady,
		audioInited,
		autoPlay,
		currMediaData,
		empty_src = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D',
		isIOS = MAP_WOOUtils.isIOS(),

		//cart
		cartMessagePopup,
		cartTimeout,
		lastProductTitle,
		variationPopup

		////////////////////
		// audio
		////////////////////

		audio.setAttribute('preload',settings.preload)

		this.getCurrMediaData = function(inst){
			return currMediaData
		}

		this.setInstance = function(inst){
			if(active_instance){
				active_instance.cleanMedia()
			}
			active_instance = inst;
			return audio;
		}

		this.getAudio = function(){
			return audio;
		}

		this.getInstance = function(){
			return active_instance
		}

		this.setAutoPlay = function(v){
			autoPlay = v;
		}

		this.initAudio = function(cmd, mediaPath){

			currMediaData = cmd

			audioReady = false;

			if(!audioInited){
				audioInited = true;

				audio.addEventListener("ended", function(){

					handleAudioEnded()
					
				})
				audio.addEventListener("loadedmetadata", function(){

					handleAudioLoadedmetadata()

				})
				audio.addEventListener("canplay", function(){

					handleAudioCanplay()
				})
				audio.addEventListener("canplaythrough", function(){

				})	
				audio.addEventListener("play", function(){

					handleAudioPlay()
				})
				audio.addEventListener("pause", function(){

					handleAudioPause()
				})

				audio.addEventListener("error", function(e){

					handleAudioError(e)
					
				});
			}

			audio.src = mediaPath;

			if(autoPlay){
				var promise = audio.play();
				if (promise !== undefined) {
					promise.then(function(){
				    }).catch(function(error){
						active_instance.playHandler()//force artifically to show sticky (music still wont autoplay but at least we show sticky)
				    });
				}
			}

			audio.volume = settings.volume;

		}

		this.cleanAudio = function(){
			//added for ads, if ad pre was playing, and we clicked another player play, we want main audio to stop, since adpre now starts and main audio was only cleaned after ad pre ended
			try{
				if(audio.src){
					audio.pause();
					//audio.src = '';
				}
			}catch(er){

			}
		}

		//############################################//
		/* media events */
		//############################################//

		function handleAudioEnded(){
			active_instance.mediaEndHandler(true);	
		}

		function handleAudioLoadedmetadata(){
			setTimeout(function(){
				if(!audioReady){
					handleAudioCanplay()
				}
			},1000);
		}

		function handleAudioCanplay(){
			if(!audioReady){

				audioReady = true;

				try{
					audio.playbackRate = Number(settings.playbackRate);
				}catch(er){}

				//set visible duration
				var d = audio.duration;

				if(MAP_WOOUtils.isNumber(d)){
					active_instance.setTotalTime(d)

				}

			}
		}

		function handleAudioPlay(){
			autoPlay = true;
			active_instance.playHandler();
		}

		function handleAudioPause(){
			active_instance.pauseHandler();
		}

		function handleAudioError(e){
			active_instance.handleAudioError();
		}

		this.pauseAudio = function(){
			if(active_instance)active_instance.pauseHandler();
		}

		this.nextAudio = function(){
			if(active_instance)active_instance.nextMedia();
		}

		this.previousAudio = function(){
			if(active_instance)active_instance.previousMedia();
		}

		///////////////////
		//cart
		///////////////////

		if ( !document.querySelector('#map_woo-variation-popup') ) {

			var vs = '&lt;div id="map_woo-variation-popup" class="woocommerce single-product map_woo-sticky-skin-'+settings.stickyPlayerTheme+'"&gt;'+
				'&lt;div class="map_woo-variation-popup-inner"&gt;'+
					'&lt;div class="map_woo-variation-popup-data"&gt;'+
						'&lt;div class="map_woo-variation-popup-header"&gt;'+
							'&lt;img src="'+empty_src+'" class="map_woo-variation-popup-thumb" alt="image" /&gt;'+
							'&lt;div class="map_woo-variation-cart-message-popup"&gt;'+  
				                '&lt;p class="map_woo-variation-cart-message-header"&gt;'+settings.tooltipAddedToCart+'&lt;/p&gt;'+
				                '&lt;p class="map_woo-variation-cart-message-title"&gt;&lt;/p&gt;'+
				            '&lt;/div&gt;'+  
						'&lt;/div&gt;'+
						'&lt;div class="map_woo-variation-popup-content"&gt;'+
							'&lt;p class="map_woo-variation-popup-title"&gt;&lt;/p&gt;'+
							'&lt;div class="product map_woo-variation-form"&gt;&lt;/div&gt;'+
						'&lt;/div&gt;'+
						'&lt;div class="map_woo-variation-popup-close" title="'+settings.tooltipClose+'"&gt;'+
				        	'&lt;svg aria-hidden="true" focusable="false" role="img" viewBox="0 0 320 512"&gt;&lt;path d="M312.1 375c9.369 9.369 9.369 24.57 0 33.94s-24.57 9.369-33.94 0L160 289.9l-119 119c-9.369 9.369-24.57 9.369-33.94 0s-9.369-24.57 0-33.94L126.1 256L7.027 136.1c-9.369-9.369-9.369-24.57 0-33.94s24.57-9.369 33.94 0L160 222.1l119-119c9.369-9.369 24.57-9.369 33.94 0s9.369 24.57 0 33.94L193.9 256L312.1 375z"/&gt;&lt;/svg&gt;'+
				        '&lt;/div&gt;'+
				    '&lt;/div&gt;'+     
			    '&lt;/div&gt;'+
			'&lt;/div&gt;'

            document.body.insertAdjacentHTML('beforeend', vs)

            variationPopup = document.getElementById('map_woo-variation-popup')

	        variationPopup.querySelector('.map_woo-variation-popup-close').addEventListener('click', (event) =&gt; {
	            document.body.classList.remove('map_woo-variation-popup')
				finishAddToCart()
	        })

	        var variationForm = variationPopup.querySelector('.map_woo-variation-form')

	        jQuery(variationForm).on('wc_variation_form', (event) =&gt; {
	            document.body.classList.add('map_woo-variation-popup')
	        })


	        cartMessagePopup = variationPopup.querySelector('.map_woo-variation-cart-message-popup')
        }
       
		function updateVariationForm( track ) {

	        var form = variationPopup.querySelector( '.map_woo-variation-form' )

	        form.innerHTML = (track.product_variations_form)

	        var thumb = variationPopup.querySelector( '.map_woo-variation-popup-thumb' )
	  		thumb.setAttribute('src', track.thumb)

	  		var title = variationPopup.querySelector( '.map_woo-variation-popup-title' )
	  		title.innerHTML = track.title

			document.body.classList.add('map_woo-variation-popup')

			var variations_form = variationPopup.querySelector('.variations_form')
            if(variations_form){
                jQuery(variations_form).wc_variation_form()
            }
	    }

	    this.addVariationToCart = function(product_id, quantity, variation_id, variation) {

	        const params = new URLSearchParams();
		    params.append("action", 'map_woo_add_to_cart_variation');
		    params.append("security", settings.security);
		    params.append("product_id", product_id);
		    params.append("quantity", quantity);
		    params.append("variation_id", variation_id);
		    params.append("variation", JSON.stringify(variation));

			var xhrRequest = new XMLHttpRequest();
			xhrRequest.onreadystatechange = function() {
				if (this.readyState == 4) {
					var result = JSON.parse(this.responseText);

					lastProductTitle = result.data.product_title

					if ( result.data.fragments ) {
	    				jQuery( document.body ).trigger( 'added_to_cart', [ result.data.fragments, result.data.cart_hash ] );
	    				jQuery( document.body ).trigger( 'wc_fragment_refresh' );
	                }

					finishAddToCart()
			    }
			}
			xhrRequest.onerror = function(e) { 
			    console.log('Error add_to_cart: ' + e);
				finishAddToCart()
			};
			xhrRequest.open('POST', settings.ajax_url);
			xhrRequest.setRequestHeader("Content-Type", 'application/x-www-form-urlencoded');
			xhrRequest.send(params);

	    }

	    jQuery(document.body).on( 'added_to_cart', (event, fragments, cartHash, $button) =&gt; {

	    	if(settings.closeVariationPopupAfterAddedToCart){
	    		document.body.classList.remove('map_woo-variation-popup')
	    	}

	    	if(settings.useStickyPlayer){
				if(window.map_woo_fixedPlayer)window.map_woo_fixedPlayer.showAddedToCartMessage(lastProductTitle)
			}

			active_instance.showAddedToCartMessage(lastProductTitle)

	    	if(cartMessagePopup){
	    		cartMessagePopup.querySelector('.map_woo-variation-cart-message-title').textContent = lastProductTitle
	    		cartMessagePopup.classList.add('map_woo-variation-cart-message-popup-visible')
	    	}

	    	if(cartTimeout)clearTimeout(cartTimeout);
	    	cartTimeout = setTimeout(function(){
	    		if(settings.useStickyPlayer){
					if(window.map_woo_fixedPlayer)window.map_woo_fixedPlayer.hideAddedToCartMessage()
				}
				active_instance.hideAddedToCartMessage()

	    		if(cartMessagePopup)cartMessagePopup.classList.remove('map_woo-variation-cart-message-popup-visible')
	    	},settings.cartMessageTimeout)

	    })

	    this.getProduct = function(productData){

	    	const params = new URLSearchParams();
			params.append("action", 'map_woo_get_product');
			params.append("security", settings.security);
	    	params.append("product_id", productData.product_id);

			var xhr = new XMLHttpRequest();
			xhr.onreadystatechange = function() {
				if (this.readyState == 4) {

					var response = JSON.parse(this.responseText);
					if(response){
        				updateVariationForm( response )
					}

				}

			}
			xhr.onerror = function(e) { 
			    console.log('Error addToCart: ' + e);
				finishAddToCart()
			};
			xhr.open('POST', settings.ajax_url);
			xhr.setRequestHeader("Content-Type", 'application/x-www-form-urlencoded');
			xhr.send(params);

	    }

		this.addProductToCart = function(product_id){

			const params = new URLSearchParams();
		    params.append("action", 'map_woo_add_to_cart');
		    params.append("security", settings.security);
		    params.append("product_id", product_id);

			var xhrRequest = new XMLHttpRequest();
			xhrRequest.onreadystatechange = function() {
				if (this.readyState == 4) {
					var result = JSON.parse(this.responseText);

					lastProductTitle = result.data.product_title

					if ( result.data.fragments ) {
	    				jQuery( document.body ).trigger( 'added_to_cart', [ result.data.fragments, result.data.cart_hash ] );
	    				jQuery( document.body ).trigger( 'wc_fragment_refresh' );
	                }

					finishAddToCart()
			    }
			}
			xhrRequest.onerror = function(e) { 
			    console.log('Error add_to_cart: ' + e);
				finishAddToCart()
			};
			xhrRequest.open('POST', settings.ajax_url);
			xhrRequest.setRequestHeader("Content-Type", 'application/x-www-form-urlencoded');
			xhrRequest.send(params);

	    }

	    this.checkProduct = function(id){
	    	//from stickly player there is assigned id for each song, while we can click cart button in any player in shop, then we look for getPlayerInstance

			if(window.map_woo_addingToCart)return false;
			
			startAddToCart()

			if(id){
				var productData = getPlayerInstance(id).getProductData()
			}else{
				var productData = active_instance.getProductData()
			}

			if(productData.product_type == 'simple'){
				self.addProductToCart(productData.product_id)
			}else if(productData.product_type == 'external'){
				finishAddToCart()
				if(productData.product_url)window.open(productData.product_url);	
			}else{
				self.getProduct(productData)
			}

		}

		function startAddToCart(){

			window.map_woo_addingToCart = true;

			window.map_woo_addingToCart_btn.classList.add('map_woo-btn-disabled')

			//loader
			var loader = window.map_woo_addingToCart_btn.querySelector('.map_woo-loader-wrap')
			if(loader)loader.classList.add('map_woo-loader-visible')

		}

		function finishAddToCart(){

			window.map_woo_addingToCart = false;

			if(window.map_woo_addingToCart_btn){//only exist in player, not in variation!

				window.map_woo_addingToCart_btn.classList.remove('map_woo-btn-disabled')

				//loader
				var loader = window.map_woo_addingToCart_btn.querySelector('.map_woo-loader-wrap')
				if(loader)loader.classList.remove('map_woo-loader-visible')

				window.map_woo_addingToCart_btn = null;

			}

		}

		///////////////////////////////////
		// click
		////////////////////////////////////

		document.addEventListener( 'click', event =&gt; {

		    if ( event.target.matches( '#map_woo-variation-popup .woocommerce-variation-add-to-cart button' ) ) {
		        event.preventDefault();

		        var addToCart = event.target.closest('.woocommerce-variation-add-to-cart'),
		            productId = addToCart.querySelector('input[name="product_id"]').value,
		            variationId = addToCart.querySelector('input.variation_id').value,
		            quantity = addToCart.querySelector('input[name="quantity"]').value

		            var variation_arr = {},
		            variation_form = event.target.closest('.variations_form'),
		            mlist = variation_form.querySelectorAll( 'select[name^=attribute]' ),
		            mar = [...mlist]; 

					mar.forEach(el =&gt; {
						var attributeName = el.getAttribute( 'name' ),
				        attributeValue = el.value;
				        variation_arr[attributeName] = attributeValue;
					});

		        if ( variationId &gt; 0 ) {
		            self.addVariationToCart( productId, quantity, variationId, variation_arr )
		        }

		    }
		    else if(event.target.closest('.map_woo-seekbar')){//seekbars in players
		    	event.preventDefault();


		    }
		    else if(event.target.closest('.map_woo-playback-toggle')){
		    	event.preventDefault();

		    	var item = event.target.closest('.map_woo-music-player'),
		    	id = item.getAttribute('id')

		    	getPlayerInstance(id).togglePlayback();

		    }
		    else if(event.target.closest('.map_woo-prev-toggle')){

		    	event.preventDefault();

			    if(isIOS &amp;&amp; currMediaData &amp;&amp; (currMediaData.adMid || currMediaData.adEnd) &amp;&amp; !window.map_woo_iosAdMidFixStart &amp;&amp; window._MAP_WOOAdManager){
					window.map_woo_iosAdMidFixStart = true;
					window._MAP_WOOAdManager.forceAdMidAudio();//ads 
				}

				if(window._MAP_WOOAdManager &amp;&amp; window._MAP_WOOAdManager.isAdOn()) return false;

		    	var item = event.target.closest('.map_woo-music-player'),
		    	id = item.getAttribute('id')

		    	getPlayerInstance(id).previousMedia();

		    }
		    else if(event.target.closest('.map_woo-next-toggle')){

		    	event.preventDefault();

		    	if(isIOS &amp;&amp; currMediaData &amp;&amp; (currMediaData.adMid || currMediaData.adEnd) &amp;&amp; !window.map_woo_iosAdMidFixStart &amp;&amp; window._MAP_WOOAdManager){
					window.map_woo_iosAdMidFixStart = true;
					window._MAP_WOOAdManager.forceAdMidAudio();//ads 
				}

				if(window._MAP_WOOAdManager &amp;&amp; window._MAP_WOOAdManager.isAdOn()) return false;

		    	var item = event.target.closest('.map_woo-music-player'),
		    	id = item.getAttribute('id')

		    	getPlayerInstance(id).nextMedia();

		    }
		    else if(event.target.closest('.map_woo-add-to-cart-toggle')){

		    	event.preventDefault();

		    	if(window.map_woo_addingToCart)return false;

		    	var item = event.target.closest('.map_woo-music-player'),
		    	id = item.getAttribute('id')

		    	window.map_woo_addingToCart_btn = event.target.closest('.map_woo-add-to-cart-toggle');

		    	self.checkProduct(id);

		    }
		    else if(event.target.closest('.map_woo-player-thumb-wrapper')){

		    	event.preventDefault();

		    	var item = event.target.closest('.map_woo-music-player'),
		    	id = item.getAttribute('id')

		    	var productData = getPlayerInstance(id).getProductData()

		    	if(productData.product_link){
		    		window.location.href = productData.product_link;
		    	}

		    }

		})

		function getPlayerInstance(wrapper_id){

			var i, len = window.ap_mediaArr.length, inst;
			for(i=0;i&lt;len;i++){
				if(wrapper_id == window.ap_mediaArr[i].wrapper_id){
					inst = window.ap_mediaArr[i].inst
					break;
				}
			}
			return inst

		}

			
		return this;

	}

	window.map_woo_engine = map_woo_engine;

}(window));
</pre></body></html>