
var CommonApis = CommonApis || (function () {
var API = {};
var sessionData = [];
var arrayCauDoc = [];
var imgDir= "./immagini_portale/";
var publicIp = "";
var promoPlaceHolder = "Digita codice o descrizione prodotto";
var offertePlaceHolder = "Cerca prodotto in offerta";
var actualTabIdx = -1;
var dettaglioOrdine = [];
var artPromoOrdine = [];
var maxWindowHeight = 0;
var ricercaClientiHeader = "";
var arrayMagazziniConsegna = [];
var arrayDestinazioni = [];
var abilitaSempreInvioAgente = 0;
var deleteArtAnnullati = false;
var onMobile = false;
var htmlMenu = "";
var htmlMenuMyAccount = "";
var spinner;
var menuAttivoSave = "";
var allArtPromoPortale = [];
var artMercatino = [];
var capofilaAutocomplete = [];
var imgCapofilaAutocomplete = [];
var limit = 60;   
var listenerSubMenuAdded = false;
var addToHomeScreen;
var addListenerRemoveArt = true;
var addListenerRemovePromo = true;
var datasetSconti;
var articoliPromo = [];
var confirmCancellaArticolo = false;
var volantiniAttivi = [];
var artVolantino = [];
var listPromoInseriteGlobal = [];
var dettaglioWishList = [];
var numRigheWishList = 0;
var isGestVolantini = false;
var selCk;
var ricercaAvviataDaScanner = false;
var scannerAttivo = false;
var inputDataArray = {};
var docViewed = {};
var cookiesToMantain = ["addPromoAuto", "sid", "webParameters", "displayCookieConsent"];

API.setSelCk = function (value) {
	selCk = value;
}

API.getCookiesToMantain = function() {
  return cookiesToMantain;
}

API.getSelCk = function () {
	return selCk;
}

API.setGestVolantini = function (value) {
	isGestVolantini = value;
}

API.isGestVolantini = function () {
	return isGestVolantini;
}
API.setListPromoInserite = function (value) {
	listPromoInseriteGlobal = value;
}

API.getListPromoInserite = function () {
	return listPromoInseriteGlobal;
}

API.clearListPromoInserite = function() {
	listPromoInseriteGlobal = [];
}
  
    API.getDocViewed = function () {
        return docViewed;
    }  

API.getDataArray = function (){
	return inputDataArray;
}	

API.clearDataArray = function () {
	inputDataArray = [];
}
  
  API.setVolantiniAttivi = function(data) { 
    volantiniAttivi = [];
    if (data != undefined) {
      var docAttu = "";
      var docSave = ""; 
      for( var i = 0; i < data.length; i++ ) {
        docAttu = data[i].cod_cli.trim() + data[i].num_volantino.toString().trim();
        if (docAttu != docSave) {
          var volantino = {numero:data[i].num_volantino,
                          titolo:data[i].titolo.trim(),
          };
          docSave = docAttu;
          volantiniAttivi.push(volantino);
        }
      }
    }
       
  }
  
  API.getVolantiniAttivi = function() {
    return volantiniAttivi;
  }

  API.setArticoliVolantini = function(data) { 
    artVolantino = [];
    if (data != undefined) {
      for( var i = 0; i < data.length; i++ ) {
        if (artVolantino.indexOf(data[i].cod_art.trim()) == -1) {
          artVolantino.push(data[i].cod_art.trim());
        }
      }
    }
       
  }
  
  API.getArticoliVolantini = function() {
    return artVolantino;
  }
  
  API.setConfirmCancellaArticolo = function(value){
	confirmCancellaArticolo = value;
  }

  API.confirmCancellaArticolo = function(){
	return confirmCancellaArticolo;
  }

  API.setDatasetSconti = function(value) {
      datasetSconti = value;
  }
  
  API.getDatasetSconti = function() {
      return datasetSconti;
  }
        
  API.setAddListenerRemoveArt = function(value) {
      addListenerRemoveArt = value;
  }
  
  API.addListenerRemoveArt = function() {
      return addListenerRemoveArt;
  }                                                          
  
  API.setAddListenerRemovePromo = function(value) {
      addListenerRemovePromo = value;
  }
  
  API.addListenerRemovePromo = function() {
      return addListenerRemovePromo;
  }   
  API.setAddToHomeScreen = function() {
      addToHomescreen({autostart: false});
  }

  API.showAddToHomeScreen = function() {
      addToHomeScreen.show();
  }
  
  API.setListenersSubMenuAdded = function() {
      listenerSubMenuAdded = true;
  }

  API.isListenersSubMenuAdded = function() {
      return listenerSubMenuAdded;
  }
  
    API.setCapofilaAutocomplete = function (data) {
        try {
            capofilaAutocomplete = [];
            for (var i = 0; i < data.length; i++) {
                capofilaAutocomplete.push(data[i].capofila.trim() + " - " + data[i].descr.trim());
                if (data[i].immagine.trim() == "") {
                    imgCapofilaAutocomplete[data[i].capofila.trim()] = data[i].capofila.trim();
                } else {
                    imgCapofilaAutocomplete[data[i].capofila.trim()] = data[i].immagine.trim();
                }
            }
        } catch {

        }
  }
  
  API.getCapofilaAutocomplete = function() {
      return capofilaAutocomplete;
  }
  
  API.getImgCapofilaAutocomplete = function() {
      return imgCapofilaAutocomplete;
  }
   
  API.setNumRigheCarrello = function(numRighe) {
   var mnuList = document.getElementsByClassName("menuItem");
    for (var idx = 0; idx < mnuList.length; idx++) {
      if ($(mnuList[idx]).attr("addrighe") == "1") {
          $(mnuList[idx]).attr("numrighe", numRighe);
      }
    }
   $(mnuList[idx]).attr("numrighe", numRighe);
   $(".numRigheCarrello").text(numRighe);
   // Aggiorno anche preview carrello
  }
  
  API.setNumRigheWishList = function(numRighe) {
    $(".numRighePreferiti").text(numRighe);
    numRigheWishList = numRighe;
  } 
 
  API.getNumRigheWishList = function() {
    return numRigheWishList;
  }    
  
  API.setBoxCapofilaOnTop = function(id, scarto) {
   try { 
    var idTop = $(id).offset().top;
    var barHeight = $("#statusBar").innerHeight();
    var mnuHeight = $("#divMenuTab").innerHeight();
    var boxPos = idTop - barHeight - mnuHeight - 5 - scarto;
    $([document.documentElement, document.body]).animate({ 
            scrollTop: boxPos }, 700);
   } catch {
   }
            
  }
  
  API.getNumRigheCarrello = function() {
    var numRighe = 0;
    var mnuList = document.getElementsByClassName("menuItem");
    for (var idx = 0; idx < mnuList.length; idx++) {
      if ($(mnuList[idx]).attr("addrighe") == "1") {
        numRighe = $(mnuList[idx]).attr("numrighe");
        break;
      }
    }
    return parseInt(numRighe);
  }
  
  
  API.getMenuAttivo = function() {
    // Ricerco il men� attivo in questo momento
   var actTab = document.getElementsByClassName("menuSelect");
   if ($(actTab).attr('id') == "showcatalogoLi") {
     CatalogoWidget.setLastCatalogoView($(".catalogoResultNew").html());
   }
  }
  
  API.setAllArtPromoPortale = function(data) {
      for( var i = 0; i < data.length; i++ ) {
       allArtPromoPortale.push(data[i].cod.trim() + " - " + data[i].descr);
       if (data[i].isarticolo == 0) {
         articoliPromo.push(data[i].cod.trim());
       }
      }
  }
  
  API.setArtMercatino = function(data) { 
      for( var i = 0; i < data.length; i++ ) {
       artMercatino.push(data[i].cod.trim());
      }
  }
    
  API.getArticoliPromo = function() {
    return articoliPromo;
  }
  
  API.getAllArtPromoPortale = function() {
    	return allArtPromoPortale;
  }
  
  API.getArtMercatino = function() {
    	return artMercatino;
  }  
  
  API.getListPromoArticolo = function(data, articolo){
	  var listPromo = []; 
	 
      for( var i = 0; i < data.artinpromo.length; i++ ) {
       if (data.artinpromo[i].articolo == articolo) {
		 var promoDett = [];
         //listPromo.push(data.artinpromo[i].promo);
		 promoDett.push(data.artinpromo[i].promo);
		 promoDett.push(data.artinpromo[i].descr_promo);	
		 promoDett.push(data.artinpromo[i].qta_min);			 
		 promoDett.push(data.artinpromo[i].qta_conf);			 
         promoDett.push(data.artinpromo[i].flg_conf);	
         promoDett.push(data.artinpromo[i].des_breve);
		 listPromo.push(promoDett);
       }
      } 
	  
	  return listPromo;
  }
  
  API.getMenuAttivoSave = function() {
		return menuAttivoSave;
  }
  
  API.setMenuAttivoSave = function(value) {	  
		menuAttivoSave = value;
  }
  
  API.setSpinner = function(value) {
    spinner = value;
  }
  
  API.getSpinner = function() {
    return spinner;
  }
    
  API.getTipListView = function() {
    return "Visualizza ad elenco";
  }
  
  API.getTipGridView = function() {
    return "Visualizza a griglia";
  }
  
  API.getTipReset = function() {
    return "Resetta le ricerche";
  }
  API.getTextPrimoAcquisto = function() {
    return "Scopri gli articoli a prezzo scontato in offerta per te";
  }

    API.getImgLoggato = function () {
        try {
            if (CommonApis.getSessionData().divisione.trim() == "") {
                return "/src/images/" + CommonApis.getSessionData().mandatario.trim() + "-loggato.png";
            } else {
                return "/src/images/" + CommonApis.getSessionData().divisione.trim() + "-loggato.png";
            }
        } catch {
            var idx = config.domini.indexOf(window.location.hostname);
            return "/src/images/" + config.img[idx];
        }
  }
    
  API.setHtmlRicercaClienti = function(value) {
    htmlRicercaClienti = value;
  }

  API.getHtmlRicercaClienti = function() {
    return htmlRicercaClienti;
  }  

  API.setMagazziniConsegna = function(value) {
    arrayMagazziniConsegna = value;
  }

  API.getMagazziniConsegna = function() {
    return arrayMagazziniConsegna;
  }
  
  API.setDestinazioni = function(value) {
    arrayDestinazioni = value;
  }

  API.getDestinazioni = function() {
    return arrayDestinazioni;
  }    

  API.getLimit = function(){
	return limit;
  }

  API.setHtmlMenu = function(value) {
    htmlMenu = value;
  }

  API.getHtmlMenu = function() {
    return htmlMenu;
  }

  API.setHtmlMenuMyAccount = function(value) {
    htmlMenuMyAccount = value;
  }

  API.getHtmlMenuMyAccount = function() {
    return htmlMenuMyAccount;
  }
 API.setMobile = function(value) {
    onMobile = value;
  }

  API.isMobile = function() {
    return onMobile;
  } 

  API.isHiderOn = function() {
    return !$('#hider').is(":hidden");
  }
  
  API.getPromoPlaceHolder = function() {
    return promoPlaceHolder;
  }
  
  API.getMaxWindowHeight = function() {
    if (isWorkspace) {
      maxWindowHeight = window.outerHeight - ($("#statusBar").outerHeight() * 3);
    } else {
       maxWindowHeight = (window.outerHeight / 3)*2;
    }
    
    return maxWindowHeight; 
  }
  
  API.getOffertePlaceHolder = function() {
    return offertePlaceHolder;
  }
    
  API.setSessionData = function(data) {
    sessionData = data;
  }
  
  API.getSessionData = function() {
     return sessionData;
  }


  API.clearArtPromoOrdine = function(){
	  artPromoOrdine = []; 
  }

  API.setArtPromoOrdine = function(data) {
  /*  if (data != undefined) {
      artPromoOrdine = data;
    } else {
      artPromoOrdine = []; 
    }
	*/
	artPromoOrdine.push(data);
  }
  
  API.getArtPromoOrdine = function() {
     return artPromoOrdine;
  }

  API.setDettaglioOrdine = function(data) {
    if (data != undefined) {
      dettaglioOrdine = data;
    } else {
      dettaglioOrdine = []; 
    }
  }
  
  API.getDettaglioOrdine = function() {
     return dettaglioOrdine;
  }

  API.setDettaglioWishList = function(data) {
    if (data != undefined) {
      dettaglioWishList = data;
    } else {
      dettaglioWishList = []; 
    }
  }
  
  API.getDettaglioWishList = function() {
     return dettaglioWishList;
  }

  API.setRicercaAvviataDaScanner = function(data) {
     ricercaAvviataDaScanner = data;
  }

  API.getRicercaAvviataDaScanner = function() {
    return ricercaAvviataDaScanner;
  }
  
  API.setScannerAttivo = function(data) {
     scannerAttivo = data;
  }

  API.getScannerAttivo = function() {
    return scannerAttivo;
  }
  


  API.setEnableInvioAgente = function(value) {
    abilitaSempreInvioAgente = value;
  }
  
  API.getEnableInvioAgente = function() {
     return abilitaSempreInvioAgente;
  }

  API.setActualTabIdx = function(idx) {
    actualTabIdx = idx;
  }
  
  API.getActualTabIdx = function() {
     return actualTabIdx;
  }
  
  API.setArrayCauDoc = function(data) {
    arrayCauDoc = data;
  }
  
  API.getArrayCauDoc = function() {
     return arrayCauDoc;
  }

  API.setPublicIp = function(ip) {
    publicIp = ip;
  }
  
  API.getPublicIp = function() {
     return publicIp;
  }
    
  API.getImgDir = function() {
     return imgDir;
  }

  API.componentToHex = function(c) {
    var hex = c.toString(16);
    return hex.length == 1 ? "0" + hex : hex;
  }

  API.rgbToHex = function(r, g, b) {
    return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
  }
  
  API.setDeleteArtAnnullati = function(value) {
    deleteArtAnnullati = value;
  }

  API.getDeleteArtAnnullati = function() {
    return deleteArtAnnullati;
  }

  API.setupSliderImmagini = function() {
     
  }
  
  API.requestWebParam = function() {
    
    var promoAutoAttive = true;
    if (readCookie("addPromoAuto") != null ) {
	    if (readCookieValue("addPromoAuto") == "0") {
	      promoAutoAttive = false;
	    } 
    } else {
      promoAutoAttive = false;
    }
    var webParam = {modoRicerca: "cascata",
                    stileFiltri: "elenco"}; 
    var parmMancanti = false;                    
    if (readCookie("webParameters") != null) {
      webParam = JSON.parse(readCookie("webParameters"));
    } else {
      parmMancanti = true;   
    }
    var parmDetail = document.createElement("div");
	  parmDetail.id = "webParameter";

     var parmDetailHtml = "<div class='modal-overlay'><div class='modal max-width-420'><div class='modal__header'><div class='modal__header-dot'></div>" +
                          "<span class='modal__header-title'>Parametri portale</span></div>" +
                          "<div class='modal__body'>";
      // Modalità ricerca 
      parmDetailHtml += "<div class='field-group'><div class='field-group__labelrow'><span class='field-group__label'>Modalit&Agrave; ricerca articoli</span>" +
                        "<span class='info-icon'>i<span class='tooltip'>Definisce come vengono cercati gli articoli. " + 
                        "<strong>Classica</strong>: ricerca semplice per nome. <strong>In cascata</strong>: filtra progressivamente per categoria, sottocategoria e nome.</span>" +
                        "</span></div><div class='segment ricercaSel'><label class='segment__option' id='opt-classica'>" +
                        "<input type='radio' name='ricerca' value='classica'";
      if (webParam.modoRicerca == "classica") {                        
        parmDetailHtml += " checked";
      }
      parmDetailHtml += "> Classica</label>" +
                        "<label class='segment__option segment__option--selected' id='opt-cascata'> " +
                        "<input type='radio' name='ricerca' value='cascata'";
      if (webParam.modoRicerca == "cascata") {                              
         parmDetailHtml += " checked";
      }
      parmDetailHtml += "> In cascata</label></div></div>";

      // Stile filtri 
      parmDetailHtml += "<div class='field-group'><div class='field-group__labelrow'><span class='field-group__label'>Stile filtri</span>" +
                        "<span class='info-icon'>i<span class='tooltip'>Controlla come vengono mostrati i filtri di ricerca. " + 
                        "<strong>Tendina</strong>: menu a discesa compatto. <strong>Elenco</strong>: opzioni sempre visibili a schermo.</span></span>" +
                        "</div><div class='segment filtriSel'><label class='segment__option' id='opt-tendina'>" +
                        "<input type='radio' name='filtri' value='tendina'";
      if (webParam.stileFiltri == "tendina") {     
           parmDetailHtml += " checked";
      }                
      parmDetailHtml += "> Tendina</label>" +
                        "<label class='segment__option segment__option--selected' id='opt-elenco'> " +  
                        "<input type='radio' name='filtri' value='elenco'";
      if (webParam.stileFiltri == "elenco") {     
           parmDetailHtml += " checked";
      }                         
      parmDetailHtml +="> Elenco</label></div></div>";

      // Toggle promo
      parmDetailHtml += "<div class='toggle-row'><div class='toggle-row__text'>" +
                        "<div class='toggle-row__titlerow'><p class='toggle-row__title'>Aggiungi promo automaticamente</p>" +
                        "<span class='info-icon'>i<span class='tooltip'>Se attivo, le promozioni disponibili vengono aggiunte in automatico al carrello senza intervento manuale.</span>" +
                        "</span></div><p class='toggle-row__subtitle'>Le promozioni vengono inserite in automatico</p></div>" +
                        "<label class='switch'><input type='checkbox' id='toggle-promo'";
      if (promoAutoAttive) {                       
        parmDetailHtml += " checked ";
      }
      parmDetailHtml +="><span class='switch__track'>" +
                        "<span class='switch__thumb'></span></span></label></div>";

       // Nota
       if (parmMancanti) {
        parmDetailHtml += "<div class='info-note'>Questi sono i parametri di default. Puoi modificarli in qualsiasi momento dal men&ugrave; <strong>Impostazioni</strong>.</div>";
       }
      // Footer 
      parmDetailHtml += "<div class='modal__footer'><button class='btn btn--secondary btnAnnullaWebParam'>Annulla</button>" + 
                        "<button class='btn btn--primary btnConfirmWebParam'>Conferma</button></div>" +
                        "</div></div></div>";              
    showHider();
	  parmDetail.innerHTML = parmDetailHtml;
	  
	  $("body").append(parmDetail);
    var radioRicerca = document.getElementsByName("ricerca");
    for (let i = 0; i < radioRicerca.length; i++ ) {
      if (radioRicerca[i].checked) {
        $(radioRicerca[i]).parent().addClass("segment__option--selected");
      } else {
          $(radioRicerca[i]).parent().removeClass("segment__option--selected");
      }
    }
    var radioFiltri= document.getElementsByName("filtri");
    for (let i = 0; i < radioFiltri.length; i++ ) {
      if (radioFiltri[i].checked) {
        $(radioFiltri[i]).parent().addClass("segment__option--selected");
      } else {
        $(radioFiltri[i]).parent().removeClass("segment__option--selected");
      }
    }

    $(".btnAnnullaWebParam").click(function (e) {
      closeDiv("webParameter");
    });	

    $(".ricercaSel").click(function (e) {
       var radioRicerca = document.getElementsByName("ricerca");
       for (let i = 0; i < radioRicerca.length; i++ ) {
         if (radioRicerca[i].checked) {
          $(radioRicerca[i]).parent().addClass("segment__option--selected");
         } else {
          $(radioRicerca[i]).parent().removeClass("segment__option--selected");
         }
       }
    });

    $(".filtriSel").click(function (e) {
       var radioFiltri= document.getElementsByName("filtri");
       for (let i = 0; i < radioFiltri.length; i++ ) {
         if (radioFiltri[i].checked) {
          $(radioFiltri[i]).parent().addClass("segment__option--selected");
         } else {
          $(radioFiltri[i]).parent().removeClass("segment__option--selected");
         }
       }
    });	

    $(".btnConfirmWebParam").click(function (e) {
       eraseCookie("addPromoAuto");       
       if ($("#toggle-promo").prop('checked')) {
        createCookie("addPromoAuto", "1", 365); 
       } else {
        createCookie("addPromoAuto", "0", 365);
       }
       var radioRicerca = document.getElementsByName("ricerca");
       var webParam = {}; 
       var modoRicerca = ""
       for (let i = 0; i < radioRicerca.length; i++ ) {
         if (radioRicerca[i].checked) {
          modoRicerca = $(radioRicerca[i]).val();          
         }
       }

       var radioElenco = document.getElementsByName("filtri");
       var tipoElenco = ""
       for (let i = 0; i < radioRicerca.length; i++ ) {
         if (radioElenco[i].checked) {
          tipoElenco = $(radioElenco[i]).val();
         }
       }
       webParam = {modoRicerca: modoRicerca,
                    stileFiltri: tipoElenco
                  };
       eraseCookie("webParameters");   
       createCookie("webParameters", JSON.stringify(webParam), 365);
       closeDiv("webParameter");
    });
  }
  
  API.changeColor = function(col, amt) {  
    var usePound = false;
  
    if (col[0] == "#") {
        col = col.slice(1);
        usePound = true;
    }
 
    var num = parseInt(col,16);
 
    var r = (num >> 16) + amt;
 
    if (r > 255) r = 255;
    else if  (r < 0) r = 0;
 
    var b = ((num >> 8) & 0x00FF) + amt;
 
    if (b > 255) b = 255;
    else if  (b < 0) b = 0;
 
    var g = (num & 0x0000FF) + amt;
 
    if (g > 255) g = 255;
    else if (g < 0) g = 0;
 
    return (usePound?"#":"") + (g | (b << 8) | (r << 16)).toString(16);
  }
  
  API.posizionaDiv = function(dialogdiv, tempImage1, tempImage2, imgdivClose) {
  }
  
  
  
  
  API.riempiArrayRigeneraDataObj = function (element){
		
	var arrayElemLoc = {};
  try {
	  for( var zi = 0; zi < element.length; zi++ ) {
      var capof = $.data(element[zi], 'data').cod_art;	
		
	    var dataEl = [];
	    $.each($.data(element[zi], 'data'), function(key, value) {
		  dataEl.push({ chiave: key, valore: value });			
	    });
	  
		//arrayElemLoc[]
      var name = element[zi].getAttribute("name");
		  arrayElemLoc[capof] = dataEl;
		  CommonApis.getDataArray()[name]=arrayElemLoc;
		}
	} catch {
  }
			
	
}


 API.rigeneraDataObj = function (element){

	  for( var zi = 0; zi < element.length; zi++ ) {		  
		  var cpf = element[zi].getAttribute("cpf");
		  var name = element[zi].getAttribute("name");
		 
		  var elemArray = CommonApis.getDataArray()[name][cpf];
		  
		  var oggettoData = { data: {} };
		  
		  $.each(elemArray, function(index, dati) {			
			var chiave = dati.chiave;
			var valore = dati.valore;
		//	$(element[zi]).data(dati.chiave, dati.valore); //crea l'elemento jquery ma non dentro il livello data
			oggettoData.data[chiave] = valore;
		});
		$(element[zi]).data(oggettoData);	  
		
	  }
	  

}
  
  
    
  return API;
}());





//import { jsPDF } from "jspdf";

var testodescr = "";
var ricercacod = "";
var ricercades = "";
//var imgdir= "./immagini_portale/";

var ruoloCorrente="";
var usernameCorrente = "";
var foundImage = true;
//var arrayCauDoc = [];
var mapCauDocParm = {};
var selectedCauDoc = "";
var clienteAttuale = "";
var ragSocAttuale = "";                       
var indAttuale = "";
var locAttuale = "";
var capAttuale = "";
var provAttuale = "";
var magazzinoCompetenza = "";
var listinoAttuale = "";
var arrayClienti = [];
var arrayClientiSconti = [];
var listaClienti;
var divHeight = $(window).height() / 2
var divWidth = $(window).width() / 2;
var dialogClienti;
var ricercaClienti;
var ricercaClientiSconti;
var ricercaClientiTable;
var ricercaClientiScontiTable;
var tableClienti;
var tableClientiSconti;
var mandatario;
var showImage=false;
var numScoGest=0;
var tableClientiOriginal = "";
var filtraCliente = false;
var giorniNoCons = [];
var oraMaxOrdini;
var abilitaCarrello = false;
var listCarrelloVuoto = "";
var listRitiriVuoto = "";
var nrCheck = 0;
var cookieName ="displayCookieConsent";
// var publicIp = "";
var dataConsegna = "";
var cursorX;
var cursorY;
var globalSpinner;
var magazzini = [];
var destinazioni = [];
var forza_data_cons = 0;
var attivoWeb = false;
var checkDisponibilita = 1;
var showMessageForAll = false;
var msgToShowForAll = {};
var maxPages = 10;
var totPages = 0;
var totPagesPromo = 0;
//var limit = 60;                                            
var appName;
var _MS_PER_DAY = 1000 * 60 * 60 * 24;
var cookieVetrina = "showcase";
var cookieVetrinaSave = "showcasesave";
var cookieCauDocSelected = "cauDocWeb";
var cookieCauDocAll = "cauDocWebAll";
var cookiePrimoAcquisto = "primoAcquistoAbilitato";
var cookieClienteSelezionato = "clienteSelezionato";
var cookieCatalogo = "kataCookie";
var isFromLogin = false;
var giacenzaMultiMand = "0";
var dftInvioAgente = "0";
var showLabelFunzione = "0";
var privacyPage = "";
var kataWidth = "";
var nomeSito = "";
var nrFax = "";
var nrTel = "";
var mail = "";
var backgroundColor = "";
var foregroundColor = "";
var suppTec = "";
var showMisura = "1";
var showLogoff = "1";
var otherWebLink = [];
var otherWebText = [];
var otherWebIcon = [];
var minOrdine = 0;
var windowBackgroundColor = "";
var windowForegroundColor = "";
var showConsegnaDestinatario = "";
var showInvioAgente = "1";
var showSelectionSignup = false;
var tableBackgroundColor = "";
var tableForegroundColor = "";
var signupTablePadding = "";
var showVisuraCamerale = "1";
var lastIdCarrello = "";
var promoErrate = [];
var totNetto = 0;
var mandatario = "";
var divisione = "";
//20200504 var abilitaSempreInvioAgente = 0;
var selectCausale = false;
var promoObbligatoriaPortale = false;
var mrkImgExt = "";
var showLastPromo = "0";
var showQtaInCatalogo = "0";
var ricercaCapofilaMonoarticolo = "0";
var showGiacenzaNumerica = "0";
var bloccaMinimoOrdine = "0";
var ricercaSempreArticoli = "0";
var loggato = false;
var showTreeMrk = "0";
var showTreeLinee = "0";
var splitDescr = "0";
//var tipiElencoPromo = [];
var dftElencoPromo = "";
var showTitoloCapofila = "";
var promoDaSconti = 0;
var altRowColor = "";
var showCodPromoVolantino = "";   
var creaUtenteOnLine = "0";
var logOffPage = "";
var arrayMenuLoggato = [];
var mapMenuLoggato = {};
var promoPallbox = "0";
var numClienti = 1;
var artImgExtension = "";
//var elencoMenuAbilitati = [];
var menuDinamici = false;
var divisioneObbligatoria = "0";
var nomeAzienda = "";
var utenteNonAssociato="L'utente non risulta associato a nessun cliente.\nRitentare e se il problema persiste contattare il supporto tecnico al numero suppTec";
var insPromoDirettamenteDaCatalogo = 0;

var faults = {
  CredenzialiNonValide:"Utente o password non valide.",
  UtenteInesistente:"Indirizzo e-mail non presente sul database.",
  TokenScaduto:"Limite temporale per modifica password scaduto!<br>nRieffettuare la richiesta.",
  PwdNonModificata:"Errore nel cambio della password!.",
  SelezionaCliente:"Selezionare prima il cliente!",
  TypeMismatch:"Se il problema persiste contattare il supporto tecnico al numero suppTec",
  FileNonTrovato:"Nessun file presente",
  ClienteNonInElenco:"Il cliente non &#232; nell'elenco dei propri clienti",
  RichiestaGiaPresente:"L'attivazione per questa Partita Iva &#232; gi&#224; stata richiesta. Attendere l'e-mail di conferma attivazione!",
  CarrelloNonSvuotato:"Errore nello svuotamento del carrello.<br>Ritentare e se il problema persiste contattare il supporto tecnico al numero suppTec",
  ErroreChiusuraCarrello:"Errore nella chiusura del carrello.<br>Ritentare e se il problema persiste contattare il supporto tecnico al numero suppTec",
  PartitaIVAErrata:"La partita IVA inserita non risulta presente nei nostri archivi.<br>Controllare di averla inserita correttamente oppure registrarsi come nuovo cliente.",
  TrackingError:"Errore nella visualizzazione del tracking.<br>Ritentare e se il problema persiste contattare il supporto tecnico al numero suppTec",
  Ritiro_Non_Inserito:"Errore nell'inserimento della richiesta di ritiro.<br>Ritentare e se il problema persiste contattare il supporto tecnico al numero suppTec",
  Errore_Primo_Acquisto:"Errore nella ricerca degli articoli in offerta.<br>Ritentare e se il problema persiste contattare il supporto tecnico al numero suppTec",
  GetClientiFrontendError:"Utente disabilitato o inesistente.<br>Ritentare e se il problema persiste contattare il supporto tecnico al numero suppTec",
  UtenteNonAssociato:"L'utente non risulta associato a nessun cliente.<br>Ritentare e se il problema persiste contattare il supporto tecnico al numero suppTec",
  SequenzaDoppia:"Il numero di sequenza inserito &#232; gi&#224; presente in questo volantino.<br>Modificare il numero di sequenza",
    BloccoCliente:"L'utenza &#232; stata bloccata per motivi amministrativi.<br>Contattare l'amministrazione per avere maggioni informazioni.",
}


var erroriPromo = {
  1:"Nell'ordine sono presenti articoli che non fanno parte della promo &codice. Togliere gli articoli errati o togliere la promo per poter chiudere l'ordine.",
  2:"Non &#232; stata raggiunta una delle condizioni della promo &codice. Aggiungere altri articoli o togliere la promo per poter chiudere l'ordine.",
  3:"L'articolo &codice ha uno sconto maggiore del consentito!",
  4:"L'articolo &codice ha un prezzo minore del consentito!",
  5:"L'articolo &codice non raggiunge la quantit&#224; minima richiesta dalla promo! Aumentare la quantit&#224; o togliere la promo per poter chiudere l'ordine.",
  6:"Gli articoli omaggio superano il massimo consentito per la promozione &codice.",
  7:"Gli articoli omaggio non sono quelli con prezzo minore.",
  8:"Si &#232; verificato un errore nella ricerca delle condizioni della promo &codice! Contattare il supporto tecnico.",
  9:"Si &#232; verificato un errore nella ricerca articoli omaggio della promo &codice! Contattare il supporto tecnico.",
  10:"Si &#232; verificato un errore nel controllo della promo &codice! Contattare il supporto tecnico."
}


function keyDetection(event) {
 
  var inputField = event.currentTarget.id;
  var fieldLen = $("#" + inputField).val().length;
  if ( event.keyCode == 13) {
    if ( inputField == "findPromoArt") {
       execFilterArticoliPromo();
    } else if ( inputField == "ricercacodElem" || inputField == "ricercacodElemMobile") {
       execFilter();
    } else if ( (inputField == "ricercadesElem" || inputField == "ricercadesElemMobile") && fieldLen > 0) {
       // Cancello gli autocomplete
       $( ".autocomplete-items" ).remove();
       execFilter();
    } else if ( inputField == "raffinaRicerca") {
       if (CatalogoFiltriWidget.isFirstFilter()) {
         CatalogoFiltriWidget.createRootTree("D");
       } else {
         CatalogoFiltriWidget.addNodesToTree();
       }
       execFilter();
    } else if (inputField == "selectMarchio" && fieldLen > 0) {
       var value = " " + $("#selectMarchio").val().toUpperCase();
       
       $("#selectMarchio").val("");
       $(".ui-menu-item").hide();
       execFilter();
    } else if (inputField == "password") {
       LoginWidget.checkCredentials();
    } else if (inputField == "newMail") {
       modificaMail(1);       
    } else if (inputField == "recoveryField") {
       LoginWidget.gestRecovery(1);
    } else if (inputField == "oldPwd") {
       modificaPwd(1);
    } else if (inputField == "newPwd") {
       modificaPwd(1);
    } else if (inputField == "newPwd2") {
       modificaPwd(1);
//    } else if ((inputField == "fastInsertCod" || inputField == "fastInsertQta") && $("#fastInsertCod").val() != "") {
//       inserimentoVeloce();
    } else if (inputField == "findPromoArt" && $("#findPromoArt").val() != "") {
       ricercaArticoliInPromo();
    } else if (inputField == "searchDoc") {
       DocumentiWidget.clearArrayDocToView();
       DocumentiWidget.addToArrayDocToView($("#" + inputField).val());
       $("#" + inputField).val("");
       var checks = document.getElementsByName("checkAnnoDoc");
       for (var i = 0; i < checks.length; i++) {
         if (checks[i].checked) {
           checks[i].checked = false;
         }
       }
       DocumentiWidget.showDocs();
    } else if (inputField = "findPrimoAcqArt") {
        OfferteWidget.execFilterArticoliOfferta();
    }
    /*
  }

  }  else {

   if ( inputField == "ricercacodElem" || inputField == "ricercadesElem") {

     if (event.keyCode == 8) {
        fieldLen --;
     }
     if (fieldLen == 0) {
       $("#filterButtonDiv ").hide();
     } else if (fieldLen > 0) {
       $("#filterButtonDiv ").show();
     }
     */
   } else if (inputField == "selectMarchio" || inputField == "selectCategoria" ) {
           if (event.keyCode == 40 && fieldLen == 0) {
             $("#" + inputField).val(' ');
           }
    } else if (inputField == "findPromoArt" && $("#findPromoArt").val() != "") {
       var btnHeight = $("#findPromoArt").outerHeight();
       var btnTop = $("#findPromoArt").offset().top;
       var btnLeft = $("#findPromoArt").offset().left + $("#findPromoArt").outerWidth() - btnHeight;
       $("#lenteRicercaPromo").css("width", btnHeight + "px");
       $("#lenteRicercaPromo").css("height", btnHeight + "px");
       $("#lenteRicercaPromo").css("top", btnTop + "px");
       $("#lenteRicercaPromo").css("left", btnLeft + "px");
       $("#lenteRicercaPromo").show();
    } else if (inputField == "ricercadesElem" && $("#ricercadesElem").val() != "") {
       
       /*
       var btnHeight = $("#ricercadesElem").outerHeight();
       var btnTop = $("#ricercadesElem").offset().top;
       var btnLeft = $("#ricercadesElem").offset().left + $("#ricercadesElem").outerWidth() - btnHeight;
       $("#lenteRicerca").css("width", btnHeight + "px");
       $("#lenteRicerca").css("height", btnHeight + "px");
       $("#lenteRicerca").css("top", btnTop + "px");
       $("#lenteRicerca").css("left", btnLeft + "px");
       $("#lenteRicerca").show();
       */
    } else if (inputField == "fastInsertCod" && $("#fastInsertCod").val() != "") {
       //$("#" + inpuntField).removeClass("display-none");
       $(".fastInsertBtn").removeClass("display-none"); 
    }

}

/*
function checkCredentials() {

    var pwd = "";
    if ($("#password" ).val() != "") {
	    pwd = CryptoJS.MD5($("#password" ).val()).toString();
    }
    var request =  { username:$("#username" ).val(),password:pwd};

    jolieCall( "checkCredentials", request, function( data ){

		if (data.ruoli.length > 1){

		for( var i = 0; i < data.ruoli.length; i++ ) {

		    $("#ruoliSelect").append("<option value='" + data.ruoli[i].ruolo + "'>" + data.ruoli[i].descrizione + "</option>");

		}
    var ruoliDiv = document.getElementById("ruoli");


    var dialog = $( "#ruoli" ).dialog({
      autoOpen: false,
      height: 300,
      width: 350,
		  modal: true});
      dialog.dialog( "open" );






		} else
		{

		ruoloCorrente =  data.ruoli[0].ruolo;
		sendLogin();


		}


	  },  function( error ) { showError(error.message) } );


}

function login(){

	ruoloCorrente = $("#ruoliSelect option:selected").val();

  //$("#ruoli").hide();
  $( "#ruoli" ).dialog( "close" );
	sendLogin();

}


function sendLogin(){

	var pwd = CryptoJS.MD5($("#password" ).val()).toString();
	var request =  { username:$("#username" ).val(),
                   password:pwd,
                   ruolo:ruoloCorrente};

	jolieCall( "login", request, checkSession, function( error ) { showError(error.message) } );



}     */

function showMenu() {

  $("#divMenuTab").empty();
  $("#divMenuTabMobile").empty();
  if (CommonApis.isMobile()) {
   $("#divMenuTabMobile").empty().html(CommonApis.getHtmlMenu());
  // aggiungiListeners();
  }  else {
   $("#divMenuTab").empty().html(CommonApis.getHtmlMenu()); 
  // aggiungiListeners();
  }
}

function resizeWindow() {
  setMobile();
  showMenu();
  segnalaMenuAttivo(CommonApis.getMenuAttivoSave());
  aggiungiListeners();
}


function setMobile() {

 var isMobile = false; //initiate as false
// device detection
if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) 
    || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) { 
    isMobile = true;
 }
if ($(window).width() >= 1024) {
  isMobile = false;
} else {
  isMobile = true;
} 

  CommonApis.setMobile(isMobile);
}

/*
function showMenuMobile() {
  $("#menu-movil").show();
}
*/

    
function initPage() {
  /* 04042018
  listCarrelloVuoto = "<div align='center'><table><tr><td class='section-title' id='labelFunzioneLoggato'></td>" +
                              "<td class='capofilaDescError'>NESSUN CARRELLO ATTIVO IN QUESTO MOMENTO</td>" +
                              "<td class='section-title' id='labelFunzioneLoggato'></td></tr></table>";
  */
  // 04042018
  // Link home
  //if (sessionStorage.getItem ( "htmlMenu" ) != undefined && isWorkspace) {
  //  $("#headerContainer").html(sessionStorage.getItem ( "htmlMenu" ) );
    //}
  /*
    var dominio = window.location.hostname;
    var mandConfig = JSON.parse(document.getElementById("webConfig").textContent);
    var idx = mandConfig.domini.indexOf(dominio);
    if (isWorkspace) {
        $("#statusBar").css("background-color", mandConfig.bgColor[idx]);
        $("#divMenuTab").css("background-color", mandConfig.bgColor[idx]);
        $("#statusBar").css("color", mandConfig.fgColor[idx]);
        $("#imgloggato").attr("src", CommonApis.getImgLoggato());        
    }
    */
    var spin = CommonApis.getSpinner();
    if (spin == undefined) {
        showSpinner();
    }
    //  controllo se mi arriva un capofila per fare la ricerca
    var query = location.href.substring((location.href.indexOf('?')+1), location.href.length);
    if (location.href.indexOf('?') != -1) {
        var namevalue = query.split('=');
        if (isPwdRecovery) {
            createCookie("tokenResetPwd", location.search.split('token=')[1], 1);
            removeHider();
            return;
        } else if (isWorkspace) {    
            if (namevalue[0] == "cpf") {
                createCookie("cpfFromUrl", unescape(namevalue[1]), 1);  
                eraseCookie("codFromUrl");
                eraseCookie("prmFromUrl");    
                eraseCookie("linFromUrl");     	
            } else if (namevalue[0] == "cod") {
                createCookie("codFromUrl", unescape(namevalue[1]), 1);        
                eraseCookie("prmFromUrl");    		      
                eraseCookie("cpfFromUrl");    
                eraseCookie("linFromUrl");     
            } else if (namevalue[0] == "prm") {
                createCookie("prmFromUrl", unescape(namevalue[1]), 1);		    
                eraseCookie("codFromUrl");        	      
                eraseCookie("cpfFromUrl");     
                eraseCookie("linFromUrl");     
            } else if (namevalue[0] == "lin"){
                createCookie("linFromUrl", unescape(namevalue[1]), 1);		    
                eraseCookie("codFromUrl");        	      
                eraseCookie("cpfFromUrl");     
                eraseCookie("prmFromUrl");     
            }
            location.href = location.href.substring(0, location.href.indexOf('?'));
        }   
    }
  try {
    if (isPwdRecovery) {
      return;
    }
  } catch {
  }
  
  if (isWorkspace) {
    
    $("#rimuoviArticolo").hide();
    //CommonApis.setAddToHomeScreen();
    aggiungiListenersWorkspace();
    // Creo cookie per divisione Promo
  }
  
  listCarrelloVuoto = "<div class='shopTable table-table table-grid'>" +
                      "<p class='capofilaDescError div-width-100 height100'>NESSUN ARTICOLO NEL CARRELLO IN QUESTO MOMENTO</td>" +
                      "</p></div>";
  listScontiVuoti = "<div class='shopTable table-table table-grid'>" +
                      "<p class='capofilaDescError div-width-100 height100'>NESSUNO SCONTO GESTIBILE PER IL CLIENTE</td>" +
                      "</p></div>";              
                                  
  $(window).resize(resizeWindow);
  /*
  $(document).on('focus click tap', 'input', function() {
    //$(this).attr("autocomplete", 'none');
  });
  */

  document.onmousemove = function(e){
                                     if (e != undefined) {
                                      cursorX = e.pageX;
                                      cursorY = e.pageY;
                                      if ($("#menuPrefs").is(":visible")) {
                                        var offset = $("#menuPrefs").offset();
                                        var left = offset.left;
                                        var right = offset.left + $("#menuPrefs").width();
                                        var bottom = offset.top + $("#menuPrefs").height();;
                                        if ((cursorX < left || cursorX > right) && cursorY > bottom) {
                                          var divMenu = document.getElementById("menuPrefs");
                                          document.getElementsByTagName("body")[0].removeChild(divMenu);
                                        }
                                      }
                                     }
                                    }
    
    $(document).scroll(function () {
       var actTab = document.getElementsByClassName("menuSelect");
       var tabText = $(actTab).text();
       var scroll = $(document).scrollTop();
       var statusBarHeight = $("#statusBar").height() + $("#divMenuTab").height() * 2;
       var pageHeight = $(window).height() - statusBarHeight;
       if (scroll > statusBarHeight) {
          $("#backToTop").fadeTo( "medium", 1);
          if (isWorkspace) {
             if (tabText == "CATALOGO") {
                //$("#filtriCatalogo").addClass("pos-fixed");
             } else if (tabText == "PROMOZIONI") {
             } else if (tabText == "ORDINE PALL-BOX") {
             }
          }
       //} else if (scroll > statusBarHeight && isWorkspace) {
       //    $("#backToTop").fadeTo( "medium", 1);   
       } else {
         $("#backToTop").hide();
          if (isWorkspace) {
            if (tabText == "CATALOGO") {
              //$("#filtriCatalogo").removeClass("pos-fixed");
            }
          }
       }
    });
    
    window.onscroll = function(ev) {
		
    var mnuList = document.getElementsByClassName("menuSelect");
    var procedi = false;
    for (var idx = 0; idx < mnuList.length; idx++) {
      if ($(mnuList[idx]).attr("demenu") == "CATALOGO") {
        procedi = true;
        break;
      }
    }
    
    if (!procedi) {
      return;
    }
    
		var i1 = window.innerHeight;
		var i2 = window.pageYOffset;
		var i3 = document.body.offsetHeight;
		var i4 = CatalogoWidget.getCurrentPage();
		var i5 = CatalogoWidget.getVisualizablePages();
		var i6 = CatalogoWidget.getPage();
		var carica = false;
		if ((window.innerHeight + window.pageYOffset) >= document.body.offsetHeight && CommonApis.isMobile() 
			&& CatalogoWidget.getPage() < CatalogoWidget.getVisualizablePages()) {	
      // Carico la pagina successiva			
          CatalogoWidget.setPage(CatalogoWidget.getPage() + 1);
		  carica = true;
		}else if ((window.innerHeight + window.pageYOffset) == window.innerHeight && CommonApis.isMobile() ) {	
      // Carico la pagina precedente			
          CatalogoWidget.setPage(CatalogoWidget.getPage() - 1);
		  carica = true;
		}
		
    
		 if (carica){
          //CatalogoWidget.setOffset((limit * CatalogoWidget.getPage()) - limit);  
		   CatalogoWidget.setOffset((CommonApis.getLimit * CatalogoWidget.getPage()) - CommonApis.getLimit);  
       CatalogoWidget.setResetPaginator(false);
       CatalogoWidget.setAppendCapofila(true);
       CatalogoWidget.showCapofila();
     }
      
    };

    aggiungiListenerMenu();
    setMobile();
    showMenu();

    $(function() {
      $.getJSON("https://api.ipify.org?format=jsonp&callback=?",
        function(json) {
          CommonApis.setPublicIp(json.ip);
      }
    );
  });
  $("#site-navigation").show();
  $(".main-navigation").show();
//  $("#footerId").css("top", $(window).height());
  //$("#hider").hide();
  removeHider();
  $("#menu-movil").hide();
  if (isWorkspace) {
    //$("#menuFrontend").hide();
  }
   /*20220914
  if ($("#ttl").html().indexOf("Area Riservata") > -1 || $("#ttl").html().indexOf("Login") > -1
      || $("#ttl").html().indexOf("Recupero Password") > -1 || $("#ttl").html().indexOf("Registrazione") > -1) {
   $("#menu-item-10").css("font-weight", "normal");
   $("#menu-item-11").css("font-weight", "bold");
  } else if ($("#ttl").html().indexOf("Catalogo") > -1) {
   $("#menu-item-10").css("font-weight", "bold");
   $("#menu-item-11").css("font-weight", "normal");
  }
  */
  if (readCookie(cookieName) == null) {
        showCookieInfo();
  }
  
  // Se clicco su bottone 3C mobile
  $(".navbar-toggle").click(function(e) {
    e.preventDefault();
    $(".navbar-collapse").toggleClass("in");
  });
    // Se clicco su bottone La Ferramenta mobile
  $(".header-button").click(function(e) {
    e.preventDefault();
    $(".btnMenuMobileLf").toggleClass("display-none");
  }); 
  $(".mfp-close").click(function(e) {
    e.preventDefault();
    $(".btnMenuMobileLf").toggleClass("display-none");
  }); 
    
  // Se entro nella login, segnalo privacy
  if (isLogin) {
             
    $("#loginTable").hide();
    $("#recuperoCredenziali").hide();

    // Controllo se arriva un parametro
    var query = location.href.substring((location.href.indexOf('?')+1), location.href.length);
    if(location.href.indexOf('?') < 0) query = '';
    querysplit = query.split('&');
    query = new Array();

    for(var i = 0; i < querysplit.length; i++){
      var namevalue = querysplit[i].split('=');
      if (namevalue[0] == "signup" && namevalue[1] == "true") {
        showSelectionSignup = true;
      }
    }
  }


  /*
  $(document).keypress(function(e) {
                    if (e.which == 13) {

                    execFilter();
                }
            });
   */
  //$("#selectAll").chosen({width:"100%"});
  $("#btnShowFilter").bind("click", (function() {openFilterPanel()}));
  // aggiungere eventuali altri dati che devono essere inizializzati
  checkSession();
  /*
  if (!isWorkspace) {
    CatalogoFiltriWidget.create("catalogoFilterOption");
    CatalogoWidget.create("catalogoResult", CatalogoFiltriWidget);
  }
  */
  if (document.getElementById('colophon') != undefined) {
    var footerHeight = document.getElementById('colophon').offsetHeight;
    var wdwHeight = window.innerHeight;
    var wdwOffset =  $(document).height();
    //20180409 var footerPos = wdwOffset - footerHeight + "px";
    var footerPos = wdwOffset + "px";
    //20180409 $("#colophon").css("top", footerPos);
    $("#colophon").css("bottom", "0");
    $("#colophon").css("position", "fixed");
    $("#colophon").css("width", "100%");
  }

  $("#blankSpace").hide();
  if (isWorkspace) {
     $("#colophon").hide();
  }
  $(document).ready(function () {

    // This will automatically grab the 'title' attribute and replace
    // the regular browser tooltips for all <a> elements with a title attribute!
  /*  $('[title]').qtip();
    $('[alt]').qtip();
    $('a[title]').qtip();
    $('a[alt]').qtip();*/
    // Disabilito copia/incolla su campi pwd

    });
  
  (function () {
    // creaStampa();

    // HTML5 spec, IE 5.5+, Firefox 6.0+
    if ("onbeforeprint" in window) {
        window.onbeforeprint = function () {
           
           preparaStampa();
        }
        window.onafterprint = function () {
           
             var printDiv = document.getElementById("printDiv");
             document.getElementsByTagName("body")[0].removeChild(printDiv);
        }
    }

    // Chrome 9+, Opera 12.1+, Safari 5.1+
    else if (window.matchMedia) {
        var mqList = window.matchMedia("print");

        mqList.addListener(function (mql) {
          if (mql.matches) {
            
             preparaStampa();
          } else {
             var printDiv = document.getElementById("printDiv");
             document.getElementsByTagName("body")[0].removeChild(printDiv);
          }
        });
    }

    // Your fallback method, only working for JS initiated printing
    else {
        (function (oldPrint) {
            window.print = function () {
                
                preparaStampa();
                oldPrint();
            }
        })(window.print);
    }
  })();

  if (!CommonApis.isMobile()) {
    $("#ricercadesElem").focus();
  } else {                                   
    $("#ricercadesElemMobile").focus();
  }
}


function preparaStampa() {
   var printDiv = document.createElement("div");
	 printDiv.id = "printDiv";

   if (isWorkspace) {
     var actTab = document.getElementsByClassName("menuSelect");
     printDiv.innerHTML = creaStampa($(actTab).attr("desmenu").toLowerCase());
   } else {
     printDiv.innerHTML = creaStampa("catalogo");
   }
   document.getElementsByTagName("body")[0].appendChild(printDiv);
   $("#printDiv").remove("#marcaImageMobile");
   window.print();
}


function creaStampa(tipoStampa) {
  var htmlContent="";
   if (tipoStampa == "catalogo") {
       htmlContent = $(".capofilaCatalogo ").html();
   } else if (tipoStampa == "tracking ordini") {
       htmlContent = "<div class='printClass' style='text-align: center;'>TRACKING DOCUMENTI</div> " +
       "<div class='printClass'>" + ragSocAttuale + "<br>" + indAttuale + "<br>" + capAttuale +
       "&nbsp-&nbsp" + locAttuale + "&nbsp(" + provAttuale + ")</div><div>" + $("#trackingPrt").html() + "</div>";
   } else if (tipoStampa == "sconti") {
       htmlContent = "<div class='printClass' style='text-align: center;'>SCONTI</div>" +
       "<div class='printClass'>" + ragSocAttuale + "<br>" + indAttuale + "<br>" + capAttuale +
       "&nbsp-&nbsp" + locAttuale + "&nbsp(" + provAttuale + ")</div><div>" + $("#tableGestSconti").html() + "</div>";
   } else if (tipoStampa == "documenti") {
       htmlContent = "<div class='printClass' style='text-align: center;'>DOCUMENTI</div>" +
       "<div class='printClass'>" + ragSocAttuale + "<br>" + indAttuale + "<br>" + capAttuale +
       "&nbsp-&nbsp" + locAttuale + "&nbsp(" + provAttuale + ")</div><div>" + $("#documentiTableDtg").html() + "</div>";
   } else if (tipoStampa == "carrello") {
       htmlContent="<div class='printClass' style='text-align: center;'>PROPOSTA D'ORDINE PORTALE</div>" +
       "<div class='printClass'>" + ragSocAttuale + "<br>" + indAttuale + "<br>" + capAttuale +
       "&nbsp-&nbsp" + locAttuale + "&nbsp(" + provAttuale + ")</div>" +
       "<div><table><th class='printTableH border-right-0-important' >&nbsp</th><th class='printTableH border-left-0-important'>Codice</th><th class='printTableH'>Descrizione</th>" +
       "<th class='printTableH'>Qta</th><th class='printTableH'>Prezzo</th><th class='printTableH'>Sconto</th>";
       var inputdata = $("#tableCarrello .inputQta");

       for (var i=0; i< inputdata.length; i++) {
         var imgPath = CommonApis.getImgDir() + divisione.trim() + "/" + $.data(inputdata[i], 'data').nom_imm_p.trim() + ".jpg"; 
         
         htmlContent = htmlContent + "<tr><td style='width: 64px;padding-top:10px; border:0px !important'><img src='" + imgPath + "' style='width:64px; height:48px'></td>" + 
                       "<td style='width: 20%;'>" + $.data(inputdata[i], 'data').cod_art.trim() + "</td>" +
                       "<td>" + $.data(inputdata[i], 'data').descr.trim() + "</td>" +
                       "<td style='text-align: right;'>" + inputdata[i].value + "</td>" +
                       "<td style='text-align: right;'>" + $.data(inputdata[i], 'data').prz_lordo.toFixed(3).toLocaleString().replace(".", ",") + "</td>" +
                       "<td style='text-align: right;'>" + $.data(inputdata[i], 'data').sco1.toLocaleString().replace(".", ",") + "</td></tr>";
       }
         //                                          });
     htmlContent = htmlContent + "</table></div>";
   }
   
   return htmlContent;
}


function setupRotator(className, idName, interval) {
    if ($('.' + className).length > 1) {
      $('.' + className +':first').addClass('current').fadeIn(1000);
      setInterval('textRotate(\"' + className + '\", \"' + idName + '\")', interval);
    } else {
      $('.' + className +':first').addClass('current').fadeIn(1000);
    }
}

function textRotate(className, idName) {
  var current = $('#' + idName + ' > .current');
  var currentClass = $('.current');
  var posLeft = $('.current').offset().left;
  var posTop = $('.current').offset().top;
  if (current.next().length == 0) {
    current.removeClass('current').fadeOut(1000);
    $('.' + className + ':first').addClass('current').fadeIn(1000);
  } else {
    current.removeClass('current').fadeOut(1000);
    current.next().addClass('current').fadeIn(1000);
  }
  /*
  $('#' + idName + ' > .current').css("left", posLeft + "px");
  $('#' + idName + ' > .current').css("top", posTop + "px");
  */
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	} else {
      var expires = "";
    }
	document.cookie = name+"="+value+expires+"; path=/";
}

function setCookie() {
  createCookie(cookieName, "y", 365);
  $("#cookieChoiceInfo").remove();

}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		  if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function readCookieValue(name) {
	var result = document.cookie.match(new RegExp(name + '=([^;]+)'));
  result && (result = JSON.parse(result[1]));
  return result;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function deleteAllCookies() {
  var cookies = document.cookie.split(";");
  for (var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i].split("=")[0];
    if (cookie.trim() != "addPromoAuto" && cookie.trim() != "prezziDoppi" && cookie.trim() != "hidePrezzi") {
       eraseCookie(cookie);
    }
  }
  window.location.replace("login.html");
}

function showCookieInfo() {
   var divCookie = document.createElement("div");
   divCookie.innerHTML = "<div id=\"cookieChoiceInfo\" class=\"bannerStyle\"><div class=\"contentStyle\">" +
                   "<span class=\"consentText\">Utilizzando il nostro sito web, si acconsente all'uso dei cookie anche di terze parti. Puoi modificare l'impostazione dei cookie dal tuo browser.</span>" +
                   "<a id='cookieLink' class=\"italybtn\" href=\"" + privacyPage + "\" target='_blank'>+Info</a>" +
                   "<a id=\"cookieChoiceDismiss\" class=\"italybtn\" onClick='setCookie()' href=\"#\">Ho capito</a></div></div>";
   document.getElementsByTagName("body")[0].appendChild(divCookie);
}

function gestCookies(value) {
 if (value == 1) {
   $("#privacyDiv").hide();
   //$("#hider").hide();
   removeHider();
   $('#username').focus();
 } else if (value == 2) {
   window.location.replace(logOffPage);
   window.title("Home |")
 } else if (value == 3) {
   $("#privacyDisclaimer").css("height",  "240px");
   $("#privacyDisclaimer").css("margin-top",  "-120px");
   $("#privacyDisclaimer").show();
 }  else if (value == 4) {
   $("#privacyDisclaimer").hide();
 }
}


function creaMenuLoggato() {
     var elencoMenu = CommonApis.getSessionData().elencoMenu;
     var gestSconti =  CommonApis.getSessionData().ges_sco_prt;     
     var cauDoc =  CommonApis.getSessionData().cau_doc;
     var numRighe = CommonApis.getSessionData().num_rig_ord;
     var divisione = CommonApis.getSessionData().divisione;
     var cauDocLength = CommonApis.getArrayCauDoc().length;
     

     if (gestSconti == 1) {
       createCookie("gestSconti", 1, 365);
     }
    
    abilitaMenu();

    if (cauDocLength == 1 && !menuDinamici) {
     // showSection(elencoMenu[0].descrizione.replace("show", "").replace("Li", "").trim());
    }
    
   
}


function sessionOk(data) {
    eraseCookie("datiFinali");
    eraseCookie("gestSconti");
    eraseCookie(cookiePrimoAcquisto);
    giacenzaMultiMand = data.mapperParms.giacenzaMultiMand;
    dftInvioAgente = data.mapperParms.dftInvioAgente;
    showLabelFunzione = data.mapperParms.showLabelFunzione;
    kataWidth = data.mapperParms.katawidth;
    nomeSito = data.mapperParms.nomesito.trim();
    nomeAzienda = data.mapperParms.nomeAzienda.trim();
    nrFax = data.mapperParms.nrFax.trim();
    nrTel = data.mapperParms.nrTel.trim();
    mail = data.mapperParms.mail.trim();
    backgroundColor = data.mapperParms.bgcolor;
    foregroundColor = data.mapperParms.fgcolor;
    suppTec = data.mapperParms.suppTec;
    showMisura = data.mapperParms.showMisura;
    showLogoff = data.mapperParms.showLogoff;
    privacyPage = data.mapperParms.privacyPage;
    otherWebLink = data.mapperParms.otherWebLink.split(";");
    otherWebText = data.mapperParms.otherWebText.split(";");
    otherWebIcon = data.mapperParms.otherWebIcon.split(";");
    minOrdine = parseInt(data.mapperParms.minOrdine);
    windowBackgroundColor = data.mapperParms.windowBgcolor;
    windowForegroundColor = data.mapperParms.windowFgcolor;
    tableBackgroundColor = data.mapperParms.tableBgColor;
    tableForegroundColor = data.mapperParms.tableFgColor;
    showConsegnaDestinatario = data.mapperParms.showConsDest;
    showInvioAgente = data.mapperParms.showInvioAgente;
    showVisuraCamerale = data.mapperParms.showVisuraCamerale;
    signupTablePadding = data.mapperParms.signupTablePadding;
    mrkImgExt = data.mapperParms.mrkImgExt;
    showLastPromo = data.mapperParms.showLastPromo;
    showQtaInCatalogo = data.mapperParms.showQta;
    ricercaCapofilaMonoarticolo = data.mapperParms.ricercaCapofilaMonoarticolo;
    showGiacenzaNumerica = data.mapperParms.showGiacenzaNumerica;
    bloccaMinimoOrdine = data.mapperParms.bloccaMinimoOrdine;
    ricercaSempreArticoli = data.mapperParms.ricercaSempreArticoli;
    showTreeMrk = data.mapperParms.showTreeMrk;
    showTreeLinee = data.mapperParms.showTreeLinee;
    splitDescr = data.mapperParms.splitDescr;
    //tipiElencoPromo = data.mapperParms.tipiElencoPromo.split(";");   
    dftElencoPromo = data.mapperParms.dftElencoPromo;
    showTitoloCapofila = data.mapperParms.showTitoloCapofila;
    altRowColor = data.mapperParms.altRowColor;
    showCodPromoVolantino = data.mapperParms.showCodPromoVolantino;
    logOffPage = data.mapperParms.logOffPage;
    promoPallbox = data.mapperParms.promoPallbox;
    creaUtenteOnLine = data.mapperParms.creaUtenteOnLine;
    artImgExtension = data.mapperParms.artImgExtension;
    promoDaSconti = data.promo_da_sconti;
    divisioneObbligatoria = data.mapperParms.divisioneObbligatoria;
    insPromoDirettamenteDaCatalogo = data.mapperParms.insPromoDirettamenteDaCatalogo;
    $("#cookieLink").prop("href", privacyPage);
    CommonApis.setSessionData(data);
    CommonApis.setDettaglioOrdine(data.dettaglioOrdine);
    CommonApis.setDettaglioWishList(data.dettaglioWishList);
    CommonApis.setVolantiniAttivi(data.volantini);
    CommonApis.setArticoliVolantini(data.volantini);
    CommonApis.setNumRigheWishList(data.num_art_wishList);
    //CommonApis.setArtPromoOrdine(data.artPromoOrdine);
    CommonApis.clearArtPromoOrdine();
   

    /*
    if (isWorkspace && data.issessionok) {
        $("#imgloggato").attr("src", CommonApis.getImgLoggato());
        $("#statusBar").css("background-color", backgroundColor);
        $("#divMenuTab").css("background-color", backgroundColor);
        $("#statusBar").css("color", foregroundColor);
        var divisioneLocal = data.divisione.trim();
        if (data.divisione.trim() == "") {
            divisioneLocal = data.mandatario.trim();
        }

        if (readCookie("divisioneAttiva") == null || readCookie("divisioneAttiva") == "") {
            createCookie("divisioneAttiva", divisioneLocal);
        }
    }
    */
    if (data.capofilaAutocomplete != undefined) {
        CommonApis.setCapofilaAutocomplete(data.capofilaAutocomplete);
    }

    if (data.categorie != undefined || data.marchi != undefined) {
        $('#levelSelector').empty();
        $('#mrkSelector').empty();
        CatalogoFiltriWidget.creaArrayMarchiCategorie(data);
    }
    if (data.artPromoOrdine != undefined) {
        for (var zx = 0; zx < data.artPromoOrdine.length; zx++) {
            CommonApis.setArtPromoOrdine({
                codPromo: data.artPromoOrdine[zx].cod_art,
                desPromo: data.artPromoOrdine[zx].des_art.trim()
            });
        }
    }

	  $(".table-th").css("background-color", tableBackgroundColor);
    if (showSelectionSignup) {
      showHider();
      LoginWidget.newUserRequest();
    } else {
      if (data.issessionok) {
       if (isWorkspace) {
         var arrDivisioni = data.divisioni_lis.split(",");
         if (readCookie("divisioneAttiva") == null || readCookie("divisioneAttiva") == "") {
            if (arrDivisioni.length > 1) {
               createCookie("divisioneAttiva", data.mandatario.trim(), 365);
            } else if (data.divisione == "") {
               createCookie("divisioneAttiva", arrDivisioni[0], 365);
            } else {
               createCookie("divisioneAttiva", data.divisione.trim(), 365);
            }
          }
         CatalogoWidget.setShowVetrina(false);
         if (data.cod_cl_des.trim() != "") {
           CatalogoWidget.setShowVetrina(true);
         }
         showHider();
         var imgFavicon = "/src/images/" + data.divisione.trim() + "favicon.png";
         $("#favicon").attr("href", imgFavicon);
         usernameCorrente = data.username;
			   ruoloCorrente = data.ruolo;
         mandatario = data.mandatario;
         numScoGest = data.num_sco;
         //20200504 abilitaSempreInvioAgente = data.web_enable_azi_age;
         CommonApis.setEnableInvioAgente(data.web_enable_azi_age);
         checkDisponibilita = data.ric_disp_web;
         numClienti = data.num_cli;
         if (data.cau_doc != null) {
           //arrayCauDoc = data.cau_doc.split(";");
           CommonApis.setArrayCauDoc(data.cau_doc.split(";"));
		       abilitaCarrello = true;
         } else {
			     abilitaCarrello = false;
		     }
         menuDinamici = false;     
         for (var i = 0; i < data.elencoMenu.length; i++) {
             if (data.elencoMenu[i].cod_nodo.trim() == "&sect;&sect;") {
              menuDinamici = true;
              break;
           }
         }              
         
         if (CommonApis.getArrayCauDoc().length > 1 || menuDinamici) {
           eraseCookie(cookieCauDocAll);                 
           createCookie(cookieCauDocAll, CommonApis.getArrayCauDoc());        
           for (var i = 0; i < CommonApis.getArrayCauDoc().length; i++) {           
             var cauParam = CommonApis.getArrayCauDoc()[i].split(":");
             mapCauDocParm[cauParam[0]] = cauParam[2].trim(); 
           }           
         }
         
         
         if (data.sc_primo_acquisto == 1) {
         //  CatalogoWidget.setMarchiPrimoAcquisto(data.marchiPrimoAcquisto);
         }
         
         var callGetClienti = checkClienteSelezionato(data);
         if (callGetClienti) {
             getClientiFrontend();
             return;
         }
         

         loginStatusBar = "<div class='pos-center-right'><ul id=\"loginStatusInfo\" class = \"loginStatusOptCl\"><li><div id='nomeUtenteInMenu'>Benvenuto " + usernameCorrente + "</div></li>";
         if (data.num_ruoli > 1) {
            loginStatusBar = loginStatusBar + "<li><div>Ruolo selezionato: " + data.ruolo_descr + "</div></li>";
         }
         loginStatusBar = loginStatusBar + "</ul></div>";
         loginStatusBar = loginStatusBar + "<div class='pos-center-right div-width-100'><ul id=\"loginStatusOptions\", class = \"loginStatusOptCl\">";
		     // whatsapp
         var d = new Date();
         var time = d.getHours() * 100 + d.getMinutes();
         if (CommonApis.getSessionData().mapperParms.whatsapp != undefined && CommonApis.getSessionData().mapperParms.whatsapp.trim() != ""
             && (time > 800 && time < 1200 || time > 1400 && time < 1900)) {
           loginStatusBar = loginStatusBar +  "<li><i class='fa-brands fa-whatsapp iconSize whatsappImg' title='Chatta con noi' alt='Chatta con noi' onMouseOver='hidePrefs()' ></i></li> ";
         }
         if (data.num_cli > 1) {
           loginStatusBar = loginStatusBar +  "<li><i class='fa-solid fa-users iconSize utenteImg' title='Cambia cliente' alt='Cambia cliente' onMouseOver='hidePrefs()' ></i></li> ";
         }
         if (CommonApis.getArrayCauDoc().length > 1 || (readCookie(cookieCauDocAll) != null && readCookie(cookieCauDocAll).split(",").length > 1) ) {
           loginStatusBar = loginStatusBar +  "<li><img src = '/src/images/" + data.divisione.trim() + "Changedoc.png' id='chgdocImg' title='Cambia documento' alt='Cambia documento' onclick=\"cambiaCausale()\" onMouseOver=\"hidePrefs()\" ></li> ";
         }
                  
         //loginStatusBar = loginStatusBar + " <li><i id='printWindow' class='fas fa-print iconSize printWindow' title='Stampa' alt='Stampa'></i></li>";
         loginStatusBar = loginStatusBar + " <li><i class='fas fa-cogs iconSize prefsImg' title='Impostazioni' alt='Impostazioni' \"></i></li>";
         //loginStatusBar = loginStatusBar + " <li><a href='/src/" + data.divisione.trim() + "GuidaPortale.pdf' target='_blank'><i class='fas fa-question iconSize' title='Manuale utente' alt='Manuale utente'></i></a></li>";
         loginStatusBar = loginStatusBar + " <li><i class='fa-regular fa-user iconSize myAccount' title='Il mio Account' alt='Il mio Account' onMouseOver=\"hidePrefs()\"></i></li>";
         loginStatusBar = loginStatusBar + " </ul></div>";
       	 
         $("#loginStatus").html(loginStatusBar);
         $("#loginStatusMobile").html(loginStatusBar.replace("loginStatusOptions", "loginStatusOptionsMobile").replace("whatsappImg", "whatsappImgMobile").replace("utenteImg", "utenteImgMobile").replace("prefsImg", "prefsImgMobile").replace("myAccount", "myAccountMobile"));
          
         $("#login").hide();
         $("#recuperoCredenziali").hide();

         CatalogoFiltriWidget.create("catalogoFilterOption");
         CatalogoWidget.create("catalogoResult", CatalogoFiltriWidget, false);
         // Se presente creo catalogo novita
         for (var x = 0; x < data.elencoMenu.length; x++) {
           if (data.elencoMenu[x].azione.trim() == "tabNovita")  {                                                                                          
             CatalogoWidget.create("catalogoNovitaResult", CatalogoFiltriWidget, true);
           }
         }
         abilitaMenu();
		     aggiungiListeners();
       } else {
         window.location.replace("workspace.html");
       }
       
       $("#ttl").text($("#ttl").text() + " " + nomeSito);
      // CatalogoWidget.caricaCatalogo();
       if ($("#showcaseDiv").html() == "") { 
         removeHider();
       }
      } else {
        if (isWorkspace) {
		      abilitaCarrello = false;
          window.location.replace(logOffPage);
          if ($("#showcaseDiv").html() == "" && document.getElementsByClassName("spinnerText").length == 0)  { 
            removeHider();
           }
                
        } else {
		      abilitaCarrello = false;
          $("#login").show();
		      $("#loginStatus").empty();
          $("#ruoloSelezionato").empty();
		      $("#ruoli").hide();
		      $("#ruoliSelect").empty();
		      $("#login input").val("");
          $("#listCapofila").empty();
          $("#tableArticoli").empty();
          $("#selezioneCliente").hide();
          $("#clienteSelezionato").empty();
          $("#causaleSelezionata").empty();
          $("#recuperoCredenziali").show();
          $("#catalogo").show();
          $("#ttl").text($("#ttl").text() + " " + nomeSito);
          /* 20251229 Alessandro: rivisto perchè faceva più giri
          if (!isLogin) {
            CatalogoWidget.caricaCatalogo();
          }
          */
          
          removeHider();
        }
      }
     /* 20251229 Alessandro: rivisto poco sotto
     if (!isWorkspace && !isLogin) {
        CatalogoFiltriWidget.create("catalogoFilterOption");
        if (showLabelFunzione == "0") {
         $("#labelFunzione").css("color", "white");
        }
        CatalogoWidget.create("catalogoResult", CatalogoFiltriWidget);
        //121119
         CatalogoWidget.caricaCatalogo();
        // 20251229 Alessandro: spostate in funzione post richiesta catalogo
        if ($("#showcaseDiv").html() == "" && document.getElementsByClassName("spinnerText").length == 0)  { 
          removeHider();
        }
        
     }
     */

     if (isWorkspace) {
       CatalogoWidget.caricaCatalogo();
     } else if (!isWorkspace && !isLogin) {
         CatalogoFiltriWidget.create("catalogoFilterOption");
         if (showLabelFunzione == "0") {
             $("#labelFunzione").css("color", "white");
         }
         CatalogoWidget.create("catalogoResult", CatalogoFiltriWidget);
         $("#ricercadesElem").focus();
     } else if (isLogin) {
       if (showLabelFunzione == "0") {
         $("#labelFunzione").hide();
       }
       $("#loginTable").show();
       $("#recuperoCredenziali").show();
       aggiungiListenersLogin();
     }

     /* 20251229 Alessandro: spostato sopra
     if (!isLogin && !isWorkspace) {
        $("#ricercadesElem").focus();
     }
     */
     
    }
     /* 20251229 Alessandro: spostate in funzione post richiesta catalogo
     aggiungiListenerNewsEventi();
     aggiungiListenerBoxNovita();
     aggiungiListenerBoxUltimiVisti();
     aggiungiListenerUltimiArrivi();
     aggiungiListenerBoxPromo();
     */
     
    if (sessionStorage.getItem ( "htmlMenu" ) == undefined && isWorkspace) {
       sessionStorage.setItem ( "htmlMenu", $("#headerContainer").html() );
    }
 
    if (readCookie("prmFromUrl") != null ) {
        CatalogoWidget.vaiAPromo(readCookie("prmFromUrl") );
        eraseCookie("prmFromUrl");    
    }     

}

function sessionNoOk(error) {
  if (isWorkspace) {
	  abilitaCarrello = false;
    if (logOffPage.trim() != "") {
      window.location.replace(logOffPage);
    } else {
      window.location.replace(logOffPage);
    }
                          
                          
                         // window.title("Home |")

  } else {
	  abilitaCarrello = false;
    $("#login").show();
	  $("#loginStatus").empty();
    $("#ruoloSelezionato").empty();
		$("#ruoli").hide();
		$("#ruoliSelect").empty();
		$("#login input").val("");
    $("#listCapofila").empty();
    $("#tableArticoli").empty();
    $("#selezioneCliente").hide();
    $("#clienteSelezionato").empty();
    $("#causaleSelezionata").empty();
    $("#recuperoCredenziali").show();
    $("#catalogo").show();
    if (!isLogin) {
      CatalogoFiltriWidget.create("catalogoFilterOption");
      CatalogoWidget.create("catalogoResult", CatalogoFiltriWidget);
      CatalogoWidget.caricaCatalogo();
      var lenteTop = $("#lenteSpan").offset().top;
      var ricercaTop = $("#searchSpan").offset().top; 
      if (lenteTop != ricercaTop) {
        $("#lenteSpan").css("top", ricercaTop + "px");
      }                          
    }
                         
  }
  removeHider();
}


function checkSession(){

  showHider();
	var request =  {calcolaNumRigheOrdine:true};

		jolieCall( "checkSession", request, sessionOk, sessionNoOk);

}


function checkClienteSelezionato(data) {
    
    //var idx = arrayMenuLoggato.indexOf("CARRELLO");
    var idx = $('#showcarrelliLi').index();
    var callGetClienti = false;
    //20210607 $('#tabMenu ul:first li:eq(' + idx + ') a').text("CARRELLO (" + data.num_rig_ord + ")");
    eraseCookie(cookiePrimoAcquisto);
    createCookie(cookiePrimoAcquisto, data.sc_primo_acquisto);
    /****
    if (readCookie("ultimoCli") !=  null) {
      var creaDoc = false;  
      var request =  { cod_cl_des:readCookie("ultimoCli").split(":")[2], cau_doc:readCookie(cookieCauDocSelected), creaDoc:creaDoc };        
      jolieCall( "getParametriClienteFrontend", request, setParametriCliente, function( error ) { showError(error.message) } );
      return;
    }
    */
    
    if (data.cod_cl_des.trim() != "" ) {

       // $("#selezioneCliente").hide();
        //$("#clienteSelezionato").html("Cliente selezionato: " + data.cod_cl_des.trim() + " - " + data.rag_soc_es + " " + "<button onclick=\"cambiaCliente()\" >Cambia cliente</button>"    );
      if (arrayClienti.length == 0) {
        $("#clienteSelezionato").html("Cliente: " + data.cod_cl_des.trim() + " - " + data.rag_soc_es);
		    $("#clienteSelezionatoMobile").html("Cliente: " + data.cod_cl_des.trim() + " - " + data.rag_soc_es);
      } else {
        $("#clienteSelezionato").html("Cliente selezionato: " + data.cod_cl_des.trim() + " - " + data.rag_soc_es);
		    $("#clienteSelezionatoMobile").html("Cliente selezionato: " + data.cod_cl_des.trim() + " - " + data.rag_soc_es);
      }
        var sessionData = CommonApis.getSessionData();
        clienteAttuale = data.cod_cl_des.trim();
        sessionData.cod_cl_con = data.cod_cl_con.trim();
        sessionData.cod_cl_des = data.cod_cl_des.trim();
        ragSocAttuale = data.rag_soc_es;
        magazzinoCompetenza = data.mag_comp;
        listinoAttuale = data.casc_lis.trim();
        sessionData.casc_lis = data.casc_lis.trim();
        CommonApis.setSessionData(sessionData);
        indAttuale = data.indir.trim();
        locAttuale = data.loc.trim();
        capAttuale = data.cap.trim();
        provAttuale = data.prov.trim();
        createCookie("clienteOk", 1);
        $("#clientiList").hide();
        //$("#clientiList").addClass("display-none");
        if (readCookie(cookieCauDocSelected) != null) {
          selectedCauDoc = readCookie(cookieCauDocSelected).split(":")[0];
        }
        // Se ho pi� di una causale e ancora non l'ho scelta, la richiedo adesso
       // if (arrayCauDoc.length > 1 && selectedCauDoc == "") {
        if (CommonApis.getArrayCauDoc().length > 1 && selectedCauDoc == "") {
         //creaSelettoreCausali(arrayCauDoc);
         creaSelettoreCausali(CommonApis.getArrayCauDoc());
       } else if (readCookie(cookieCauDocAll) != null && readCookie(cookieCauDocAll).split(",").length > 1) { 
       //(allCauPermesse != undefined && allCauPermesse.length > 1) {
         $("#causaleSelezionata").html("Documento attuale: " + readCookie(cookieCauDocSelected).split(":")[1]);
       } else if (CommonApis.getArrayCauDoc().length > 1 && selectedCauDoc != "") {
         $("#causaleSelezionata").html("Documento attuale: " + readCookie(cookieCauDocSelected).split(":")[1]);
       }   
       var changeCausale = readCookie("chkCauDoc");
       if (changeCausale != null) {
        //20220913 alessandro  abilitaMenu();       
       }
       // H2B 13-11-2019 Primo acquisto inserisco nella tabella i marchi
       if (CommonApis.getSessionData().num_rig_ord == undefined && data.num_rig_ord != undefined) {
         sessionData = CommonApis.getSessionData();
         sessionData.num_rig_ord = data.num_rig_ord;
         CommonApis.setSessionData(sessionData); 
       }

       creaMenuLoggato();
       if (readCookie(cookiePrimoAcquisto) == 1) {

          CatalogoWidget.riempiWorkspace();
          CatalogoWidget.setShowVetrina(false);
          if (CommonApis.getSessionData().abilita_tab_promo == 1) {
            CatalogoWidget.showVetrina("");
          }
       }    
       if (CatalogoWidget.getShowVetrina()  && ((readCookie("cpfFromUrl") == null && readCookie("codFromUrl") == null)) ) {
         CatalogoWidget.setShowVetrina(false);
         if (CommonApis.getSessionData().abilita_tab_promo == 1) {
           CatalogoWidget.showVetrina("");
         }
       }
           
    } else {



       if (arrayClienti.length == 0) {

         var spinnerText = "";         
         if (data.num_cli == 1) {   
            spinnerText = "Attendere... Impostazione parametri cliente in corso.";
         } else {
           
           spinnerText = "Attendere... Creazione elenco clienti in corso."; 
         }
   
         showHider(); 
         showSpinner();
         var top = $(".spinner").offset().top + 70;
         
         var htmlText = $("#spinner").html() + 
                        "<div class='spinnerText' style='font-size: 20px; position: absolute; text-align: center; font-weight: bold; " + 
                        "width: 100%; z-index: 2000000000; top: " + top + "px;'>" + 
                        spinnerText + "</div>";
         $("#spinner").empty().html(htmlText);
           callGetClienti = true;
         //getClientiFrontend();
        }
       
      }

    return callGetClienti; 

}



function getClientiFrontend() {

    var request =  { };

		jolieCallNoSpin( "getClientiFrontend", request, showClienti, function( error ) { showError(error.message);} );


}

function getClientiForSconti() {

      var request =  { };

		  jolieCall( "getClientiForScontiFrontend", request, showClientiForSconti, function( error ) { showError(error.message) } );


}

function showClienti(data) {

   showHider();
   //20210921 $("#progressDialog").hide();   
   creaArrayClienti(data);
   $('.spinnerText').remove();
   $('.spinner').remove();
   removeSpinner();
   showHider();
   if (data.clienti.length > 1) {
   //  ricaricaRicercaCli(data);
     //$("#spinner").empty();
     //var x = document.getElementsByClassName("spinnerText");
     //$("#spinner").removeClass("spinnerText");
     
     $( "#clientiList" ).show();
     //$("#clientiList").removeClass("display-none");
     $("#ricercaClienti").focus();
     $(".divHeader").css("color", windowForegroundColor);
     $(".divHeader").css("background-color", windowBackgroundColor);
     $("#clientiTable th").css("background-color", tableBackgroundColor);
     $("#clientiTable th").css("color", tableForegroundColor);
   }
   /* 20210921
    $("#progressBar").hide(); 
    $("#progressDialog").removeClass("progressDialog");   
	  $("#progressDialog").addClass("progressDialogHide");
    */ 
    
}

function showClientiForSconti(data) {

   if (data.clienti.length > 0) {
     creaArrayClientiSconti(data);
  // if (data.clienti.length > 1) {
  //   ricaricaRicercaCliSconti(data);
     showHider();
     $( "#clientiScontiList" ).show();
     $("#ricercaClientiSconti").focus();
     $(".divHeader").css("color", windowForegroundColor);
     $(".divHeader").css("background-color", windowBackgroundColor);
     $("#clientiTable th").css("background-color", tableBackgroundColor);
     $("#clientiTable th").css("color", tableForegroundColor);
  // }
  }  else {
    var info = "Non ci sono clienti da cui copiare gli sconti"
    showError( info, "Copia sconti", true )
  }
}

function execFilterClienti(tipo) {

	//var listaClientiFiltrati = listaClienti;
	var listaClientiFiltrati;
  if (tipo == "cli") {
    listaClientiFiltrati = listaClienti;
    var ricerca =  $('#ricercaClienti').val().toUpperCase();
  } else {
    listaClientiFiltrati = listaClientiSconti;
    var ricerca =  $('#ricercaClientiSconti').val().toUpperCase();
  }

  var selectedRb = $("input[name=ricercaRbCli]:checked").val();

  if (ricerca.length > 1) {
  var result = $.grep(listaClientiFiltrati.clienti, function(obj) {

                                                            		if (selectedRb == "descrizione") {
                                                            			return obj.rag_soc_es.indexOf(ricerca) >= 0;
                                                            		} else if (selectedRb == "codice") {
                                                            			return obj.cod_cli.indexOf(ricerca) >= 0;
                                                            		}
                                                            	}  );

  	if (ricerca.length > 0){
      filtraCliente = true;
      if (tipo == "cli") {
		    caricaElencoClienti(result);
      } else {
		    caricaElencoClientiSconti(result);
      }
	  } else {
      filtraCliente = false;
      if (tipo == "cli") {
		    caricaElencoClienti(listaClienti.clienti);
      } else {
		    caricaElencoClientiSconti(listaClienti.clienti);
      }
      }
	 }
}


function creaArrayClienti(data) {
    if (data.clienti.length > 1) {
      listaClienti = data;
      ricercaClienti = "<div id='ricercaClientiDiv'><div id='ricercaClientiHeader' class='divHeader'>Ricerca clienti</div>" +
                       "<div class='pos-center clientiSelector'>";
  
      ricercaClienti = ricercaClienti + "<div><b>Selezionare il cliente</b></div>";
  
      ricercaClienti = ricercaClienti + "<div class='ricercaInputuFld'> Ricerca <form><input class='inputFld' type='text' id='ricercaClienti' onkeyup='execFilterClienti(\"cli\")'></form>";
      if (CommonApis.isMobile()) {
        ricercaClienti = ricercaClienti + "<br>";
      }
      ricercaClienti = ricercaClienti + "<input type='radio' name='ricercaRbCli' value='descrizione' onclick='ricaricaRicercaCli()' checked ><b>Descrizione</b>" +
	        	                        "<input type='radio' name='ricercaRbCli' value='codice' onclick='ricaricaRicercaCli()' ><b>Codice</b></div> " +
                                        "</div>";
                                        
      caricaElencoClienti(data.clienti);
      ricercaClientiTable = "<div id='ricercaClientiTable' style='padding-top: 20;'>" + tableClienti + "</div>";
    
      $("#clientiList").empty();
      CommonApis.setHtmlRicercaClienti(ricercaClienti + ricercaClientiTable);
      $("#clientiList").html(CommonApis.getHtmlRicercaClienti());
      aggiungiListenerTabellaClienti();
    } else {
      settaCliente(data.clienti[0].cod_cli.trim());
    }
    if (attivoWeb) {
      $("#regweb").prop('checked', true);
    }

}
 
function creaArrayClientiSconti(data) {
    if (data.clienti.length > 1) {
      listaClientiSconti = data;
      ricercaClienti = "<div id='ricercaClientiScontiDiv'><div id='ricercaClientiHeader' class='divHeader'>Ricerca clienti</div>" +
                       "<div class='pos-center clientiSelector'>";
    
      ricercaClienti = ricercaClienti + "<div><b>Selezionare il cliente<br><span class='color-red'> DA CUI COPIARE</span></b></div>";
      ricercaClienti = ricercaClienti + "<div class='ricercaInputuFld'> Ricerca <form><input class='inputFld' type='text' id='ricercaClientiSconti' onkeyup='execFilterClienti(\"cliSco\")'></form>";
      if (isMobile) {
        ricercaClienti = ricercaClienti + "<br>";
      }
      ricercaClienti = ricercaClienti + "<input type='radio' name='ricercaRbCli' value='descrizione' onclick='ricaricaRicercaCli()' checked ><b>Descrizione</b>" +
		                              "<input type='radio' name='ricercaRbCli' value='codice' onclick='ricaricaRicercaCli()' ><b>Codice</b></div> " +
                                      "</div>";

    
      caricaElencoClientiSconti(data.clienti);
      ricercaClientiTable = "<div id='ricercaClientiScontiTable' style='padding-top: 20;'>" + tableClientiSconti + "</div>";
      var btnAnnulla = "<div class='pos-center-center btnCloseCliSconti margin-top-10 margin-bottom-5' divname='clientiScontiList'><div class='btnCloseDiv'>Annulla</div></div>";
      $("#clientiScontiList").empty().html(ricercaClienti + ricercaClientiTable + btnAnnulla);
      aggiungiListenerTabellaClientiSconti();
      disableScrolling();
    } 

}


function ricaricaRicercaCli() {

  var selectedRb = $("input[name=ricercaRbCli]:checked").val();
  attivoWeb = $("#regweb").is(":checked");
  $("#ricercaClienti").val();
  $("#ricercaClienti").prop('disabled', true);
  showSpinner();
//  $("#hider").css("z-index", "500");
  filtraCliente = false;
  //20200102 caricaElencoClienti(listaClienti);
  //20200102 ricercaClientiTable = "<div id='ricercaClientiTable'>" + tableClienti + "</div>";
  $("#clientiList").empty();
  $("#clientiList").html(CommonApis.getHtmlRicercaClienti());
  var radios = document.getElementsByName("ricercaRbCli");
  for (var i = 0; i <radios.length; i++) {
    radios[i].checked = false;
    if (radios[i].value == selectedRb) {
      radios[i].checked = true;
    }
  }
  if (attivoWeb) {
     $("#regweb").prop('checked', true);
  }
  removeSpinner();
  showHider();
  $("#ricercaClienti").prop('disabled', false);
  $("#ricercaClienti").focus();
  $("#clientiTable th").css("background-color", tableBackgroundColor);
  $("#clientiTable th").css("color", tableForegroundColor);
}

function ricaricaRicercaCliSconti(data) {

  filtraCliente = false;
  caricaElencoClientiSconti(data);
  ricercaClientiScontiTable = "<div id='ricercaClientiScontiTable'>" + tableClientiSconti + "</div>";
  $("#clientiScontiList").empty();
  $("#clientiScontiList").html(ricercaClientiSconti + ricercaClientiScontiTable);
  $("#ricercaClienti").focus();
}


function caricaElencoClienti(data) {

      if (attivoWeb && !filtraCliente) {
        filtraCliente = true;
      }
      if (tableClientiOriginal != "" && !filtraCliente ) {
        tableClienti = tableClientiOriginal;
      } else {
        tableClienti = "<div id=\"clientiTableDiv\"><table id=\"clientiTable\" >" + 
                     "<th>Codice</th>" + 
                     "<th>Ragione sociale</th>" + 
                     "<th class='colonnaNascosta'>Localit&#224</th>" + 
                     "<th>Prov</th>" + 
                     "<th class='colonnaNascosta'>Web</th>"+
					 "<th>   </th>";
        for( var i = 0; i < data.length; i++ ) {

          if (attivoWeb && data[i].attivoweb == 1 || !attivoWeb ) {
            var imgRegWeb = "./src/images/null.png";
            var titleReg = "";
            var imgSco = "./src/images/null.png";
            var titleSco = "";
            if (data[i].attivoweb == 1) {
              imgRegWeb = "./src/images/web.png";
              titleReg = "Registrato sul portale";
            }
            if (data[i].scontiinseriti == 1) {
              imgSco = "./src/images/sconto.png";
              titleSco = "Sconti inseriti";
            }
			
			var imgCliBloccato = "./src/images/null.png";
            if (data[i].bloccato == 1 && data[i].cliente_bloccato_enabled == 1 ) {
              imgCliBloccato = "./src/images/close_on.png";
              titleReg = "Cliente bloccato per motivi amministrativi, impossibile selezionare";
            }		
			
            arrayClienti[i] = data[i].cod_cli + ";" + data[i].rag_soc_es + ";" + data[i].loc + ";" +  data[i].prov  + "";
            if (i % 2 == 1) {
              tableClienti = tableClienti + "<tr class='alternateRow recordCliente' codCliente='" + data[i].cod_cli.trim() +"' cliBlk='" + data[i].bloccato +"', mandBlkEn='" + data[i].cliente_bloccato_enabled +"'>";
            } else {
              tableClienti = tableClienti + "<tr class='recordCliente' codCliente='" + data[i].cod_cli.trim() +"' cliBlk='" + data[i].bloccato +"', mandBlkEn='" + data[i].cliente_bloccato_enabled +"'>";
            }
            tableClienti = tableClienti + //"<td class='colonnaNascosta' style='width: 5%;'><div id=\"codcli\"><input type=\"checkbox\" onclick=\"scegliCliente(1)\" name=\"cli_arr[]\" value=\"" +
                                      //data[i].cod_cli + "\"></div></td>" +
                                      "<td class='cliTableTd div-width-8' alt='Scegli cliente' title='Scegli cliente'>" + data[i].cod_cli + "</td>" + 
                                      "<td class='cliTableTd div-width-50' alt='Scegli cliente' title='Scegli cliente'>" + data[i].rag_soc_es  + "</td>" + 
                                      "<td class='cliTableTd colonnaNascosta colLocalitaNascosta' alt='Scegli cliente' title='Scegli cliente'>" + data[i].loc + "</td>" + 
                                      "<td class='cliTableTd div-width-5' alt='Scegli cliente' title='Scegli cliente'>" + data[i].prov + "</td>" +
                                      "<td class='cliTableTd colonnaNascosta colWebNascosta'>" + 
                                      "<div class='pos-center-center'><div >" +
                                      "<img alt='" + titleReg + "' title='" + titleReg + "' src='" + imgRegWeb + "' width=18 height=18></div>" +                                      
                                      "</td>" +
                                      "<td class='cliTableTd div-width-5 colCliBloccatoNascosta'>" + 
                                      "<div class='pos-center-center'><div >" +
                                      "<img alt='" + titleReg + "' title='" + titleReg + "' src='" + imgCliBloccato + "' width=18 height=18></div>" +                                      
                                      "</td>" +								  
									  
									  "</tr>";                           
          }
         }
         
         if (data.length == 0) {
         imgRegWeb = "./src/images/null.png";
         tableClienti = tableClienti + "<tr><td class='min-width-5'>&nbsp</td>" +
                                      "<td class='cliTableTd min-width-5'>&nbsp</td>" +
                                      "<td class='cliTableTd min-width-55'>&nbsp</td>" +
                                      "<td class='cliTableTd min-width-30'>&nbsp</td>" +
                                      "<td class='cliTableTd min-width-5' style='width: 5%;' >&nbsp</td>" +
                                      "<td class='cliTableTd min-width-5' style='width: 5%;' ><img src='" + imgRegWeb + "' width=18 height=18></td>" + 
                                      "<td class='cliTableTd min-width-5' style='width: 5%;' ><img src='" + imgRegWeb + "' width=18 height=18></td>" +
                                      "</tr>";
         }
         tableClienti = tableClienti + "</table></div>";
                       //"<div align='center' style='padding-top: 10px;'><span class='buttonSpan'><button onClick='scegliCliente(1)'>Ok</button></span>";
                       //"<span class='buttonSpan'><button onClick='scegliCliente(0)'>Annulla</button></span>";

       }

     if (tableClientiOriginal == "") {
        tableClientiOriginal = tableClienti;
     }

     $("#ricercaClientiTable").empty().html(tableClienti);
     $("#clientiTable th").css("background-color", tableBackgroundColor);
     $("#clientiTable th").css("color", tableForegroundColor);

     $("#progressDialog").hide();
     $("#progressDialog").removeClass("progressDialog"); 
	 $("#progressDialog").addClass("progressDialogHide"); 
     
    aggiungiListenerTabellaClienti();                            
}


function caricaElencoClientiSconti(data) {

   tableClientiSconti = tableClienti = "<div id=\"clientiTableDiv\"><table id=\"clientiTable\" >" + 
                     "<th>Codice</th><th>Ragione sociale</th><th class='colonnaNascosta'>Localit&#224</th><th>Prov</th>";
   for( var i = 0; i < data.length; i++ ) {

     arrayClientiSconti[i] = data[i].cod_cli + ";" + data[i].rag_soc_es + ";" + data[i].loc + ";" +  data[i].prov  + "";
          
     var alternateRow = "";
     if (i % 2 == 1) {
       alternateRow = "alternateRow";            
     } 
     tableClientiSconti = tableClientiSconti + "<tr class='recordCliente " + alternateRow + "' codCliente='" + data[i].cod_cli.trim() +"'>" +
                                               "<td class='cliTableTd div-width-8'  alt='Scegli cliente' title='Scegli cliente'>" +
                                                data[i].cod_cli + "</td><td class='cliTableTd div-width-50 ' alt='Scegli cliente' title='Scegli cliente'>" +
                                                 data[i].rag_soc_es  + "</td><td class='cliTableTd colonnaNascosta colLocalitaNascosta' alt='Scegli cliente' title='Scegli cliente'>" +
                                                 data[i].loc + "</td><td class='cliTableTd div-width-5 ' alt='Scegli cliente' title='Scegli cliente'>" +
                                                 data[i].prov + "</td></tr>";
   }
   tableClientiSconti = tableClientiSconti + "</table>";
   
   //$("#ricercaClientiScontiTable").empty().html(tableClientiSconti);

}


function settaCliente(cod, esisteDoc) {

      var creaDoc = false;  
      if (esisteDoc != undefined) {
         creaDoc = !esisteDoc; 
      }
      if (CommonApis.getArrayCauDoc().length == 1) { 
        selectedCauDoc = CommonApis.getArrayCauDoc()[0].split(":")[0];
        createCookie(cookieCauDocSelected, CommonApis.getArrayCauDoc()[0], 365);
  
  //20220913 alessandro      abilitaMenu();
   // 20220930 Alessandro: creo cookie per ultimo cliente selezionato per rientrare con quello al login successivo
        createCookie("ultimoCli", CommonApis.getSessionData().username.trim() + ":" + CommonApis.getSessionData().ruolo.trim() + ":" + cod, 365); 
        var request =  { cod_cl_des:cod, cau_doc:selectedCauDoc, creaDoc:creaDoc };
        
        jolieCall( "getParametriClienteFrontend", request, setParametriCliente, function( error ) { showError(error.message) } );
      } else {
        createCookie(cookieClienteSelezionato, cod, 365);
        $("#clientiList").hide();
        //$("#clientiList").addClass("display-none");
        creaSelettoreCausali(CommonApis.getArrayCauDoc());
      }
   // }

}

function setParametriCliente(data) {
 //20201027 Alessandro: faccio anche qui la checksession per
 // recuperare i dati del cliente 
 
  if (CatalogoWidget.getArrayBanner().length == 0 && typeof data.news != 'undefined' && !isLogin) {
    CatalogoWidget.creaArrayBanner(data);
  } 
  CommonApis.setDettaglioOrdine(data.dettaglioOrdine);
  CatalogoWidget.setShowVetrina(true); 
  checkClienteSelezionato(data);
  CatalogoFiltriWidget.create("catalogoFilterOption");
  CatalogoWidget.create("catalogoResult", CatalogoFiltriWidget, false);
  CatalogoWidget.creaBannerNews();   
  CatalogoWidget.riempiWorkspace();
  CommonApis.setEnableInvioAgente(data.web_enable_azi_age);
  if ( $("#searchBar").is(":hidden") ) {
    $("#searchBar").show();  
  }
  checkSession();
  
  
}

function setCliente(newCodCli) {

   settaCliente(newCodCli);

   //$("#hider").hide();
   /* 20180509
   removeHider();
   $("#clientiList").hide();
   if (selectCausale) { 
     showHider();
		 $("#causali").show();
   }   
   */
}

function scegliCliente(value) {
  // Controllo se ho fatto pi� di una scelta
  if (value == 1) {
    var scelti = 0;
    var newCodCli = "";
    var cod_cli = document.getElementsByName("cli_arr[]");
    for (var i = 0; i < cod_cli.length; i++) {
      if (cod_cli[i].checked == true) {
       newCodCli = cod_cli[i].value;
       scelti ++;
      }
      if (scelti > 1) {
        break;
      }
    }
    if (scelti > 1) {
      showError("Selezionare solo un cliente!");
    } else {
      settaCliente(newCodCli);
      //$("#hider").hide();
      removeHider();
      $("#clientiList").hide();
      //$("#clientiList").addClass("display-none");
    //  $( this ).dialog( "close" );
    }
  } else if (value == 0) {
    //$("#hider").hide();
    removeHider();
    $("#clientiList").hide();
    //$("#clientiList").addClass("display-none");
  }
}

function scegliClienteSconti(value) {
  // Controllo se ho fatto pi� di una scelta
  if (value == 1) {

  } else if (value == 0) {
    //$("#hider").hide();
    removeHider();
    $("#clientiScontiList").hide();
  }
}

function cambiaCliente(){
  if (CommonApis.isHiderOn()) {
    removeHider();
  }
// 20210607  $("#tabMenu").tabs( "option", "active", 0 );
  showHider();
  var request =  {};

    jolieCall( "cambiaCliente", request, function(data){
                                                        if (!CommonApis.isHiderOn()) {
                                                           showHider();
                                                        }
                                                        clienteAttuale="";
                                                        listinoAttuale="";
                                                        ragSocAttuale = "";
                                                        indAttuale = "";
                                                        locAttuale = "";
                                                        capAttuale = "";
                                                        provAttuale = "";
                                                        var cod_cli = document.getElementsByName("cli_arr[]");
                                                        for (var i = 0; i < cod_cli.length; i++) {
                                                          if (cod_cli[i].checked == true) {
                                                            cod_cli[i].checked = false;
                                                          }
                                                        }
                                                        if (typeof listaClienti == 'undefined') {
                                                           getClientiFrontend();
                                                        } else {
                                                          showHider();
                                                          ricaricaRicercaCli();


                                                          $( "#clientiList" ).show();
                                                          //$("#clientiList").removeClass("display-none");
                                                          $("#clientiTable th").css("background-color", tableBackgroundColor);
                                                          $("#clientiTable th").css("color", tableForegroundColor);
                                                        //$("#carrelli").empty();
                                                        //$("#tracking").empty();
                                                        //$("#promo").empty();
                                                          $("#carrelli").hide();
                                                          $("#tracking").hide();
                                                          $("#promo").hide();
                                                          $( "#tablePromo" ).empty()
                                                          $("#catalogoResult").hide();
                                                          $("#sconti").hide();
                                                          $("#showCatalogoLi").css("font-weight", "normal");
                                                          $("#showPromoLi").css("font-weight", "normal");
                                                          $("#showCarrelliLi").css("font-weight", "normal");
                                                          $("#showTrackingLi").css("font-weight", "normal");
														  $("#showWishListLi").css("font-weight", "normal");
                                                          $("#showGestScoLi").css("font-weight", "normal");
                                                          CatalogoFiltriWidget.removeFilter();
														  aggiungiListenerTabellaClienti();
                                                        //checkSession(data)
                                                        }
                                                        }, function( error ) { showError(error.message) } );

}



function logout(){

    $("#paginator").hide();
    $("#paginator2").hide();
    var cookies = document.cookie.split(';');
    //var cookiesToErase = [];
    for (let i = 0; i < cookies.length; i++) {
      if (CommonApis.getCookiesToMantain().indexOf(cookies[i].split("=")[0].trim()) == -1) {
    //    cookiesToErase.push(cookies[i].split("=")[0].trim());
        eraseCookie(cookies[i].split("=")[0].trim());
      }
    }
    
    localStorage.clear();
    sessionStorage.clear();
	var request =  {};

	jolieCall( "logout", request, checkSessionLogout, function( error ) { showError(error.message) } );



}

function checkSessionLogout() {
    eraseCookie("sid");
    //checkSession();
    window.location.replace(logOffPage);
}

function showError(err, isWarning) {

  //isHiderOn = !$('#hider').is(":hidden");
  var dialogdiv = document.createElement("div");
  dialogdiv.id = "errorDiv";                                                        
  var showDiv = true;
  var errorText = "";
  if (err == "Sessione_Non_Valida") {
		errorText = "Sessione non valida. Reinserire le credenziali di accesso";
  } else if (err == "PwdNonCorretta") {
     errorText =  "Password non corretta! Reinserirla";
     $("#oldPwd").addClass("backg-red");
  } else if (faults[err] == undefined) {
    errorText = err;
  } else {
	  errorText =  faults[err].replace("suppTec", suppTec);
  }
  var wdwTitle = "Errore";
  var htmlError = "<div class='modal-overlay padding-2rem'><div class='modal-ovf-hidden max-width-360'>";
  if (isWarning != undefined) {
    htmlError += "<div class='modal__header__warning'>";
    wdwTitle = "Attenzione";
  } else {
    htmlError += "<div class='modal__header__error'>";
  }
   htmlError += "<div class='modal__header-dot'></div>" + 
                 "<span class='modal__header-title'>" + wdwTitle + "</span></div>" +
                 "<div class='modal__body-error'>";
  if (isWarning != undefined) { 
    htmlError += "<div class='warning-box'><div class='warning-icon'>" +
                  "<svg viewBox='0 0 24 24' fill='none' stroke='#d97706' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'>" +
                  "<path d='M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/>" +
                  "<line x1='12' y1='9' x2='12' y2='13'/>" +
                  "<line x1='12' y1='17' x2='12.01' y2='17'/></svg></div>" +
                  "<div class='warning-text'><p class='warning-title'>Attenzione!</p>" +
                  "<p class='warning-desc'>" + errorText +"</p></div></div>";                
  } else {
    htmlError += "<div class='error-box'><div class='error-icon'>" +
                 "<svg viewBox='0 0 24 24' fill='none' stroke='#dc2626' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'>" +
                 "<circle cx='12' cy='12' r='10'/><line x1='15' y1='9' x2='9' y2='15'/>" +
                 "<line x1='9' y1='9' x2='15' y2='15'/></svg></div>" +
                 "<div class='error-text'><p class='error-title'>Si &egrave; verificato un errore!</p>" +
                 "<p class='error-desc'>" + errorText + "</p></div></div>";
  }
  htmlError += "<div class='modal__footer-error'><button class='btn btn--primary btnCloseErr'>Ok</button></div></div>";
  if (showDiv) {
	  dialogdiv.innerHTML = htmlError;
	  $("body").append(dialogdiv);
    $("#hider").addClass("zindex-50000");
    $(".btnCloseErr").click(function (e) {
      closeDiv("errorDiv");
    });
  }
}

function showWarning(err) {

  var dialogdiv = document.createElement("div");
  dialogdiv.id = "warnDiv";
  var htmlError = "<div class='divWarningHeader' id=\"warnHeader\">Attenzione!</div><div id=\"tableWarning\"><table><tr><td><img src='./src/images/Warning.png'></td><td id=\"textWarning\">";
  if (faults[err] == undefined) {
    htmlError = htmlError + err;
  } else {
		htmlError = htmlError + faults[err];
	}
  htmlError = htmlError + "</td></tr></table></div><div class='dialogSep'></div><div id=\"btnWarn\" class=\"buttonError\"><button onclick='removeDialog(\"warnDiv\")'>Ok</button></div>";

	dialogdiv.innerHTML = htmlError;

	document.getElementsByTagName("body")[0].appendChild(dialogdiv);
  showHider();
  var warnHeight = 180;
  $("#warnDiv").show();
  $("#warnDiv").css("width", "300px");
  $("#warnDiv").css("height", warnHeight + "px");
  var warnOffset = $("#warnDiv").offset();
  var btnOffset = $("#btnWarn").offset();
  var warnBottom = warnOffset.top + $("#warnDiv").outerHeight();
  var btnBottom = btnOffset.top + $("#btnWarn").outerHeight();
  if (btnBottom > warnBottom ) {
    var warnHeight = btnBottom - btnBottom + $("#warnDiv").outerHeight() + 10;
    $("#warnDiv").css("height", warnHeight + "px");
  }
  var warnTop = warnHeight / 2;
  $("#warnDiv").css("margin-left", "-150px");
  $("#warnDiv").css("margin-top", warnTop + "px");
  $("#warnDiv").css("left", (window.innerWidth - 300) / 2 + 'px');
	$("#warnDiv").css("top", ((window.innerHeight - 150) / 2) + $(window).scrollTop() + 'px');
 // $("#warnDiv").css("z-index", "205");
  $("#warnDiv").addClass("zindex-55000");
}

function showInfo( info, title ) {

  var dialogdiv = document.createElement("div");
  dialogdiv.id = "infoDiv";
  var htmlInfo = "<div class='divHeader'>" + title + "</div><div id=\"textInfo\"><p class='h2bParagraph'>" + info +
                 "</p></div><div class='dialogSep'></div>" +
                 //"<div class=\"buttonError\"><button onclick='removeDialog(\"infoDiv\")'>Ok</button></div>";
                 "<div class='pos-center-center buttonErrorClose buttonError' divname='" + dialogdiv.id + "'><div class='btnCloseDiv'>Ok</div></div>";

  dialogdiv.innerHTML = htmlInfo;

  document.getElementsByTagName("body")[0].appendChild(dialogdiv);
  showHider();
  $("#infoDiv").show();
  $("#infoDiv").addClass("flex-column");
  aggiungiListenersErrorDiv();
  var infoHeight = 150;
  $(".divHeader").css("color", windowForegroundColor);
  $(".divHeader").css("background-color", windowBackgroundColor);

}

function removeDialog(dialogId) {
  $("#" + dialogId).remove();
  if (dialogId == "errorDiv" && $("#validaCarrello").is(":visible") && !$("#couponField").is(":visible") && !$("#dataConsegnaPicker").is(":visible")) {
    $("#validaCarrello").hide();
  }
  //$("#hider").hide();
  if (dialogId == "mailChgDiv" || dialogId == "pwdChgDiv") {
    $("#hider").removeClass("zindex-50000");
  } else if (CommonApis.isHiderOn()) {
    removeHider();
  }

  //$("#hider").css("z-index", "50000");
  if (dialogId == "errorDiv" && 
    document.getElementsByClassName("menuSelect").tabMenu.innerText == "SCONTI") {
    $("#hider").hide();
  } else {
    $("#hider").addClass("zindex-9900");
  }

}

function removeDialogAndLogin(dialogId) {
  $("#" + dialogId).remove();
  //$("#hider").hide();
  removeHider();
  showLogin();
}

function removeDialogAndLogoff(dialogId) {
  $("#" + dialogId).remove();
  logout();
}

function jolieCall( operation, request, callback, errorHandler ) {

var isError = function( data ){
	if ( data != null && typeof data.error != "undefined") {
		return true;
	}  else
	{
		return false;
	}

  }

 
 var spin = CommonApis.getSpinner();
 if (spin == undefined){
	showSpinner();
 }
	$.ajax({
            url: '/' + operation,
            dataType: 'json',
            data: JSON.stringify( request ),
            type: 'POST',
            contentType: 'application/json',
            success: function( data ) {

                    removeHider();
                    removeSpinner();


			        if (isError(data)){
                      errorHandler( data.error );
                    } else {
                      callback( data );
                    }    

                    },
           error: function( errorType, textStatus, errorThrown) {

		          try {
			         spinner.stop();
                     removeHider();			
		          }  catch (error) {

		          }
				  
		          if (errorType.status == 500 && errorType.responseJSON.error != "undefined"){
		 	        errorHandler(errorType.responseJSON.error);
		          }
            }
        });
}


function jolieCallNoSpin( operation, request, callback, errorHandler ) {

var isError = function( data ){
	if ( data != null &&  typeof data.error != "undefined") {
		return true;
	}  else
	{
		return false;
	}

}

	$.ajax({
            url: '/' + operation,
            dataType: 'json',
            data: JSON.stringify( request ),
            type: 'POST',
            contentType: 'application/json',
            success: function( data ) {


			if (isError(data)){
                    errorHandler( data.error );
               } else {
                    callback( data );
               }

            },
            error: function( errorType, textStatus, errorThrown) {

				if (errorType.status == 500 && errorType.responseJSON.error != "undefined"){
					errorHandler(errorType.responseJSON.error);
				}else{
					alert( errorThrown );
				}

				
				
            }
        });
}


function mouseOverImage(codImg) {

     disableScrolling();
     CatalogoWidget.setActualImage(codImg);
     
     var datiCatalogo = CatalogoWidget.getCapofilaImg();
     var imgPath = "";
     showImage = true;
	 var divisioneLocal = divisione.trim();
	 if (divisione.trim() == ""){
		divisioneLocal = mandatario.trim();
	 }
	 
     $("#bigImageDiv").remove();
     //H2B Alessandro 20190616 descImg = descImg.replace(/%22/g, "\"").replace(/%27/g, "'");
     for (var i = 0; i < datiCatalogo.length; i++ ) {
       //var datiCapofila = datiCatalogo[i].splti(":"); 
       if (datiCatalogo[i].immagine.trim()== codImg.trim()) {
         descImg = datiCatalogo[i].desc_est.trim().replace(/%22/g, "\"").replace(/%27/g, "'");
         imgPath = CommonApis.getImgDir() + divisioneLocal.trim() + "/" + codImg.trim();		 
         break;
       }
     } 
	 
	 var imgSQ = imgPath;
	 var imgHQ = CommonApis.getImgDir() + divisioneLocal.trim() + "/HQ/" + codImg.trim();	;
	 
  var request =  {	  
          path: CommonApis.getImgDir() + divisioneLocal.trim() + "/HQ/",
		  nome_file: codImg.trim(),
		  estensione: ".jpg"
  }
  
  jolieCallNoSpin( "checkExistFile", request, function(data) {
																
																if (data.$ == true){
																	imgPath = imgHQ;
																}else{
																	imgPath = imgSQ;
																}
                                                               mouseOverImageShowImage(descImg, imgPath);
															   //CatalogoWidget.showBigImage(descImg, imgPath)
                                                               }, function( error ) { showError(error.message) } );

}

function mouseOverImageShowImage(descImg, imgPath) {

	   var imgdiv = document.createElement("div");
	   imgdiv.id = "bigImageDiv";

     imgdiv.innerHTML = "<div class='flex-column img-magnifier-container'><img id='bigImageDivId'  src = " 
                        //+ imgPath.trim() + ".jpg title = ' " + descImg + "' onclick='closeDiv(\"" + imgdiv.id + "\")' id='bigImageImg'>" + 
                        + imgPath.trim() + ".jpg title = ' " + descImg + "' id='bigImageImg'>" +
                        "<div class='cpfBigImgDescrContainer'><div id='bigImgDescr' class='capofilaDescImage'>" + descImg + "</div></div></div>";

     var imgdivClose = document.createElement("div");
	   imgdivClose.id = "bigImageButton";
	   imgdivClose.className="bigImageButtonCls";
	   imgdivClose.setAttribute("idDiv", imgdiv.id);
     imgdivClose.innerHTML = "<img src = '/src/images/Close-icon.png' title='Chiudi' alt='Chiudi'>"; 
                          
     var height = window.innerHeight + "px";
     showHider();
	 document.getElementsByTagName("body")[0].appendChild(imgdiv);
	 document.getElementsByTagName("body")[0].appendChild(imgdivClose);
	 
     var imgWidth = 640;
     var imgHeight = 480;

    if (CommonApis.isMobile()) {
       imgWidth = 320;
       imgHeight = 240;
     }
	 
     var divWidth = imgWidth ;
     var divHeight = imgHeight ;
	 var s3 = window.innerWidth;
	 var s4 = window.innerHeight;
	   imgdiv.style.left = (window.innerWidth - divWidth) / 2 + 'px';
	   imgdiv.style.top =  ((window.innerHeight - divHeight) / 2) + $(window).scrollTop() + 'px';

     if (isWorkspace) {
      // 20210607 var activeTabIdx = $('#tabMenu').tabs('option','active');
      // 20210607 var selector = '#tabMenu > ul > li';
      // 20210607 var tabId = $(selector).eq(activeTabIdx).attr('id').replace("show", "").replace("Li", "");
	  //20220103 Davide
	    var actTab = document.getElementsByClassName("menuSelect");
        tabId = $(actTab).attr('id').replace("show", "").replace("Li", "");
     } else {
       tabId = "catalogo";
     }
     // Se sono nel catalogo scorro le immagini dei capofila
     if (tabId == "catalogo" || tabId == "promo" || tabId == "mercatino") {
       var descrdiv = document.createElement("div");
       var nextdiv = document.createElement("div");
       var prevdiv = document.createElement("div");
	     prevdiv.id = "prevImageDiv";                                                            
       nextdiv.id = "nextImageDiv";
       descrdiv.id = "descrImageDiv";
       //20210427 prevdiv.innerHTML = "<img src = './src/images/Arrow-Back.png' title='Immagine precedente'  alt='Immagine precedente' " +
       prevdiv.innerHTML = "<i class='fas fa-chevron-circle-left btnImageScroll' title='Immagine precedente'  alt='Immagine precedente' " +
                           "></i>";
       //20210427 nextdiv.innerHTML = "<img src = './src/images/Arrow-Next.png' title='Immagine successiva'  alt='Immagine successiva' " +
       nextdiv.innerHTML = "<i class='fas fa-chevron-circle-right btnImageScroll' title='Immagine successiva'  alt='Immagine successiva' " +
                            "></i>";
       //descrdiv.innerHTML = "<p style='background-color: white;'>" + descImg + "</p>";
       //document.getElementsByTagName("body")[0].appendChild(descrdiv);
       //descrdiv.style.left = (window.innerWidth - imgWidth) / 2 + 'px';
	     //descrdiv.style.top = ((window.innerHeight - imgHeight) / 2) + $(window).scrollTop() + imgHeight + 'px';
       if (CatalogoWidget.getCapofilaImg().length > 1) {
         document.getElementsByTagName("body")[0].appendChild(prevdiv);
		     document.getElementsByTagName("body")[0].appendChild(nextdiv);
         prevdiv.style.left = '10px';
	       prevdiv.style.top = ((window.innerHeight - 96) / 2) + $(window).scrollTop() + 'px';
         nextdiv.style.left = document.body.clientWidth - 106 + 'px';
	       nextdiv.style.top = ((window.innerHeight - 96) / 2) + $(window).scrollTop() + 'px';
         $("#prevImageDiv").css("z-index", "22000");
         $("#nextImageDiv").css("z-index", "22000");
        }
		
       var divHeight = imgHeight + $("#bigImgDescr").height() + 50 + "px"; 
	    console.log("divHeight " + divHeight);
       $("#bigImageDiv").css("width", divWidth);
       $("#bigImageDiv").css("height", divHeight);  
       $("#bigImageDiv").css("background-color", "white");
       $("#descrImageDiv").css("width", "640px");
	   $("#descrImageDiv").css("height", divHeight + $("#bigImgDescr").height() + "px");
       $("#descrImageDiv").css("border", "1px solid #aaaaaa");
       $("#hider").css("opacity", "0.6");
       imgdivClose.style.left = $("#" + imgdiv.id).offset().left + divWidth - 12 + 'px' ;
       imgdivClose.style.top = $("#" + imgdiv.id).offset().top - 12 + 'px';   
       
     }
	 
     $('#bigImageDiv').onSwipe(function(results){
                if(results.up == true) { /*nulla*/ }
                if(results.right == true) { showNextImg(); }
                if(results.down == true) { /*nulla*/ }
                if(results.left == true) { showPrevImg(); }
     });		
          

	 aggiungiListenerbigImageButton();
	 aggiungiListenerBigImage();
	 


 magnify("bigImageDivId", 3);
	 
}

function magnify(imgID, zoom) {

  var img, glass, w, h, bw;
  img = document.getElementById(imgID);
  //console.log("img.width " + img.width + " img.height " + img.height + " zoom " + zoom);
  
  
  /* Create magnifier glass: */
  glass = document.createElement("DIV");
  glass.setAttribute("class", "img-magnifier-glass");

  /* Insert magnifier glass: */
  img.parentElement.insertBefore(glass, img);
  

  /* Set background properties for the magnifier glass: */
  glass.style.backgroundImage = "url('" + img.src + "')";
  glass.style.backgroundRepeat = "no-repeat";
  
  var height = img.height;
  if (height == 0){
	height = 480;
  }
  
  glass.style.backgroundSize = (img.width * zoom) + "px " + (height * zoom) + "px";
   
  console.log("glass.style.backgroundSize " + glass.style.backgroundSize);
  
  
  
  bw = 4;
  w = glass.offsetWidth / 2;
  h = glass.offsetHeight / 2;

  /* Execute a function when someone moves the magnifier glass over the image: */
  glass.addEventListener("mousemove", moveMagnifier);
  img.addEventListener("mousemove", moveMagnifier);

  /*and also for touch screens:*/
  glass.addEventListener("touchmove", moveMagnifier);
  img.addEventListener("touchmove", moveMagnifier);
  function moveMagnifier(e) {
    var pos, x, y;
    /* Prevent any other actions that may occur when moving over the image */
    e.preventDefault();
    /* Get the cursor's x and y positions: */
    pos = getCursorPos(e);
    x = pos.x;
    y = pos.y;
	
    /* Prevent the magnifier glass from being positioned outside the image: */
  /*  if (x > img.width - (w / zoom)) {x = img.width - (w / zoom);}  // else { glass.style.display = "none";}
    if (x < w / zoom) {x = w / zoom;}
    if (y > img.height - (h / zoom)) {y = img.height - (h / zoom);}
    if (y < h / zoom) {y = h / zoom;}
 */
 
	if (x > img.width - (w / zoom) ||	
     x < w / zoom ||
    y > img.height - (h / zoom) || 
    y < h / zoom) { glass.style.display = "none";} else {glass.style.display = "inline-block";}
 
 /* Set the position of the magnifier glass: */
    glass.style.left = (x - w) + "px";
    glass.style.top = (y - h) + "px";
    /* Display what the magnifier glass "sees": */
    glass.style.backgroundPosition = "-" + ((x * zoom) - w + bw) + "px -" + ((y * zoom) - h + bw) + "px";
	
	
	
  }

  function getCursorPos(e) {
    var a, x = 0, y = 0;
    e = e || window.event;
    /* Get the x and y positions of the image: */
    a = img.getBoundingClientRect();
    /* Calculate the cursor's x and y coordinates, relative to the image: */
    x = e.pageX - a.left;
    y = e.pageY - a.top;
    /* Consider any page scrolling: */
    x = x - window.pageXOffset;
    y = y - window.pageYOffset;
    return {x : x, y : y};
  }
  
  glass.style.display = "none";
  
}


function changeToolTip(text) {

}

function showNextImg() {
   var imagesArray = CatalogoWidget.getCapofilaImg();
   //var flr = CommonApis.getImgDir() + divisione.trim() + "/";
   var actImage = CatalogoWidget.getActualImage();
   for (var i = 0; i < imagesArray.length; i++) {
      if (imagesArray[i].immagine == actImage) {
        var z = i + 1;
        if (z > imagesArray.length - 1) {
          z = 0;
        }
        var img = CommonApis.getImgDir() + divisione.trim() + "/" + imagesArray[z].immagine.trim();
        /*
        divToClose = document.getElementById("bigImageButton");
        document.getElementsByTagName("body")[0].removeChild(divToClose);
        divToClose = document.getElementById("nextImageDiv");
        document.getElementsByTagName("body")[0].removeChild(divToClose);
        divToClose = document.getElementById("prevImageDiv");
        document.getElementsByTagName("body")[0].removeChild(divToClose);
        divToClose = document.getElementById("descrImageDiv");
        document.getElementsByTagName("body")[0].removeChild(divToClose);
        */
        closeDiv("bigImageDiv");
        mouseOverImage(imagesArray[z].immagine);

        break;
      }
   }
}

function showPrevImg() {
   var imagesArray = CatalogoWidget.getCapofilaImg();
   //var flr = CommonApis.getImgDir() + divisione.trim() + "/";
   var actImage = CatalogoWidget.getActualImage();
   for (var i = 0; i < imagesArray.length; i++) {
      if (imagesArray[i].immagine == actImage) {
        var z = i - 1;
        if (z < 0) {
          z = imagesArray.length - 1;
        }
        var img = CommonApis.getImgDir() + divisione.trim() + "/" + imagesArray[z].immagine.trim();
        /*
        divToClose = document.getElementById("bigImageButton");
        document.getElementsByTagName("body")[0].removeChild(divToClose);
        divToClose = document.getElementById("nextImageDiv");
        document.getElementsByTagName("body")[0].removeChild(divToClose);
        divToClose = document.getElementById("prevImageDiv");
        document.getElementsByTagName("body")[0].removeChild(divToClose);
        divToClose = document.getElementById("descrImageDiv");
        document.getElementsByTagName("body")[0].removeChild(divToClose);
        */
        closeDiv("bigImageDiv");
        mouseOverImage(imagesArray[z].immagine);
        break;
      }
   }
}

function disableScrolling(){
    var x=window.scrollX;
    var y=window.scrollY;
    window.onscroll=function(){window.scrollTo(x, y);};
}

function enableScrolling(){
    window.onscroll=function(){};
}

function closeDiv(divname, hiderRemove) {
    enableScrolling();
  	var divToClose = document.getElementById(divname);
    if (divToClose == null) {
     return;
    }
	  document.getElementsByTagName("body")[0].removeChild(divToClose);
    if (divname == "bigImageDiv" || divname == "showcaseDiv" ) {
      showImage = false;
      divToClose = document.getElementById("bigImageButton");
      document.getElementsByTagName("body")[0].removeChild(divToClose);
      divToClose = document.getElementById("nextImageDiv");
      if (divToClose != null) {
        document.getElementsByTagName("body")[0].removeChild(divToClose);
      }
      divToClose = document.getElementById("prevImageDiv");
      if (divToClose != null) {
        document.getElementsByTagName("body")[0].removeChild(divToClose);
      }
      divToClose = document.getElementById("descrImageDiv");
      if (divToClose != null) {
        document.getElementsByTagName("body")[0].removeChild(divToClose);
      }
      if (isWorkspace) {
      // 20210607  var activeTabIdx = $('#tabMenu').tabs('option','active');
      // 20210607  var selector = '#tabMenu > ul > li';
      // 20210607  var tabId = $(selector).eq(activeTabIdx).attr('id').replace("show", "").replace("Li", "");
		try{
			var actTab = document.getElementsByClassName("menuSelect");
			var tabId = $(actTab).attr('id').replace("show", "").replace("Li", "");
		} catch {
			tabId = "catalogo";
        }
      } else {
       tabId = "catalogo";
      }
      if (tabId == "catalogo") {
        if (CatalogoFiltriWidget.getCatalogoViewCookieName() != null) {
          $( "#listCapofila" ).show();
          $( "#listCapofilaGrid" ).hide();
          $("#toggleCatalogoImg").attr("src", "./src/images/" + divisione.trim() +"Gridview.png");
          $("#toggleCatalogoImg").attr("alt", "Visualizza a griglia");
          $("#toggleCatalogoImg").attr("title", "Visualizza a griglia");
          $("#toggleCatalogoImgBody").attr("src", "./src/images/" + divisione.trim() +"Gridview.png");
          $("#toggleCatalogoImgBody").attr("alt", "Visualizza a griglia");
          $("#toggleCatalogoImgBody").attr("title", "Visualizza a griglia");
           eraseCookie(CatalogoFiltriWidget.getCatalogoViewCookieName());
        } 
        removeHider();
        var flr = CommonApis.getImgDir() + divisione.trim() + "/";
       // var capofila = CatalogoWidget.getActualImage().replace(flr, "");
        var capofila = CatalogoWidget.getActualImage();
        if (capofila != "") { 
          var offset = $("#" + capofila).offset();
        }
        if (offset == undefined) {
          top = 0;
        } else {
          var top = offset.top - 300;
        }
        window.scrollTo( 0, top );
      } else if (tabId == "promo") {
        var capofila = CatalogoWidget.getActualImage();
        var offset = $("#" + capofila).offset();
        if (offset == undefined) {
          top = 0;
        } else {
          var top = offset.top - 300;
        }
        window.scrollTo( 0, top );
      }
    }
    //$("#hider").hide();
    if (hiderRemove == undefined) {
      removeHider();
    } else if (hiderRemove == 1) {
       removeHider();
    }
    /*
    if ($('body').hasClass('stop-scrolling')) {
      $('body').removeClass('stop-scrolling');
    }
    */
}



function cambiaCausale() {
  var cauDocs = readCookie(cookieCauDocAll).split(",");
  creaSelettoreCausali(cauDocs);
  //settaCausale(); 
  
}

function settaCausale() {

  selectedCauDoc = $("#causaliSelect option:selected").val();
  eraseCookie(cookieCauDocSelected);
  createCookie(cookieCauDocSelected, selectedCauDoc + ":" + 
                                     $("#causaliSelect option:selected").html() +  ":" 
                                     + mapCauDocParm[selectedCauDoc].trim(), 365);
  createCookie("chkCauDoc", true, 365);                                     
  $("#causaleSelezionata").html("Documento attuale: " + $("#causaliSelect option:selected").html());
  $("#causali").hide();
  var arrayCauDoc = CommonApis.getArrayCauDoc();
  arrayCauDoc[0] = selectedCauDoc + ":" + $("#causaliSelect option:selected").html() +  ":" + mapCauDocParm[selectedCauDoc].trim();
  var allCauDoc = arrayCauDoc[0];
  var allCauDocStore = readCookie(cookieCauDocAll).split(",");
  z = 1;
  for (var i = 0; i < allCauDocStore.length; i++) {
    if (allCauDocStore[i] != arrayCauDoc[0]) {
      allCauDoc = allCauDoc.trim() + ";" + allCauDocStore[i]; 
    }
  }
  CommonApis.setArrayCauDoc(arrayCauDoc);
  clienteAttuale = readCookie(cookieClienteSelezionato);
  //eraseCookie(cookieClienteSelezionato);
	var request = {cau_doc_select: allCauDoc};
  // Blocco i tab non voluti
   abilitaMenu();
  jolieCall( "changeCauDocPortaleFrontend", request, function(esisteDoc) {
                                                                             settaCliente(clienteAttuale, esisteDoc);
                                                                             }, 
                                                     function( error ) { showError(error.message) } );

}

function creaSelettoreCausali() {
  var arrayCauDoc = CommonApis.getArrayCauDoc();
  $("#causaliSelect").empty();
  for( var i = 0; i < arrayCauDoc.length; i++ ) {
	   $("#causaliSelect").append("<option value='" + arrayCauDoc[i].split(":")[0] + "'>" + arrayCauDoc[i].split(":")[1].trim() + "</option>");
  }
	var causaliDiv = document.getElementById("causali");

  causaliDiv.style.left = (window.innerWidth - causaliDiv.outerWidth) / 2 + 'px';
	causaliDiv.style.top = (window.innerHeight - causaliDiv.offsetHeight) / 2 + 'px';
  showHider();
  $("#causali").show();  
  var divWidth = $("#causali").outerWidth();
  var divHeight = $("#causali").outerHeight();
  $("#causali").css("left", (window.innerWidth - divWidth) / 2 + 'px');
  $("#causali").css("top", ((window.innerHeight - divHeight) / 2) + $(window).scrollTop() + 'px');
  $("#causali").css("z-index", "205");
}

function isMobile(){

    var ismobile=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i);
    if (ismobile == null) {
      return false;
    } else {
      return true;
    }

}

function showLogin() {
  window.location.replace("login.html");
}

function showPrefs() {
 var textViewPrezzi = "Nascondi Prezzi";
 var prezziNascosti = readCookieValue("hidePrezzi");
 if (prezziNascosti == 1) {
   textViewPrezzi = "Visualizza Prezzi";
 }
 var textRaddoppiaPrezzi = "Prezzo al Pubblico";
 if (readCookieValue("prezziDoppi") == 1) {
   textRaddoppiaPrezzi = "Prezzo di Listino";
 }
 var textAddPromoAuto = "<input type='checkbox'  value='Inserisci promo automaticamente'> <br> ";
 if (readCookie("addPromoAuto") != null ) {
	 if (readCookieValue("addPromoAuto") == "1") {
	   textAddPromoAuto = "<div><input type='checkbox' checked><label>Aggiungi promo automaticamente</label></div><br> ";
	 } else
	 {
	   textAddPromoAuto = "<div><input type='checkbox'><label>Aggiungi promo automaticamente</label></div><br> ";
	 }
 } else {
	gestPromoAutoCookie(); 
 }
 
 var divMenu = document.createElement("div");
 divMenu.id="menuPrefs";
 divMenu.className="showPrefContainer"; 
 
 var menuHtml = "<ul class='subMenu subMenuSettings'>" + 
                "<li class='subMenuItem' id='delCookie'>Cancella Cookies</li>" +
                "<li class='subMenuItem' id='pwdChange'>Cambia Password</li>" +
                "<li class='subMenuItem' id='mailChange'>Cambia e-mail</li>";

  if (ruoloCorrente == "CC" || ruoloCorrente == "CD"){                     
	 menuHtml = menuHtml + "<li class='subMenuItem' id='viewSubscription'>Stato sottoscrizioni</li>" ;
  }
                     
	menuHtml = menuHtml +  "<li class='subMenuItem' id='remoteAccess'>Assistenza Remota</li>"+
                     "<li class='subMenuItem' id='showHidePrz'>" + textViewPrezzi + "</li>" +
                     "<li class='subMenuItem' id='showHidePrzDoppio' >" + textRaddoppiaPrezzi + "</li>";
					 
 if (insPromoDirettamenteDaCatalogo == 1){
	 //menuHtml = menuHtml + "<li class='subMenuItem' id='showAddPromoAuto' >" + textAddPromoAuto + "</li>";
 }
 // Parametri portale
 menuHtml = menuHtml +  "<li class='subMenuItem' id='webParam'>Parametri portale</li>";
// Se mobile aggiungo link per shortcut
 if (CommonApis.isMobile()) {
 //  menuHtml = menuHtml + "<li class='subMenuItem' id='addToHome'>Aggiungi link a Home</li>"; 
 }                     
 menuHtml = menuHtml + "</ul></li>";
 divMenu.innerHTML = menuHtml;
 $("#menuPrefs").remove();
 document.getElementsByTagName("body")[0].appendChild(divMenu);
 $("#menuPrefs").show();
 if (CommonApis.isMobile()) {
   $("#addToHome").addClass("no-border"); 
 } else if (insPromoDirettamenteDaCatalogo == 1){
   $("#showAddPromoAuto").addClass("no-border");
 } else {
   $("#showHidePrzDoppio").addClass("no-border");
 }
 aggiungiListenersSubMenu();

}


function showMyAccountMenu() {
 
 if (document.getElementById("myAccountPrefs") == null) {
   var divMenu = document.createElement("div");
   divMenu.id="myAccountPrefs";
   divMenu.className="showPrefContainer display-none"; 
   divMenu.innerHTML = CommonApis.getHtmlMenuMyAccount();
   document.getElementsByTagName("body")[0].appendChild(divMenu);

   aggiungiListenersMenuMyAccount();
 }

}

function showPopupAScomparsa(titolo, messaggio){
	
  var dialogdiv = document.createElement("div");
  dialogdiv.id = "slidePopup";
  var htmlInfo = "<div class='divHeader'>" + titolo + "</div><div id=\"textInfo\"><p class='h2bParagraph'>" + messaggio + "</p></div><div class='dialogSep'></div>";

  dialogdiv.innerHTML = htmlInfo;

  document.getElementsByTagName("body")[0].appendChild(dialogdiv);
  $("#slidePopup").addClass("flex-column");
  $(".divHeader").css("color", windowForegroundColor);
  $(".divHeader").css("background-color", windowBackgroundColor);
	var marg = 150;
	if (CommonApis.isMobile()) {
		marg = 30;
	}
	
  $('#slidePopup').animate({right: marg+'px'},400).delay(3500).fadeOut(function() {closeDiv('slidePopup')});

}





function hidePrefs() {
 if ($("#menuPrefs").is(":visible")) {
   var divMenu = document.getElementById("menuPrefs");
   document.getElementsByTagName("body")[0].removeChild(divMenu);
 }
}


function showInfoScadPwd(ggPwd, dataLogin) {
 var divMenu = document.createElement("div");
 divMenu.id="scadPwd";
 divMenu.innerHTML = "<div id=\pwdWarning\"><div class=\"divHeader\">Scadenza password</div><div id=\"pwdScadContent\">" +
                     "<p class='color-red margin-top-10 margin-bottom-10 margin-left-10 fontBold'>Attenzione!</p> " +
                     "<p class='margin-left-10 margin-bottom-10'>La password attuale scade tra <b>" + ggPwd + "</b> giorni.<br>Vuoi cambiarla adesso?</div>" +
                     "<div class='pos-center-center'> " +
                     "<button class='btnLogin confermaScadPwd' conferma='1' id='confermaScadPwd'>Si</button>" +
                     "<button class='btnLogin confermaScadPwd' conferma='0' id='annullaScadPwd'>No</button>" +
                     "</div></div>";
 document.getElementsByTagName("body")[0].appendChild(divMenu);
 var inputdata = $("#confermaScadPwd");
 var dato = 'Ciao';
 var datiLogin = dataLogin
 $.data(inputdata[0], 'ruoli', {dataLogin:datiLogin});
 showHider();
 $("#scadPwd").addClass("standardDiv");
 $("#scadPwd").show();
 $(".confermaScadPwd").each(function(a) {
   $(this).click(function(e) {
     e.preventDefault();
     modificaScadPwd($(this).attr("conferma"));
   })
 });
}

function modificaScadPwd(value) {
  if (value == 0) {
     //$("#hider").hide();
     var element = $("#confermaScadPwd");
     var data = $.data(element[0], 'ruoli').dataLogin;
     closeDiv("scadPwd");
     removeHider();
     LoginWidget.settaRuolo(data);
  } else {
    $("#scadPwd").hide();
    //$("#hider").hide();
    removeHider();
    modo = 0;
    if (isWorkspace) {
      modo = 1;
    }
    chgPwd(modo);
  }
}


function chgPwd(fromMenu) {
 if (fromMenu == 1) {
   $("#scadenzaPwd").empty();
 }
 showHider();
 $("#pwdChgDiv").show(); 
 if (fromMenu == 1) {
   $("#pwdChgDiv").removeClass("pwdChgDiv");
   $("#pwdChgDiv").addClass("pwdChgDivLoggato");
   var divMenu = document.getElementById("menuPrefs");
   document.getElementsByTagName("body")[0].removeChild(divMenu);
 } else {
   //$("#pwdChgDiv").css("height", "330px");
 }

 $(".confermaPwd").each(function(a) {
   $(this).click(function(e) { 
      e.preventDefault(); 
      modificaPwd($(this).attr("continua"));
    });
 });
   
}

function chgMail() {
 showHider();
 $("#oldMail").val(CommonApis.getSessionData().email);
 $("#newMail").val('');
 $("#mailChgDiv").show();
 var divMenu = document.getElementById("menuPrefs");
 document.getElementsByTagName("body")[0].removeChild(divMenu);
}


function modificaPwd(value) {
  if (value == 0) {
   //$("#hider").hide();
   removeHider();
   $("#pwdChgDiv").hide();
   $("#oldPwd").val('');
   $("#newPwd").val('');
   $("#newPwd2").val('');
   $("#oldPwd").removeClass("backg-red");
   $("#newPwd").removeClass("backg-red");
   $("#newPwd2").removeClass("backg-red");
   } else if ($("#oldPwd").val() == "") {
      $("#oldPwd").addClass("backg-red");
      showError("Inserire vecchia password!");
   } else if ($("#newPwd").val() == "") {
      $("#newPwd").addClass("backg-red");
      showError("Inserire nuova password!");
   } else if ($("#oldPwd").val() == $("#newPwd").val()) {
      $("#newPwd").addClass("backg-red");
      $("#oldPwd").addClass("backg-red");
      showError("La nuova password non pu&ograve; essere uguale alla vecchia!");
   } else if ($("#newPwd").val().trim().length < 8) {
      $("#newPwd").addClass("backg-red");
      showError("Password troppo corta!");
   } else if (!/\d/.test($("#newPwd").val())) {
      $("#newPwd").addClass("backg-red");
      showError("La nuova password deve contenere almeno un numero!");
   } else if ($("#newPwd2").val() == "") {
      $("#newPwd2").addClass("backg-red");
      showError("Inserire conferma password!");
   } else if ($("#newPwd2").val().trim().length < 8) {
      $("#newPwd2").addClass("backg-red");
      showError("Password troppo corta!");
   } else if ($("#newPwd").val() != $("#newPwd2").val()) {
      $("#newPwd2").addClass("backg-red");
      $("#newPwd").addClass("backg-red");
      showError("Le nuove password non corrispondono!");
   }  else {
   var newPwd = CryptoJS.MD5($("#newPwd" ).val()).toString();
   var oldPwd = CryptoJS.MD5($("#oldPwd" ).val()).toString();
   var request = {user_id: usernameCorrente, oldPassword: oldPwd, newPassword: newPwd };
   jolieCall( "changePasswordFrontend", request, showSuccessPassword, function( error ) { showError(error.message) } );
   }
  }

function modificaMail(value) {
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  if (value == 0) {
   //$("#hider").hide();
   removeHider();
   $("#mailChgDiv").hide();
   $("#oldMail").val('');
   $("#newMail").val('');
   $("#newMail2").val('');
   } else if ($("#newMail").val() == $("#oldMail").val()) {
      $("#newMail").css("background-color", "red");
      showError("Indirizzo mail uguale a quello attuale!");
   } else if ($("#newMail").val() == "") {
      $("#newMail").css("background-color", "red");
      showError("Inserire nuovo indirizzo e-mail!");
   } else if (!reg.test($("#newMail").val())) {
      $("#newMail").css("background-color", "red");
      showError("Indirizzo e-mail formalmente non valido!");
   } else {
   var newMail = $("#newMail" ).val();
   var request = {user_id: usernameCorrente, newMail: newMail };
   jolieCall( "changeMailFrontend", request, showSuccessMail, function( error ) { showError(error.message) } );
   }
  }


function showSuccessPassword(data) {

  showInfo("Password modificata correttamente!", "Cambio password");
  //$("#hider").hide();
  removeHider();
  $("#pwdChgDiv").hide();
}

function showSuccessMail(data) {

  showInfo("Indirizzo e-mail modificato correttamente!", "Cambio e-mail");
  CommonApis.getSessionData().email = $("#newMail" ).val();
  //$("#hider").hide();
  removeHider();
  $("#mailChgDiv").hide();
}


function showHider() {
  if (!$("#hider").hasClass('hiderClass')) {
    $("#hider").show();
    $("#hider").addClass('hiderClass');
  }
}

function removeHider() {
   if($("#showCaseMaster").length > 0 ||
      $("#spinner").html() != "" && $("#spinner").html() != undefined ||
      $("#clientiList").is(":visible") ) {
     return;
   }

   if ($("#hider").hasClass("zindex-50000")) {
     $("#hider").removeClass("zindex-50000");
     return
   }
   if (!$("#hider").hasClass('spinner') && !$("#progressDialog").hasClass('progressDialog')) {
     $("#hider").hide();
     $("#hider").removeClass('hiderClass');
   }
}

 
 
function showSpinner() {

 var target = document.getElementById('spinner');
 var scrollTop = $(window).scrollTop();
 //var spinnerTopPosition = ((window.innerHeight - target.offsetHeight) / 2) + $(window).scrollTop() + 'px';
 var spinnerTopPosition = "";
 try {
    spinnerTopPosition = ((window.innerHeight - target.offsetHeight) / 2) + 'px';
  } catch {
    spinnerTopPosition = "50%";
  } 
 var spinnerColor = "#428bca"; //CommonApis.getSessionData().mapperParms.windowFgcolor;

 var opts = {
	 lines: 12, // The number of lines to draw
	 length: 14	, // The length of each line
	 width: 4, // The line thickness
	 radius: 14, // The radius of the inner circle
	 corners: 0.9, // Corner roundness (0..1)
	 rotate: 33, // The rotation offset
	 direction: 1, // 1: clockwise, -1: counterclockwise
	 color: spinnerColor, //'#428bca', // #rgb or #rrggbb or array of colors
	 speed: 0.8, // Rounds per second
	 trail: 49, // Afterglow percentage
	 shadow: true, // Whether to render a shadow
	 hwaccel: false, // Whether to use hardware acceleration
	 className: 'spinner', // The CSS class to assign to the spinner
	 zIndex: 2e9, // The z-index (defaults to 2000000000)
	 top: spinnerTopPosition, // Top position relative to parent
	 left: '50%' // Left position relative to parent
 };

  var spinner = new Spinner(opts);
  showHider();
  spinner.spin(target);
  //20210921 return spinner;
  CommonApis.setSpinner(spinner);
}

function removeSpinner() {

 if (CommonApis.getSpinner() != undefined){
	CommonApis.getSpinner().stop();
 }

 //CommonApis.getSpinner().stop();
 //$("#hider").hide();
 CommonApis.setSpinner(undefined);
 removeHider();
}


function sortByKey(array, key) {
    return array.sort(function(a, b) {
        var x = a[key]; var y = b[key];
        return ((x < y) ? -1 : ((x > y) ? 1 : 0));
    });
}

function vaiAdInizioPagina() {
  $("#backToTop").hide();
  $(window).scrollTop(0);
}

function showMessageForAllDiv() {
  var id = msgToShowForAll.id
  if (readCookie("message" + id) == null) {
    createCookie("message" + id, id, 180);
    var dialogdiv = document.createElement("div");
    dialogdiv.id = "messaggeForAllDiv";
    var htmlNews = "<div class='divWarningHeader'>COMUNICAZIONE IMPORTANTE</div><div>";
    htmlNews = htmlNews + "<p class='newsTitle'>" + msgToShowForAll.titolo + "</p><p class='newsBody'>" + msgToShowForAll.news + "</p>" +
                "<p class='newsPublished'>Pubblicata il " + msgToShowForAll.data + "</p></div>";
    htmlNews = htmlNews + "<div class='divBottomClass'>" +
                    "<span class='buttonSpanCenter'><button class='btn80' onclick='closeDiv(\"messaggeForAllDiv\")'>Chiudi</button></span></div>";
    dialogdiv.innerHTML = htmlNews;
    document.getElementsByTagName("body")[0].appendChild(dialogdiv);
    showHider();
    //if (isMobile) {
    //  $("#messaggeForAllDiv").css("width", "320px");
    //}
    $("#messaggeForAllDiv").show();

  }
}

// a e b sono oggetti Data
function dateDiffInDays(a, b) {
  // Esclude l'ora ed il fuso orario
  var utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());
  var utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());

  return Math.floor((utc2 - utc1) / _MS_PER_DAY);
}



function gestPromoAutoCookie() {
  var divMenu = document.getElementById("menuPrefs");
  if (divMenu != null) {
     document.getElementsByTagName("body")[0].removeChild(divMenu);
  }
  if (readCookie("addPromoAuto") != null ) {
		 var addPromoAuto = readCookie("addPromoAuto");
		 	eraseCookie("addPromoAuto");
			if (addPromoAuto == "1") {				
				createCookie("addPromoAuto", "0", 365);				
			}else
			{
				createCookie("addPromoAuto", "1", 365);	
			}
	} else {	
		eraseCookie("addPromoAuto");
		createCookie("addPromoAuto", "1", 365);
	}
 }



function gestPrezziCookie() {
 var divMenu = document.getElementById("menuPrefs");
 document.getElementsByTagName("body")[0].removeChild(divMenu);
 var tdPrezzi = document.getElementsByName("przCatTD");
 var scPrezzi = document.getElementsByName("scCatTD");
 var prezziNascosti = readCookieValue("hidePrezzi");
 var lblListino = document.getElementsByName("przListinoLbl");
 if (prezziNascosti == 1) {
   eraseCookie("hidePrezzi");
   for (var i = 0; i < tdPrezzi.length; i++) {
     showPrz(tdPrezzi[i])
   }
   for (var i = 0; i < scPrezzi.length; i++) {
     showPrz(scPrezzi[i])
   }
   for (var i = 0; i < lblListino.length; i++) {
     showPrz(lblListino[i])
   }
 } else {
   createCookie("hidePrezzi", 1, 365);
   for (var i = 0; i < tdPrezzi.length; i++) {
     hidePrz(tdPrezzi[i])
   }
   for (var i = 0; i < scPrezzi.length; i++) {
     hidePrz(scPrezzi[i])
   }
    for (var i = 0; i < lblListino.length; i++) {
     hidePrz(lblListino[i])
   }
   // Nascondo i prezzi
 }
 

}


function gestPrezziDoppiCookie() {
 var divMenu = document.getElementById("menuPrefs");
 document.getElementsByTagName("body")[0].removeChild(divMenu);
 //var tdPrezzi = document.getElementsByClassName("infoCatalogo");
 var tdPrezzi = document.getElementsByClassName("artTablePrz");
 var scPrezzi = document.getElementsByName("scCatTD");
 var lblListino = document.getElementsByName("przListinoLbl");
 if (readCookieValue("prezziDoppi") == 1) {
   eraseCookie("prezziDoppi");
   for (var i = 0; i < tdPrezzi.length; i++) {
     raddoppiaPrz(tdPrezzi[i], false)
   }
   for (var i = 0; i < scPrezzi.length; i++) {
     showPrz(scPrezzi[i])
   }
   for (var i = 0; i < lblListino.length; i++) {
     var prz = parseFloat($(lblListino[i]).attr("przLis")) / 2;
     $(lblListino[i]).html(prz.toFixed(3).toLocaleString().replace(".", ",") + "<span> &euro;</span>");
     $(lblListino[i]).attr("przLis", prz);
   }
 } else {
   createCookie("prezziDoppi", 1, 365);
   for (var i = 0; i < tdPrezzi.length; i++) {
     raddoppiaPrz(tdPrezzi[i], true)
   }
   for (var i = 0; i < scPrezzi.length; i++) {
     hidePrz(scPrezzi[i])
   }
   for (var i = 0; i < lblListino.length; i++) {
     var prz = parseFloat($(lblListino[i]).attr("przLis")) * 2;
     $(lblListino[i]).html(prz.toFixed(3).toLocaleString().replace(".", ",") + "<span> &euro;</span>");
     $(lblListino[i]).attr("przLis", prz);
   }
   // Nascondo i prezzi
 }
 

}

function capitalizeFirstLetter(string) {
    if ('0123456789'.indexOf(string.charAt(0)) !== -1) {
      return string
    } else {
      string = string.toLowerCase();               
      return string.charAt(0).toUpperCase() + string.slice(1);
    }
}

function segnalaMenuAttivo(idMenu) {

  var actTab = document.getElementsByClassName("menuSelect");
  $(actTab).toggleClass("menuSelect");
  elencoMenuAbilitati = CommonApis.getSessionData().elencoMenu;
  if (elencoMenuAbilitati != undefined) {
    for (var i = 0; i < elencoMenuAbilitati.length; i++) {
      if (elencoMenuAbilitati[i].azione.trim() == idMenu) {
        $("#" + elencoMenuAbilitati[i].descrizione.trim()).toggleClass("menuSelect");
        break;
      }
    }  
  }
}




function abilitaMenu() {
  
   // COntrollo se ho gi� creato i men�
    var menuCreato = false;
    if (CommonApis.setHtmlMenu(htmlMenu) != "") {
       menuCreato = true;
    }
    var visualizzaTabPromo = CommonApis.getSessionData().abilita_tab_promo;
    var elencoMenuAbilitati = CommonApis.getSessionData().elencoMenu;
    arrayMenuLoggato = [];
    var numRighe = CommonApis.getSessionData().num_rig_ord;
    var numPreferiti = CommonApis.getSessionData().num_art_wishList;
    var lafeCoins = CommonApis.getSessionData().lafecoin;
 
    var menuLen = 0;
 
    var showLink = "";
    var cauDocAttuale = "";
    if (readCookie(cookieCauDocSelected) != null) {
        cauDocAttuale = readCookie(cookieCauDocSelected).split(":");
    }
      
    var tabAbilitato = 0;
    if (mapCauDocParm[selectedCauDoc] != undefined) {
       tabAbilitato = mapCauDocParm[selectedCauDoc].trim();
    }
    var htmlMenu = "<ul>"; 
    htmlMenuMyAccount = "<ul class='subMenu subMenuAccount'>" ;
    
	  var gestSconti = readCookie("gestSconti");
 	  if (gestSconti == undefined) {
		  gestSconti = 0;
		} 
    
    for (var i = 0; i < elencoMenuAbilitati.length; i++) {
      if (elencoMenuAbilitati[i].gest_volantino == 1) {
        CommonApis.setGestVolantini(true);
      }
 		  if ((elencoMenuAbilitati[i].azione.trim() != "tabSconti" 
          && elencoMenuAbilitati[i].azione.trim() != "tabPromo") 
          || elencoMenuAbilitati[i].azione.trim() == "tabSconti" && gestSconti == 1
          || elencoMenuAbilitati[i].azione.trim() == "tabPromo" && visualizzaTabPromo == 1) {
			 var sempreAttivo = elencoMenuAbilitati[i].sempre_attivo;                        
			 var addrighe = elencoMenuAbilitati[i].add_righe;
             var wishList = elencoMenuAbilitati[i].wish_list;
             
			 var gestPallbox = elencoMenuAbilitati[i].gest_pallbox; 
			 var primoAcquisto = elencoMenuAbilitati[i].primo_acquisto;
             
       var mercatino = elencoMenuAbilitati[i].mercatino;
            
       var htmlMenuInner = "";
			 if (sempreAttivo == 0 && gestPallbox == tabAbilitato || 
			 	   sempreAttivo == 1 ||
			 	   primoAcquisto == 1 && readCookie(cookiePrimoAcquisto) == 1) {
			   if (showLink == "") {
            showLink = elencoMenuAbilitati[i].azione.trim();
			   }
			   var desMenu = elencoMenuAbilitati[i].cod_nodo.toUpperCase().trim();
			   if (desMenu == "&sect;&sect;") {
				 desMenu = cauDocAttuale[1];
			   } 
         if (numRighe == undefined) {
				  numRighe = 0;
			   }
         var firstMenu = 0;     
         var reloadCatalogo = 0;  
			   if (i == 0) {
            firstMenu = 1; 
         }
			   arrayMenuLoggato[i] = elencoMenuAbilitati[i].cod_nodo.toUpperCase().trim();                                
	       htmlMenuInner = htmlMenuInner + 
								"<li name='tabMenu' mobile='" + CommonApis.isMobile() + "' wish='" + wishList + "'" +
                " numrighe='" + numRighe + "' desmenu='" + desMenu + "' addrighe='" + addrighe + "'" +
                " lafecoin='" + lafeCoins + "' primomenu='" + firstMenu + "' reloadcatalogo='" + reloadCatalogo + "'" +
								" mercatino='" + mercatino + "' class='menuItem' id='" + elencoMenuAbilitati[i].descrizione.trim() + "'>" + 
								"<a name='tabMenuLink' href='#' id='" + elencoMenuAbilitati[i].azione.trim() +"'";
               var color = "color";
			   if (elencoMenuAbilitati[i].default_tab_color.trim() != "") {
            color = color + elencoMenuAbilitati[i].default_tab_color.trim().replace("#", "-");    
			   } else {
            color = color + foregroundColor.replace("#", "-");  				  
			   }
			   htmlMenuInner = htmlMenuInner + " class='" + color + " ";
			   htmlMenuInner = htmlMenuInner + elencoMenuAbilitati[i].azione.trim() + "Cls' "; 
			   htmlMenuInner = htmlMenuInner + " mercatino='" + mercatino + "' ";
			   htmlMenuInner = htmlMenuInner + ">" + elencoMenuAbilitati[i].immagine.trim() + desMenu;
			  
			   if (elencoMenuAbilitati[i].add_righe == 1) {
				
				   htmlMenuInner = htmlMenuInner +  " (<span class='numRigheCarrello'>" + numRighe + "</span>)";
			   }
              
               if (elencoMenuAbilitati[i].wish_list == 1) {
                 htmlMenuInner = htmlMenuInner +  " (<span class='numRighePreferiti'>" + numPreferiti + "</span>)";
               }
 /*                if (elencoMenuAbilitati[i].add_coins == 1) {
                     htmlMenuInner = htmlMenuInner + " (<span class='numRighePreferiti'>" + lafeCoins + "</span>)";
                 }
*/                     
			   htmlMenuInner = htmlMenuInner + "</a></li>";    
               if (elencoMenuAbilitati[i].show_in_menu == 1) {
                 htmlMenu = htmlMenu + htmlMenuInner;
               }
               if (elencoMenuAbilitati[i].show_in_account == 1) {
                 htmlMenuMyAccount = htmlMenuMyAccount + htmlMenuInner.replace("menuItem", "menuItemAccount").replace(color, "color-black");
               }                                  
	         }
		 }
    }  
    var gestSconti = readCookie("gestSconti");
    if (gestSconti == undefined) {
      gestSconti = 0;
    } 

    htmlMenu = htmlMenu + "</ul>";
    htmlMenuMyAccount = htmlMenuMyAccount + "<li class='menuItemAccount logOut'><a href='#'><i class='fas fa-power-off iconSize margin-right-5' title='Esci' alt='Esci'></i>ESCI</a></li></ul>";
      // Aggiungo il codice che proviene da db
             


    CommonApis.setHtmlMenu(htmlMenu);
    CommonApis.setHtmlMenuMyAccount(htmlMenuMyAccount);

    if (CommonApis.isMobile()) { 
      $("#divMenuTabMobile").empty().html(htmlMenu);
    } else {
      $("#divMenuTab").empty().html(htmlMenu);
      $("#menuBar").empty().html(htmlMenu);
    }

    $(".mobileBtn").css("color", foregroundColor);

    CommonApis.setNumRigheCarrello(numRighe);
    segnalaMenuAttivo(showLink);
    showSection(showLink); 
    var actTab = document.getElementsByClassName("menuSelect");
    for (let i = 0; i < actTab.length; i++) {
      if ($(actTab[i]).attr("primomenu") == "1") {
        $(actTab[i]).attr("reloadcatalogo", "1");
        break;
      }
    }
    CatalogoFiltriWidget.create("catalogoFilterOption");
    CatalogoWidget.create("catalogoResult", CatalogoFiltriWidget, false);
    CatalogoWidget.creaBannerNews();   
    CatalogoWidget.riempiWorkspace();
    $("#imgloggato").attr("src", CommonApis.getImgLoggato());
    $("#statusBar").css("background-color", backgroundColor);
    $("#divMenuTab").css("background-color", backgroundColor);
    $("#statusBar").css("color", foregroundColor);
    //$("#statusBar").css("border-bottom-color", foregroundColor);
    $("#statusBar").css("border-bottom", "1px solid " + foregroundColor);
   	$("#statusBoxMobile").css("background-color", backgroundColor);
    $(".main-navigation").hide();
    $("#searchBar").show();
    showMyAccountMenu();
    
}

function hexToRgb(hex) {
  hex = hex.replace('#', '');
  return {
    r: parseInt(hex.substring(0, 2), 16),
    g: parseInt(hex.substring(2, 4), 16),
    b: parseInt(hex.substring(4, 6), 16)
  };
}


function mostraPdf(data, fileNameIn, pathIn) {

  var fileName = "";
  var windowName = "";
  var pathName = "";
  if (fileNameIn == undefined) {
    var anno = data.ann_doc;
    var causale = data.cau_doc;
    var numeratore = data.tnd_doc;
    var numero = data.num_doc;
    fileName = anno + causale + numeratore + numero + ".pdf";
    windowName = "Dettaglio Documento";
    pathName = "/PDF/" + fileName;
  } else {
    fileName = fileNameIn;
    pathName = pathIn + "/" + fileName;
    windowName = "Documento Ritiro";
  }
  if (CommonApis.isMobile()) {
     window.open(pathName, "_blank");
  } else {
    var pdf = document.createElement("div");
    pdf.id = "pdfDoc";
    pdf.innerHTML = "<div class='divHeader'><div class='pos-center pos-cen-valign'><div class='div-width-80'>" + windowName + "</div>" + 
                    "<div id='closePdfImg'><img class='closePdfImg' src='./src/images/Close-icon.png' ></div></div></div>" + 
                    "<div class='margin-top-5'><object data='" + pathName + "' type='application/pdf' width='100%' height='100%'> " +
                    "alt : <a href='" + pathName + "'>" + fileName + "</a></object></div>";
    showHider();
    var divWidth = $(window).width() - $(window).width() * 0.3;
  //var divHeight = $(window).height() - $(window).height() * 0.3;
    var divHeight = screen.height - screen.height * 0.4; 
    var divLeft = ($(window).width() - divWidth) / 2;
    var divTop = (screen.height - divHeight) / 3;
    $('body').append(pdf);
    $("#pdfDoc").addClass("standardDiv");
  //$("#pdfDoc").width(divWidth);
  //$("#pdfDoc").height(divHeight);
  //$("#pdfDoc").css("top", divTop);
  //$("#pdfDoc").css("left", divLeft);
    $(".divHeader").css("background-color", windowBackgroundColor);
    $(".divHeader").css("color", foregroundColor);
    $("#pdfDoc").show();
  //  $("#closePdfImg").css("top", divTop + 8);
  //  $("#closePdfImg").css("left", divLeft + $("#pdfDoc").innerWidth() - 30);
  // $("#pdfDoc").top
  
  //window.open(fileName);
    $(".closePdfImg").click(function(a) {
      a.preventDefault();
      closeDiv('pdfDoc');
    });
  }
  
}


function applicaRicarico(input, ric, decimali) {
    return parseFloat((input + (input * ric / 100)).toFixed(decimali));
}

$(document).on("mouseenter", ".capofilaDescToolTip", function (e) {
    const codice = $(this).data("cpf");
    const arr = CatalogoWidget.getWorkCapofilaArray();

    const elem = arr.find(x => x.codCapofila == codice);
    if (!elem) return;

    const testo = decodeHtml(elem.desc_est || "Nessuna descrizione disponibile");

    $("#tooltipDesc")
        .text(testo)
        .css({
            top: e.pageY + 15,
            left: e.pageX + 15
        })
        .fadeIn(150);
});

$(document).on("mouseenter", ".capofilaDescToolTip", function (e) {
    const codice = $(this).data("cpf");
    const arr = CatalogoWidget.getWorkCapofilaArray();

    const elem = arr.find(x => x.codCapofila == codice);
    if (!elem) return;

    const testo = decodeHtml(elem.desc_est || "Nessuna descrizione disponibile");

    $("#tooltipDesc")
        .html(testo)
        .css({
            top: e.pageY,
            left: e.pageX
        })
        .fadeIn(150);
});

$(document).on("mousemove", ".capofilaDescToolTip", function (e) {
    $("#tooltipDesc").css({
        top: e.pageY + 15,
        left: e.pageX + 15
        
    });
});

$(document).on("mouseleave", ".capofilaDescToolTip", function () {
    $("#tooltipDesc").fadeOut(100);
});

$(document).on("mouseenter", ".infoModoRicercaStd", function (e) {
    
    var tipTextS = "La ricerca articoli viene resettata ogni volta";

    $(".tooltipRicercaStd")
        .html(tipTextS)
        .fadeIn(150);
});

$(document).on("mousemove", ".infoModoRicercaStd", function (e) {
});

$(document).on("mouseleave", ".infoModoRicercaStd", function () {
    $(".tooltipRicercaStd").fadeOut(100);
});

$(document).on("mouseenter", ".infoModoRicercaAdv", function (e) {
    
    var tipTextR = "Dopo la prima ricerca, le ricerche successive si basano sui risultati gi&agrave; trovati.<br>" + 
                    "Se non ci sono corrispondenze, viene avviata una nuova ricerca da zero.";

    $(".tooltipRicercaAdv")
        .html(tipTextR)
        .fadeIn(150);
});

$(document).on("mousemove", ".infoModoRicercaAdv", function (e) {

});

$(document).on("mouseleave", ".infoModoRicercaAdv", function () {
    $(".tooltipRicercaAdv").fadeOut(100);
});

$(document).on("mouseenter", ".infoInsPromoAuto", function (e) {
    
    var tipText = "Se l'articolo &egrave; presente in una promozione, quando lo si inserisce nel carrello " +
                  "la promozione viene inserita automaticamente";

    $(".tooltipInsPromoAuto")
        .html(tipText)
        .fadeIn(150);
});

$(document).on("mousemove", ".infoInsPromoAuto", function (e) {
$("#tooltipDesc").css({
        top: 15,
        left: 15
    });
});

$(document).on("mouseleave", ".infoInsPromoAuto", function () {
    $(".tooltipInsPromoAuto").fadeOut(100);
});

$(document).on("mouseenter", ".infoStileFiltriCombo", function (e) {
    
   var tipText = "I filtri sono gestiti con un lista a selezione multipla<br> <img src='./src/images/combolist.jpg' height='240' >";

    $(".tooltipStileFiltriCombo")
        .html(tipText)
        .fadeIn(150);
});

$(document).on("mousemove", ".infoStileFiltriCombo", function (e) {
});

$(document).on("mouseleave", ".infoStileFiltriCombo", function () {
    $(".tooltipStileFiltriCombo").fadeOut(100);
});

$(document).on("mouseenter", ".infoStileFiltriElenco", function (e) {
    
    var tipText = "I filtri sono gestiti con un elenco<br> <img src='./src/images/elenco.jpg' height='240'>";
                   

    $(".tooltipStileFiltriElenco")
        .html(tipText)
        .fadeIn(150);
});

$(document).on("mousemove", ".infoStileFiltriElenco", function (e) {

});

$(document).on("mouseleave", ".infoStileFiltriElenco", function () {
    $(".tooltipStileFiltriElenco").fadeOut(100);
});
