PageSourceSearch

https://www.photocity.it/includes/master/js-css/PyBootstrap.js?RTHVW2423287

js photocity.it collected 2026-09-24 21:28:25 UTC 57,387 bytes, 1,584 lines download raw bytes

1// --------------------------------------------------------------------------
2
3var elencoFrasiSezioneStelline = [
4    "La prima fotografia della storia fu scattata nel 1826 da Joseph Niépce. L'esposizione durò circa 8 ore, oggi uno smartphone scatta in 1/1000 di secondo.",
5    "Il cervello umano elabora le immagini 60.000 volte più velocemente del testo scritto. Una foto vale davvero mille parole.",
6    "Ogni anno nel mondo vengono scattate oltre 1,8 trilioni di fotografie. Il 90% di tutte le foto mai esistite è stato scattato negli ultimi 10 anni.",
7    "La parola fotografia viene dal greco: phōs (luce) e graphé (scrittura). Fotografare significa letteralmente scrivere con la luce.",
8    "Il primo selfie della storia fu scattato nel 1839 da Robert Cornelius. Si sedette davanti alla macchina e rimase fermo per un minuto intero.",
9    "Guardare le foto di famiglia riduce lo stress più efficacemente di altri metodi, secondo uno studio dell'Università di Portsmouth.",
10    "La prima fotocamera digitale fu inventata nel 1975 da Steve Sasson, ingegnere Kodak. Pesava 3,6 kg e produceva immagini di soli 0,01 megapixel.",
11    "Il cervello distorce i ricordi ogni volta che li recupera. Le fotografie sono l'unico modo per congelare un momento esattamente come era.",
12    "La Polaroid fu inventata nel 1948 dopo che la figlia di 3 anni di Edwin Land chiese: Papà, perché non posso vedere subito la foto? Quella domanda cambiò la storia.",
13    "Gli esseri umani ricordano il 65% delle informazioni visive dopo 3 giorni, contro solo il 10% di quelle lette o ascoltate.",
14    "La fotografia più costosa mai venduta è Rhein II di Andreas Gursky: 4,3 milioni di dollari nel 2011.",
15    "Sfogliare un album fotografico stimola la produzione di ossitocina, l'ormone del legame affettivo.",
16    "La camera obscura fu descritta già nel 400 a.C. da Aristotele. Gli artisti del Rinascimento la usavano per tracciare paesaggi con precisione matematica.",
17    "Il fotobombing ha radici antichissime: nelle lastre fotografiche dell'Ottocento si trovano già passanti inconsapevoli immortalati per sempre.",
18    "Le foto di gruppo natalizie sono tra le più conservate. Gli psicologi le chiamano anchor memories: ricordi ancora che tengono insieme l'identità familiare.",
19    "In media una persona guarda le proprie foto digitali solo 1,7 volte prima di dimenticarle. Stamparle aumenta il ricordo del 400%.",
20    "La foto più vista di tutti i tempi è Bliss di Charles O'Rear, lo sfondo verde di Windows XP.",
21    "Il cervello riconosce un volto familiare in soli 100 millisecondi.",
22    "La prima foto di un essere umano fu scattata nel 1838 a Parigi da Daguerre.",
23    "Uno studio della Harvard Business School ha dimostrato che regalare foto stampate rafforza i legami affettivi più di qualsiasi altro regalo materiale.",
24    "Il formato quadrato di Instagram richiama le Polaroid degli anni '60 e '70, evocando nostalgia istantanea.",
25    "Le coppie che conservano fotografie fisiche della loro storia riportano livelli di soddisfazione relazionale superiori del 22%.",
26    "Il termine snapshot fu inventato nel 1860 dal fotografo John Herschel.",
27    "I bambini che crescono in case con fotografie di famiglia alle pareti sviluppano un senso di identità più solido.",
28    "La prima foto a colori fu scattata nel 1861 da James Clerk Maxwell.",
29    "Guardare fotografie di momenti felici del passato aumenta la tolleranza al dolore fisico del 13%.",
30    "Ogni anno il mondo produce più fotografie di quante siano state scattate in tutti i 150 anni precedenti l'invenzione dello smartphone.",
31    "L'effetto foto-ricordo: fotografare un'esperienza la fa ricordare con più precisione visiva ma meno dettagli uditivi e olfattivi.",
32    "Le fotografie di famiglia vengono salvate per prime in caso di incendio.",
33    "Ansel Adams non scattava mai senza aver prima visualizzato mentalmente la foto finale.",
34    "Il fotolibro esiste dal 1844: William Fox Talbot pubblicò The Pencil of Nature.",
35    "Il cervello ricorda meglio le foto con persone conosciute rispetto ai paesaggi.",
36    "Le fotografie di nostra madre sono tra i ricordi visivi più potenti.",
37    "La prima Leica fu prodotta nel 1925.",
38    "Stampare le foto digitali ne aumenta la durata da una media di 3 anni a oltre 100 anni.",
39    "Henri Cartier-Bresson parlava del momento decisivo: quell'istante unico in cui tutti gli elementi si allineano perfettamente.",
40    "Le fotografie di fine anno scolastico sono tra i ricordi più condivisi.",
41    "La parola album fotografico deriva dal latino albus (bianco).",
42    "Il filtro Instagram più usato al mondo è Normal: nessun filtro.",
43    "Steve McCurry disse: Non scatto mai una foto, aspetto che la foto si faccia da sola.",
44    "Le vacanze estive producono in media il 35% di tutte le fotografie scattate in un anno.",
45    "La fotografia subacquea fu inventata nel 1856 dal naturalista William Thompson.",
46    "Le foto calde evocano nostalgia e calore familiare. Quelle fredde evocano malinconia e distanza.",
47    "Negli anni '70 il 97% delle foto di famiglia veniva stampato. Oggi solo il 7%.",
48    "La NASA è la più grande agenzia fotografica della storia.",
49    "Le foto posate vengono ricordate meno vividamente rispetto alle foto spontanee.",
50    "Il fotolibro è la forma di regalo più emozionante secondo il 68% degli italiani.",
51    "Doisneau scattò Il bacio dell'Hotel de Ville nel 1950 a Parigi.",
52    "Le fotografie analogiche hanno una texture che le rende neurologicamente più coinvolgenti.",
53    "Un fotolibro stampato dura in media 75 anni. Un hard disk dura in media 5 anni.",
54    "Il fotografo Araki ha scattato oltre 7 milioni di fotografie nella sua carriera.",
55    "Ogni anno scolastico contiene circa 847 momenti fotografabili. Ne vengono stampati in media s
55olo 4.",
56    "La prima fotografia di una stella fu scattata nel 1850 da John Adams Whipple.",
57    "Il 72% delle persone afferma che le fotografie sono il bene più insostituibile in caso di trasloco.",
58    "La macchina fotografica Hasselblad 500C andò sulla Luna nell'Apollo 11.",
59    "Un bambino di 3 anni che vede una sua foto da neonato non si riconosce.",
60    "La prima fotografia aerea fu scattata nel 1858 dal fotografo Nadar.",
61    "Le fotografie in bianco e nero vengono giudicate più artistiche e autentiche.",
62    "Il più grande album fotografico mai realizzato misura 4 × 3 metri e contiene 35.000 stampe.",
63    "Guardare fotografie di persone care riduce la percezione del freddo fisico.",
64    "La fotografia più riprodotta della storia è lo sguardo della ragazza afghana di Steve McCurry.",
65    "Il decisive moment di Cartier-Bresson dura in media 1/250 di secondo.",
66    "Le fotografie stampate su carta metallica durano oltre 200 anni.",
67    "Il 61% degli italiani non ha stampato nemmeno una foto nell'ultimo anno.",
68    "Cindy Sherman ha realizzato migliaia di autoritratti senza mai farsi un selfie.",
69    "Le fotografie strappate o rovinate vengono ricordate con maggiore intensità emotiva.",
70    "Il fonografo di Edison e la fotocamera di Daguerre furono presentati al mondo nello stesso secolo.",
71    "Il 43% dei giovani tra 18 e 35 anni sta valutando una fotocamera a pellicola.",
72    "Le fotografie sono il tema più comune nei sogni ad occhi aperti degli anziani.",
73    "La fotocamera usa e getta fu inventata nel 1986 da Fujifilm.",
74    "Negli ospedali pediatrici le pareti decorate con fotografie di famiglia riducono il tempo di recupero.",
75    "Il termine paparazzo nasce da un personaggio del film La dolce vita di Fellini.",
76    "Il cervello non può distinguere un ricordo vero da uno costruito su una fotografia.",
77    "Le polaroid si degradano in circa 50 anni.",
78    "In Giappone esiste il concetto di shashin-kan: spirito della fotografia.",
79    "Il 56% dei bambini tra 8 e 12 anni non sa dove siano conservate le foto della propria nascita.",
80    "Annie Leibovitz disse: Una fotografia non è quello che hai visto, è quello che hai fatto vedere agli altri.",
81    "Le case con fotografie di famiglia esposte alle pareti vengono descritte come più calde e accoglienti.",
82    "La prima fotocamera tascabile pensata per tutti fu la Kodak Brownie del 1900.",
83    "Vivian Maier lavorò come tata per 40 anni e scattò oltre 150.000 fotografie senza mostrarle mai a nessuno.",
84    "Le fotografie di eventi negativi vengono dimenticate più rapidamente se non stampate.",
85    "Il red-eye nelle foto flash è causato dalla luce che rimbalza sulla retina.",
86    "In media una famiglia italiana ha 3.400 foto digitali sullo smartphone.",
87    "Robert Capa disse: Se le tue foto non sono abbastanza buone, non eri abbastanza vicino.",
88    "La prima fotografia notturna fu scattata a Parigi nel 1843 usando la luce del gas.",
89    "Gli occhi umani percepiscono circa 10 milioni di sfumature di colore.",
90    "Il 38% degli italiani dichiara che l'unico oggetto che vorrebbe salvare da un disastro è il proprio archivio fotografico.",
91    "La fotografia modifica i ricordi anche retroattivamente.",
92    "La prima foto subacquea a colori fu scattata nel 1926 da Charles Martin.",
93    "Gli adolescenti che condividono fotografie fisiche tra amici riportano legami di amicizia più profondi.",
94    "Il dagherrotipo produceva immagini così nitide che i medici le usavano per diagnosticare malattie.",
95    "Henri Cartier-Bresson non sviluppava mai le sue pellicole da solo.",
96    "Il formato 10×15 corrisponde quasi esattamente alle proporzioni del campo visivo centrale umano.",
97    "Le fotografie dei nonni sono quelle che i nipoti cercano di più negli archivi di famiglia.",
98    "Nel 2023 la Gen Z ha acquistato più rullini fotografici analogici di qualsiasi altra generazione precedente.",
99    "William Eggleston fu il primo fotografo a esporre fotografie a colori al MoMA di New York.",
100    "Le fotografie scattate durante i pasti di famiglia producono più ricordi positivi.",
101    "Elliott Erwitt disse: La fotografia è un'arte di osservazione.",
102    "Le foto in formato quadrato vengono ricordate con il 14% in più di precisione.",
103    "Ogni anno scolastico che non documenti diventa irrecuperabile.",
104    "Le fotografie stampate vengono toccate in media 6 volte di più rispetto a quelle visualizzate su schermo.",
105    "La prima fotografia della Terra dallo spazio fu scattata nel 1946 da una telecamera montata su un missile V2."
106];
107
108// --------------------------------------------------------------------------
109
110
111
112
113
114function getParam(name) {
115    const url = new URL(window.location.href);
116    return url.searchParams.get(name);
117}
118
119
120function setLocalStorageGclid(id, campaignid) {
121    /* Google ADS */
122    localStorage.setItem("gclid", id);
123    localStorage.setItem("gclid_campaignid", campaignid);
124    localStorage.setItem("gclid_page", window.location.origin + window.location.pathname);
125
126    setNuovoTracciamentoADS(1, id, campaignid, window.location.origin + window.location.pathname);
127}
128function setLocalStorageFBclid(id, campaignid) {
129    /* Facebook ADS */
130    localStorage.setItem("fbclid", id);
131    localStorage.setItem("fbclid_campaignid", campaignid);
132    localStorage.setItem("fbclid_page", window.location.origin + window.location.pathname);
133
134    setNuovoTracciamentoADS(2, id, campaignid, window.location.origin + window.location.pathname);
135}
136
137function resetLocalStorageFBclid() {
138    /* Facebook ADS */
139    localStorage.removeItem("fbclid");
140    localStorage.removeItem("fbclid_campaignid");
141    localStorage.removeItem("fbclid_page");
142}
143function resetLocalStorageGclid() {
144    /* Google ADS */
145    localStorage.removeItem("gclid");
146    localStorage.removeItem("gclid_campaignid");
147    localStorage.removeItem("gclid_page");
148}
149
150function getLocalStorageKey(mkey) {
151    var r = "";
152    if (localStorage.getItem(mkey) != null) {
153        r = localStorage.getItem(mkey);
154    }
155
156    return r;
157}
158
159
160var gclid = getParam('gclid');
161if (gclid) {
162    console.log("E' stato trovato un gclid sull'url");
163    var campaignid = getParam('gad_campaignid');
164    setLocalStorageGclid(gclid, campaignid);
165
166    
167}
168
169
170
171var fbclid = getParam('fbclid');
172var fbutmid = getParam('utm_id');
173
174var fbid = "";
175if (fbclid) 
176    fbid = fbclid;
177else if (fbutmid)
178    fbid = fbutmid;
179
180if (fbid != "") {
181    console.log("E' stato trovato un fbid sull'url");
182    var campaignid = getParam('utm_campaign');
183    setLocalStorageFBclid(fbid, campaignid);
184}
185
186// --------------------------------------------------------------------------
187
188function callajax_Tracciamento(paramAjax, myCallback) {
189
190    try {
191        paramAjax.sessiontracciamento = getSessionStorageTracciamento();
192        $.post
193            (
194                "/services/tracciamentoads_ajax.aspx", paramAjax,
195                function (Risposta) {
196                    console.log(Risposta);
197                    paramAjax.Risposta = Risposta;
198                    if (myCallback) {
199                        myCallback();
200                    }
201                });
202
203    } catch (e) {
204        return false;
205    }
206}
207
208function pad(str, max) {
209    str = "0000000000" + str;
210    return str.slice(-max);
211} 
212
213function getSessionStorageTracciamento() {
214    var session = "";
215    try {
216
217        if (sessionStorage.getItem("sessionTabTracciamento")) {
218            session = sessionStorage.getItem("sessionTabTracciamento");
219        }
220        else {
221            var rnd = 1 + Math.floor(Math.random() * 10000);
222            var dt = new Date();
223            var strDate = pad((dt.getMonth() + 1), 2) + pad(dt.getDate(), 2);
224            var time = pad(dt.getHours(), 2) + pad(dt.getMinutes(), 2) + pad(dt.getSeconds(), 2);
225            session = "D" + strDate + ".T" + time + ".R" + pad(rnd, 8);
226            sessionStorage.setItem("sessionTabTracciamento", session);
227        }
228    }
229    catch (e) { alert("errore "+e)}
230
231    return session;
232}
233
234function checkTracciamentoADS(myCallback) {
235    if (getLocalStorageKey('gclid') != "" || getLocalStorageKey('fbclid') != "") {
236        var clid1 = getLocalStorageKey('gclid');
237        var clid2 = getLocalStorageKey('fbclid');
238
239        var paramAjax = new Object();
240        paramAjax.iMode = 2;
241        paramAjax.clid1 = clid1;
242        paramAjax.clid2 = clid2;
243
244        
245        callajax_Tracciamento(paramAjax, function () {
246            resetLocalStorageGclid()
247            resetLocalStorageFBclid();
248
249            console.log("reset da checkTracciamentoADS")
250            if (myCallback) {
251                console.log("Eseguo callback da checkTracciamentoADS")
252                myCallback();
253            }
254
255        });
256    }
257
258
259
260}
261
262function setNuovoTracciamentoADS(tipo,clid,campagnaid,pagina) {
263    var paramAjax = new Object();
264    paramAjax.iMode = 1;
265    paramAjax.tipo = tipo;
266    paramAjax.clid = clid;
267    paramAjax.campagnaid = campagnaid;
268    paramAjax.pagina = pagina;
269
270
271    callajax_Tracciamento(paramAjax, function () {
272
273        if (paramAjax.Risposta > 0) { // ho inserito anche idutente
274            if (paramAjax.tipo == 1) {
275                resetLocalStorageGclid()
276                console.log("Reset gclid " + paramAjax.Risposta);
277            }
278            else if (paramAjax.tipo == 2) {
279                resetLocalStorageFBclid();
280                console.log("Reset fbclid " + paramAjax.Risposta);
281            }
282
283        } 
284    });
285
286}  
287 
288
289function setNuovoTracciamentoCompravendita(idordine,importo,email,nome,indirizzo,citta,nazione,cap,tel,regione,consenso,granted) {
290    var paramAjax = new Object();
291    paramAjax.iMode = 10;
292    paramAjax.idordine = idordine;
293    paramAjax.importo = importo;
294    paramAjax.email = email;
295    paramAjax.nome = nome;
296    paramAjax.indirizzo = indirizzo;
297    paramAjax.citta = citta;
298    paramAjax.nazione = nazione;
299    paramAjax.cap = cap;
300    paramAjax.tel = tel;
301    paramAjax.regione = regione;
302    paramAjax.consenso = consenso;
303    paramAjax.granted = granted;
304    paramAjax.infoserver = "PY";
305    paramAjax.note = "";
306
307
308    callajax_Tracciamento(paramAjax, function () {
309
310    });
311
312}
313
314
315
316
317/*
318if (getLocalStorageKey('gclid') != "") {
319    console.log("gclid: " + getLocalStorageKey('gclid') + "\npage: " + getLocalStorageKey('gclid_page') + "\nidcampagna: " + getLocalStorageKey('gclid_campaignid'));
320}
321if (getLocalStorageKey('fbclid') != "") {
322    console.log("fbclid: " + getLocalStorageKey('fbclid') + "\npage: " + getLocalStorageKey('fbclid_page') + "\ndata: " + getLocalStorageKey('fbclid_data') + "\nidcampagna: " + getLocalStorageKey('fbclid_campaignid'));
323}
324*/
325
326
327// --------------------------------------------------------------------------
328var pathAjax_FileDownload = '/services/logfiledownload_ajax.aspx';
329
330function callajax_FileDownload(paramAjax) {
331    try {
332
333        $.post
334            (
335                pathAjax_FileDownload, paramAjax,
336                function (Risposta) {
337                    console.log("FileDownload: "+Risposta);
338                });
339
340    } catch (e) {
341        return false;
342    }
343}
344
345
346document.addEventListener('click', function (e) {
347  const link = e.target.closest('a');
348    if (link) {
349
350        var nomefile = link.href.toLowerCase();
351
352        if ( 
353            nomefile.endsWith('.dmg') || 
354            nomefile.endsWith('.exe') ||
355            nomefile.endsWith('.pdf')
356        ) {
357            console.log("NomeFile: " + nomefile);
358            console.log("URL: " + window.location.href);
359
360            var paramAjax = new Object();
361            paramAjax.nomefile = nomefile;
362            paramAjax.url = window.location.href;
363            callajax_FileDownload(paramAjax);
364
365
366        }
367
368    }
369}); 
370// --------------------------------------------------------------------------
371
372
373//console.log("PyBootstrap");
374function setGTAG(mkey) {
375
376    try {
377        if (typeof gtag === 'function') {
378            gtag('config', mkey);
379            console.log('setGTAG: ' + mkey);
380        }
381        else {
382            console.log('mkey GTAG non esiste:' + mkey);
383        }
384
385    } catch (e) {
386        console.log('mkey GTAG errore:' + mkey + ' - ' + e);
387    }
388
389}
390
391function trackEvent(nome, valore) {
392    /*
393    var k = nome + " - " + valore;
394    try {
395        if (typeof gtag === 'function') {
396            //gtag('config', 'G-5XEN6N25WB');
397            gtag('event', 'download', {
398                evento_click: k
399            });
400            console.log('trackEvent: inviato track ' + k + " existGTagManager " + existGTagManager);
401        }
402        else {
403            console.log('trackEvent: GTAG non esiste: ' + k);
404        }
405
406    } catch (e) {
407        console.log('trackEvent Errore: ' + k + ' - ' + e);
408    }
409    */
410}
411
412
413
414function trackDownload(fileName) { 
415    try {
416        if (typeof existGTagManager === 'boolean') {
417            if (existGTagManager) {
418                window.dataLayer = window.dataLayer || [];
419                window.dataLayer.push({
420                    event: 'clk_download',
421                    file_name: fileName
422                });
423                console.log("trackDownload: existGTagManager ok e " + fileName + " inviato");
424            }
425            else {
426                console.log("trackDownload: existGTagManager FALSE. " + fileName + " non inviato");
427            }
428        }
429        else {
430            console.log("trackDownload: existGTagManager NON esiste. " + fileName + " non inviato");
431        }
432
433    } catch (e) {
434        console.log('trackDownload Errore: ' + fileName + ' - ' + e);
435    }
436
437
438/*
439    try { 
440        if (typeof gtag === 'function') {
441            gtag('event', 'clk_download', {
442                file_name: fileName
443            });
444            console.log('trackDownload: inviato track ' + fileName + " existGTagManager " + existGTagManager);
445        }
446        else {
447            console.log('trackDownload: GTAG non esiste: ' + fileName);
448        }
449
450    } catch (e) {
451        console.log('trackDownload Errore: ' + fileName + ' - ' + e);
452    }
453*/
454}
455
456//-----------------------------------------------------------------------------------------------
457//-----------------------------------------------------------------------------------------------
458//INIZIO AGGIORNAMENTO AUTOMATICO MODAL DA BOOTSTRAO 3 a 5
459//-----------------------------------------------------------------------------------------------
460//-----------------------------------------------------------------------------------------------
461
462
463//alert(BOOTSTRAPVERSION);
464
465
466
467// Metodo Modal di Bootstrap
468//-------------------------------------------------------------------------
469function openModalPY(iddiv, block = false) {
470    // -------------------------------------------------------------------
471    /* per Bootstrap 5 */
472    if (BOOTSTRAPVERSION == 5) {
473
474
475        if (iddiv != "") {
476
477            if (typeof modalPopup === 'undefined') { }
478            else {
479                modalPopup.dispose();
480                modalPopup = null;
481            }
482
483            var modalElement = document.getElementById(iddiv);
484            if (block)
485                modalPopup = new bootstrap.Modal(modalElement, { backdrop: 'static' });
486            else
487                modalPopup = new bootstrap.Modal(modalElement);
488
489            modalPopup.show();
490        }
491        else {
492
493            if (typeof modalPopup === 'undefined') { }
494            else {
495                modalPopup.hide();
496            }
497        }
498
499    }
500    // -------------------------------------------------------------------
501    /* per Bootstrap 3 */
502    else if (BOOTSTRAPVERSION == 3) {
503
504        if (iddiv != "") {
505
506            var obj = $("#" + iddiv);
507            if (obj.length == 1) {
508                if (!block) {
509                    console.log("openModalPY popup " + iddiv + " ")
510                    obj.modal("show");
511                }
512                else {
513                    console.log("openModalPY popup " + iddiv + " con blocco")
514                    obj.modal({ backdrop: 'static', keyboard: false, show: true });
515                }
516            }
517        }
518
519    }
520}
521function openModalPYClass(idclass, block = false) {
522    var obj = $("." + idclass);
523    if (obj.length == 1) {
524        if (!block) {
525            console.log("openModalPYClass popup " + idclass + " ")
526            obj.modal("show");
527        }
528        else {
529            console.log("openModalPYClass popup " + idclass + " con blocco")
530            obj.modal({ backdrop: 'static', keyboard: false, show: true });
531        }
532    }
533
534}
535function closeModalPY(iddiv) {
536    var obj = $("#" + iddiv);
537    //console.log(obj.length)
538    if (obj.length == 1) {
539        obj.modal("hide");
540        console.log("closeModalPY popup " + iddiv + " CLOSE")
541    }
542}
543
544function setIntervalCarousel(obj, tSlide) {
545
546    //console.log("setIntervalCarousel " + tSlide)
547    try {
548  //      obj.carousel({ interval: tSlide });
549    }
550    catch (err){
551        console.log("setIntervalCarousel " + err);
552    }
553}
554
555
556//-----------------------------------------------------------------------------------------------
557//-----------------------------------------------------------------------------------------------
558//FINE AGGIORNAMENTO AUTOMATICO MODAL DA BOOTSTRAO 3 a 5
559//-----------------------------------------------------------------------------------------------
560//-----------------------------------------------------------------------------------------------
561
562
563
564function getLinkStampe(linkDsk) { 
565    if (isXS() || isSM()) {
566        return "/stampe/";
567    }
568    return linkDsk;
569}
570 
571
572function copyText(txt) {
573    var $temp = $("<input>");
574    $("body").append($temp);
575    $temp.val(txt).select();
576    document.execCommand("copy");
577    $temp.remove();
578}
579
580(function ($) {
581    $.fn.addYouTubeVideo = function (options) {
582
583        var that = this;
584        var settings = {
585
586            width: 560,
587            height: 315,
588            url: ''
589
590        };
591
592        options = $.extend(settings, options);
593
594        options.url = options.url + '?rel=0&controls=1';
595
596        //var video = '<iframe width="' + options.width + '" height="' + options.height +
597        //    '" src="' + options.url + '" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
598
599        var video = '<iframe width="' + options.width + '" height="' + options.height +
600            '" src="' + options.url + '" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope;" allowfullscreen></iframe>';
601
602        return that.each(function () {
603            $(video).appendTo(this);
604        });
605
606    };
607
608
609
610
611})(jQuery);
612
613
614
615
616$(document).on("click", ".skp-slide-arrow", function () {
617    $(this).attr("type","button");
618  //  alert(2);
619//    e.preventDefault();
620});
621
622$(function () {
623
624    /*
625      document.querySelectorAll(".skp-slide-arrow").forEach(function (btn) {
626          btn.addEventListener("click", function (e) {
627              e.preventDefault();
628          });
629      });
630    */
631
632
633
634    $('.videoyt').each(function () {
635
636        var option = {
637            width: $(this).data().width,
638            height: $(this).data().height,
639            url: $(this).data().url
640        }
641        
642        if (isMobile()) {
643            option = {
644                width: "100%",
645                url: $(this).data().url
646            }
647        }
648
649        $(this).addYouTubeVideo(option);
650/*
651        $(this).addYouTubeVideo({
652            width: $(this).data().width,
653            height: $(this).data().height,
654            url: $(this).data().url
655        });
656*/
657
658    })
659
660
661    $('.copyPY').each(function () {
662        var txt = $(this).text();
663
664        if (!$(this).attr("id")) {
665            var r = (Math.random() + 1).toString(36).substring(6);
666            $(this).attr("id", r);
667        }
668
669        var mid = "btn-"+$(this).attr("id");
670
671        //$(this).html("<table><tr><td style='padding:0px;'>" + txt + "</td><td style='padding:0px 0px 0px 3px;color:#ff6600;'><span id='" + mid + "' class='glyphicon glyphicon-copy copyPYBTN' aria-hidden='true' style='cursor:pointer;' title='Copia'></span></td></tr></table>");
672        $(this).html("<table><tr><td style='padding:0px;'>" + txt + "</td><td style='padding:0px 0px 0px 6px;'><img id='" + mid + "' class='copyPYBTN' style='cursor:pointer;width:15px;filter: invert(42%) sepia(37%) saturate(3233%) hue-rotate(1deg) brightness(103%) contrast(104%);' title='Copia' src='https://images.photocity.it/image/icone/copy.svg' /></td></tr></table>");
673        $("#" + mid).attr("txtcopy", txt);
674    })
675
676    $('.copyPYBTN').click(function () {
677        var txt = $(this).attr("txtcopy");
678        if (txt) {
679            copyText(txt);
680            $(this).attr('title', 'Copiato!').tooltip('show');
681
682        }
683    })
684
685})
686
687
688
689//------------------------------------------------------------------- 
690// Accedi con Google
691//------------------------------------------------------------------- 
692function parseJwt(token) { 
693    var base64Url = token.split('.')[1];
694    var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
695    var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function (c) {
696        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
697    }).join(''));
698
699    return JSON.parse(jsonPayload);
700}
701
702function callbackAccediGooglePY(e) {
703    try { attendereOperazioneLogIn(true); } catch (err) { }
704
705    //var keys = [];
706    const responsePayload = parseJwt(e.credential);
707    var responsePY = {
708        'g_email': responsePayload.email,
709        'g_name': responsePayload.name,
710        'g_sub': '',
711        'g_picture': ''
712    } 
713
714    console.log("responsePY: "+JSON.stringify(responsePY))
715
716
717    if (window.google_login_callback && window.google_login_callback.postMessage) {
718        try { attendereOperazioneLogIn(false); } catch (err) { }
719        //Per APP
720        google_login_callback.postMessage(responsePY);
721    }
722    else {
723        // Per WEB
724        loginGoogle(responsePY)
725    }
726     
727
728}
729 
730function callbackAccediApplePY(token,name) {
731    try { attendereOperazioneLogIn(true); } catch (err) { }
732    console.log("name " + name)
733    console.log("token " + token)
734    //var keys = [];
735    const responsePayload = parseJwt(token);
736    var responsePY = {
737        'g_email': responsePayload.email,
738        'g_name': name,
739        'g_sub': responsePayload.sub,
740        'g_picture': ''
741    }
742
743    
744
745
746    if (window.google_login_callback && window.google_login_callback.postMessage) {
747        try { attendereOperazioneLogIn(false); } catch (err) { }
748        //Per APP
749        google_login_callback.postMessage(responsePY);
750    }
751    else {
752        // Per WEB
753        loginGoogle(responsePY)
754    }
755
756
757}
758
759function loginGoogle(respJson) {
760        var pathAjax = "/includes/js/JQuery/py/PY_AJAX.aspx";
761        var param = new Object();
762        param.iMode   = 4;
763        param.email   = respJson.g_email;
764        param.name    = respJson.g_name;
765        param.sub     = respJson.g_sub;
766        param.picture = respJson.g_picture;
767
768    //console.log("loginGoogle: " + JSON.stringify(param))
769
770
771        GoAjaxPOST_GET(param, pathAjax, function () {
772            try { attendereOperazioneLogIn(false); } catch (err) { }
773
774            var data = param.Risposta;
775            var arrResponse = data.split('|');
776            var idUtente = parseInt(arrResponse[0],10);
777            //-------------------------------------------------
778            if (idUtente > 0) {
779
780                actualURL = document.location.href;
781                if (arrResponse.length >= 4 && arrResponse[3] != "") {
782                    actualURL = arrResponse[3];
783                }
784
785                if (actualURL.length > 0) {
786                    document.location.href = actualURL;
787                }
788                else {
789                    location.reload(true);
790                }
791
792            }
793            //-------------------------------------------------
794            else {
795              alert("Utente non riconosciuto");
796            }
797            //-------------------------------------------------
798        });
799
800}
801
802
803
804
805//------------------------------------------------------------------- 
806
807function pyBootstrapPulisciTestoEmoji(testo,sostituisciCon) {
808    if (!sostituisciCon) { sostituisciCon = "";}
809    var testoPulitoDaEmoji = "";
810    if (testo != "") {
811        testoPulitoDaEmoji = testo.replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g, sostituisciCon);
812    }
813    return testoPulitoDaEmoji; 
814}
815
816
817
818
819
820$(document).on("blur", "input[type=text]", function () {
821    var testo = $(this).val();
822    //-------------------------------------------------------------------------
823    var arrTesto = testo.split("");
824    var testoPulitoDaCaratteriNonRiconosciuti = "";
825    var caratteriNonRiconosciuti = "";
826    for (var x = 0; x < arrTesto.length; x++) {
827        if (arrTesto[x].charCodeAt(0) <= 767) {
828            testoPulitoDaCaratteriNonRiconosciuti += arrTesto[x];
829        }
830        else {
831            if (caratteriNonRiconosciuti != "") 
832                caratteriNonRiconosciuti += ",";
833            caratteriNonRiconosciuti += arrTesto[x];
834        }
835    }    
836    if (caratteriNonRiconosciuti != "") {
837        $(this).val(testoPulitoDaCaratteriNonRiconosciuti);
838        alert("Alcuni caratteri non possono essere usati (" + caratteriNonRiconosciuti + ")");
839        return;
840    }
841    //-------------------------------------------------------------------------
842    var testoPulitoDaEmoji = pyBootstrapPulisciTestoEmoji(testo, " ");
843
844    if (testoPulitoDaEmoji != testo) {
845        $(this).val(testoPulitoDaEmoji);
846        alert("Non è consentito inserire Emoji nel testo");
847        return;
848    }
849
850});
851/*
852$(document).on("blur", "textarea", function () {
853    var testo = $(this).val();
854    var testoPulitoDaEmoji = pyBootstrapPulisciTestoEmoji(testo, " ");
855
856    if (testoPulitoDaEmoji != testo) {
857        $(this).val(testoPulitoDaEmoji);
858        alert("Non è consentito inserire Emoji nel testo");
859    }
860
861});
862*/
863
864function copyToClipboard(text, el) {
865    var copyTest = document.queryCommandSupported('copy');
866    var elOriginalText = el.attr('data-original-title');
867
868    if (copyTest === true) {
869        var copyTextArea = document.createElement("textarea");
870        copyTextArea.value = text;
871        document.body.appendChild(copyTextArea);
872        copyTextArea.select();
873        try {
874            var successful = document.execCommand('copy');
875            var msg = successful ? 'Copiato!' : 'Ops, riprova!';
876            el.attr('data-original-title', msg).tooltip('show');
877        } catch (err) {
878            console.log('Oops, unable to copy');
879        }
880        document.body.removeChild(copyTextArea);
881        el.attr('data-original-title', elOriginalText);
882    } else {
883        // Fallback if browser doesn't support .execCommand('copy')
884        window.prompt("Copy to clipboard: Ctrl+C or Command+C, Enter", text);
885    }
886}
887
888
889function checkPromoDinamiche() {
890    $(".promo-dinamiche").each(function () {
891        var numpromo = 6;
892        if ($(this).attr("numpromo")) { numpromo = $(this).attr("numpromo"); }
893
894        var lista = $(this).find("> div");
895
896        var nums = [],
897            ranNums = [],
898            i = 0,
899            j = 0;
900
901        for (var x = 0; x < lista.length; x++) {
902            nums.push(x);
903        }
904        i = nums.length;
905
906        while (i--) {
907            j = Math.floor(Math.random() * (i + 1));
908            var n = nums[j];
909            ranNums.push(n);
910
911            nums.splice(j, 1);
912            $(this).find("> div:eq(" + n + ")").show();
913
914            if (ranNums.length == numpromo) i = 0;
915        }
916
917        //checkPYcontenitoreInfo();
918    })
919
920} 
921
922
923var checkPYcontenitoreInfo_width = 0;
924function checkPYcontenitoreInfo(init) { 
925    // ----------------------------------------------------------
926    var chWidthPagina = $(window).width();
927
928    if (checkPYcontenitoreInfo_width > 0 && checkPYcontenitoreInfo_width == chWidthPagina) {
929        //console.log("Width pagina non è cambiata: " + chWidthPagina);
930
931//        return;
932    }
933    //console.log("Width cambiata: " + chWidthPagina);
934    checkPYcontenitoreInfo_width = chWidthPagina;
935    // ----------------------------------------------------------
936    if ($('.PY-contenitoreCheckBox').length == 0)
937        return;
938    // ----------------------------------------------------------
939    
940
941
942
943    // ----------------------------------------------------------
944    var _hCI = new Array();
945
946    // --------------------------------------------------------------------
947    if (!$('.PY-contenitoreCheckBox').attr("idpycb")) { $('.PY-contenitoreCheckBox').attr("idpycb", 0); }
948    //--------------------------------
949
950    var sezioniUniche = [];
951    // raggruppo gli indici dei vari contenitori
952    $('.PY-contenitoreCheckBox').each(function () {
953        var sezione = $(this).attr('idpycb');
954        if ($.inArray(sezione, sezioniUniche) === -1) {
955            sezioniUniche.push(sezione);
956
957
958
959        }
960    });
961
962
963    // ciclo sui raggruppamenti
964    $.each(sezioniUniche, function (index, valoreSezione) {
965
966        var gruppi = $('.PY-contenitoreCheckBox[idpycb="' + valoreSezione + '"]');
967        var minH = parseInt(gruppi.first().css("min-height"), 0);
968
969        //console.log('- Sezione:', valoreSezione, ' - Numero elementi:', gruppi.length);
970
971        if (init == 1) {
972            if (minH > 0) {
973                gruppi.css("visibility", "visible");
974                _hCI[valoreSezione] = minH;
975                //console.log("PY-contenitoreCheckBox " + valoreSezione + " ha già min-height "+minH)
976                //return;
977            }
978            else {
979                console.log("PY-contenitoreCheckBox " + valoreSezione + " manca min-height")
980            }
981        }
982
983        // Qui lavori con ogni gruppo di elementi che ha la stessa sezione
984        gruppi.each(function () {
985
986            var fnc = function () {
987                $('.PY-contenitoreCheckBox[idpycb="' + valoreSezione + '"]').each(function (n) {
988                    if (init == 0) {
989                        //alert("reset " + valoreSezione);
990                        $(this).css("min-height", "10px");
991                    }
992                });
993                $('.PY-contenitoreCheckBox[idpycb="' + valoreSezione + '"]').each(function (n) {
994                    //if (!$(this).attr("idpycb")) { $(this).attr("idpycb", 0); }
995
996                    var _hCIT = parseInt($(this).css("height"), 10);
997                    if (!_hCI[$(this).attr("idpycb")]) {
998                        _hCI[$(this).attr("idpycb")] = 0;
999                    }
1000                    if (valoreSezione == 5) {
1001                        //alert(_hCIT)
1002                    }
1003
1004                    if (_hCI[$(this).attr("idpycb")] < _hCIT) {
1005                        //console.log("Cambio altezza per " + $(this).attr("idpycb") + " da " + _hCI[$(this).attr("idpycb")] + " a " + _hCIT);
1006                        _hCI[$(this).attr("idpycb")] = _hCIT;
1007                    }
1008                });
1009                $('.PY-contenitoreCheckBox[idpycb="' + valoreSezione + '"]').each(function (n) {
1010
1011                    var minH = parseInt($(this).css("min-height"), 10);
1012                    var newMinH = parseInt(_hCI[$(this).attr("idpycb")],10 );
1013                    if (newMinH != minH) {
1014                        //var h = parseInt(_hCI[$(this).attr("idpycb")],10) + 1;
1015
1016                        $(this).css("min-height", _hCI[$(this).attr("idpycb")] + "px");
1017                        //$(this).css("height", _hCI[$(this).attr("idpycb")]     + "px");
1018
1019
1020                        //if (init == 0) {
1021                        //console.log("PY-contenitoreCheckBox " + valoreSezione + " setto min-height da " + minH + " a " + _hCI[$(this).attr("idpycb")] + " px")
1022                        //}
1023
1024                    }
1025                });
1026
1027                $('.PY-contenitoreCheckBox[idpycb="' + valoreSezione + '"]').css("visibility", "visible");
1028            }
1029            setTimeout(fnc, 300);
1030
1031
1032        });
1033
1034
1035    });
1036
1037
1038    //--------------------------------
1039
1040   // var minH = parseInt($('.PY-contenitoreCheckBox').first().css("min-height"), 10);
1041//    console.log("checkPYcontenitoreInfo min : "+minH)
1042
1043
1044    //$('.PY-contenitoreCheckBox').css("visibility", "visible");
1045
1046
1047   // console.log("PY-contenitoreCheckBox: " + $('.PY-contenitoreCheckBox').length);
1048}
1049
1050
1051function HContainerPY(idObj) {
1052    var Hreturn = 0;
1053    $("." + idObj).each(function (n) {
1054        var H = parseInt($(this).height(), 10);
1055        if (H > 0) {
1056            Hreturn = H;
1057        }
1058    });
1059    return Hreturn;
1060}
1061
1062
1063
1064
1065function heightCarousel() {
1066}
1067
1068$(window).resize(function () {
1069    checkFooter();
1070    checkPYcontenitoreInfo(0);
1071});
1072
1073
1074
1075function attivaToolTip() {
1076
1077    $(".tooltipPY").each(function (n) {
1078        try {
1079            if ($(this).attr("tooltipPYText") != undefined) {
1080                var tooltip = $(this).attr("tooltipPYText");
1081
1082                var text = "<span class='glyphicon glyphicon-info-sign' aria-hidden='true' ></span>";
1083                if ($(this).html() != "")
1084                    text = $(this).html();
1085                if ($(this).attr("tooltipPYWidth") != undefined)
1086                    tooltip = "<table width=" + $(this).attr("tooltipPYWidth") + "px ><tr><td class=text-left>" + tooltip + "</td></tr></table>";
1087
1088                var tt = "<a href='javascript:jsToolTip(0);' data-html='true' data-toggle='tooltip' data-placement='top' title='" + tooltip + "'>" + text + "</a>";
1089                $(this).html(tt);
1090            }
1091            $('[data-toggle="tooltip"]').tooltip();
1092        }
1093        catch (e) {
1094            //alert("errore: " + e.Message);
1095        }
1096    });
1097
1098}
1099
1100
1101$(document).ready(function () {
1102
1103    checkPYcontenitoreInfo(1);
1104
1105    //------------------------------------------------------
1106    //$("form").attr('autocomplete', 'off');
1107    //$("input").attr('autocomplete', 'off');
1108    //------------------------------------------------------
1109
1110    $("#countdown").each(function () {
1111        var title = "Affrettati! Mancano solo:";
1112
1113        if ($(this).data().titolo)
1114            title = $(this).data().titolo;
1115
1116        dataScadenza = "";
1117        if ($(this).data().scadenza /*gg/mm/aaaa*/) {
1118            //trasformo in forma corretta
1119            var arrdata = $(this).data().scadenza.split("/");
1120            dataScadenza = arrdata[2] + "/" + arrdata[1] + "/" + arrdata[0];
1121        }
1122
1123        if (dataScadenza == "")
1124            return;
1125
1126        var div = "";
1127
1128        csslist = "";
1129        if ($(this).data().csslist)
1130            csslist = $(this).data().csslist;
1131        csstitle = "";
1132        if ($(this).data().csstitle)
1133            csstitle = $(this).data().csstitle;
1134
1135        div += '<div class="h4 ' + csstitle + '">' + title + '</div>';
1136        div += '<ul class="js-ul-countdown" style="font-family:Open Sans Condensed, sans-serif;">';
1137        div += '<li class="li-container-PY ' + csslist + '"><span id="countdown-days">&nbsp;</span>giorni</li>';
1138        div += '<li class="li-container-PY ' + csslist + '"><span id="countdown-hours">&nbsp;</span>ore</li>';
1139        div += '<li class="li-container-PY ' + csslist + '"><span id="countdown-minutes">&nbsp;</span>minuti</li>';
1140        div += '<li class="li-container-PY ' + csslist + '"><span id="countdown-seconds">&nbsp;</span>secondi</li>';
1141        div += '</ul>';
1142
1143        $(this).html(div);
1144
1145        const second = 1000,
1146            minute = second * 60,
1147            hour = minute * 60,
1148            day = hour * 24;
1149
1150
1151        const countDown = new Date(dataScadenza).getTime(),
1152            x = setInterval(function () {
1153
1154                const now = new Date().getTime(),
1155                    distance = countDown - now;
1156                $("#countdown-days").html(Math.floor(distance / (day)));
1157                $("#countdown-hours").html(Math.floor((distance % (day)) / (hour)));
1158                $("#countdown-minutes").html(Math.floor((distance % (hour)) / (minute)));
1159                $("#countdown-seconds").html(Math.floor((distance % (minute)) / second));
1160                $("#countdown").css("display", "block");
1161
1162                //do something later when date is reached
1163                if (distance < 0) {
1164                    if ($("#countdown").data().fine)
1165                        $("#countdown").html($("#countdown").data().fine);
1166                    else
1167                        $("#countdown").css("display", "none");
1168
1169                    clearInterval(x);
1170                }
1171                //seconds
1172            }, 1000)
1173
1174
1175
1176
1177
1178
1179
1180
1181    });
1182
1183    $(".js-copy").each(function () {
1184        var h = 20;
1185        if ($(this).data().heightbox)
1186            h = $(this).data().heightbox;
1187
1188        $(this).append("<img src='https://images.photocity.it/image/icone/copia-code.png' onmouseover=\"this.src='https://images.photocity.it/image/icone/copia-code-hover.png'\" onmouseout=\"this.src = 'https://images.photocity.it/image/icone/copia-code.png'\" alt='copia' style='height:" + h + "px;cursor:pointer;' />");
1189        $(this).click(function () {
1190            var text = $(this).data().copy;
1191            var el = $(this);
1192            copyToClipboard(text, el);
1193            return false;
1194        });
1195    });
1196
1197    checkPromoDinamiche();
1198
1199
1200    attivaToolTip();
1201    checkFooter();
1202    caricaImgStelline();
1203
1204    $(".carousel").on('slid.bs.carousel', function () {
1205    })
1206
1207    $(".carousel").each(function (n) {
1208        if (!isNaN($(this).attr("timeSlide"))) {
1209            var tSlide = parseInt($(this).attr("timeSlide"), 10) * 1000;
1210
1211            setIntervalCarousel($(this), tSlide);
1212        }
1213    });
1214
1215    //setTimeout("caricaImgCarouser()", 1000);
1216
1217
1218    //per pagine che hanno prezzo carrello (class divPriceFooter) in fondo alla pagina
1219    //bisogna nascondere il div dei cookie ( id pnl_cookie_message_py)
1220    if ($(".divPriceFooter").length > 0) {
1221        $("#pnl_cookie_message_py").hide();
1222    }
1223
1224
1225
1226
1227});
1228
1229
1230function caricaImgStelline() {
1231    $(".JVotoStelline").each(function (n) {
1232        var voto = parseFloat(5);
1233        var size = 15;
1234        var dettaglio = 0;
1235        var totale = 0;
1236
1237        if ($(this).attr('voto')) {
1238            voto = parseFloat($(this).attr('voto').replace(',', '.'));
1239            // console.log("voto " + voto);
1240        }
1241
1242        if ($(this).attr('size')) {
1243            size = parseInt($(this).attr('size'), 10);
1244        }
1245        if ($(this).attr('totale')) {
1246            totale = parseInt($(this).attr('totale'), 10);
1247        }
1248        if ($(this).attr('dettaglio')) {
1249            dettaglio = parseInt($(this).attr('dettaglio'), 10);
1250        }
1251        var dir = "20x20";
1252        if (size > 25) {
1253            dir = "50x50";
1254        }
1255
1256        // -------------------------------------
1257        // visualizzo 5 stelle
1258        voto = 5;
1259        // -------------------------------------
1260
1261
1262
1263
1264
1265
1266
1267        var iStelline = "";
1268        if (voto > 0) {
1269            var imgStellineTmp = "";
1270            var iStellineTmp = "";
1271            for (var s = 1; s <= 5; s++) {
1272                var stellina = "https://images.photocity.it/image/stelle/" + dir + "/stella-vuota.png";
1273                if (voto >= s) { stellina = "https://images.photocity.it/image/stelle/" + dir + "/stella-piena.png"; }
1274                if (voto < s && voto > (s - 1)) { stellina = "https://images.photocity.it/image/stelle/" + dir + "/stella-parziale.png"; }
1275                imgStellineTmp += "<img src='" + stellina + "' width='" + size +"' height='"+size+"' alt='stella'>";
1276            }
1277            if (dettaglio == 1) {
1278                iStellineTmp += imgStellineTmp+"<span class='h6'>" + voto + "/5</span>";
1279            }
1280            else if (dettaglio == 2) {
1281                iStellineTmp += "<div style='margin-top:5px;font-size:16px;text-align:center;'>";
1282                iStellineTmp += imgStellineTmp +"<div style='margin:5px 0px;'>25 anni di stampa di qualità, certificata da <b>150.000</b> recensioni a <b>5 stelle</b></div>";
1283                iStellineTmp += "</div>";
1284            }
1285            else if (dettaglio == 3) {
1286
1287                var indiceRandom = Math.floor(Math.random() * elencoFrasiSezioneStelline.length);
1288                var fraseRandom = elencoFrasiSezioneStelline[indiceRandom];
1289
1290                iStellineTmp += "<div style='margin-top:5px;font-size:16px;' class='row'>";
1291                iStellineTmp += "<div class='col-sm-1'></div>";
1292                iStellineTmp += "<div class='col-sm-5 text-center'>" + imgStellineTmp + "<div style='margin:5px 0px;'>25 anni di stampa di qualità, certificata da <b>150.000</b><br />recensioni a <b>5 stelle</b></div></div>";
1293                iStellineTmp += "<div class='col-sm-5 text-center'><span><i>\"" + fraseRandom + "\"</i></span></div>";
1294                iStellineTmp += "<div class='col-sm-1'></div>";
1295                iStellineTmp += "</div>";
1296            }
1297            iStelline = "<div>" + iStellineTmp + "</div>";
1298        }
1299
1300        //console.log(iStelline)
1301        $(this).html(iStelline+"<hr/>");
1302
1303    });
1304}
1305
1306
1307function caricaImgCarouser() {
1308    $(".imgSlideCarousel").each(function (n) {
1309        if ($(this).attr('src') == "" && $(this).attr('initSrc') != "") {
1310            $(this).attr('src', $(this).attr('initSrc'));
1311        }
1312    });
1313}
1314
1315
1316
1317function checkFooter() {
1318
1319    if (isMobile()) {
1320        setDisplayServer('xs');
1321    }
1322    else {
1323        setDisplayServer('lg');
1324    }
1325
1326    /*
1327        if (isXS()) {
1328            setDisplayServer('xs');
1329        }
1330        else if (isSM()) {
1331            setDisplayServer('sm');
1332        }
1333        else if (isMD()) {
1334            setDisplayServer('md');
1335        }
1336        else if (isLG()) {
1337            setDisplayServer('lg');
1338        }
1339    */
1340
1341}
1342
1343
1344// ----------------------------------------------------------------------------
1345function openPanelLogOutSvuotaCarrelloPY() {
1346    //$('#divMDSvuotaCarrello').modal('show');
1347    openModalPY('divMDSvuotaCarrello');
1348}
1349
1350
1351
1352var idAttenderePregoDinamic = "divAttenderePregoDinamic";
1353//---------------------------------
1354function ChangeTestoAttenderePrego(testo) {
1355    try {
1356        $('#TESTO' + idAttenderePregoDinamic + " ").html(testo);
1357    } catch (ex) {
1358        console.log("ChangeTestoAttenderePrego: " + ex);
1359    }
1360}
1361
1362//---------------------------------
1363function AvviaAttenderePrego() {
1364    try {
1365        creaAttenderePrego();
1366        //$('#' + idAttenderePregoDinamic).modal('show');
1367        openModalPY(idAttenderePregoDinamic);
1368
1369    } catch (ex) {
1370        console.log("AvviaAttenderePrego: " + ex);
1371    }
1372}
1373//---------------------------------
1374function CloseAttenderePrego() {
1375    try {
1376        //$('#' + idAttenderePregoDinamic).modal('hide');
1377        closeModalPY(idAttenderePregoDinamic);
1378
1379        ChangeTestoAttenderePrego("Attendere prego");
1380    } catch (ex) {
1381        console.log("CloseAttenderePrego: " + ex);
1382    }
1383}
1384
1385function creaAttenderePrego() {
1386    if ($('#' + idAttenderePregoDinamic).length == 0) {
1387        var div = "";
1388        div += "<div class='modal fade' id='" + idAttenderePregoDinamic + "' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>";
1389        div += "<div class='modal-dialog'><div class='modal-content'><div class='modal-body' align='center'><div class='row'>";
1390        div += "<div class='col-3 col-xs-3'></div><div class='col-6 col-xs-6'><img src='https://images.photocity.it/image/wait.gif' class='img-responsive' alt='Attendere prego'></div></div><h3 id='TESTO" + idAttenderePregoDinamic + "'>Attendere prego</h3></div></div></div></div><div class='col-3 col-xs-3'></div>";
1391
1392        $('body').append(div);
1393    }
1394}
1395
1396
1397
1398
1399
1400function master_MsgAttesa() {
1401    AvviaAttenderePrego();
1402}
1403
1404function master_MsgAttesaClose() {
1405    CloseAttenderePrego();
1406}
1407
1408/* ------------------------------------------------------------------------ */
1409/* ------------------------------------------------------------------------ */
1410/* Check Device */
1411/* ------------------------------------------ */
1412function isXS() {
1413    if ($("#xs-check").is(":visible")) {
1414        return true;
1415    }
1416    return false;
1417}
1418/* ------------------------------------------ */
1419function isSM() {
1420    if ($("#sm-check").is(":visible")) {
1421        return true;
1422    }
1423    return false;
1424}
1425/* ------------------------------------------ */
1426function isMD() {
1427    if ($("#md-check").is(":visible")) {
1428        return true;
1429    }
1430    return false;
1431}
1432/* ------------------------------------------ */
1433function isLG() {
1434    if ($("#lg-check").is(":visible")) {
1435        return true;
1436    }
1437    return false;
1438}
1439/* ------------------------------------------ */
1440function isMobile() {
1441    var idMob = false;
1442    /*
1443    if (isXS())
1444        idMob = true;
1445    else if (isSM())
1446        idMob = true;
1447    else
1448        */
1449
1450    var nav = navigator.userAgent;
1451
1452    if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(nav)
1453        || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
1453sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(nav.substr(0, 4))) {
1454        idMob = true;
1455    }
1456    //console.log(idMob + ":" + nav);
1457    return idMob;
1458}
1459
1460/* ------------------------------------------------------------------------ */
1461function isSafari() {
1462    var isSafari = false;
1463    var nav = navigator.userAgent.toLowerCase();
1464    if ((nav.indexOf("msie") != -1) || (nav.indexOf("edge") != -1)) //IF IE > 10
1465    {
1466    }
1467    else if (nav.indexOf("firefox") != -1) {
1468    }
1469    else if (nav.indexOf("chrome") != -1) {
1470    }
1471    else if (nav.indexOf("safari") != -1) {
1472        isSafari = true;
1473    }
1474    else if ((nav.indexOf("opera") || nav.indexOf('opr')) != -1) {
1475    }
1476    else {
1477        //Sconosciuto
1478    }
1479
1480    return isSafari;
1481}
1482
1483
1484/* ------------------------------------------------------------------------ */
1485
1486var _iMode500 = 500;
1487var pathAjaxPOST_GET = '/Photocity/POST_GET.aspx';
1488
1489
1490var setDispy = "";
1491function setDisplayServer(dispy) {
1492    //console.log(dispy);
1493    if (setDispy != dispy) {
1494        var paramPOSTGET = new Object();
1495        paramPOSTGET.iMode = _iMode500;
1496        paramPOSTGET.dispy = dispy;
1497        setDispy = dispy;
1498        GoAjaxPOST_GET(paramPOSTGET, pathAjaxPOST_GET, function () {
1499        });
1500
1501    }
1502}
1503
1504/* ------------------------------------------------------------------------ */
1505
1506function GoAjaxPOST_GET(paramPOSTGET, pathAjaxPOST, myCallback) {
1507
1508    //    alert("GoAjaxPOST_GET");
1509    try {
1510        $.post
1511            (
1512            pathAjaxPOST, paramPOSTGET,
1513            function (Risposta) {
1514
1515                paramPOSTGET.Risposta = Risposta;
1516
1517                if (myCallback)
1518                    myCallback();
1519
1520
1521            });
1522
1523    } catch (e) {
1524        alert(e.description + ' #-PYBTS1');
1525        return false;
1526    }
1527
1528}
1529
1530//---- YOUTUBE --------------------------------------------------------------------------
1531
1532$(window).resize(function () {
1533    PY_resizeAllVideoYouTube();
1534});
1535$(window).load(function () {
1536    PY_setVideoYouTube();
1537});
1538
1539function PY_resizeVideoYouTube(container) {
1540    var img = container.find("img"); 
1541    var video = container.find("iframe");
1542    var w = parseInt(img.css("width"), 10);
1543    var h = parseInt(img.css("height"), 10);
1544
1545    if (w > 50 && h > 50) {
1546        video.css("width", w).css("height", h).css("visibility", "visible");
1547
1548    }
1549    else {
1550        var fnc = function () { PY_resizeVideoYouTube(container); }
1551        setTimeout(fnc, 200);
1552    }
1553
1554}
1555
1556function PY_resizeAllVideoYouTube() {
1557    $(".container-video").each(function () {
1558        PY_resizeVideoYouTube($(this));
1559    });
1560}
1561
1562function PY_setVideoYouTube() {
1563    var prog = 0;
1564    $(".container-video").each(function () {
1565        prog++;
1566        if ($(this).attr("url")) {
1567            var url = $(this).attr("url");
1568            var orientamento = "O";
1569            if ($(this).attr("orientamento")) { orientamento = $(this).attr("orientamento").toUpperCase(); }
1570            var obj = "<iframe src=\"" + url + "\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" class=\"video_py\"></iframe>";
1571            obj += "<img src='https://images.photocity.it/image/orientamento/" + orientamento + ".png' class='img-responsive img_py' />";
1572            $(this).append(obj);
1573        }
1574        else {
1575            alert("inserire proprietà \"url\" su \"container-video\" n. " + prog);
1576        }
1577    });
1578    PY_resizeAllVideoYouTube();
1579
1580}
1581
1582/* ------------------------------------------------------- */
1583
1584

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.