/**
 * 
 */
import {Runtime, Library, Inspector} from "https://hdnlab1.isti.cnr.it/d3search/node_modules/commarcdiag/runtime.js";
import commarc from "https://hdnlab1.isti.cnr.it/d3search/node_modules/commarcdiag/index.js";

const iframe = document.getElementsByClassName("minimap__content");
const runtime1 = new Runtime(new Library(name => {
	console.log('name' +name)
	  switch (name) {
	    case "d3@^5.8": return d3;
	    case "d3@^6.0": return d3;
	  }
}));


document.addEventListener("dblclick", function(e){
  const target = e.target.closest("."+formaClass);
  
  if(target){
	
	if (locResetGraphStruct())
		return
    
	var hcontainer="#structCard0"

	var main=runtime1.module(commarc, name => {
	  
	  //if (name === "sentenceStructArcs_new") {
	  if (name === "sentenceArcsStructs_new") {
			const structel = document.getElementsByClassName(lsentid);
	  		console.log(structel[0].parentNode.getAttribute('value'))
	  		var stid=lsentid.split('_')
	  		var structid=stid[0]+'_'+stid[1]+'_'+structel[0].parentNode.getAttribute('value')
	  		console.log(structid)
			fillStructCard(structid);
	  	 	return new Inspector(document.querySelector(hcontainer));
	  	}
	
	});
	
	if (lisid!=''){
		//var mywidth=document.getElementById('displaycanto').offsetWidth
		
		console.log('here graph '+lisid+' '+lsentid)
		
			
		main.redefine('width', 625);
		main.redefine("lisid", lisid);
		const structel = document.getElementsByClassName(lsentid);
	  		
	  	var stid=lsentid.split('_')
	  	var structid=stid[0]+'_'+stid[1]+'_'+structel[0].parentNode.getAttribute('value')
	  		
		fillStructCard(structid)
		
		var collection = document.getElementsByClassName(lsentid);
		for (let i = 0; i < collection.length; i++) {
  			//collection[i].classList.add('font-weight-normal');
  			collection[i].classList.add('font-italic');
  			if (selectedVista!='frasi'){
				var synttp=collection[i].className.split(" ")[1]
				collection[i].style.color = colorssp(mapsynttypestopalette[synttp]);
			}
  			
 			//collection[i].style.removeProperty('color');
		}
		$('#tab-list #vis1-tab').tab('show')
		updateMinimap(lsentid)
		
		
	}
	else
		return
	
	
 
}

});


function resetMinimap(sentid){
	//var iframe = document.getElementsByClassName("minimap__content");
	
 	var iframeDocument = iframe[0].contentDocument || iframe[0].contentWindow.document;
 	if (!iframeDocument) {
   		throw "iframe couldn't be found in DOM.";
	}
	var iframeSentence = iframeDocument.getElementsByClassName(sentid);
		for (let i = 0; i < iframeSentence.length; i++) {
  			iframeSentence[i].classList.remove('font-italic');
  			if (selectedVista!='frasi')
  				iframeSentence[i].style.removeProperty('color');
  			
  			iframeSentence[i].classList.remove('font-weight-normal');
	}

}


function updateMinimap(sentid){
	//var iframe = document.getElementsByClassName("minimap__content");
	
 	var iframeDocument = iframe[0].contentDocument || iframe[0].contentWindow.document;
 	if (!iframeDocument) {
   		throw "iframe couldn't be found in DOM.";
	}
	var iframeSentence = iframeDocument.getElementsByClassName(sentid);
	for (let i = 0; i < iframeSentence.length; i++) {
  		iframeSentence[i].classList.add('font-italic');
  			
  		if (selectedVista!='frasi'){
			var synttp=iframeSentence[i].className.split(" ")[1]
			iframeSentence[i].style.color = colorssp(mapsynttypestopalette[synttp]);
		}
	}

}

function locResetGraphStruct(){
	
	var periodograph=document.getElementById("periodograph");
	if (periodograph!=null){
		let showngr=document.getElementById("periodograph").getAttribute('name').split("_")
		var tmpsent=showngr[0]+"_"+showngr[1]+"_s_"+showngr[2]
		periodograph.parentNode.removeChild(periodograph);
		
		//var sentence = document.getElementsByClassName(lsentid);
		var sentence = document.getElementsByClassName(tmpsent);
		
		for (let i = 0; i < sentence.length; i++) {
			//var matches = listaClausoleRisultato.filter(s => s.includes(sentence[i].classList[0]));
  			sentence[i].classList.remove('font-italic');
  			if (selectedVista!='frasi' && !listaPeriodiRisultato.includes(tmpsent))
  				sentence[i].style.removeProperty('color');
  			
  			sentence[i].classList.remove('font-weight-normal');
  			
		}
		
		resetMinimap(tmpsent)
		
		emptyStructCard()
		
		if (tmpsent==lsentid){
			
			return true
		}
		
		return false
			
	}
}