Paste Search Dynamic
templateXmlToPrint
  1. var templateXmlToPrint =  '   <Dati_Operazione>  '  +
  2.                           '     <Ufficio>  '  +
  3.                           '         <Frazionario NUM_UFF="{0}" DEN_UFF="{1}"/>  '  +
  4.                           '         <Data_Cont>{2}</Data_Cont>  '  +
  5.                           '     </Ufficio>  '  +
  6.                           '     <Sportello>  '  +
  7.                           '         <Num_Spo>{3}</Num_Spo>  '  +
  8.                           '         <Num_Ope>{4}</Num_Ope>  '  +
  9.                           '     </Sportello>  '  +
  10.                           '     <Transazione>  '  +
  11.                           '         <Cod_Fase>{5}</Cod_Fase>  '  +
  12.                           '         <Prog_Fase>{6}</Prog_Fase>  '  +
  13.                           '     </Transazione>  '  +
  14.                           '     <Stampante>  '  +
  15.                           '         <Stampa NUM_PAGINE="{7}" TIPO="SMIS">  '  +
  16.                           '             {8}'  +
  17.                           '         </Stampa>  '  +
  18.                           '     </Stampante>  '  +
  19.                           '  </Dati_Operazione>  ' ;
  20.  
  21.  
  22.  
  23. var templateForNews =  '   <div class="col-sm-12 col-md-3">  '  +
  24.               '               <div class="card {0}" style="height: 204px;">  '  +
  25.               '                 <div class="cardcontent">  '  +
  26.               '                   <div class="row heading-card">  '  +
  27.               '                     <div class="col-6">  '  +
  28.               '                       <div class="card-location">italia</div>  '  +
  29.               '                     </div>  '  +
  30.               '                     <div class="col-6 text-right">  '  +
  31.               '                       <div class="card-time">4 mar</div>  '  +
  32.               '                     </div>  '  +
  33.               '                   </div>  '  +
  34.               '                   <h3 class="card-item-title">{1}</h3>  '  +
  35.               '                   <p>{2}</p>                        ' +
  36.               '                   <div class="card-item-description">  '  +
  37.               '                       {3}  '  +
  38.               '                   </div>  '  +
  39.               '                     <div class="card-link">  '  +
  40.               '                         <a {4} style="border: 0 !important">vedi di più</a>  '  +
  41.               '                     </div>  '  +
  42.               '                 </div>  '  +
  43.               '               </div>  '  +
  44.               '            </div>  ' ;
  45.  
  46.  
  47. var format = function (fmt, args) {
  48.     if (!fmt.match(/^(?:(?:(?:[^{}]|(?:\{\{)|(?:\}\}))+)|(?:\{[0-9]+\}))+$/)) {
  49.         throw new Error('invalid format string.');
  50.     }
  51.     return fmt.replace(/((?:[^{}]|(?:\{\{)|(?:\}\}))+)|(?:\{([0-9]+)\})/g, function (m, str, index) {
  52.         if (str) {
  53.             return str.replace(/(?:{{)|(?:}})/g, function (m) { return m[0] });
  54.         } else {
  55.             if (index >= args.length) {
  56.                 throw new Error('argument index is out of range in format');
  57.             }
  58.             return args[index];
  59.         }
  60.     });
  61. }
  62.  
  63. var _empty = function (par) {
  64.     return !par || (par.length && par.length <= 0);
  65. }
  66.  
  67. var resetPage = function(disabled, cb, isIgnoreCompliance){
  68.   if (!disabled) {
  69.     var ignoreCompliance = isIgnoreCompliance ? "?ignoreCompliance=true" : "";
  70.     window.location = "/feulandingpage/api/v1/funnels/reset" + ignoreCompliance;
  71.     //window.location = "/feulandingpage/api/v1/funnels/reset" + ignoreCompliance;
  72.   } else if (cb){
  73.     cb();
  74.   }
  75. }
  76.  
  77. /**
  78.  * Effettua il trim di una stringa
  79.  * @param {string} str stringa su cui effettuare il trim
  80.  * @return Stringa su cui e' stato eseuito il trim
  81. */
  82. var trim = function(str){
  83.  if(str){
  84.    return str.replace(/(^\s+)|(\s+$)/g, "");
  85.  }
  86.  return str;
  87. }
  88.  
  89.  
  90.  
  91. var checkCognome = function(codiceFiscale, cognome) {
  92.  var nuovoCodiceFiscale = '';
  93.  // CONTROLLO COGNOME
  94.  var cognomeControllato = estrai_consonanti(cognome);
  95.  if (cognomeControllato.length > 3) {
  96.    cognomeControllato = '' + cognomeControllato.charAt(0) + cognomeControllato.charAt(1) + cognomeControllato.charAt(2);
  97.  }
  98.  else if (cognomeControllato.length < 3) {
  99.    const vocali_cognome = estrai_vocali(cognome);
  100.    var v = 0;
  101.    while (cognomeControllato.length < 3) {
  102.      if (v < vocali_cognome.length) {
  103.        cognomeControllato += vocali_cognome.charAt(v);
  104.      } else {
  105.        cognomeControllato += 'X';
  106.      }
  107.      v++;
  108.    }
  109.  }
  110.  nuovoCodiceFiscale += cognomeControllato;
  111.  codiceFiscale = codiceFiscale.slice(0, 3).toUpperCase();
  112.  if (nuovoCodiceFiscale === codiceFiscale) {
  113.    return true;
  114.  }else {
  115.    return false;
  116.  }
  117. }
  118.  
  119.  
  120. var checkNome = function(codiceFiscale, nome) {
  121.  var nuovoCodiceFiscale = '';
  122.  var nomeControllato = estrai_consonanti(nome);
  123.  if (nomeControllato.length > 3) {
  124.    // si prende 1 3 4 (salta il 2)
  125.    nomeControllato = '' + nomeControllato.charAt(0) + nomeControllato.charAt(2) + nomeControllato.charAt(3);
  126.  }
  127.  else if (nomeControllato.length < 3) {
  128.    const vocali_nome = estrai_vocali(nome);
  129.    var v = 0;
  130.    while (nomeControllato.length < 3) {
  131.      if (v < vocali_nome.length) {
  132.        nomeControllato += vocali_nome.charAt(v);
  133.      } else {
  134.        nomeControllato += 'X';
  135.      }
  136.      v++;
  137.    }
  138.  }
  139.  nuovoCodiceFiscale += nomeControllato;
  140.  codiceFiscale = codiceFiscale.substring( 3 , 6).toUpperCase();
  141.  if (nuovoCodiceFiscale === codiceFiscale){
  142.    return true;
  143.  }else {
  144.    return false;
  145.  }
  146. }
  147.  
  148. var calcolaAnno = function(dob) {
  149.  var diff_ms = Date.now() - dob.getTime();
  150.  var age_dt = new Date(diff_ms);
  151.  return Math.abs(age_dt.getUTCFullYear() - 1970);
  152. }
  153.  
  154. var checkDate = function (codiceFiscale, data, allMonths) {
  155.  var dateSplit = data.split("/");
  156.  
  157.  var cfDay = codiceFiscale[9] + codiceFiscale[10];
  158.  var numCfDay = Number(cfDay);
  159.  
  160.  if (numCfDay > 40) {
  161.    numCfDay -= 40;
  162.  
  163.    if (numCfDay.toString().length === 1) {
  164.      cfDay = "0"+numCfDay.toString();
  165.    } else {
  166.      cfDay = numCfDay.toString();
  167.    }
  168.  }
  169.  
  170.  var customerDay = dateSplit[0];
  171.  
  172.  if (cfDay !== customerDay) {
  173.    return false;
  174.  }
  175.  
  176.  var monthNum = allMonths[codiceFiscale[8]];
  177.  var cfMonth = monthNum.length > 1 || monthNum === "9" ? (Number(monthNum) + 1).toString() : "0" + (Number(monthNum) + 1).toString();
  178.  var customerMonth = dateSplit[1];
  179.  
  180.  if (cfMonth !== customerMonth) {
  181.    return false;
  182.  }
  183.  
  184.  var cfYear = codiceFiscale[6] + codiceFiscale[7];
  185.  var currentYear = new Date().getFullYear().toString();
  186.  var yearCheck = currentYear[2]+currentYear[3];
  187.  var cfYearComplete = (cfYear >= yearCheck) ? "19"+cfYear : "20"+cfYear;
  188.  var customerYear = dateSplit[2];
  189.  
  190.  if (calcolaAnno(new Date(customerYear, customerMonth, customerDay)) >= 100) {
  191.    cfYearComplete = "19"+cfYear;
  192.  }
  193.  
  194.  if (cfYearComplete !== customerYear) {
  195.    return false;
  196.  }
  197.  
  198.  return true;
  199. };
  200.  
  201. var estrai_consonanti = function(parola) {
  202.  if (parola === '') { return ''; }
  203.  const vocali = ['A', 'E', 'I', 'O', 'U'];
  204.  parola = parola.toUpperCase();
  205.  var result = '';
  206.  for (var i = 0; i < parola.length; i++) {
  207.    const carattere = CheckLetteraAccentata(parola.charAt(i));
  208.    if (isLetter(carattere) && !vocali.includes(carattere)) {
  209.      result += carattere;
  210.    }
  211.  }
  212.  return result;
  213. }
  214.  
  215. var estrai_vocali = function(parola) {
  216.  var result = '';
  217.  if (parola != null) {
  218.    const vocali = ['A', 'E', 'I', 'O', 'U'];
  219.    parola = parola.toUpperCase();
  220.    for (var i = 0; i < parola.length; i++) {
  221.      const carattere = CheckLetteraAccentata(parola.charAt(i));
  222.      if (vocali.includes(carattere)) {
  223.        result += carattere;
  224.      }
  225.    }
  226.  }
  227.  return result;
  228. }
  229.  
  230. var CheckLetteraAccentata = function(charAt) {
  231.  var lettera = charAt;
  232.  if (charAt === 'à'.toUpperCase().charAt(0)) { lettera = 'A'; }
  233.  else if (charAt === 'è'.toUpperCase().charAt(0)) { lettera = 'E'; }
  234.  else if (charAt === 'é'.toUpperCase().charAt(0)) { lettera = 'E'; }
  235.  else if (charAt === 'ì'.toUpperCase().charAt(0)) { lettera = 'I'; }
  236.  else if (charAt === 'ò'.toUpperCase().charAt(0)) { lettera = 'O'; }
  237.  else if (charAt === 'ù'.toUpperCase().charAt(0)) { lettera = 'U'; }
  238.  return lettera;
  239. }
  240.  
  241. var isLetter = function(letter) {
  242.  const p = new RegExp('^[a-zA-Z]*$');
  243.  return p.test(letter);
  244. }
  245.  
  246. /**
  247. * Legge una stringa contente un XML e restituisce un oggetto
  248. * @param {string} strXML stringa contente l'XML
  249.  * @return oggetto contente l'XML
  250. */
  251. var readXML = function(strXML){
  252.  // Converto una stringa XML in un oggetto
  253.  if (window.DOMParser) {
  254.    // Codice per i nuovi browser
  255.    var parser = new DOMParser();
  256.    xmlDoc = parser.parseFromString(strXML,"text/xml");
  257.  } else {
  258.    // Codice per i vecchi browser
  259.    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  260.    xmlDoc.async = false;
  261.    xmlDoc.loadXML(strXML);
  262.  }
  263.  
  264.  return xmlDoc;
  265. }
  266.  
  267.  
  268. // for fiscal code check code
  269. var CODE_EVEN = {
  270.  0: 0,
  271.  1: 1,
  272.  2: 2,
  273.  3: 3,
  274.  4: 4,
  275.  5: 5,
  276.  6: 6,
  277.  7: 7,
  278.  8: 8,
  279.  9: 9,
  280.  A: 0,
  281.  B: 1,
  282.  C: 2,
  283.  D: 3,
  284.  E: 4,
  285.  F: 5,
  286.  G: 6,
  287.  H: 7,
  288.  I: 8,
  289.  J: 9,
  290.  K: 10,
  291.  L: 11,
  292.  M: 12,
  293.  N: 13,
  294.  O: 14,
  295.  P: 15,
  296.  Q: 16,
  297.  R: 17,
  298.  S: 18,
  299.  T: 19,
  300.  U: 20,
  301.  V: 21,
  302.  W: 22,
  303.  X: 23,
  304.  Y: 24,
  305.  Z: 25
  306.  
  307. };
  308. var CODE_ODD = {
  309.  0: 1,
  310.  1: 0,
  311.  2: 5,
  312.  3: 7,
  313.  4: 9,
  314.  5: 13,
  315.  6: 15,
  316.  7: 17,
  317.  8: 19,
  318.  9: 21,
  319.  A: 1,
  320.  B: 0,
  321.  C: 5,
  322.  D: 7,
  323.  E: 9,
  324.  F: 13,
  325.  G: 15,
  326.  H: 17,
  327.  I: 19,
  328.  J: 21,
  329.  K: 2,
  330.  L: 4,
  331.  M: 18,
  332.  N: 20,
  333.  O: 11,
  334.  P: 3,
  335.  Q: 6,
  336.  R: 8,
  337.  S: 12,
  338.  T: 14,
  339.  U: 16,
  340.  V: 10,
  341.  W: 22,
  342.  X: 25,
  343.  Y: 24,
  344.  Z: 23
  345. };
  346. var CODE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  347.  
  348. /**
  349. * Check Fiscal code code check char
  350. *
  351. * @param {String} fc the fiscal code
  352. *
  353. * @returns {Boolean} true if the last char is correct otherwise false
  354. */
  355. var checkFCLastCode = function (fc) {
  356.  var val = 0;
  357.  var currentCheckCode = fc.charAt(15);
  358.  var partialFC = fc.slice(0, 15);
  359.  
  360.  for (var i = 0; i < 15; i += 1) {
  361.      var c = partialFC[i];
  362.      val += i % 2 !== 0 ? CODE_EVEN[c] : CODE_ODD[c];
  363.  }
  364.  
  365.  val %= 26;
  366.  return CODE_CHARS.charAt(val) === currentCheckCode;
  367. };
  368.  
  369. /**
  370. * Replace the placeholder in the string. the placeholder format is {<integer>} where <integer> is from 0 to n and must be ASC order
  371. *
  372. * @param string        {String} the string with the placeholder need to be replaced
  373. * @param args          {String | Array} the replacement values (ex. with string str1, str2, ecc.., ex. with array ['a', 'b', ecc..])
  374. *
  375. * @return {String}     the string replaced
  376. */
  377. var printf = function (string) {
  378.  var a = Array.prototype.slice.call(arguments, 1);
  379.  return string.replace(/{(\d+)}/g, function (match, number) {
  380.      var values = typeof arguments[0] === 'object' ? arguments[0] : arguments;
  381.  
  382.      if (typeof values[number] !== 'undefined') {
  383.          if (typeof a[0] === 'object') {
  384.              return a[0][number];
  385.          }
  386.          return a[number];
  387.      }
  388.      return match;
  389.  });
  390. };
  391.  
  392. var newsThatWasOpen = "";
  393.  
  394. var openModalPrint = function(newsId, status) {
  395.  newsThatWasOpen = newsId;
  396.  $('#modalAnteprima'+newsThatWasOpen).modal("hide");
  397.   switch (status) {
  398.     case 200:
  399.         newsThatWasOpen = "";
  400.         $('#modalStampa #info').hide();
  401.         $('#modalStampa #btn-stampa').hide();
  402.         $('#modalStampa #error').hide();
  403.         $('#modalStampa #btn-riprova').hide();
  404.         $('#modalStampa #success').show();
  405.         $('#modalStampa #btn-next').show();
  406.         $('#modalStampa #btn-annulla').hide();
  407.         break;
  408.     case 500:
  409.         $('#modalStampa #info').hide();
  410.         $('#modalStampa #success').hide();
  411.         $('#modalStampa #btn-stampa').hide();
  412.         $('#modalStampa #error').show();
  413.         $('#modalStampa #btn-riprova').attr("onclick","newsPrint('"+newsId+"')");
  414.         $('#modalStampa #btn-annulla').show();
  415.         $('#modalStampa #btn-riprova').show();
  416.         $('#modalStampa #btn-next').show();
  417.         break;
  418.     default:
  419.         $('#modalStampa #info .message b').remove();
  420.         $('#modalStampa #info .message').append('<b>'+ newsToPrint[newsId].title +'</b>');
  421.         $('#modalStampa #info').show();
  422.         $('#modalStampa #btn-stampa').attr("onclick","newsPrint('"+newsId+"')");
  423.         $('#modalStampa #btn-annulla').show();
  424.         $('#modalStampa #btn-stampa').show();
  425.         $('#modalStampa #success').hide();
  426.         $('#modalStampa #error').hide();
  427.         $('#modalStampa #btn-next').hide();
  428.         $('#modalStampa #btn-riprova').hide();
  429.         break;
  430.   }
  431.   $('#modalStampa').modal({ backdrop: 'static' });
  432.   var t = setTimeout(function() {
  433.       $('#modalStampa').modal("show");
  434.       clearTimeout(t);
  435.   }, 500);
  436. };
  437.  
  438. function getUrlVars()
  439. {
  440.     var vars = [], hash;
  441.     var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
  442.     for(var i = 0; i < hashes.length; i++)
  443.     {
  444.         hash = hashes[i].split('=');
  445.         vars.push(hash[0]);
  446.         vars[hash[0]] = hash[1];
  447.     }
  448.     return vars;
  449. }
  450.  
Parsed in 0.102 seconds