PageSourceSearch

https://www.entionline.it/templates/frontend/graphiclab/js/graphiclab.js?v=2025011402

js entionline.it collected 2026-10-09 22:39:51 UTC 82,969 bytes, 1,890 lines download raw bytes

1/*eslint no-undef: "off"*/
2!(function($){
3
4  const spinner = {el: '<img src="//www.graphiclab.it/templates/loading.gif">'};
5
6var dtDef={'order':[], "pageLength":25, columnDefs: [ { targets: 'no-sort', orderable: false }], autoWidth: false,
7           "dom": "<'row'<'col-sm-6'l><'col-sm-6'f>>" +
8                  "<'row'<'col-sm-12'tr>>" +
9                  "<'row'<'col-sm-5'i><'col-sm-7'p>>",
10           "language": {
11              "decimal":        ",",
12              "emptyTable":     "Nessun dato disponibile",
13              "info":           "Mostro da _START_ a _END_ di _TOTAL_ elementi",
14              "infoEmpty":      "Mostro da 0 a 0 di 0 elementi",
15              "infoFiltered":   "(filtrati da _MAX_ elementi totali)",
16              "infoPostFix":    "",
17              "thousands":      ".",
18              "lengthMenu":     "Mostro _MENU_ elementi",
19              "loadingRecords": "Carico...",
20              "processing":     "Processo...",
21              "search":         "Cerca:",
22              "zeroRecords":    "Nessun elemento trovato",
23              "paginate": {
24                  "first":      "Primo",
25                  "last":       "Ultimo",
26                  "next":       "Prossimo",
27                  "previous":   "Precedente"
28              },
29              "aria": {
30                  "sortAscending":  ": clicca per ordinare ascendente",
31                  "sortDescending": ": clicca per ordinare discendente"
32              }
33           }
34          };
35
36var jsValidationDoubleClickStopper = false;
37let validateForm_29_running = false;
38var $filter = { langid: 1, pagename: 'index' };
39var user = new Array();
40var forms = new Array();
41var domain = window.location.origin;
42var sortableList=null;
43
44var ckEditorSettings={
45  "default": [
46		{ name: 'document', items: [ 'Source', '-', 'Save', 'NewPage', 'Preview', 'Print', /*'-', 'Templates'*/ ] },
47		{ name: 'clipboard', items: [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ] },
48		{ name: 'editing', items: [ 'Find', 'Replace', '-', 'SelectAll', '-', 'Scayt' ] },
49		{ name: 'forms', items: [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField' ] },
50		'/',
51		{ name: 'basicstyles', items: [ 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'CopyFormatting', 'RemoveFormat' ] },
52		{ name: 'paragraph', items: [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl', 'Language' ] },
53		{ name: 'links', items: [ 'Link', 'Unlink', 'Anchor' ] },
54		{ name: 'insert', items: [ /*'Image', 'Flash',*/ 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak'/*, 'Iframe'*/ ] },
55		'/',
56		{ name: 'styles', items: [ 'Styles', 'Format', 'Font', 'FontSize' ] },
57		{ name: 'colors', items: [ 'TextColor', 'BGColor' ] },
58		{ name: 'tools', items: [ 'Maximize', 'ShowBlocks' ] },
59		{ name: 'about', items: [ 'About' ] }
60	],
61  "mini": [
62        { name: 'document', items: [ 'Source', 'NewPage' ] },
63        { name: 'clipboard', items: [ 'Cut', 'Copy', 'PasteFromWord', '-', 'Undo', 'Redo' ] },
64        { name: 'editing', items: [ 'Find', 'Replace' ] },
65        { name: 'insert', items: [ 'Image' ] },
66        { name: 'links', items: [ 'Link', 'Unlink', 'Anchor' ] },
67        { name: 'basicstyles', items: [ 'Bold', 'Italic', 'Underline', '-', 'CopyFormatting', 'RemoveFormat' ] },
68        { name: 'paragraph', items: [ 'NumberedList', 'BulletedList', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock' ] },
69        { name: 'tools', items: [ 'Maximize', 'ShowBlocks' ] }
70      ]
71};
72
73var txt = {
74  'send': Array("Send", "Invia", "Send", "Senden", "Envoyer", "&#x43F;&#x43E;&#x441;&#x44B;&#x43B;&#x430;&#x442;&#x44C;"),
75  'close': Array("Close", "Chiudi", "Close", "Schlie&szlig;en", "Fermer", "&#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C;")
76};
77
78// Get OS
79var os = [
80  'iphone',
81  'ipad',
82  'windows',
83  'mac',
84  'linux'
85];
86
87// CKEditor on
88initEditor = function(id, initVal) {
89      var editorElement = CKEDITOR.document.getById( id );
90      if (editorElement==null)
91       {
92        editorElement = CKEDITOR.document.getDocumentElement(id);
93        if (typeof CKEDITOR.instances[id]=="undefined")
94          CKEDITOR.add( editorElement );
95       }
96      else
97        if (typeof CKEDITOR.instances[id]!="undefined")
98          CKEDITOR.instances[id].setData( initVal );
99        else
100          if ( isWysiwygareaAvailable() ) {
101            CKEDITOR.replace( id );
102          } else {
103            editorElement.setAttribute( 'contenteditable', 'true' );
104            CKEDITOR.inline( id );
105          }
106
107      if (typeof editorElement != "undefined")
108        editorElement.setHtml( initVal );
109
110      // Depending on the wysiwygare plugin availability initialize classic or inline editor.
111  /*
112      if ( wysiwygareaAvailable ) {
113        CKEDITOR.replace( id );
114      } else {
115        editorElement.setAttribute( 'contenteditable', 'true' );
116        CKEDITOR.inline( id );
117
118        // TODO we can consider displaying some info box that
119        // without wysiwygarea the classic editor may not work.
120      }
121    */
122    };
123
124function isWysiwygareaAvailable() {
125  // If in development mode, then the wysiwygarea must be available.
126  // Split REV into two strings so builder does not replace it :D.
127  if ( CKEDITOR.revision == ( '%RE' + 'V%' ) ) {
128    return true;
129  }
130
131  return !!CKEDITOR.plugins.get( 'wysiwygarea' );
132}
133// CKEditor off
134
135$(document).ready(function ()
136 {
137  var $filter = { langid: 1 };
138
139  var stickyToggle = function(sticky, stickyWrapper, scrollElement) {
140    var stickyHeight = sticky.outerHeight();
141    var stickyTop = stickyWrapper.offset().top;
142    if (scrollElement.scrollTop() > stickyTop){
143      stickyWrapper.height(stickyHeight);
144      sticky.addClass("is-sticky");
145    }
146    else{
147      sticky.removeClass("is-sticky");
148      stickyWrapper.height('auto');
149    }
150  };
151
152  // Get browser
153  if ("undefined"!=typeof $.browser)
154  $.each($.browser, function(i) {
155      $('body').addClass(i);
156      return false;
157  });
158
159  var match = navigator.appVersion.toLowerCase().match(new RegExp(os.join('|')));
160  if (match) {
161      $('body').addClass(match[0]);
162  };
163
164  // Find all data-toggle="sticky-onscroll" elements
165  $('[data-toggle="sticky-onscroll"]').each(function() {
166    var sticky = $(this);
167    var stickyWrapper = $('<div>').addClass('sticky-wrapper'); // insert hidden element to maintain actual top offset on page
168    sticky.before(stickyWrapper);
169    sticky.addClass('sticky');
170
171    // Scroll & resize events
172    $(window).on('scroll.sticky-onscroll resize.sticky-onscroll', function() {
173      stickyToggle(sticky, stickyWrapper, $(this));
174    });
175
176    // On page load
177    stickyToggle(sticky, stickyWrapper, $(window));
178  });
179    /*-----------------------------------------------------------------------------------*/
180    /*  GRAPHICLAB STUFF
181  /*-----------------------------------------------------------------------------------*/
182
183  $(".menu > ul li > ul").each(function(){
184    if(!$(this).hasClass("dontclose") && ($(this).parent().find(".current").length==0)) $(this).addClass("d-none");
185    else {
186      $(this).parentsUntil("ul").last().parent().removeClass("d-none");
187      $(this).parent().find("ul").first().removeClass("d-none");
188    }
189
190    if ($(this).parent().find("li").length)
191      $(this).parent().find("a").first().on("click", function(e){
192        e.preventDefault();
193        e.stopImmediatePropagation();
194        var el = $(e.target);
195        while (!el.is("a")) el=el.parent();
196
197        el.parent().find("ul").first().toggleClass("d-none", 200);
198      });
199  });
200
201  if ($(".contentCenter .nav-item").length && ($(".contentCenter .nav-item.active").length==0)) {
202    $(".contentCenter .nav-item a").first().trigger("click");
203  }
204
205  if ($("div[formid],div[data-formid]").length>0)
206  {
207   $("div[formid],div[data-formid]").each(function()
208    {
209     var mod=$(this);
210     var fid = mod.attr("formid");
211     if ("undefined"!=typeof mod.attr("data-formid"))
212       fid=mod.attr("data-formid");
213     var found = false;
214     var verbose=false;
215     if ("undefined"!=typeof mod.attr("data-verbose"))
216       verbose=(mod.attr("data-verbose")=="true");
217     for(i=0;i<forms.length;i++) if (forms[i]==fid) found=true;
218     if (!found)
219      {
220       var preset=false;
221       var hideStuff=false
222       if ("undefined"!=typeof mod.attr("data-preset"))
223         if ("{"==mod.attr("data-preset").substr(0,1))
224           preset=JSON.parse(mod.attr("data-preset"));
225         else
226          {
227           preset={};
228           p=mod.attr("data-preset").split("=");
229           preset[p[0]]=p[1];
230          }
231       if ("undefined"!=typeof mod.attr("data-hide"))
232        {
233         hideStuff={};
234         p=mod.attr("data-hide").split(",");
235         for (i in p)
236           hideStuff[p[i]]=p[i];
237        }
238        if (typeof mod.attr("no-data") != "undefined")
239          $filter.dataless=mod.attr("no-data");
240       $filter.formid = fid;
241       forms.push($filter.formid);
242       $.ajax({url: domain+'/modules/formmanager/ajaxcore.php?ajaxCmd=loadForm', crossDomain: true, dataType: "json", type: "GET",
243                   data: $filter,
244                   success: function(d) {
245                     if (d.form==20) {
246
247                      thisForm=$(d.html);
248                      thisForm.find(".field[smfieldid]").addClass("row").addClass("form-group").children().each(function(i){$(this).addClass("col-"+(4+(i%2 * 4)))});
249                      thisForm.find(".field[smfieldid] input[type='date']").addClass("date-picker").attr("type","text");
250                      thisForm.find(".value_data").each(function(i) {
251                        var el = $(this).find("input");
252                        if (el.length<1)
253                          el = $(this).find("textarea");
254                        if (el.length<1)
255                          el = $(this).find("select");
256                        if ((typeof el.attr("name")!="undefined") && (el.attr("name")!=null) && (el.attr("name")=="field_67")) el.addClass("select2_single").addClass("form-control");
257                        var name = el.parent().parent().find(".label_data");
258                        if (name.length==1)
259                         {
260                          if (name.hasClass("mandatory")) el.attr("required", "true");
261                          el.attr("placeholder", name.html() );
262                         }
263                      });
264                      if ((typeof fdiv.attr("buttons")!="undefined") && (fdiv.attr("buttons")!=null) && (fdiv.attr("buttons")=="false")) thisForm.find("div.button_data").remove();
265
266                      intForm=thisForm.html();
267                      extTag=thisForm.empty();
268                      $("div[formid='"+ d.formid +"']").each(function(){
269                        $target=$(this);
270                        if ((typeof fdiv.attr("target")!="undefined") && (fdiv.attr("target")!=null) && ($(this).find(fdiv.attr("target")).length>0))
271                         {
272                          $target=$(this).find(fdiv.attr("target"));
273                         }
274                        $target.append(intForm);
275                        dest=extTag.clone();
276                        dest.html( $(this).html() );
277                        $(this).empty().append( dest );
278                      })
279                     }
280                     else mod.append( d.html );
281                     if (verbose) mod.find("form").attr("verbose",true);
282                     var s = document.createElement("script");
283                     s.type = "text/javascript";
284                     s.innerHTML=d.js+"\n"+ 'customValidateForm_'+d.formid+' = function(f) { return customValidateForm('+d.formid+', f); };';
285                     $("head").append(s);
286                     mod.find(".value_data").each(function() {
287                       var el = $(this).find("input");
288                       if (el.length<1)
289                         el = $(this).find("textarea");
290                       var name = el.parent().parent().find(".label_data");
291                       if (name.length==1)
292                        {
293                         if (name.hasClass("mandatory")) el.attr("required", "true");
294                         el.attr("placeholder", name.html() );
295                        }
296                      });
297                    if (hideStuff)
298                      mod.find("input,select,textarea").each(function() {
299                        if ("undefined"!=typeof hideStuff[this.name])
300                         {
301                          var el=$(this);
302                          while (!el.hasClass("field") && !el.is("body")) el=el.parent();
303                          if (el.hasClass("field")) el.addClass("d-none");
304                         }
305                       });
306                     if (preset)
307                       mod.find("input,select,textarea").each(function() {
308                         if ("undefined"!=typeof preset[this.name])
309                          {
310                           if ($(this).attr("type")=="checkbox") this.checked=(preset[this.name]==1);
311                           else $(this).val(preset[this.name]);
312                          }
313                        });
314
315                    if ((typeof d.recaptchacode != "undefined") && (d.recaptchacode!=''))
316                     {
317                      if ($("#reCaptchaContainer").length==0)
318                        mod.find(".button_data").before(
319                          $("<div>").addClass("reCaptchaContainer").attr("rcCode", d.recaptchacode).attr("rcTheme", "light")
320                         );
321
322                      if ("undefined"==typeof grecaptcha)
323                       $.ajax({ url: "//www.google.com/recaptcha/api.js?render="+d.recaptchacode, dataType: "script"});
324//                      else getRecaptcha(d.recaptchacode);
325                     }
326                   if ((typeof mod.attr("onload")) &&
327                       (mod.attr("onload")!=null) &&
328                       (mod.attr("onload")!='') &&
329                       (eval('typeof '+mod.attr("onload"))=="function"))
330                     eval(mod.attr("onload")).apply($filter.formid, [$filter.formid]);
331                   if ((typeof mod.attr("extraformid")) &&
332                       (mod.attr("extraformid")!=null) &&
333                       (mod.attr("extraformid")!=''))
334                     loadExtraForm(mod.attr("extraformid"));
335                   }
336        });
337       delete $filter.formid;
338       if (typeof $filter.dataless != "undefined")
339         delete $filter.dataless;
340      }
341    });
342  }
343
344  if ($(".helpInline[vimeo]").length > 0)
345    $(".helpInline[vimeo]").on("click", function(e){e.preventDefault();
346      var vimeo=this.getAttribute("vimeo");
347      var mod=createModal('Vimeo', '', '', 'modal-lg');
348      mod.find(".modal-body").append( $("<div>").addClass("embed-responsive").addClass("embed-responsive-16by9").append(
349          $("<iframe>").addClass("embed-responsive-item").attr({"fullscreen":"fullscreen","src":'https://player.vimeo.com/video/'+vimeo+'?autoplay=1'})
350         ) );
351
352      mod.modal('show');
353     }).css("cursor","pointer");
354
355  if ($("*[gotovimeo]").length > 0)
356    $("*[gotovimeo]").on("click", function(e){e.preventDefault();
357      var vimeo=this.getAttribute("gotovimeo");
358      var mod=createModal('Vimeo', '', '', 'modal-lg');
359      mod.find(".modal-body").append( $("<div>").attr("fullscreen","fullscreen").addClass("embed-responsive").addClass("embed-responsive-16by9").append(
360          $("<iframe>").addClass("embed-responsive-item").attr({"fullscreen":"fullscreen","src":'https://player.vimeo.com/video/'+vimeo+'?autoplay=1'})
361         ) );
362
363      mod.modal('show');
364     }).css("cursor","pointer");
365
366  if ($("li > ol").length>0)
367    $("li > ol").each(function(){var p=$(this).parent();if(!p.hasClass("level-1")){var el=p.children().first();if(el.is("a"))el.addClass("openable").css("position","relative").on("click",function(e){switchMenu(e)});var colours=Array(p.find("a.emptyData").length,p.find("a.halfData").length,p.find("a.fullData").length);if(colours[0]+colours[1]+colours[2]>0)if(colours[0]+colours[1]==0)el.addClass("fullData");else if(colours[1]+colours[2]==0)el.addClass("emptyData");else el.addClass("halfData")}})
368
369  if ($("li > ol div").length>0)
370    $("li > ol div").each(function(){var el=$(this);if(el.is("div") && el.hasClass("disabled"))el.css("cursor","not-allowed")});
371
372  if ($(".modalANACData form").length>0)
373   {
374    $(".modalANACData form").each(function() {
375      $(this).on("submit", function(e) {e.preventDefault(); validateANACData(e.target)});
376    });
377   }
378  if ($(".faqList i.icon-sort").length>0)
379   {
380    $(".faqList i.icon-sort").css("cursor","move").parent().disableSelection();
381    sortableList=$(".faqList").sortable({ containment: ".faqList",  axis: "y", handle: ".icon-sort", items: ".panel", update: function( e, ui ) { sortANAC(e, ui); } });
382   }
383  if ($(".faqList i.dropRow[rowid]").length>0)
384   {
385    $(".faqList i.dropRow[rowid]").each(function() {
386      $(this).on("click", function(e) {e.preventDefault(); dropAdminData(3, e.target)}).css("cursor","pointer");
387    });
388   }
389  // *****
390  if ($("body.pag-richieste .btn.newRequests").length>0)
391   {
392    $("body.pag-richieste .btn.newRequests").on("click", function(e) {
393      e.preventDefault();
394      $("body.pag-richieste .list.newRequests").toggleClass("hide").toggleClass("d-none")
395     }).css("cursor","pointer");
396   }
397
398   if ($("body.pag-elearning-reserved-area select[name='logMeAs']").length>0) {
399     $("body.pag-elearning-reserved-area select[name='logMeAs']").each(function(){
400       $(this).on("change", function(e){
401         e.preventDefault();
402         var v = e.target[e.target.selectedIndex].value;
403
404//         alert("Non è bene usare funzioni che non sono ancora state terminate, potrebbero rompere qualcosa sui database dei clienti...");
405         $.post("/templates/inc/ajaxcore.php?ajaxCmd=logMeAs", {"cid":v}, function(result) {
406          if (result.success)
407          {
408            var mod=createModal('Accessrequired', '');
409            mod.find(".modal-body").append( $("<h2>").addClass("text-center").html( "Fatto!" ) );
410            mod.modal('show');
411
412            window.location.reload();
413          }
414          else
415          {
416            if (!result.cause) alert("Si e' verificato un errore non precisato nell'esecuzione dell'operazione, riprovare piu' tardi!");
417            else
418            {
419              alert( result.cause );
420            }
421          }
422        }, "json");
423
424       });
425     });
426   }
427
428   if ($("body.pag-double-optin").length>0) {
429     $(".js-doubleOptinOptions[data-token] .js-optin-confirm").each(function(){
430       $(this).on("click", function(e){
431         e.preventDefault();
432         var el=$(e.target);
433         while("undefined"==typeof el.attr("data-token")) el=el.parent();
434
435         $.post("/templates/inc/ajaxcore.php?ajaxCmd=optinConfirm", {"token":el.attr("data-token")}, function(result) {
436          if (result.success)
437          {
438            alert("Abbiamo registrato la sua preferenza.\n\nLa ringraziamo del tempo dedicatoci.");
439            window.location.href='./';
440          }
441          else
442          {
443            if (!result.cause) alert("Si e' verificato un errore non precisato nell'esecuzione dell'operazione, riprovare piu' tardi!");
444            else
445            {
446              alert( result.cause );
447            }
448          }
449        }, "json");
450
451       });
452     });
453
454     $(".js-doubleOptinOptions[data-token] .js-optin-denial").each(function(){
455       $(this).on("click", function(e){
456         e.preventDefault();
457         var el=$(e.target);
458         while("undefined"==typeof el.attr("data-token")) el=el.parent();
459
460         $.post("/templates/inc/ajaxcore.php?ajaxCmd=optinDenial", {"token":el.attr("data-token")}, function(result) {
461          if (result.success)
462          {
463            alert("Abbiamo registrato la sua preferenza.\n\nLa ringraziamo del tempo dedicatoci.");
464            window.location.href='./';
465          }
466          else
467          {
468            if (!result.cause) alert("Si e' verificato un errore non precisato nell'esecuzione dell'operazione, riprovare piu' tardi!");
469            else
470            {
471              el.html( result.cause );
472            }
473          }
474        }, "json");
475
476       });
477     });
478   }
479
480   if ($("body.pag-usr-lostpswd .signin_reminder").length>0)
481    {
482     $("body.pag-usr-lostpswd .signin_reminder").wrap( $("<div>").addClass("row").append( $("<div>").addClass("col-md-6").addClass("col-sm-12").addClass("js-signin-password") ) ).find("form").each(function(){
483       if ("undefined"==typeof this.resetCode)
484        $(this).on("submit", function(e){
485          e.preventDefault();
486
487          var el=$(e.target);
488          while(!el.is("form")) el=el.parent();
489
490          var v = el.get(0).uid.value;
491
492          if (v!='') {
493              $.post("/templates/inc/ajaxcore.php?ajaxCmd=checkIfUserCanChangePassword", {"uid":v}, function(result) {
494                if (result.success)
495                {
496                  $("body.pag-usr-lostpswd .signin_reminder form").get(0).submit();
497                }
498                else
499                {
500                  if (result.alert) alert(result.alert);
501                  else
502                    if (!result.cause) alert("Si e' verificato un errore non precisato nel reperimento dei dati, riprovare piu' tardi!");
503                    else
504                    {
505                      $("body.pag-usr-lostpswd .signin_reminder form").html( result.cause );
506                    }
507            e.stopImmediatePropagation();
508            return false;
509                }
510              }, "json");
511
512          }
513        })
514     });
515     $(".js-signin-password .button_data").after( $(".js-signin-password .signingReminderText p") );
516     $(".js-signin-password").after( $("<div>").addClass("col-md-6").addClass("col-sm-12").addClass("js-signin-username") );
517     $(".js-signin-username").append(
518       $("<form>").addClass("js-form-signin-username")
519          .append( $("<div>").addClass("h4").html("Recupero username") )
520          .append( $("<div>").addClass("field").append( $("<div>").addClass("label_data").html("Email") ).append( $("<div>").addClass("value_data").append( $("<input>").addClass("textfield").attr({type:"email", name:"email"}) ) ) )
521          .append( $("<div>").addClass("button_data").append( $("<input>").addClass("button").attr({type:"submit"}).val("Richiedi username") ) )
522          .append( $("<p>").html("Questa funzione invia all'indirizzo email indicato tutti gli username a tale email associati, qualora poi non si ricordasse la password di tale username, la si pu&ograve; recuperare sempre in questa pagina.") )
523          .on("submit", function(e){
524            e.preventDefault();
525            e.stopImmediatePropagation();
526
527            var el=$(e.target);
528            while(!el.is("form")) el=el.parent();
529
530            var v = el.get(0).email.value;
531
532            if ((v!='') && (v.indexOf("@")>0)) {
533              $.post("/templates/inc/ajaxcore.php?ajaxCmd=retrieveUsernames", {"email":v}, function(result) {
534                if (result.success)
535                {
536                  alert( "Abbiamo inviato la mail all'indirizzo indicato, qualora non la vedesse entro pochi minuti, la invitiamo a controllare nella sua posta indesiderata o nella cartella spam." );
537                }
538                else
539                {
540                  if (!result.cause) alert("Si e' verificato un errore non precisato nel reperimento dei dati, riprovare piu' tardi!");
541                  else
542                  {
543                    alert( result.cause );
544                  }
545                }
546              }, "json");
547
548           } else alert("Inserire il proprio indirizzo email per continuare!");
549
550           return false})
551      );
552    }
553
554  if ($(".btn.newRequest[rid]").length > 0)
555    $(".btn.newRequest[rid]").on("click", function(e){e.preventDefault();
556      window.location='initRequest.php?rid='+this.getAttribute("rid");
557     });
558
559  if ($(".btn.manage[aid]").length > 0)
560    $(".btn.manage[aid]").on("click", function(e){e.preventDefault();
561      window.location='initRequest.php?aid='+this.getAttribute("aid");
562     });
563
564  if ($(".modalEcopData form").length>0)
565   {
566    $(".modalEcopData form").each(function() {
567      $(this).on("submit", function(e) {e.preventDefault(); validateFixedEcopData(e.target)});
568    });
569   }
570  if ($(".fixedEcopList i.dropRow[rowid]").length>0)
571   {
572    $(".fixedEcopList i.dropRow[rowid]").each(function() {
573      $(this).on("click", function(e) {e.preventDefault(); dropFixedSingleData(5, e.target)}).css("cursor","pointer");
574    });
575   }
576
577  if ($(".modalIntDocData form").length>0)
578   {
579    $(".modalIntDocData form").each(function() {
580      $(this).on("submit", function(e) {e.preventDefault(); validateRequestIntDoc(e.target)});
581    });
582   }
583  if ($(".requestInternalDocList i.dropRow[aid][rowid]").length>0)
584   {
585    $(".requestInternalDocList i.dropRow[aid][rowid]").each(function() {
586      $(this).on("click", function(e) {e.preventDefault(); dropVariableSingleData(9, e.target)}).css("cursor","pointer");
587    });
588   }
589
590  if ($(".modalDefendantData form").length>0)
591   {
592    $(".modalDefendantData form").each(function() {
593      $(this).on("submit", function(e) {e.preventDefault(); validateDefendant(e.target)});
594    });
595   }
596  if ($(".requestDefendantList i.dropRow[aid][rowid]").length>0)
597   {
598    $(".requestDefendantList i.dropRow[aid][rowid]").each(function() {
599      $(this).on("click", function(e) {e.preventDefault(); dropVariableSingleData(8, e.target)}).css("cursor","pointer");
600    });
601   }
602
603   if ($("form.smFMform20").length>0)
604    {
605     $("select[name='field_282']").on("change", function(e){changeForm20States(e)});
606     $("select[name='field_281']").on("change", function(e){changeForm20City(e)});
607     getForm20States(this);
608    }
609
610   if ($(".pag-richiesta-demo-software .product[pid]").length > 0)
611     $(".pag-richiesta-demo-software .product[pid]").on("click", function(e){
612       e.preventDefault();
613       var $el=$(e.target);
614       while (typeof $el.attr("pid")=="undefined")$el=$el.parent();
615       if (!$el.hasClass("active"))
616        {
617         var pid = $el.attr("pid");
618         $(".pag-richiesta-demo-software .timex[pid]").addClass("hide");
619         $(".pag-richiesta-demo-software .timex[pid] i").removeClass("fa-check-square").addClass("fa-square");
620         $(".pag-richiesta-demo-software .timex[pid] .row[tid].active").removeClass("active").addClass("unselected");
621         $(".pag-richiesta-demo-software .product[pid].active").removeClass("active").addClass("unselected");
622         $el.addClass("active").removeClass("unselected");
623         $(".pag-richiesta-demo-software .timex[pid='"+pid+"']").removeClass("hide");
624         $("form.smFMform20 input[name='field_174']").val( pid );
625         $("form.smFMform20 input[name='field_175']").val('');
626        }
627      }).css("cursor","pointer").each(function(){
628       if ($(".pag-richiesta-demo-software .timex[pid='"+ $(this).attr("pid") +"']").length == 0)
629         $(this).off("click").css("cursor","default").addClass("disable").fadeTo(800,.2);
630      });
631
632   if ($(".pag-richiesta-demo-software .timex[pid] .row[tid]").length > 0)
633     $(".pag-richiesta-demo-software .timex[pid] .row[tid]").on("click", function(e){
634       e.preventDefault();
635       var $el=$(e.target);
636       while (typeof $el.attr("tid")=="undefined")$el=$el.parent();
637       if (!$el.hasClass("active"))
638        {
639         var tid = $el.attr("tid");
640         $(".pag-richiesta-demo-software .timex[pid] .row[tid].active").removeClass("active").addClass("unselected");
641         $(".pag-richiesta-demo-software .timex[pid] i.fa-check-square").removeClass("fa-check-square").addClass("fa-square");
642         $el.addClass("active").removeClass("unselected");
643         $el.find("i").removeClass("fa-square").addClass("fa-check-square");
644         $("form.smFMform20 input[name='field_175']").val( tid );
645        }
646      }).css("cursor","pointer");
647
648   if ($(".pag-richiesta-demo-software .product[pid]").length==1)
649    {
650     $(".pag-richiesta-demo-software .product[pid]").trigger("click");
651   if ($(".pag-richiesta-demo-software .timex[pid] .row[tid]").length == 1)
652     $(".pag-richiesta-demo-software .timex[pid] .row[tid]").trigger("click");
653    }
654
655   if ($(".pag-richiesta-demo-software .product[pid].disable").length  == $(".pag-richiesta-demo-software .product[pid]").length)
656    {
657     $("form.smFMform20").parent().parent().empty()
658       .before( $("<h4>").addClass("text-center").html("Partecipa alle nostre demo online") )
659       .after( $("<div>").addClass("levelsBox").addClass("helpBox").html("Siamo spiacenti, ma al momento non sono in programma demo online per nessuno dei nostri software.<br/><br/>Potete inviare una mail all'indirizzo <a href='mailto:[email protected]'>[email protected]</a> per ricevere informazioni.") );
660    }
661
662  $(".newAttachment .btn").each(function(){$(this).on("click", function(e)
663     {
664      e.preventDefault();
665      var el=$("<input>").addClass("fileField").attr({"name":"fileattach","type":"file","aid":$(this).attr("aid"),"cid":$(this).attr("cid")});
666    /*
667      $(".table.requestAttachments .row.emptyRow").remove();
668      $(".table.requestAttachments").append( $("<div>").addClass("td").addClass("row").append( $("<div>").addClass("col-sm-20").append( el ) ).append( $("<div>").addClass("col-sm-4").append( $("<i>").addClass("dropRow").addClass("icon-trash").attr({"alt":"Elimina"}).on("click",function(e){e.preventDefault();
669        var $el=$(e.target);
670        while(!$el.hasClass("row"))$el=$el.parent();
671        $el.remove();
672       }) ) ) );
673    */
674      $(this).before( $("<div>").addClass("td").addClass("row").append( $("<div>").addClass("col-sm-24").append( el ) ) );
675      el.on("change",function(e){e.preventDefault();
676        url = "/templates/inc/ajaxcore.php?ajaxCmd=saveData&silent=1&formid=7&cmd=save&langid="+$filter.langid;
677        result={"success":true};
678        result.fileid="field_53";
679        result.filename="field_54";
680        result.additionalFields=$("<span>").addClass("hide").addClass("d-none").append($("<input>").attr({"name":"field_52","type":"hidden"}).val($(e.target).attr("aid"))).append($("<input>").attr({"name":"field_55","type":"hidden"}).val(user.field_2));
681        sendAttachedFiles( url, 7, result, $(e.target).parent(), function(){window.location.reload()});
682       }).trigger("click");
683      $(this).remove();
684     });});
685
686  $(".table.requestAttachments .downloadThis[aid][rowid]").each(function(){$(this).on("click", function(e){e.preventDefault();downloadRequestFile(7, e.target);}).css("cursor","pointer")});
687  $(".table.requestAttachments .dropRow[aid][rowid]").each(function(){$(this).on("click", function(e){e.preventDefault();dropVariableSingleData(7, e.target);})});
688
689  // *****
690
691  if ($(".printMacro[oid]").length>0)
692   {
693    $(".printMacro[oid]").on("click", function(e) {
694      e.preventDefault();
695      var $el=$(e.target);
696      while(typeof $el.attr("oid")=="undefined")$el=$el.parent();
697      var url="/templates/inc/ajaxfiles.php?ajaxCmd=createMacroDocx"+"&oid="+$el.attr("oid");
698      if ((typeof $el.attr("fname")!="undefined") && ($el.attr("fname")!=null) && ($el.attr("fname")!=""))
699        url += "&dest="+ encodeURI($el.attr("fname"));
700      window.location=url;
701     }).css("cursor","pointer");
702   }
703
704  if ($(".hereAffix").length > 0)
705    $('.hereAffix').affix({ offset: { top: $('.hereAffix').offset().top } });
706
707  if ($("div.pickFromTable[table][target]").length > 0)
708    $("div.pickFromTable[table][target]").each(function(){
709      $("*[name='"+ this.getAttribute("target") +"']").before( $(this) );
710     });
711
712  if ($(".pickFromTable[table]").length > 0)
713    $(".pickFromTable[table]").each(function(){
714      $(this).on("click", function(e){e.preventDefault();pickFromTable(e.target);}).css("cursor","pointer");
715      $(this).after( $("<i>").addClass("icon-trash").addClass("emptyField").on("click",function(e){emptyField(e)}).css({"cursor":"pointer"}) );
716     });
717
718  $("form").each(function(){$(this).on("reset",function(e){resetForm(e)})});
719  $("i.icon-edit").css("cursor","pointer");
720
721  if ($(".errormessage").length>0)
722    $(".errormessage").addClass("alert").addClass("text-bg-danger");
723
724  if ($("table.datatable-responsive").length>0)
725    dataTableFixed($("table.datatable-responsive"));
726
727  if ($(".js-accessRequired").length > 0)
728    $(".js-accessRequired").on("click", function(e){
729      e.preventDefault();
730
731      var mod=createModal('Accessrequired', 'Accesso richiesto', '', 'modal-lg');
732      mod.find(".modal-body").append(
733        '<table style="text-align: center; width: 100%; line-height: 20px;" border="0" cellspacing="3" cellpadding="5"><tbody><tr><td align="center"><h2 class="text-center red"><i class="far fa-2x fa-exclamation-triangle" aria-hidden="true"></i></h2></td><td align="center" width="500"><h2 style="text-align: center;">Per leggere l\'articolo è necessario essere registrato</h2><p><strong>Se non visualizzi l\'articolo forse non sei LOGGATO.&nbsp;</strong></p><p><strong><br></strong></p><p>Puoi loggarti utilizzando il modulo a sinistra, se non possiedi un account, puoi richiedere la prova gratuita per 30 giorni <a href="i-nostri-servizi.php?pid=8">cliccando qui</a> oppure contattare l\'amministratore <a href="elearning-contatti.php">cliccando qui</a></p><p>&nbsp;</p></td><td align="center"><h2 class="text-center red"><i class="far fa-2x fa-exclamation-triangle" aria-hidden="true"></i></h2></td></tr></tbody></table>'
734       );
735
736      mod.modal('show');
737     }).css("cursor","pointer");
738
739  if ($(".js-lackOfPermission").length > 0)
740    $(".js-lackOfPermission").on("click", function(e){
741      e.preventDefault();
742
743      var mod=createModal('Accessrequired', 'Servizio non attivo', '', 'modal-lg');
744      mod.find(".modal-body").append(
745        '<table style="text-align: center; width: 100%; line-height: 20px;" border="0" cellspacing="3" cellpadding="5"><tbody><tr><td align="center"><h2 class="text-center red"><i class="far fa-2x fa-exclamation-triangle" aria-hidden="true"></i></h2></td><td align="center" width="500"><h2 style="text-align: center;">Per leggere l\'articolo è necessario esser abbonato alla materia</h2><p><strong>Se non visualizzi l\'articolo forse non sei ABBONATO alla materia.&nbsp;</strong></p><p><strong><br></strong></p><p>Puoi richiedere la prova gratuita per 30 giorni <a href="i-nostri-servizi.php?pid=8">cliccando qui</a> oppure contattare l\'amministratore <a href="elearning-contatti.php">cliccando qui</a></p><p>&nbsp;</p></td><td align="center"><h2 class="text-center red"><i class="far fa-2x fa-exclamation-triangle" aria-hidden="true"></i></h2></td></tr></tbody></table>'
746       );
747
748      mod.modal('show');
749     }).css("cursor","pointer");
750
751  if ($(".buyThis").length > 0)
752    $(".buyThis").on("click", function(e){
753      e.preventDefault();
754
755      window.location="/ita/richiesta-informazioni.php";
756     }).css("cursor","pointer");
757
758  if ($(".activateThis").length > 0)
759    $(".activateThis").on("click", function(e){
760      e.preventDefault();
761
762      window.location="/ita/richiedi-accesso.php";
763     }).css("cursor","pointer");
764
765  if ($("select[select2]").length>0)
766  {
767    $("select[select2]").each(function(){
768      new TomSelect(this, {
769        placeholder: $(this).attr("placeholder") || '',
770        allowCEmptyOption: true
771        });
772      });
773  }
774
775
776	//slick
777  if ($('.slideBox').length>0) {
778    var swiper = new Swiper('.swiper', {
779      loop: true,
780      autoplay: {
781        delay: 4000,
782        disableOnInteraction: false,
783      },
784      pagination: {
785        el: '.swiper-pagination',
786        clickable: true,
787      },
788      navigation: {
789        nextEl: '.swiper-button-next',
790        prevEl: '.swiper-button-prev',
791      },
792      slidesPerView: 3,
793      spaceBetween: 20,
794      loop: true,
795      pagination: {
796        clickable: true,
797      },
798      breakpoints: {
799        600: {
800          slidesPerView: 3,
801        },
802        480: {
803          slidesPerView: 2,
804        },
805        0: {
806          slidesPerView: 1,
807        }
808      }
809    });
810  }
811
812  $(window).trigger("resize");
813  if ($(".openbtn").length>0) $(".openbtn").on("click", function(e){e.preventDefault();$(".menu--mobile").css("width","100%").addClass("open")});
814  if ($(".closebtn").length>0) $(".closebtn").on("click", function(e){e.preventDefault();$(".menu--mobile").css("width","0px").removeClass("open")});
815
816  if ($("select[name='field_598']").length>0) {
817    getForm79States();
818    $("form[name='form_79']").attr("cmd", "bulletin30free");
819  }
820
821  if ($("input[type='password']"))
822    $("input[type='password']").each(function(){
823      $(this).addClass("form-control").wrap(
824        $("<div>").addClass("input-group") ).after(
825          $("<div>").addClass("input-group-addon").append( $("<i>").addClass("fa").addClass("fa-eye-slash") )
826            .on('click', function(e) {
827              e.preventDefault();
828              let el2=$(e.target);
829              while(!el2.hasClass("input-group")) el2=el2.parent();
830              const el=el2.find("i").first();
831              el2=el2.find("input").first();
832
833              if (el2.attr("type") == "text"){
834                  el2.attr('type', 'password');
835                  el.addClass( "fa-eye-slash" ).removeClass( "fa-eye" );
836              }else if(el2.attr("type") == "password"){
837                  el2.attr('type', 'text');
838                  el.removeClass( "fa-eye-slash" ).addClass( "fa-eye" );
839              }
840             }).css({"cursor":"pointer"})
841          )
842    })
843
844  if ($(".sendAttoNomina[act]").length>0) {
845    $(".sendAttoNomina[act]").each(function() {
846      $(this).on("click", function(e) {
847        e.preventDefault();
848        var el=$(e.target);
849        while (typeof el.attr("act")=="undefined") el=el.parent();
850
851        if (el.attr("act")=="send") {
852          $.post("/templates/inc/ajaxcore.php?ajaxCmd=sendAttoNominaEmail", function(result) {
853            if (result.success) {
854              // alert("Atto di nomina inviato correttamente.");
855              el.parent().parent().parent().empty().append( $("<div>").addClass("alert").addClass("text-bg-success").html("Atto di nomina inviato correttamente, grazie.") );
856            }
857            else {
858              if (!result.cause) alert("Si e' verificato un errore non precisato nell'invio dell'atto di nomina, riprovare piu' tardi!");
859              else alert( result.cause );
860            }
861          }, "json");
862        }
863        else {
864          el.parent().parent().parent().empty().append( $("<div>").addClass("alert").addClass("text-bg-success").html("Preferenza memorizzata, grazie.") );
865        }
866      });
867    });
868  }
869
870  checkIfLogged();
871});
872
873$(window).on("resize", function(){
874  if($(document).width()<576) {
875    $(".navbar").addClass("navbar--mobile").removeClass("navbar--desktop");
876    $(".eol__menu").addClass("menu--mobile").removeClass("menu--desktop");
877  }
878  else {
879    $(".navbar").removeClass("navbar--mobile").addClass("navbar--desktop")
880    $(".eol__menu").removeClass("menu--mobile").addClass("menu--desktop")
881  }
882});
883
884loadExtraForm = function(fid)
885 {
886  var fdiv = $("div.extradata");
887
888  $filter.formid = fid;
889  if (typeof fdiv.attr("no-data") != "undefined")
890    $filter.dataless=fdiv.attr("no-data");
891  forms.push($filter.formid);
892  $.ajax({url: domain+'/modules/formmanager/ajaxcore.php?ajaxCmd=loadForm', crossDomain: true, dataType: "json", type: "GET",
893              data: $filter,
894              success: function(d)
895               {
896                thisForm=$(d.html);
897                thisForm.find("div.button_data").remove();
898                thisForm.find("input[name='cmd']").remove();
899                thisForm.find("input[name='formid']").remove();
900
901                intForm=thisForm.html();
902
903                fdiv.append(intForm);
904
905                var s = document.createElement("script");
906                s.type = "text/javascript";
907                s.innerHTML=d.js;
908                s.innerHTML+="\n"+ 'customValidateForm_'+d.formid+' = function(f) { if (validateForm_'+d.formid+'(f)) { disabledids=Array(); $( f ).find("input:disabled").each( function(i) { if (this.name.substr(0,6) == "field_") disabledids.push( this.name.substr(6) ); }); url = "'+ domain +'/templates/inc/ajaxcore.php?ajaxCmd=saveData"; if (disabledids.length>0) url += "&disabledids="+disabledids.join("|"); $.post(url, $(f).serialize(), function(result) { if (result.success) { if (typeof result.thankyou != "undefined") f.innerHTML = result.thankyou; else {if (result.redir && (result.redir.indexOf('/')==-1)) location.href=result.redir;} } else { if (!result.ERROR) alert("Si e\' verificato un errore sconosciuto nel salvataggio dei dati..."); else { alert( result.ERROR ); if (result.ERRORFIELDID!="") try{ f["field_"+result.ERRORFIELDID].focus();}catch(e){}; } } validateForm_'+ d.formid +'_running = false; }, "json"); } return false; };';
909                $("head").append(s);
910               }
911   });
912  delete $filter.formid;
913  if (typeof $filter.dataless != "undefined")
914    delete $filter.dataless;
915 }
916
917getForm29States = function(e)
918 {
919  if ($("select[name='field_262']").length>0)
920   {
921    var c=$("select[name='field_262']").first();
922    c.on("change", function(e){changeForm29States(e)});
923    $.get("/templates/inc/ajaxcore.php?ajaxCmd=getStates", function(result) {
924      if (result.success)
925       {
926        if (result.data && (result.data.length>0))
927          $.each(result.data,function(i,el){
928            c.append( $("<option>").attr("value",el.id).html(el.field_27) );
929           });
930       }
931      else
932        $(c.get(0).form).remove();
933     }, "json");
934   }
935 }
936
937changeForm29States=function(e)
938 {
939  if ($("select[name='field_254']").length>0)
940   {
941    var s=$(e.target);
942    var c=$("select[name='field_254']").first().empty();
943    if (s.val()!='')
944      $.get("/templates/inc/ajaxcore.php?ajaxCmd=getCitiesByState", {"sid": s.val()}, function(result) {
945        if (result.success)
946         {
947          if (result.data && (result.data.length>0))
948            $.each(result.data,function(i,el){
949              c.append( $("<option>").attr("value",el.id).html(el.field_21) );
950             });
951         }
952//        else
953//          $(c.get(0).form).remove();
954       }, "json");
955   }
956 }
957
958getForm79States=function(e) {
959  if ($("select[name='field_598']").length>0)
960   {
961    var c=$("select[name='field_598']").first();
962    c.on("change", function(e){changeForm79States(e)});
963    $.get("/templates/inc/ajaxcore.php?ajaxCmd=getStates", function(result) {
964      if (result.success)
965       {
966        if (result.data && (result.data.length>0)) {
967          c.empty().append( $("<option>") );
968          $.each(result.data,function(i,el){
969            c.append( $("<option>").attr("value",el.id).html(el.field_27) );
970           });
971        }
972       }
973      else
974        $(c.get(0).form).remove();
975     }, "json");
976   }
977 }
978
979changeForm79States=function(e)
980 {
981  if ($("select[name='field_593']").length>0)
982   {
983    var s=$(e.target);
984    var c=$("select[name='field_593']").first().empty();
985    if (s.val()!='')
986      $.get("/templates/inc/ajaxcore.php?ajaxCmd=getCitiesByState", {"sid": s.val()}, function(result) {
987        if (result.success)
988         {
989          if (result.data && (result.data.length>0))
990            $.each(result.data,function(i,el){
991              c.append( $("<option>").attr("value",el.id).html(el.field_21) );
992             });
993         }
994//        else
995//          $(c.get(0).form).remove();
996       }, "json");
997   }
998}
999
1000getForm20States=function(e) {
1001  if ($("select[name='field_282']").length>0)
1002   {
1003    $("input[name='field_283']").val( '' );
1004    var c=$("select[name='field_282']").first();
1005    $.get("/templates/inc/ajaxcore.php?ajaxCmd=getStates", function(result) {
1006      if (result.success)
1007       {
1008        if (result.data && (result.data.length>0))
1009          $.each(result.data,function(i,el){
1010            c.append( $("<option>").attr("value",el.id).html(el.field_27) );
1011           });
1012       }
1013      else
1014        $(c.get(0).form).remove();
1015     }, "json");
1016   }
1017}
1018
1019changeForm20States=function(e) {
1020  if ($("select[name='field_281']").length>0)
1021   {
1022    $("input[name='field_283']").val( '' );
1023    var s=$(e.target);
1024    var c=$("select[name='field_281']").first().empty().append( $("<option>").attr("value","") );
1025    if (s.val()!='')
1026      $.get("/templates/inc/ajaxcore.php?ajaxCmd=getCitiesByState", {"sid": s.val()}, function(result) {
1027        if (result.success)
1028         {
1029          if (result.data && (result.data.length>0))
1030            $.each(result.data,function(i,el){
1031              c.append( $("<option>").attr("value",el.id).html(el.field_21) );
1032             });
1033         }
1034//        else
1035//          $(c.get(0).form).remove();
1036       }, "json");
1037   }
1038}
1039
1040changeForm20City=function(e) {
1041  if ($("input[name='field_283']").length>0)
1042   {
1043    $("input[name='field_283']").val( '' );
1044    var s=$(e.target);
1045    if (s.val()!='')
1046      $.post("/templates/base/build/inc/ajaxcore.php?ajaxCmd=getEstimateParamsByCity", {"id": s.val(), "isSW": true}, function(result) {
1047        if (result.success)
1048          if (result.agentz && (result.agentz.length>0))
1049           {
1050            var i=0;
1051            var a=false;
1052            if (result.agentz.length>1)
1053              $.each(result.agentz,function(j,el){
1054                if ((typeof el.isInternal=="undefined") || (el.isInternal!=1))
1055                 {
1056                  i++;
1057                  a=el;
1058                 }
1059               });
1060            if ((i==0) && (result.agentz.length>0))
1061             {
1062              a=result.agentz.pop();
1063              i=1;
1064             }
1065            if ((a!=false) && (i==1))
1066              $("input[name='field_283']").val( ((a.field_883!=null) && (a.field_883!=''))?a.field_883:a.id );
1067           }
1068       }, "json");
1069   }
1070}
1071
1072customValidateForm_20 = function( f ) {
1073  var fid=20;
1074  if (f.field_174.value=='')
1075   {
1076    alert("Clicca sul prodotto sul quale vuoi partecipare alla demo online!");
1077    eval("validateForm_"+ fid +"_running = false;");
1078    return false;
1079   }
1080  else
1081  if (f.field_175.value=='')
1082   {
1083    alert("Scegli l'orario in cui vuoi partecipare alla demo online!");
1084    eval("validateForm_"+ fid +"_running = false;");
1085    return false;
1086   }
1087  else /*
1088    return window["validateForm_"+ fid](f);
1089    /* */
1090  if (window["validateForm_"+ fid](f))
1091   {
1092    if (f.field_282.selectedIndex==0)
1093     {
1094      alert("Devi indicare la provincia e il paese!");
1095      eval("validateForm_"+ fid +"_running = false;");
1096      return false;
1097     }
1098    disabledids=Array();
1099    $( f ).find("input:disabled").each( function() { if (this.name.substr(0,6) == "field_") disabledids.push( this.name.substr(6) ); });
1100    $( f ).find("textarea:disabled").each( function() { if (this.name.substr(0,6) == "field_") disabledids.push( this.name.substr(6) ); });
1101    url = "/templates/inc/ajaxcore.php?ajaxCmd=saveData&silent=1&langid="+$filter.langid;
1102    if (disabledids.length>0) url += "&disabledids="+disabledids.join("|");
1103    $.post(url, $(f).serialize(), function(result) {
1104      if (result.success)
1105       {
1106        $(".products").remove();
1107        sendFormMail(fid, result);
1108       }
1109      else
1110       {
1111        alert (result.cause?result.cause:"Si e' verificato un errore sconosciuto nel salvataggio dei dati...");
1112       }
1113      eval("validateForm_"+ fid +"_running = false;");
1114     }, "json");
1115   }
1116/*  */
1117  return false;
1118}
1119
1120sendFormMail = function( fid, result ) {
1121  $.post("/templates/inc/ajaxcore.php?ajaxCmd=sendFormEmail", {"formid":fid, "dataid":result.dataid}, function(rez) {
1122    if (rez.success)
1123     {
1124      if ($("form[name='form_"+ fid +"']").length>0)
1125        f=$("form[name='form_"+ fid +"']").get(0);
1126      if (typeof result.redir != "undefined") {if (result.redir && (result.redir.indexOf('/')==-1)) location.href=result.redir;}
1127      else
1128        if ((typeof f != "undefined") && (typeof result.thankyou != "undefined") && (result.thankyou!=''))
1129         {
1130          $(f).parent().html( result.thankyou );
1131         }
1132        else location.reload();
1133     }
1134    else
1135      alert (result.cause?result.cause:(result.ERROR?result.ERROR:"Si e' verificato un errore sconosciuto nel salvataggio dei dati..."));
1136
1137    eval("validateForm_"+ fid +"_running = false;");
1138   }, "json");
1139}
1140
1141editHelpStuff = function( el, useEditor )
1142 {
1143  if (typeof useEditor=="undefined") useEditor=false;
1144
1145  var lnk='';
1146  if ($("a[helpelement='helpField"+el+"']").length>0)
1147    lnk=$("a[helpelement='helpField"+el+"']").attr("href");
1148
1149  var txt='';
1150  if ($(".helpStuff.helpField"+el).length>0)
1151    txt=$(".helpStuff.helpField"+el).html();
1152  else
1153    if ($("div[helpPage='"+el+"']").length>0)
1154      txt=$("div[helpPage='"+el+"']").html();
1155  if (!useEditor) txt=txt.replace(new RegExp("<br[^>]*>","g"), "\n");
1156  var m=createModal("HelpAdminStuff", "Testo d'aiuto", "imposta", useEditor?'modal-lg':'');
1157
1158  m.find("form").attr({"section": el, "useEditor":useEditor})
1159     .on("submit", function(e) { saveHelpAdminStuff(e, useEditor); return false; });
1160
1161  m.find(".modal-body").append( $("<div>").addClass("row").append( $("<div>").addClass("col-sm-24").html( "Testo").append( $("<textarea>").attr({"name":"helpText"}).val( txt ) ) ) )
1162                       .append( $("<div>").addClass("row").append( $("<div>").addClass("col-sm-24").html( "Link").append( $("<input>").attr({"type":"text","name":"helpLink"}).val( lnk ) ) ) )
1163
1164  m.on('hidden.bs.modal', function (e) { $(e.target).remove(); });
1165  if (useEditor)
1166   {
1167    m.find("textarea[name='helpText']").hide().before( $("<div>").addClass("fullEditor").attr("id","helpTxt") );
1168    if (typeof CKEDITOR.instances.helpTxt!="undefined")
1169      CKEDITOR.instances.helpTxt.setData( m.find("textarea[name='helpText']").val() );
1170    m.on('shown.bs.modal', function(e){initEditor("helpTxt", m.find("textarea[name='helpText']").val() )}
1170);
1171    m.on('hide.bs.modal', function(e){CKEDITOR.instances.helpTxt.destroy()});
1172
1173    $.post("/templates/inc/ajaxcore.php?ajaxCmd=getHelpData", {"raw":"flat", "hid":el, "hsec":el}, function(result) {
1174       if (result.success)
1175        {
1176         if ((typeof result.fields!="undefined") && (result.fields!=null) && (result.fields.length>0))
1177           for (i in result.fields)
1178            {
1179             var item=result.fields[i];
1180             if ((typeof item=="object") && ("undefined"!=typeof item.txt) && (null!=item.txt))
1181              {
1182               m.find("textarea[name='helpText']").val( item.txt.replace('\"', '"') );
1183               if (typeof CKEDITOR.instances.helpTxt!="undefined")
1184                 CKEDITOR.instances.helpTxt.setData( m.find("textarea[name='helpText']").val() );
1185              }
1186             if ((typeof item=="object") && ("undefined"!=typeof item.lnk) && (null!=item.lnk))
1187              {
1188               m.find("input[name='helpLink']").val( item.lnk );
1189              }
1190           }
1191         if ((typeof result.sectors!="undefined") && (result.sectors!=null) && (result.sectors.length>0))
1192           for (i in result.sectors)
1193            {
1194             var item=result.sectors[i];
1195             if ((typeof item=="object") && ("undefined"!=typeof item.txt) && (null!=item.txt))
1196              {
1197               m.find("textarea[name='helpText']").val( item.txt );
1198               if (typeof CKEDITOR.instances.helpTxt!="undefined")
1199                 CKEDITOR.instances.helpTxt.setData( m.find("textarea[name='helpText']").val() );
1200              }
1201             if ((typeof item=="object") && ("undefined"!=typeof item.lnk) && (null!=item.lnk))
1202              {
1203               m.find("input[name='helpLink']").val( item.lnk );
1204              }
1205           }
1206       }
1207     }, "json");
1208   }
1209  m.modal( 'show' );
1210 }
1211
1212saveHelpAdminStuff = function( e, useEditor )
1213 {
1214  e.preventDefault();
1215
1216  var $f=$(e.target);
1217  var d='';
1218  var useEditor=(typeof $f.attr("useEditor")!="undefined") && ($f.attr("useEditor")=="true");
1219
1220  if (useEditor)
1221   {
1222    var oEditor = CKEDITOR.instances.helpTxt;
1223    d = oEditor.getData();
1224   }
1225  else d=$f.find("textarea").val();
1226
1227  $.post("/templates/inc/ajaxcore.php?ajaxCmd=saveHelpData", {"sect":$f.attr("section"), "help":d, "lnk":$f.find("input[type='text']").val(), "usedEditor": useEditor}, function(result) {
1228    if (result.success)
1229     {
1230      window.location.reload();
1231     }
1232    else
1233     {
1234      alert((!result.cause)?(result.ERROR?result.ERROR:"Si e' verificato un errore sconosciuto nel salvataggio dei dati..."):result.cause );
1235      if (result.ERRORFIELDID!="") try{ f["field_"+result.ERRORFIELDID].focus();}catch(e){};
1236     }
1237   }, "json");
1238
1239  return false;
1240 }
1241
1242pickFromTable = function(el)
1243 {
1244  $(el).addClass("active");
1245  var tid=el.getAttribute("table");
1246  var mod=createModal('PickFromTable', 'Fai la tua scelta', '', 'modal-lg');
1247
1248  mod.find("form").attr({"tid": $(el).attr("table"),"destField": $(el).attr("target"),"pickId": $(el).hasClass("pickID")})
1249                          .bind("submit", function(e) { pickFromTable(e); return false; });
1250
1251  loadTableData(mod.find("form"), (typeof $(el).attr("multivalue")!="undefined"));
1252
1253  mod.on('hide.bs.modal', function (e) { $(".pickFromTable.active[table]").removeClass("active"); });
1254  mod.modal('show');
1255 };
1256
1257emptyField = function(e)
1258 {
1259  e.preventDefault();
1260  var el=$(e.target).parent();
1261
1262  el.find(".pickFromTable").each(function(){
1263    this.value='';
1264    if (typeof this.getAttribute("target")!='undefined')
1265      $("*[name='"+ this.getAttribute("target") +"']").val( '' );
1266   });
1267
1268 };
1269
1270checkIfLogged = function() {
1271  try {
1272    $.ajax({type: "GET", async: true, url: "/templates/inc/ajaxcore.php?ajaxCmd=getLogged", success: function(result) {
1273      if (result.isLogged) {
1274        user=result.user;
1275        $(".toLogin").removeClass("toLogin");
1276        $(".showIfLogged").each(function(i) {
1277          var dis = $(this).attr("display");
1278          if ((typeof dis == "undefined") || (dis=='')) dis="inline-block";
1279          $(this).removeClass("showIfLogged").css("display", dis);
1280        });
1281        doLoggedOps();
1282      }
1283      else {
1284        $(".toLogin").each(function(i) { $( this ).attr({"data-toggle": "modal", "data-target": "#loginStuff", "href": "#toLogin"}).css("cursor", "pointer");});
1285        $(".showIfNotLogged").each(function(i) {
1286          var dis = $(this).attr("display");
1287          if ((typeof dis == "undefined") || (dis=='')) dis="inline-block";
1288          $(this).removeClass("showIfNotLogged").css("display", dis);
1289        });
1290      }
1291  //    cookieAndOtherStuffLoader();
1292    }, dataType: "json"});
1293  }
1294  catch (e) {
1295     console.log(e)
1296  }
1297}
1298
1299cookieAndOtherStuffLoader=function() {
1300  $.getScript( "https://scripts.graphiclab.it/js/cookie.js", function() {
1301    cookieLangid=$filter.langid;
1302    cookieBypass=true;
1303
1304    cookieText='Questo sito utilizza i cookies, continuando la navigazione accetti l\'impiego di cookie in accordo con la nostra cookie policy. <a href="cookie-policy.php">Ulteriori informazioni</a>.';
1305
1306    // ga={'create': {
1307    //                trackingId: 'UA-89554111-5',
1308    //                cookieDomain: 'auto'
1309    //               },
1310    //     'send': { hitType: 'pageview' }
1311    //    };
1312
1313    // if (user && (user.id>0)){
1314    //     ga['set'] = {'userId': user.id};
1315    // }
1316
1317    // fb={'id':206147689983049, 'cmd': ["'track', 'PageView'"]};
1318
1319    // callBack="otherStuffLoaderAfterCookie";
1320  });
1321}
1322
1323doLoggedOps = function() {
1324  /*
1325  $.post("/templates/inc/ajaxcore.php?ajaxCmd=getMyPreferredMePA", function(result) {
1326     if (result.success && ($("ul.navbar-nav li.MePAlink").length==0) && ($("ul.navbar-nav li a.citySettings").length>0) && (typeof result.url!="undefined") && (result.url!=null) && (result.url!=""))
1327         $("ul.navbar-nav li a.faqAnac").parent().before($("<li>").append( $("<a>").attr({"target":"_blank","href":result.url}).html("MePA") ));
1328   }, "json");
1329  */
1330
1331  if (user.field_10<4)
1332  if ($("div[helpPage]").length > 0) {
1333    if ("undefined"==typeof CKEDITOR)
1334      $.getScript("/templates/backend/ckeditor/ckeditor.js", function(){
1335        if (typeof CKEDITOR!="undefined" )
1336         {
1337          var wysiwygareaAvailable = isWysiwygareaAvailable(),
1338            isBBCodeBuiltIn = !!CKEDITOR.plugins.get( 'bbcode' );
1339
1340          if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
1341            CKEDITOR.tools.enableHtml5Elements( document );
1342
1343          // The trick to keep the editor in the sample quite small
1344          // unless user specified own height.
1345          CKEDITOR.config.height = 240;
1346          CKEDITOR.config.width = 'auto';
1347          CKEDITOR.config.removePlugins = 'flash,iframe,smiley,templates,forms';
1348          CKEDITOR.config.versionCheck = false;
1349
1350         }
1351       });
1352    $("div[helpPage]").each(function(){
1353      $(this).parent().append( $("<div>").addClass("text-center").append( $("<button>").attr({"helpPage":$(this).attr("helpPage")}).text("Modifica testo").addClass("btn").addClass("btn-info")
1354                                                                         .on("click",function(e){
1355        e.preventDefault();
1356        var el=$(e.target);
1357        while(typeof el.attr("helpPage")=="undefined")el=el.parent();
1358          editHelpStuff( el.attr("helpPage"), true )
1359       }).css("cursor","pointer") ) );
1360     });
1361  }
1362}
1363
1364loadTableData = function( f, multivalue )
1365 {
1366  if (typeof multivalue=="undefined") multivalue=false;
1367  f.find(".modal-body").empty()
1368    .append( $("<div>").addClass("spinDoctor").addClass("text-center").css({"position":"relative","vertical-align":"middle","height":"150px"}).html("Caricamento dati...").append( spinner.el ) );
1369
1370  $.post("/templates/inc/ajaxcore.php?ajaxCmd=getDataFromTable", {"tid":f.attr("tid")}, function(result)
1371   {
1372    var t=f.find(".modal-body").empty();
1373    if (result.success)
1374     {
1375      var table=$("<tbody>");
1376      for(i in result.datax)
1377        if (i==i*1)
1378         {
1379          var d=result.datax[i];
1380          var el = $("<td>").attr("rowid",d.id).html( d.val ).on("click",function(e){pickedDataTable(e,f)}).css("cursor","pointer");
1381          if (multivalue) el.addClass("pickAlsoMe");
1382          else el.addClass("pickJustMe");
1383          table.append( $("<tr>").append( el ) );
1384         }
1385      if ((typeof result.addFunction) && (result.addFunction!=null) && (result.addFunction!='') && (eval('typeof '+result.addFunction)=="function") &&
1386          (f.find("button.addNewOne").length==0))
1387        f.find(".modal-footer").prepend(
1388          $("<button>").addClass("btn").addClass("btn-link").addClass("addNewOne").html("Aggiungi nuovo")
1389                       .on("click",function(e){addNewTableValue(e,result.eid,eval(result.addFunction))})
1390         );
1391      if (table.children().length>0)
1392       {
1393        var val="Valore";
1394        if (($(".pickFromTable.active").length>0) &&
1395            ($(".pickFromTable.active").parent().parent().find(".label_data").length>0))
1396          val=$(".pickFromTable.active").parent().parent().find(".label_data").text()
1397
1398        t.append( $("<table>").addClass("datatable-responsive").addClass("table").addClass("table-striped").addClass("table-bordered").addClass("dt-responsive").attr({"cellspacing":"0","width":"100%"})
1399                  .append( $("<thead>").append( $("<tr>").append( $("<th>").html( val ) ) ) ).append(table) );
1400        dataTableThis(t.find("table.datatable-responsive"), f);
1401       }
1402     }
1403    else t.append( $("<div>").addClass("error").addClass("row").append(
1404                      $("<div>").addClass("col-sm-24").html( (typeof result.cause!="undefined")?result.cause:"Si e' verificato un errore sconosciuto nel reperimento dei dati..." )
1405                    ));
1406   }, "json");
1407 }
1408
1409dataTableFixed = function(el)
1410 {
1411  if ((typeof $().DataTable=="function") && (el.length>0))
1412   {
1413    el.each(function(){var $this=$(this);
1414      var datax=jQuery.extend(true, {}, dtDef);
1415      dts=false;
1416      cols=new Array();
1417      $this.find("th").each(function(idx){if((typeof $(this).data("type")!="undefined")&&($(this).data("type")=="date"))cols.push(idx)});
1418      if (cols.length>0)
1419        datax.columnDefs.push({"targets":cols,'render': function ( data, type, row ) {if ((data!='') && ( type === 'display' || type === 'filter' )) {
1420            const dateObj = new Date(data);
1421            if (!isNaN(dateObj.getTime())) {
1422              data = dateObj.toLocaleDateString('it-IT', { day: '2-digit', month: '2-digit', year: 'numeric' });
1423            }
1424          }
1425          return data;
1426        }});
1427
1428      if ((typeof $this.attr("dt-sorting-column")!="undefined") && ($this.attr("dt-sorting-column")!=null) && ($this.attr("dt-sorting-column")>=0)) dts=$this.attr("dt-sorting-column")*1;
1429      if (dts!==false) datax['order'].push([ dts, 'asc' ]);
1430
1431      $this.DataTable(datax)
1432
1433     });
1434   }
1435 };
1436
1437dataTableThis = function(el, f)
1438 {
1439  if ((typeof $().DataTable=="function") && (el.length>0))
1440   {
1441    el.each(function(){var $this=$(this);
1442      var datax=jQuery.extend(true, {}, dtDef);
1443      datax["initComplete"]= function( settings, json ) {
1444                    if ($(".pickJustMe[rowid]").length>0)
1445                      $(".pickJustMe[rowid]").off("click").on("click",function(e){
1446                        var xxx=$(e.target);
1447                        while(!xxx.is("form"))xxx=xxx.parent();
1448                        pickedDataTable(e,xxx)}).css("cursor","pointer");
1449                   };
1450      dts=false;
1451      cols=new Array();
1452      $this.find("th").each(function(idx){if((typeof $(this).data("type")!="undefined")&&($(this).data("type")=="date"))cols.push(idx)});
1453      if (cols.length>0)
1454        datax.columnDefs.push({"targets":cols,'render': function ( data, type, row ) {if ((data!='') && ( type === 'display' || type === 'filter' )) {
1455            const dateObj = new Date(data);
1456            if (!isNaN(dateObj.getTime())) {
1457              data = dateObj.toLocaleDateString('it-IT', { day: '2-digit', month: '2-digit', year: 'numeric' });
1458            }
1459          }
1460          return data;
1461        }});
1462
1463      if ((typeof $this.attr("dt-sorting-column")!="undefined") && ($this.attr("dt-sorting-column")!=null) && ($this.attr("dt-sorting-column")>=0)) dts=$this.attr("dt-sorting-column")*1;
1464      if (dts!==false) datax['order'].push([ dts, 'asc' ]);
1465
1466      $this.DataTable(datax)
1467        .on('draw.dt', function ( e, datatable, row, showHide, update) {
1468          if ($(".pickJustMe[rowid]").length>0)
1469            $(".pickJustMe[rowid]").off("click").on("click",function(e){
1470                        var xxx=$(e.target);
1471                        while(!xxx.is("form"))xxx=xxx.parent();
1472                        pickedDataTable(e,xxx)}).css("cursor","pointer");
1473         })
1474        .on('responsive-display', function ( e, datatable, row, showHide, update) {
1475          if ($(".pickJustMe[rowid]").length>0)
1476            $(".pickJustMe[rowid]").off("click").on("click",function(e){
1477                        var xxx=$(e.target);
1478                        while(!xxx.is("form"))xxx=xxx.parent();
1479                        pickedDataTable(e,xxx)}).css("cursor","pointer");
1480         });
1481     });
1482   }
1483 };
1484
1485pickedDataTable = function( e, f )
1486 {
1487  e.preventDefault();
1488  var sel=$(e.target);
1489  while((sel!=null)&&(typeof sel.attr("rowid")=="undefined"))sel=sel.parent();
1490
1491  var v=sel.find(".optVal").html();
1492  if (sel.is("td")) v=sel.html();
1493
1494  var opener=$(".pickFromTable.active[table]");
1495  if (opener.is("input")||opener.is("textarea"))
1496   {
1497    if (sel.hasClass("pickAlsoMe")) v=((opener.val()!='')?opener.val()+"\n":'')+v;
1498    opener.val(v);
1499   }
1500
1501  if ((typeof f.attr("pickID")!="undefined") && (f.attr("pickID")=="true"))
1502    v=sel.attr("rowid");
1503
1504  if ((typeof f.attr("destField")!="undefined") && (f.attr("destField")!=""))
1505    $("form *[name='"+f.attr("destField")+"']").val(v);
1506
1507  if ((typeof opener.attr("onSelect")) && (opener.attr("onSelect")!=null) && (opener.attr("onSelect")!='') && (eval('typeof '+opener.attr("onSelect"))=="function"))
1508    eval(opener.attr("onSelect")).apply(e,[e, f, opener]);
1509
1510  var m=sel.parent();
1511  while ((!m.is("body"))&&(!m.hasClass("modal")))m=m.parent();
1512  if (m!=null) m.modal('hide');
1513 }
1514
1515resetForm = function( e )
1516 {
1517  var f=$(e.target);
1518  while((f!=null)&&(!f.is("form")))f=f.parent();
1519  if (f!=null)
1520    f.attr("rowid","0").find(".pickFromTable[table][target]").each(function(){
1521      var d=$(this);
1522      if ((typeof d.attr("target")!="undefined") && (d.attr("target")!=""))
1523        f.find("*[name='"+d.attr("target")+"']").each(function(){
1524          $(this).val((typeof $(this).attr("def")=="undefined")?null:$(this).attr("def"));
1525        });
1526    });
1527 }
1528
1529addNewTableValue = function( e, eid, func )
1530 {
1531  e.preventDefault();
1532  var f=$(e.target);
1533  while ((f!=null)&&(!f.is("form")))f=f.parent();
1534  var mod=createModal('AddNewTableValue', 'Aggiungi nuovi dati', 'Aggiungi');
1535
1536  mod.find("form").attr({"rowid": 0}).bind("submit", function(e) { func.apply(e,[e.target, f]); return false; });
1537  mod.find(".modal-body")
1538    .append( $("<div>").addClass("spinDoctor").addClass("text-center").css({"position":"relative","vertical-align":"middle","height":"150px"}).html("Caricamento maschera...").append( spinner.el ) );
1539
1540  $filter.formid = f.attr("tid");
1541  forms.push($filter.formid);
1542  $.ajax({url: domain+'/modules/formmanager/ajaxcore.php?ajaxCmd=loadForm', crossDomain: true, dataType: "json", type: "GET",
1543              data: $filter,
1544              success: function(d)
1545               {
1546                mod.find(".modal-body").empty().append( $(d.html).html() );
1547                mod.find(".modal-body").find(".button_data").remove();
1548                var s = document.createElement("script");
1549                s.type = "text/javascript";
1550                s.innerHTML=d.js;
1551                if (eval('typeof validateForm_'+d.formid)=='undefined')
1552                  $("head").append(s);
1553                mod.find("input[name='field_"+eid+"']").val(user.field_2);
1554                mod.find("form .value_data").each(function(i) {
1555                  var el = $(this).find("input");
1556                  if (el.length<1)
1557                    el = $(this).find("textarea");
1558                  var name = el.parent().parent().find(".label_data");
1559                  if (name.length==1)
1560                   {
1561                    if (name.hasClass("mandatory")) el.attr("required", "true");
1562                    el.attr("placeholder", name.html() );
1563                   }
1564                });
1565
1566               if ((typeof d.recaptchacode != "undefined") && (d.recaptchacode!=''))
1567               {
1568                 if ($("#reCaptchaContainer").length==0)
1569                   $("div[formid='"+ d.formid +"']").find(".button_data").before(
1570                     $("<div>").addClass("reCaptchaContainer").attr("rcCode", d.recaptchacode).attr("rcTheme", "light")
1571                    );
1572
1573                 if ("undefined"==typeof grecaptcha)
1574                   $.ajax({ url: "//www.google.com/recaptcha/api.js?render="+d.recaptchacode, dataType: "script"});
1575//                 else getRecaptcha(d.recaptchacode);
1576               }
1577             }
1578   });
1579
1580  mod.modal('show');
1581 }
1582
1583customValidateForm = function( fid, f ) {
1584  if (typeof f['g-recaptcha-response'] != 'undefined' && !f['g-recaptcha-response'].disabled && $(".reCaptchaContainer[rcCode]").length) {
1585    grecaptcha.ready(function() {
1586        grecaptcha.execute($(".reCaptchaContainer[rcCode]").attr("rcCode"), {action: 'submit'}).then(function(token) {
1587          f['g-recaptcha-response'].value==token;
1588          customValidateForm_execute( fid, f );
1589        });
1590      })
1591  } else customValidateForm_execute( fid, f );
1592  return false;
1593}
1594
1595customValidateForm_execute = function( fid, f ) {
1596  if (window["validateForm_"+ fid](f)) {
1597    eval("console.log(validateForm_"+ fid +"_running);");
1598    var $f=$(f);
1599    $f.find("textarea").each( function(i) { if (this.value.indexOf("xXxXx")>=0)$(this).addClass("thisMustBeCompleted").parent().addClass("thisMustBeCompleted")});
1600    if ($("textarea.thisMustBeCompleted").length>0)
1601     {
1602      alert("Per poter continuare devi prima completare i testi coi valori specifici della tua richiesta!");
1603      $("textarea.thisMustBeCompleted").first().each(function(){try {
1604        this.focus();
1605        eval("validateForm_"+ fid +"_running = false;");
1606        if ((pos=this.value.indexOf("xXxXx"))>-1) this.setSelectionRange(pos, pos+5);
1607      } catch (e) {}});
1608      if ($f.find("input[name='confirmpage']").length>0) $f.find("input[name='confirmpage']").remove()
1609      return false;
1610     }
1611    disabledids=Array();
1612    $f.find("input:disabled").each( function(i) { if (this.name.substr(0,6) == "field_") disabledids.push( this.name.substr(6) ); });
1613    $f.find("textarea:disabled").each( function(i) { if (this.name.substr(0,6) == "field_") disabledids.push( this.name.substr(6) ); });
1614    url = "/templates/inc/ajaxcore.php?ajaxCmd=saveData&langid="+$filter.langid;
1615    if ( ("undefined"==typeof f.getAttribute("verbose")) || (f.getAttribute("verbose")==null) || (f.getAttribute("verbose")!="true")) url+='&silent=1';
1616    if (disabledids.length>0) url += "&disabledids="+disabledids.join("|");
1617
1618    $.post(url, $f.not("*[name^='pickFromTable']").serialize(), function(result) {
1619      if (result.success) {
1620        if ($f.find("input[type='file']").length>0) {
1621          sendFormFiles(fid, result, f);
1622          url = "/templates/inc/ajaxcore.php?ajaxCmd=uploadFormFiles&formid="+ fid +"&langid="+$filter.langid+"&currentid="+result.dataid;
1623          sendAttachedFiles( url, fid, result, $f);//.find(".field[smFieldID='213']"));//, callback);
1624        }
1625        else sendCustomEmail( fid, result, $f);
1626      }
1627      else {
1628        if (!result.cause && ("undefined"==typeof result.ERROR))
1629         alert("Si e' verificato un errore sconosciuto nel salvataggio dei dati...");
1630        else {
1631          alert( ("undefined"!=typeof result.ERROR)?result.ERROR:result.cause );
1632          if (result.ERRORFIELDID!="") try{ f["field_"+result.ERRORFIELDID].focus();}catch(e){};
1633//          if (result.CAPTCHAERROR!="") try{ grecaptcha.reset(); }catch(e){};
1634        }
1635        eval("validateForm_"+ fid +"_running = false;");
1636      }
1637    }, "json");
1638  }
1639  else eval("validateForm_"+ fid +"_running = false;");
1640  return false;
1641};
1642
1643sendFormFiles = function( formId, datax, form, callback)
1644 {
1645  if (typeof callback!="function") callback=null;
1646  var filesToGo=$(form).find("input[type='file']").length;
1647  $(form).find("input[type='file']").each(function(){
1648    if(this.value!='')
1649     {
1650      var status = $("<div>").addClass("progress").append( $("<div>").addClass("bar") ).append( $("<div>").addClass("percent") );
1651      $(this).after( status );
1652      var fid=this.name;
1653
1654      var ff=$("<form>").attr({"action":"/templates/inc/ajaxfiles.php?ajaxCmd=uploadFormFile", "method":"post", "enctype":"multipart/form-data", "accept-charset":"iso-8859-1"}).css("display","none");
1655
1656      var park=fid.split("_");
1657      if (park.length>2)
1658       {
1659        var p= (((typeof datax.param!="undefined")&&(datax.param!=null)&&(datax.param!=""))?datax.param:"pid");
1660        ff.append( $("<input>").attr("name", "param").attr("type", "hidden").attr("value",p) );
1661        fid=park[0]+'_'+park[1];
1662        ff.append( $("<input>").attr("name", p).attr("type", "hidden").attr("value", park[2]) );
1663       }
1664      ff.append( $("<input>").attr("name", "did").attr("type", "hidden").attr("value", datax.dataid) );
1665      ff.append( $("<input>").attr("name", "fileid").attr("type", "hidden").attr("value", fid ) );
1666      ff.append( this );
1667
1668      ff.ajaxForm({
1669            beforeSend: function() {
1670                var percentVal = '0%';
1671                status.find(".bar").width(percentVal)
1672                status.find(".percent").html(percentVal);
1673            },
1674            uploadProgress: function(event, position, total, percentComplete) {
1675                var percentVal = percentComplete + '%';
1676                status.find(".bar").width(percentVal)
1677                status.find(".percent").html(percentVal);
1678            },
1679          complete: function(xhr) {
1680             if (xhr.responseJSON.success)
1681              {
1682               status.after( $("<div>").addClass("fileUploaded").html("File inviato!") ).remove();
1683               ff.remove();
1684               if (--filesToGo==0) sendCustomEmail( formId, datax, form, callback);
1685              }
1686             else
1687              {
1688               status.find(".percent").html(xhr.responseJSON.cause);
1689               eval("validateForm_"+ formId +"_running = false;");
1690              }
1691           }
1692       });
1693
1694      status.append(ff);
1695      ff.submit();
1696
1697     }
1698    else filesToGo--;
1699   });
1700  if (filesToGo==0) sendCustomEmail( formId, datax, form, callback);
1701  return false;
1702 };
1703
1704sendAttachedFiles = function( actionUrl, formId, datax, container, callback)
1705 {
1706  if (typeof callback!="function") callback=null;
1707  var filesToGo=$(container).find("input[type='file']").length;
1708  $(container).find("input[type='file']").each(function(){
1709    if(this.value!='')
1710     {
1711      var status = $("<div>").addClass("progress").append( $("<div>").addClass("bar") ).append( $("<div>").addClass("percent") );
1712      $(this).after( status );
1713
1714      var ff=$("<form>").attr({"action": actionUrl, "method":"post", "enctype":"multipart/form-data", "accept-charset":"UTF-8"}).css("display","none");
1715
1716      if (typeof datax.fileid!="undefined")
1717        this.name=datax.fileid;
1718      if (typeof datax.filename!="undefined")
1719        try {
1720          ff.append( $("<input>").attr({"name":datax.filename,"type":"hidden"}).val( this.value.substring( this.value.lastIndexOf("\\")+1 ) ) );
1721        } catch(e){};
1722      if (typeof datax.additionalFields!="undefined")
1723        ff.append(datax.additionalFields);
1724
1725      ff.append( this );
1726
1727      ff.ajaxForm({
1728            beforeSend: function() {
1729                var percentVal = '0';
1730                status.find(".bar").width(percentVal)
1731                status.find(".percent").html(percentVal);
1732            },
1733            uploadProgress: function(event, position, total, percentComplete) {
1734                var percentVal = percentComplete;
1735                status.find(".bar").width(percentVal)
1736                status.find(".percent").html(percentVal);
1737            },
1738          complete: function(xhr) {
1739             var res=JSON.parse(xhr.responseText);
1740             if (res.success)
1741              {
1742               status.after( $("<div>").addClass("fileUploaded").html("File inviato!") ).remove();
1743               ff.remove();
1744               if (--filesToGo==0) sendCustomEmail( formId, datax, container, callback);
1745              }
1746             else
1747              {
1748               status.find(".percent").html((typeof res.cause!="undefined")?res.cause:(typeof res.ERROR!="undefined")?res.ERROR:"Si &egrave; verificato qualche strano errore...");
1749               eval("validateForm_"+ formId +"_running = false;");
1750              }
1751           }
1752       });
1753
1754      status.append(ff);
1755      ff.submit();
1756
1757     }
1758    else filesToGo--;
1759   });
1760  if (filesToGo==0) sendCustomEmail( formId, datax, container, callback);
1761  return false;
1762 };
1763
1764sendCustomEmail = function( formId, datax, form, callback)
1765 {
1766  if (typeof callback!="function") callback=null;
1767  if ((typeof formId!="undefined") && (formId!='') && (formId>0) && (typeof datax.dataid!="undefined") && (datax.dataid!='') && (datax.dataid>0)) {
1768    var par = { "formid":formId, "id": datax.dataid, "langid": $filter.langid };
1769    if ((typeof form != "undefined") && ("undefined"!=typeof $(form).attr("cmd")) && ($(form).attr("cmd")!=''))
1770      par['command']=$(form).attr("cmd");
1771    $.post(domain+"/templates/inc/ajaxcore.php?ajaxCmd=sendPersonalizedEmail", par, function(result) {
1772      /*
1773      if (result.success)
1774       {
1775         */
1776        if ((callback!=null) && (typeof callback=="function")) callback.apply(datax,[formId, datax]);
1777        else
1778          if (typeof datax.redir != "undefined") {if (datax.redir && (datax.redir.indexOf('/')==-1)) location.href=datax.redir;}//decodeURIComponent(datax.redir);
1779          else
1780            if ((typeof form != "undefined") && ("undefined"!=typeof datax.thankyou) && (datax.thankyou!=''))
1781             {
1782              $(form).after($("<div>").html( datax.thankyou ));
1783              $(form).remove();
1784             }
1785            else
1786              if ((typeof form != "undefined") && (typeof form.destinationurl != "undefined") && (form.destinationurl.value !='')) location.href=form.destinationurl.value;
1787              else location.reload();
1788         /*
1789       }
1790      else
1791        if ((callback!=null) && (typeof callback=="function")) callback.apply(datax,[formId, datax]);
1792        else alert((typeof result.cause != "undefined")?result.cause:"An unrecognized error has occurred...");
1793      */
1794    }, "json");
1795  }
1796  else eval("validateForm_"+ formId +"_running = false;");
1797}
1798
1799createModal=function(modalName, modTitle, saveTxt, modalSize)
1800 {
1801  var mod = $("<form>").append( $("<p>").addClass("modal-body") );
1802  mod.append(
1803      $("<div>").addClass("modal-footer")
1804        .append( $("<button>").attr("type", "button").addClass("btn").addClass("btn-default").attr("data-bs-dismiss", "modal").html( txt['close'][$filter.langid] ) )
1805   );
1806  var el = $("<div>").addClass('modal'+modalName).addClass("modal").addClass("fade").addClass("out").attr({"role":"dialog", "data-backdrop":true}).append(
1807      $("<div>").addClass("modal-dialog").append(
1808        $("<div>").addClass("modal-content")
1809          .append( $("<div>").addClass("modal-header")
1810                                       .append( $("<h4>").addClass("modal-title").html( modTitle ) )
1811                                       .append( $("<button>").addClass("close").attr("type", "button").html("&times;").attr("data-bs-dismiss", "modal") )
1812             )
1813          .append( mod )
1814     ) );
1815  if ((typeof saveTxt!='undefined') && (saveTxt!=null) && (saveTxt!='')) el.find(".modal
1815-footer").append( $("<input>").attr("type", "submit").addClass("btn").addClass("btn-primary").val(saveTxt) );
1816  if ((typeof modalSize!='undefined') && (modalSize!=null) && (modalSize!='')) el.find(".modal-dialog").addClass(modalSize);
1817  el.find("form input[type!='hidden'][type!='submit']").each(function(idx) { $(this).parent().addClass($(this).attr("name")); });
1818  el.on('hidden.bs.modal', function (e) { $(e.target).remove(); });
1819  return el;
1820 };
1821
1822downloadRequestFile = function(fid, el)
1823 {
1824  var $el=$(el);
1825  while (!$el.is("i")) $el=$el.parent();
1826   /*
1827  var datax={"formid":fid,"dataid":$el.attr("rowid")};
1828  $.post("/templates/inc/ajaxfiles.php?ajaxCmd=downloadRequestFile", datax, function(result) {
1829    if (!result.success) alert((result.cause)?result.cause:"Si e' verificato un errore, prova a ricaricare la pagina e riprovare...");
1830   }, "json");
1831  */
1832  url="/templates/inc/ajaxfiles.php?ajaxCmd=downloadRequestFile&formid="+fid+"&dataid="+$el.attr("rowid");
1833  if (typeof $el.attr("fnid")!='undefined') url+='&fnid='+$el.attr("fnid");
1834  window.location=url;
1835  return true;
1836 }
1837
1838dropFixedSingleData = function(fid, el)
1839 {
1840  var $el=$(el);
1841  while (!$el.is("i")) $el=$el.parent();
1842
1843  var datax={"formid":fid,"dataid":$el.attr("rowid")};
1844  if (confirm("ATTENZIONE!\nOperazione irreversibile, sei sicuro di voler cancellare l'elemento selezionato?"))
1845    $.post("/templates/inc/ajaxcore.php?ajaxCmd=dropFixedSingleData", datax, function(result) {
1846      if (result.success) window.location.reload();
1847      else alert((result.cause)?result.cause:"Si e' verificato un errore, prova a ricaricare la pagina e riprovare...");
1848     }, "json");
1849  return true;
1850 }
1851
1852dropVariableSingleData = function(fid, el)
1853 {
1854  var $el=$(el);
1855  while (!$el.is("i")) $el=$el.parent();
1856
1857  var datax={"formid":fid,"aid":$el.attr("aid"),"dataid":$el.attr("rowid")};
1858  if (confirm("ATTENZIONE!\nOperazione irreversibile, sei sicuro di voler cancellare l'elemento selezionato?"))
1859    $.post("/templates/base/build/inc/ajaxcore.php?ajaxCmd=dropVariableSingleData", datax, function(result) {
1860      if (result.success) window.location.reload();
1861      else alert((result.cause)?result.cause:"Si e' verificato un errore, prova a ricaricare la pagina e riprovare...");
1862     }, "json");
1863  return true;
1864 }
1865
1866dropAdminData = function(fid, el)
1867 {
1868  var $el=$(el);
1869  while (!$el.is("i")) $el=$el.parent();
1870
1871  var datax={"formid":fid,"dataid":$el.attr("rowid")};
1872  if (confirm("ATTENZIONE!\nOperazione irreversibile, sei sicuro di voler cancellare l'elemento selezionato?"))
1873    $.post("/templates/base/build/inc/ajaxcore.php?ajaxCmd=dropAdminData", datax, function(result) {
1874      if (result.success) window.location.reload();
1875      else alert((result.cause)?result.cause:"Si e' verificato un errore, prova a ricaricare la pagina e riprovare...");
1876     }, "json");
1877  return true;
1878 }
1879
1880switchMenu = function(e)
1881 {
1882  e.preventDefault();
1883  var el=$(e.target);
1884  while(!el.is("a"))el=el.parent();
1885  var ol=el.parent().find("ol").first();
1886  if (ol.css("display")=="none") el.addClass("open"),ol.slideDown();
1887  else el.removeClass("open"),ol.slideUp();
1888 }
1889
1890})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.