class EbayDisclosure {

	constructor() {

		this.isDisclosurePrint = false;

		this.disclaimer_div = `
			<div class="disclaimer_ebay">
				Questo articolo contiene link di affiliazione: acquisti o ordini effettuati tramite tali link permetteranno al nostro sito di ricevere una commissione nel rispetto del <a href="/codice-etico-della-affiliazione/">codice etico</a>.
			</div>
		`;

		this.aff_disclaimer = document.querySelector('.blz_affiliation_disclaimer');

		this.printDisclaimer();

		this.printInfiniteDisclaimer();

	}


	printInfiniteDisclaimer() {

		if( UI.infinite ) {
  
			UI.infinite.loadCallbackStack.push( this.printDisclaimer.bind( this ) );			
		}
	}


	/**
 	 * Deve verificare se esiste eBay nei filoni (data-themes)
     * in caso affermativo 
     * - stampa il disclaimer sticky concordato con eBay
     */
	printDisclaimer() {

		if( !this.isDisclosurePrint && this.isEbay() ) {

			this.aff_disclaimer.insertAdjacentHTML('afterend', this.disclaimer_div);
		
			// rimuove il vecchio disclaimer una volta inserito il nuovo
			this.aff_disclaimer.remove();
			
			this.isDisclosurePrint = true;
		}
	}

	
	/**
	 * @returns boolean - true if there is an ebay tag
	 */
	isEbay() {

		const targets = document.querySelectorAll('.post-content-single');

		let ebayTargets = [].filter.call( targets, target => target.querySelector('[data-themes*="eBay"]') !== null  );

		return ebayTargets.length > 0;
	}


}


addEventListener("DOMContentLoaded", evt => {

	new EbayDisclosure();
});


