1//---------------------------------------------------------------------------- 2// IT ZETA - Raccosta di funzioni in JS riutilizzabili e non personalizzate // 3//---------------------------------------------------------------------------- 4// versione: 1.6.23 5// del 03/09/2024 6// 7// - modificata la confirmLink() 8// - modifiche per accessibilità , immagini .png al posto di .gif, alt='' e altro 9// - operativa la ajax_itz_respBodyW, passaggio della larghezza della maschera a php 10// - versione migliorata della addToSelect() 11// - nuova sperimentazione per ajax_itz_respBodyW() 12// - rinnovata la funzione itz_ALTprivacy() con nuova gestione delle preferenze sui cookies 13// - aggiunta della detectPosY(nomeDiv) 14// - aggiunta della ckUserPass() 15// - correzioni sulla formatValutaMil() 16// - aggiunta della compareNumbers() 17// - rivista la formatValutaMil() 18// - eliminazione del document.all 19// - correzione su itzDivUp_Close() 20// - nuova funzione fn_link_tempo() 21// - riviste le funzioni sulla privacy 22// - modifiche sulle itzViewImg() e itzDivIframe() 23// - nuova funzione itzDivIframeWaiting() 24// - nuova funzione classSwitchOBJ() 25// - rivista completamente la itzViewImg() e aggiunte le showObjTop(), hiddenObjTop() 26// - aggiornata la itzDivIframe() 27// - aggiunta una funzione di controllo di un valore in Valuta ckValutaFloat(euro, n_decimali) 28// - aggiunta delle funzioni di check della Partita IVA e Codice Fiscale 29// - nuovo gestore eventi addEvent() 30// - nuova funzione itzDivLabel() 31// - nuova funzione mouseXY() 32// - modificata la stampaPagina() 33// - modifiche sulle itzViewImg() e itzDivIframe() 34// - nuova funzione fn_putAvalue() 35// - rivista la funzione itz_ALTprivacy() 36// - aggiunte le funzioni setCookie() e getCookie() 37// - nuova funzione formChangeValue() 38// - revisione della checkInteger() 39// - aggiunto getHTTPObject() per le funzioni Ajax 40// - aggiornata la ckUserPass() 41// 42 43 44/* 45detect x device: 46if ((navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/webOS/i)) || 47 (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPad/i)) || 48 (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/mobile/i)) || 49 (navigator.userAgent.match(/Blackberry/i)) || (navigator.userAgent.match(/OperaMobi/i)) || 50 (navigator.userAgent.match(/Opera/i)) || (navigator.userAgent.match(/IEMobile/i)) || 51 (navigator.userAgent.match(/Jasmine/i)) || (navigator.userAgent.match(/Fennec/i)) || 52 (navigator.userAgent.match(/Blazer/i)) || (navigator.userAgent.match(/Minimo/i)) || 53 (navigator.userAgent.match(/MOT-/i)) || (navigator.userAgent.match(/Nokia/i)) || 54 (navigator.userAgent.match(/SAMSUNG/i)) || (navigator.userAgent.match(/Polaris/i)) || 55 (navigator.userAgent.match(/LG-/i)) || (navigator.userAgent.match(/SonyEricsson/i)) || 56 (navigator.userAgent.match(/SIE-/i)) || (navigator.userAgent.match(/AUDIOVOX/i))) { 57 58 59da testare la possibile animazione: 6002 function centra(div){ 6103 var DIVwidth = $(div).width(); 6204 var DIVheight = $(div).height(); 6305 var SCREENwidth = $(document).width(); 6406 var SCREENheight = $(window).height(); 6507 var SCREENscrolltop = $(window).scrollTop(); 6608 $(div).animate({ 6709 top: (SCREENheight-DIVheight)/2+SCREENscrolltop+"px", 6810 left: (SCREENwidth-DIVwidth)/2+"px" 6911 },100,function(){ 7012 centra(div); 7113 }); 7214 } 73<script type='text/javascript'> 74 centra('#box_centrale'); 75</script> 76*/ 77 78 79function imgOn(imgX) { 80 document.images [imgX].src = eval(imgX + "_r.src"); 81} 82 83 84 85function imgOff(imgX) { 86 document.images [imgX].src = eval(imgX + ".src"); 87} 88 89 90 91// inverte due immagini una con l'altra e viceversa 92// imgX è il name dell'immagine, imgA e imgB con i due riferimenti image 93function changeViewImg(imgX,imgA,imgB) { 94 if (document.images [imgX].src == eval(imgA + ".src")) { 95 document.images [imgX].src = eval(imgB + ".src"); 96 } 97 else { 98 document.images [imgX].src = eval(imgA + ".src"); 99 } 100} 101 102 103 104function showObj(tabName) { 105 if (tabName) { 106 document.getElementById(tabName).style.display = "block"; 107 } 108} 109 110 111 112function hiddenObj(tabName) { 113 if (tabName) { 114 document.getElementById(tabName).style.display = "none"; 115 } 116} 117 118 119 120function showObjTop(tabName) { 121 if (tabName) { 122 window.top.document.getElementById(tabName).style.display = "block"; 123 } 124} 125 126 127 128function hiddenObjTop(tabName) { 129 if (tabName) { 130 window.top.document.getElementById(tabName).style.display = "none"; 131 } 132} 133 134 135 136// funzione che cambia la visione di un oggetto, showObj e hiddenObj fusi insieme 137// necessita di: style="display: none;" nel codice, altrimenti il settaggio nel css non viene subito visto 138function changeViewObj(tabName) { 139 if (tabName) { 140 if (document.getElementById(tabName).style.display == "none") { 141 document.getElementById(tabName).style.display = "block"; 142 } 143 else { 144 document.getElementById(tabName).style.display = "none"; 145 } 146 } 147} 148 149 150 151// funzione che permette il cambio della classe di un oggetto dal suo ID 152function cambioClasseID(id,nomeClasse) { 153 if ((id)&&(nomeClasse)) {
154 document.getElementById(id).className = nomeClasse; 155 } 156} 157 158 159 160// funzione che cambia la classe di un oggetto con il suo ID 161function classChangeID(id,class1,class2) { 162 if ((id)&&(class1)&&(class2)) { 163 if (document.getElementById(id).className == class1) { 164 document.getElementById(id).className = class2; 165 } 166 else { 167 document.getElementById(id).className = class1; 168 } 169 } 170} 171 172 173 174// funzione di cambio classe di stile ad un oggetto con il 'this' 175function cambioClasseOBJ(obj,nomeClasse) { 176 if (nomeClasse) { 177 obj.className = nomeClasse; 178 } 179} 180 181 182 183// funzione di switch tra due classi di stile ad un oggetto con il 'this' 184function classSwitchOBJ(obj,class1,class2) { 185 if ((obj)&&(class1)&&(class2)) { 186 if (obj.className == class1) { 187 obj.className = class2; 188 } 189 else { 190 obj.className = class1; 191 } 192 } 193} 194 195 196 197 198// cambia colore di sfondo 199function ColoraSfondo(obj,colore) { 200 obj.style.backgroundColor = '#'+ colore; 201} 202 203 204 205 206// centra nella pagina 207// tipo 1 -> immagine, w e h si riferiscono alla immagine e non al DivUp 208//, 2 iframe, ... 209// PROGETTO ANCORA IN FASE DI REALIZZO 210function fn_centra_ItzDivUp(tipo, w, h) { 211 // larghezza del div, dipendente dalla larghezza della immagine 212 if ((!w)||(w=='')) {w=800;} 213 if ((!h)||(h=='')) {w=500;} 214 var divW = Number(w); 215 var divH = Number(h); 216 var imgW = divW; 217 var imgH = divH; 218 var rid_img = 0; 219 220 // immagine 221 if (tipo == 1) { 222 divW += 64; 223 divH += 124; // header, footer, padding e bordo 224 } 225 //var maxDivUpW = divW+64; // considerazione del padding e bordo 226 //var maxDivUpH = divH+64; 227 228 // dimensioni dello schermo visibile e dello scroll 229 var WINDOWwidth = $(window.top.document).width(); // larghezza pagina del browser, uguale alla larghezza parte visibile 230 var WINDOWheight = $(window.top.document).height(); // altezza intera pagina del browser 231 var SCREENheight = top.window.innerHeight; // altezza della parte visibile del browser 232 var SCREENscrolltop = $(window.top.document).scrollTop(); // scroll della pagina top del browser 233 234 // in modalità compatibilità di windows 235 if (isNaN(SCREENheight)) { 236 SCREENheight = $(window).height(); 237 var flagCompatibilitaIE = 1; 238 } 239 else { 240 var flagCompatibilitaIE = 0; 241 } 242 243 // schermo piccolo, ridimensionare il DivUp 244 // check dimensioni massime della finestra rispetto allo schermo 245 var rifDivW = Number(WINDOWwidth) - 20; // margine e possibile barra di scorrimento 246 if (divW > rifDivW) { 247 divW = rifDivW; 248 imgW = divW-64; 249 rid_img = 1; 250 } 251 252 var rifDivH = Number(SCREENheight); 253 if (divH > rifDivH) { 254 divH = rifDivH; 255 rid_img = 1; 256 } 257 258 259/* 260 // altezza totale del div in caso di schermi ridotti 261 if (rid_img) { 262 if (WINDOWheight > maxDivUpH) { 263 var maxBackDiv = WINDOWheight; 264 divH = "auto"; 265 } 266 else {var maxBackDiv = maxDivUpH;} 267 268 // gestione della dimensione della larghezza 269 if (maxDivUpW < divW) {divW = "auto";} 270 } 271 272 if (divW != "auto") {divW = divW + "px";} 273 if (divH != "auto") {divH = divH + "px";} 274 275 // posizionamento verticale al centro 276 // il SCREENscrolltop entra in azione solo quando la finestra � pi� piccola del divup e quindi v� posizionata con l'aiuto dello scroll 277 var topDiv = ((SCREENheight - maxDivUpH)/2); 278 if ((topDiv<0)||(rid_img)) {topDiv = SCREENscrolltop;} 279*/ 280 281 282 283//alert("divW "+ divW + " . divH "+ divH +" . WINDOWwidth "+ WINDOWwidth +" . WINDOWheight "+ WINDOWheight +" . SCREENwidth "+ SCREENwidth +" . SCREENheight "+ SCREENheight +" . SCREENscrolltop "+ SCREENscrolltop); 284alert("WINDOWwidth "+ WINDOWwidth +" . WINDOWheight "+ WINDOWheight +" . SCREENheight "+ SCREENheight +" . SCREENscrolltop "+ SCREENscrolltop); 285 286 287} 288 289 290 291 292 293 294// Funzione di vedi immagine grande in div | ver.1.14 del 11/10/2018 295// copyright IT Zeta srl - Alessandro Zumiani 296// ultima versione con nuova gestione delle dimensioni di visione 297// modificato per permettere le immagini con didascalia e link sulla foto 298// ultima integrazione: il link della foto (comprensivo di href e addOn aggiuntivi), codice addOn per l'immagine 299// ultima integrazione: il controllo per la versione compatibilità di explorer 300// richiede le classi CSS: DIV-POPUP 1.14 301// richiede il file: js/jquery-1.11.1.min.js o successivo | per la posizione al centro 302// ATTENZIONE: nella pagina DEVE ESSERCI il metatag: <meta name="viewport" content="width=device-width, maximum-scale=1.0, minimum-scale=1.0"> 303var nomeItzDivUp = "itzDivUp"; 304function itzViewImg(img,w,h,testo,addImg,link,nomeDiv,itzViewImg_session_name) { 305 // nome del div che sostituisce i popup 306 if ((!nomeDiv)&&(nomeItzDivUp)) {nomeDiv = nomeItzDivUp;} 307 else if (!nomeDiv) {nomeDiv = "itzDivUp";} 308 var rid_img = 0; 309 310 //array_posXY = fn_centra_ItzDivUp(w,h); 311 312 // larghezza del div, dipendente dalla larghezza della immagine 313 if ((!w)||(w=='')) {w=800;}
314 if ((!h)||(h=='')) {w=500;} 315 var imgW = Number(w); 316 var imgH = Number(h); 317 var divW = imgW; 318 var divH = imgH + 60; // header e footer 319 var maxDivUpW = divW+64; // considerazione del padding e bordo 320 var maxDivUpH = divH+64; 321 if (testo) {maxDivUpH += 20;} // in caso di didascalia aumenta la massima altezza 322 323 // dimensioni dello schermo visibile e dello scroll 324 var WINDOWwidth = $(window.top.document).width(); // larghezza pagina del browser, uguale alla larghezza parte visibile 325 var WINDOWheight = $(window.top.document).height(); // altezza intera pagina del browser 326 var SCREENheight = top.window.innerHeight; // altezza della parte visibile del browser 327 var SCREENscrolltop = $(window.top.document).scrollTop(); // scroll della pagina top del browser 328 329 // in modalit� compatibilit� di windows 330 if (isNaN(SCREENheight)) { 331 SCREENheight = $(window).height(); 332 var flagCompatibilitaIE = 1; 333 } 334 else { 335 var flagCompatibilitaIE = 0; 336 } 337 338 // check dimensioni massime della finestra rispetto allo schermo 339 var rifDivW = Number(WINDOWwidth) - 20; // margine e possibile barra di scorrimento 340 if (maxDivUpW>rifDivW) { 341 maxDivUpW = rifDivW; 342 imgW = maxDivUpW-64; 343 rid_img = 1; 344 } 345 346 var rifDivH = Number(SCREENheight); 347 if (maxDivUpH>rifDivH) { 348 rid_img = 1; 349 } 350 351 // altezza totale del div in caso di schermi ridotti 352 if (rid_img) { 353 if (WINDOWheight > maxDivUpH) { 354 var maxBackDiv = WINDOWheight; 355 divH = "auto"; 356 } 357 else {var maxBackDiv = maxDivUpH;} 358 359 // gestione della dimensione della larghezza 360 if (maxDivUpW < divW) {divW = "auto";} 361 } 362 363 if (divW != "auto") {divW = divW + "px";} 364 if (divH != "auto") {divH = divH + "px";} 365 366 // posizionamento verticale al centro 367 // il SCREENscrolltop entra in azione solo quando la finestra � pi� piccola del divup e quindi v� posizionata con l'aiuto dello scroll 368 var topDiv = ((SCREENheight - maxDivUpH)/2); 369 370 //alert("topDiv "+ topDiv +" . SCREENheight "+ SCREENheight +" . maxDivUpH "+ maxDivUpH); 371 372 if ((topDiv<0)||(rid_img)) {topDiv = SCREENscrolltop;} 373 //alert("topDiv "+ topDiv +" . SCREENscrolltop "+ SCREENscrolltop); 374 //topDiv = 0; 375 376//alert("divW "+ divW + " . divH "+ divH +" . topDiv "+ topDiv +" . SCREENheight "+ SCREENheight +" . maxDivUpH "+ maxDivUpH); 377 378 // in caso di sessione di elenco di immagini, per attivare il passaggio a img precedenti e successive 379 var codice_img_prev = ''; 380 var codice_img_next = ''; 381 itzViewImg_session = new Array(); 382 if (itzViewImg_session_name) { 383 itzViewImg_session = eval(itzViewImg_session_name + "_img"); 384 itzViewImg_session_w = eval(itzViewImg_session_name + "_w"); 385 itzViewImg_session_h = eval(itzViewImg_session_name + "_h"); 386 387 // ciclo il vettore della sessione per trovare la img attuale e le eventuali precedente e successiva 388 for (var i=0; i<itzViewImg_session.length; i++) { 389 if (itzViewImg_session[i] == img) { 390 if (i) { 391 codice_img_prev = "<div class='itzViewImg_left' onClick='itzViewImg(\""+ itzViewImg_session[i-1] +"\","+ itzViewImg_session_w[i-1] +","+ itzViewImg_session_h[i-1] +",\"\",\""+ addImg +"\",\"\",\"\",\""+ itzViewImg_session_name +"\")'></div>"; 392 } 393 if (i < itzViewImg_session.length-1) { 394 codice_img_next = "<div class='itzViewImg_right' onClick='itzViewImg(\""+ itzViewImg_session[i+1] +"\","+ itzViewImg_session_w[i+1] +","+ itzViewImg_session_h[i+1] +",\"\",\""+ addImg +"\",\"\",\"\",\""+ itzViewImg_session_name +"\")'></div>"; 395 } 396 } 397 } 398 } 399 400 // testo da inserire nel div 401 var codice = "<div id='itzViewImgContent' style='width:"+ divW +"; min-height:"+ divH +"; top:"+ topDiv +"px;'>"; 402 codice += "<div style='text-align: right; border-bottom: #999999 1px solid; margin-bottom: 10px;'><a href='javascript:void(0);' onClick='itzDivUp_Close(\""+ nomeDiv +"\")' class='itzDivUp_link'><b>chiudi</b> <img src='images/ico_exit.png' width='16' height='16' alt='exit'></a></div>"; 403 codice += "<div>"; 404 if (codice_img_prev) {codice += codice_img_prev;} 405 if (codice_img_next) {codice += codice_img_next;} 406 var codice_img = "<img src='"+ img +"' width='"+ imgW +"' border='0' "; 407 if (addImg) {codice_img += addImg;} 408 codice_img += ">"; 409 if (link) {codice += "<a "+ link +">"+ codice_img +"</a>";} 410 else {codice += codice_img;} 411 codice += "</div>"; 412 if (testo) {codice += "<div style='text-align: center; margin-top: 10px;'>"+ testo +"</div>";} 413 codice += "<div style='text-align: right; border-bottom: #999999 1px solid; margin-top: 10px;'><a href='javascript:void(0);' onClick='itzDivUp_Close(\""+ nomeDiv +"\")' class='itzDivUp_link'><b>chiudi</b></a></div>"; 414 codice += "</div><div id='itzDivUp_clickClose' onClick='itzDivUp_Close(\""+ nomeDiv + "\")'></div>"; 415 416 window.top.document.getElementById(nomeDiv).style.display = 'block'; 417 window.top.document.getElementById(nomeDiv).innerHTML = codice; 418 if (rid_img) { 419 // quando la finestra � pi� piccola del divup � necessario farla scorrere 420 window.top.document.getElementById(nomeDiv).style.position = 'absolute'; 421 window.top.document.getElementById(nomeDiv).style.height = maxBackDiv + 'px'; 422 } 423 else { 424 window.top.document.getElementById(nomeDiv).style.position = 'fixed'; 425 window.top.document.getElementById(nomeDiv).style.height = '100%'; 426 } 427 if (flagCompatibilitaIE) { 428 window.top.document.getElementById(nomeDiv).style.background = '#222222'; 429 } 430} 431 432 433 434 435 436// Funzione di visione di dati in un iframe dentro il div centrale | ver.1.9 del 23/04/2018 437// copyright IT Zeta srl - Alessandro Zumiani 438// parametri: stampa-> presenza bottone stampa 0/1 439// richiede le classi CSS: DIV-POPUP 1.11 440// richiede il file: js/jquery-1.11.1.min.js o successivo | per la posizione al centro 441function itzDivIframe(w,h,url,nomeDiv,stampa,link_chiudi,minW,minH) { 442 // nome del div che sostituisce i popup 443 if ((!nomeDiv)&&(nomeItzDivUp)) {nomeDiv = nomeItzDivUp;} 444 else if (!nomeDiv) {nomeDiv = "itzDivUp";} 445 446 // larghezza del div, dipendente dalla larghezza della immagine 447 if ((!w)||(w=='')) {w=800;} 448 if ((!h)||(h=='')) {h=600;} 449 var divW = Number(w); 450 var divH = Number(h); 451 452 // dimensioni dello schermo visibile e dello scroll 453 var WINDOWwidth = $(window.top.document).width(); // larghezza pagina del browser, uguale alla larghezza parte visibile 454 var WINDOWheight = $(window.top.document).height(); // altezza intera pagina del browser 455 var SCREENheight = top.window.innerHeight; // altezza della parte visibile del browser 456 var SCREENscrolltop = $(window.top.document).scrollTop(); // scroll della pagina top del browser 457 458 // in modalit� compatibilit� di windows 459 if (isNaN(SCREENheight)) { 460 SCREENheight = $(window).height(); 461 var flagCompatibilitaIE = 1; 462 } 463 else { 464 var flagCompatibilitaIE = 0; 465 } 466 467 // check dimensioni massime della finestra rispetto allo schermo, per le immagini la altezza non mi aggiusta 468 var rifDivW = Number(WINDOWwidth)-60; 469 if (divW > rifDivW) {divW = rifDivW;} 470 var rifDivH = Number(SCREENheight)-64; 471 if (divH > rifDivH) {divH = rifDivH;} 472 473 // posizionamento al centro 474 var topDiv = ((SCREENheight - divH)/2) - 32; 475 if (topDiv < 0) {topDiv = 0;} 476 //else {topDiv = SCREENscrolltop;} nel momento in cui itzDivUp � fixed, allora non serve pi� 477 478 // altezza dello sfondo scuro sotto 479 if (SCREENheight > WINDOWheight) {var backDiv = SCREENheight;} 480 else {var backDiv = WINDOWheight;} 481 482//alert("SCREENwidth "+ SCREENwidth +" . SCREENheight "+ SCREENheight +" . WINDOWheight "+ WINDOWheight +" . FULLheight "+ FULLheight); 483//alert("divW "+ divW + " . divH "+ divH +" . topDiv "+ topDiv); 484 485 // testo da inserire nel div 486 var iframeH = divH-40; // altezza del frame all'interno 487 var codice = "<div id='itzDivContent' style='width: "+ divW +"px; height: "+ divH +"px; top:"+ topDiv +"px;'>"; 488 codice += "<div style='width: "+ divW +"px; text-align: right; border-bottom: #999999 1px solid; margin-bottom: 10px;'><a href='javascript:void(0);' onClick='itzDivUp_Close(\""+ nomeDiv + "\", \""+ link_chiudi +"\")' class='itzDivUp_link'><b>chiudi</b> <img src='images/ico_exit.png' width='16' height='16' alt='exit'></a></div>"; 489 codice += "<div id='itzDivIframeInt'><iframe style='border: #777777 1px solid;' width='100%' height='"+ iframeH +"' src='"+ url +"' name='frameDiv' marginwidth='0' marginheight='0' hspace='0' vspace='0' frameborder='0' align='center' scrolling='auto'> </iframe></div>"; 490 codice += "<div style='width: "+ divW +"px; text-align: right; border-bottom: #999999 1px solid; margin-top: 10px;'>"; 491 if (stampa==1) {codice += "<a href='javascript:stampaPagina(\"\",\""+ url +"\")' class='itzDivUp_link'>stampa</a> ";} 492 codice += "<a href='javascript:void(0);' onClick='itzDivUp_Close(\""+ nomeDiv + "\", \""+ link_chiudi +"\")' class='itzDivUp_link'><b>chiudi</b></a></div></div><div id='itzDivUp_clickClose'></div>"; 493 494 window.top.document.getElementById(nomeDiv).style.position = 'fixed'; 495 window.top.document.getElementById(nomeDiv).style.height = '100%'; 496 window.top.document.getElementById(nomeDiv).style.display = 'block'; 497 window.top.document.getElementById(nomeDiv).innerHTML = codice; 498 if (flagCompatibilitaIE) { 499 window.top.document.getElementById(nomeDiv).style.background = '#222222'; 500 } 501} 502 503 504 505 506 507 508 509// Funzione di visione del iframe con il messaggio di attesa precaricato nel div apposito | ver.1.1 del 11/04/2018 510// copyright � IT Zeta srl - Alessandro Zumiani 511// richiede le classi CSS: DIV-POPUP 1.11 512// richiede il file: js/jquery-1.11.1.min.js o successivo | per la posizione al centro 513function itzDivIframeWaiting(w,h) { 514 // nome del div 515 nomeDiv = "itzDivUp_waiting"; 516 517 // larghezza del div, dipendente dalla larghezza della immagine 518 if ((!w)||(w=='')) {w=800;} 519 if ((!h)||(h=='')) {h=600;} 520 var divW = Number(w); 521 var divH = Number(h); 522 523 // dimensioni dello schermo visibile e dello scroll 524 var SCREENwidth = $(window.top.document).width(); 525 var SCREENheight = $(window.top.document).height(); 526 var WINDOWheight = $(window.top.document).height(); 527// var SCREENscrolltop = $(window).scrollTop(); 528 var FULLheight = top.window.innerHeight; //Number(window.top.document.body.offsetHeight)+40; 529 530 // in modalit� compatibilit� di windows 531 if (isNaN(FULLheight)) { 532 FULLheight = $(window).height(); 533 var flagCompatibilitaIE = 1; 534 } 535 else { 536 var flagCompatibilitaIE = 0; 537 } 538 539 // check dimensioni massime della finestra rispetto allo schermo, per le immagini la altezza non mi aggiusta 540 var rifDivW = Number(SCREENwidth)-60; 541 if (rifDivW<divW) {divW = rifDivW;} 542 var rifDivH = Number(FULLheight)-64; 543 if (rifDivH<divH) {divH = rifDivH;} 544 545 // posizionamento al centro 546 var topDiv = ((FULLheight - divH)/2) - 32; 547 if (topDiv<0) {topDiv = 0;} 548 //topDiv += SCREENscrolltop; disinserito da quando nella #itzDivUp � stato inserito fixed al posto di absolute 549 550 // altezza dello sfondo scuro sotto 551 if (FULLheight > SCREENheight) {var backDiv = FULLheight;} 552 else {var backDiv = SCREENheight;} 553 554 var iframeH = divH-40; // altezza del frame all'interno 555 556 window.top.document.getElementById('itzDivContent').style.width = divW +"px"; 557 window.top.document.getElementById('itzDivContent').style.height = divH +"px"; 558 window.top.document.getElementById('itzDivContent').style.marginTop = topDiv +"px"; 559 window.top.document.getElementById('itzDivIframeInt').style.height = iframeH +"px"; 560 window.top.document.getElementById(nomeDiv).style.display = 'block'; 561 window.top.document.getElementById(nomeDiv).style.height = backDiv +"px"; 562 if (flagCompatibilitaIE) { 563 window.top.document.getElementById(nomeDiv).style.background = '#222222'; 564 } 565} 566 567 568 569 570 571 572// Funzione di visione di un messaggio dentro il div centrale | ver.1.1 del 21/03/2018 573// copyright � IT Zeta srl - Alessandro Zumiani 574// parametri: stampa-> presenza bottone stampa 0/1 575// richiede le classi CSS: DIV-POPUP 1.10 576// richiede il file: js/jquery-1.11.1.min.js | per la posizione al centro 577function itzDivMesg(w,h,messaggio_html,nomeDiv,stampa,link_chiudi,minW,minH) { 578 // nome del div che sostituisce i popup 579 if ((!nomeDiv)&&(nomeItzDivUp)) {nomeDiv = nomeItzDivUp;} 580 else if (!nomeDiv) {nomeDiv = "itzDivUp";} 581 582 // larghezza del div, dipendente dalla larghezza della immagine 583 if ((!w)||(w=='')) {w=800;} 584 if ((!h)||(h=='')) {h=600;} 585 var divW = Number(w); 586 var divH = Number(h); 587 588 // dimensioni dello schermo visibile e dello scroll 589 var SCREENwidth = $(window.top.document).width(); 590 var SCREENheight = $(window.top.document).height(); 591 var WINDOWheight = $(window.top.document).height(); 592// var SCREENscrolltop = $(window).scrollTop(); 593 var FULLheight = top.window.innerHeight; //Number(window.top.document.body.offsetHeight)+40; 594 595 // in modalit� compatibilit� di windows 596 if (isNaN(FULLheight)) { 597 FULLheight = $(window).height(); 598 var flagCompatibilitaIE = 1; 599 } 600 else { 601 var flagCompatibilitaIE = 0; 602 } 603 604 // check dimensioni massime della finestra rispetto allo schermo, per le immagini la altezza non mi aggiusta 605 var rifDivW = Number(SCREENwidth)-60; 606 if (rifDivW<divW) {divW = rifDivW;} 607 var rifDivH = Number(FULLheight)-64; 608 if (rifDivH<divH) {divH = rifDivH;} 609 610 // posizionamento al centro 611 var topDiv = ((FULLheight - divH)/2) - 32; 612 if (topDiv<0) {topDiv = 0;} 613 //topDiv += SCREENscrolltop; disinserito da quando nella #itzDivUp � stato inserito fixed al posto di absolute 614 615 // altezza dello sfondo scuro sotto 616 if (FULLheight > SCREENheight) {var backDiv = FULLheight;} 617 else {var backDiv = SCREENheight;} 618 619//alert("SCREENwidth "+ SCREENwidth +" . SCREENheight "+ SCREENheight +" . WINDOWheight "+ WINDOWheight +" . FULLheight "+ FULLheight); 620//alert("divW "+ divW + " . divH "+ divH +" . topDiv "+ topDiv); 621 622 // testo da inserire nel div 623 var intDivH = divH-40; // altezza del frame all'interno 624 var codice = "<div id='itzDivContent' style='width: "+ divW +"px; height: "+ divH +"px;'>"; 625 codice += "<div style='width: "+ divW +"px; text-align: right; border-bottom: #999999 1px solid; margin-bottom: 10px;'><a href='javascript:void(0);' onClick='itzDivUp_Close(\""+ nomeDiv + "\", \""+ link_chiudi +"\")' class='itzDivUp_link'><b>chiudi</b> <img src='images/ico_exit.png' width='16' height='16' alt='exit'></a></div>"; 626 codice += "<div id='itzDivIframeInt' style='width:100%; height:"+ intDivH +"px; color:#444444; text-align:left; padding-top:10px; line-height:1.3em; box-sizing:border-box;'>"+ messaggio_html +"</div>"; 627 codice += "<div style='width: "+ divW +"px; text-align: right; border-bottom: #999999 1px solid; margin-top: 10px;'>"; 628 if (stampa==1) {codice += "<a href='javascript:stampaPagina(\"\",\""+ url +"\")' class='itzDivUp_link'>stampa</a> ";} 629 codice += "<a href='javascript:void(0);' onClick='itzDivUp_Close(\""+ nomeDiv + "\", \""+ link_chiudi +"\")' class='itzDivUp_link'><b>chiudi</b></a></div></div><div id='itzDivUp_clickClose'></div>"; 630 631 window.top.document.getElementById(nomeDiv).style.display = 'block'; 632 window.top.document.getElementById(nomeDiv).style.height = backDiv +"px"; 633 window.top.document.getElementById(nomeDiv).innerHTML = codice; 634 window.top.document.getElementById('itzDivContent').style.marginTop = topDiv +"px"; 635 if (flagCompatibilitaIE) { 636 window.top.document.getElementById(nomeDiv).style.background = '#222222'; 637 } 638} 639 640 641 642 643// chiude il divup sia delle immagini che del iframe e annulla il codice all'interno 644function itzDivUp_Close(nomeDiv, link_chiudi) { 645 // svuotamento e chiusura 646 window.top.document.getElementById(nomeDiv).style.display = 'none'; 647 //window.top.document.getElementById(nomeDiv).innerHTML = ''; 648 649 // eventuale link di chiusura 650 if ((link_chiudi)&&(link_chiudi != "undefined")) { 651 link_chiudi = link_chiudi.replace(RegExp("'", "g"), "\""); 652 window.top.location.href = link_chiudi; 653 } 654} 655 656 657 658 659 660 661 662 663// funzione di gestione di una label o fumetto con passaggio del testo da far apparire 664// ver. 1.0 - ultima modifica il 26/11/2015 665// w, h, top, left : se a zero, non verranno impostati 666function itzDivLabel(nomeDiv, text, w, h, left, top) { 667 if (w>0) {window.top.document.getElementById(nomeDiv).style.width = w +'px';} 668 if (h>0) {window.top.document.getElementById(nomeDiv).style.height = h +'px';} 669 if (left>0) {window.top.document.getElementById(nomeDiv).style.left = left +'px';} 670 if (top>0) {window.top.document.getElementById(nomeDiv).style.top = top +'px';} 671 window.top.document.getElementById(nomeDiv).innerHTML = text; 672 window.top.document.getElementById(nomeDiv).style.display = 'block'; 673} 674 675 676 677 678 679// funzione che restituisce la posizione del mouse, riferita dentro un div 680// se non presente il nomeDiv allora restituisce il
680riferimento all'intera pagina 681function mouseXY(event, nomeDiv) { 682 // componente dello scroll della pagina 683 var scrollTOP = (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop; 684 var scrollLEFT = (document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft; 685 686 // posizione del mouse riferita all'intera pagina 687 var allX = 0; 688 var allY = 0; 689 /*if (window.event) { 690 allX = window.event.clientX+scrollLEFT; 691 allY = window.event.clientY+scrollTOP; 692 } 693 else {*/ 694 allX = event.clientX+scrollLEFT; 695 allY = event.clientY+scrollTOP; 696 //} 697 698 var objX = 0; 699 var objY = 0; 700 if (nomeDiv) { 701 var elParent = document.getElementById(nomeDiv); 702 703 while (elParent) { 704 objX += elParent.offsetLeft; 705 objY += elParent.offsetTop; 706 elParent = elParent.offsetParent; 707 } 708/* versione originale, con richiamo della funzione: mouseXY(event, document.getElementById('nome_div')); 709 var elParent = nomeDiv; 710 while (elParent) { 711 objX += elParent.offsetLeft; 712 objY += elParent.offsetTop; 713 elParent = elParent.offsetParent; 714 } 715*/ 716 } 717 var x = allX-objX; 718 var y = allY-objY; 719 720 return x +'.'+ y; 721} 722 723 724 725 726 727// funzione che restituisce i pixel di distanza di un div dalla body 728function detectPosY(nomeDiv) { 729 var elParent = document.getElementById(nomeDiv); 730 var bodyRect = document.body.getBoundingClientRect(), 731 elemRect = elParent.getBoundingClientRect(), 732 offset = elemRect.top - bodyRect.top; 733 return offset; 734} 735 736 737 738 739 740// funzione che rende possibile la stampa di solo un'area di una pagina - Ver. 2.1 del 12/11/2015 741// l'area che si desidera stampare deve trovarvi dentro un DIV il cui ID deve essere passato come parametro a questa funzione 742// IMPORTANTE: il foglio di stile esterno deve riportate l'indirizzo reale completo 743function stampaPagina(area, url_frame) { 744 if (url_frame) { 745 var finestra=window.open (url_frame, "Stampa", "toolbar=no,directories=no,menubar=yes,resizable=yes,scrollbars=yes,width=800,height=700"); 746 } 747 else if (area) { 748 var testo = document.getElementById(area).innerHTML; 749 var finestra=window.open ("", "Stampa", "toolbar=no,directories=no,menubar=yes,resizable=yes,scrollbars=yes,width=800,height=700"); 750 finestra.document.write("<html><head><title>Stampa</title>\n"); 751// finestra.document.write("<link rel='stylesheet' type='text/css' href='http://www.dominio.it/cliente.css'>"); 752 finestra.document.write("</head>\n<body class='body_frame'>\n"); 753 finestra.document.write("</body></html>"); 754 finestra.document.body.innerHTML = testo; 755 } 756 757 if (finestra) { 758 finestra.document.close(); 759 finestra.print(); 760 setInterval(function(){finestra.close();},2000); 761 } 762} 763 764 765 766// per aprire un link, anche di file, in un pop-up 767function apri(url,popWidth,popHeight) { 768 if (popWidth=="") {popWidth=400;} 769 if (popHeight=="") {popHeight=400;} 770// verificata incompatibilit� con ipad per le due righe sottostanti 771// newin = window.open('','page','scrollbars=yes,resizable=yes, width='+ popWidth +',height='+ popHeight +',status=no,location=no,toolbar=no'); 772// newin.close(); 773 newin = window.open(url,'page','scrollbars=yes,resizable=yes, width='+ popWidth +',height='+ popHeight +',status=no,location=no,toolbar=no'); 774 newin.focus(); 775} 776 777// per aprire in una nuova finestra usare: 778// window.open('{$dati['path_file_gest']}{$dati['nome_file']}', '_blank') 779// al posto del target 780 781 782 783// funzione di relink a tempo parametrizzato 784function fn_link_tempo(link, millisec) { 785 //var timer = 0; 786 //timer = setTimeout("location=('"+ link +"')", millisec); 787 788 window.setTimeout("location=('"+ link +"')", millisec); 789} 790 791 792 793// funzione di cambio del valore in un campo, nel form indicato 794// il parametro flagSubmit serve per attivare o meno il submit e il testoConfirm serve per attivare un testo di conferma dell'operazione 795function formChangeValue(nomeForm, nomeCampo, valoreCampo, flagSubmit, testoConfirm) { 796 var procedi = true; 797 if ((nomeForm)&&(nomeCampo)&&(valoreCampo)) { 798 if (testoConfirm) { 799 if (!confirm(testoConfirm)) {procedi = false;} 800 } 801 if (procedi) { 802 document.forms[nomeForm].elements[nomeCampo].value = valoreCampo; 803 if (flagSubmit == "1") {document.forms[nomeForm].submit();} 804 } 805 } 806} 807 808 809 810// funzione di pulitura di campo text. funzionamento: pulisciCampo(this) 811function pulisciCampo(obj) { 812 obj.value = ""; 813} 814 815 816 817// elimina gli spazi 818function spaceClean(obj) { 819 obj.value = obj.value.replace(RegExp(" ", "g"), ""); 820} 821 822 823 824// tutto in maiuscolo 825function allUpper(obj) { 826 obj.value = obj.value.toUpperCase(); 827} 828 829 830 831// funzione di pulitura di campo numerico 832function pulisciCampoNum(obj) { 833 if (obj.value == "0") {obj.value = "";} 834} 835 836 837 838// funzione utile per il sort numerico negli array 839// array_valori.sort(compareNumbers) usato in kailas pricing 840function compareNumbers(a, b) { 841 return a - b; 842} 843 844 845 846// controllo e formattazione del valore numerico (anche valuta) con indicazione del numero di decimali da tenere, con arrotondamento 847// NON esegue la formattazione delle migliaia 848// ultima versione: migliorata la precisione sui decimali di due e più cifre 849// n_decimali può essere 0 850function ckNumerico(valore, n_decimali) { 851 //var valoreInStringa, stringaInteri, stringaDecimali, rifDecimali = ""; 852 n_decimali = Number(n_decimali); 853 854 // check eventuale virgola in punto 855 valore = valore.toString(); 856 valore = valore.replace(RegExp(",", "g"), "\."); 857 // check is NAN 858 if (isNaN(valore)) {valore=0;} 859 860 // calcolo dei decimali o libero 861 if (n_decimali>0) { 862 valore = Number(valore); 863 valore = valore.toFixed(n_decimali); 864 } 865 else if (n_decimali==0) { 866 valore = Math.round(valore); // arrotondamento dei soli interi 867 } 868 else { 869 valore = Number(valore); 870 } 871 return valore; 872} 873 874 875 876// funzione di controllo di un valore numerico, probabilmente meno performante di ckNumerico() 877function checkNumeric(num) { 878 num = num.replace(RegExp(",", "g"), "\."); 879 if ((num)&&(!isNaN(num))) { 880 num = parseFloat(num); 881 } 882 else {num = 0;} 883 return num; 884} 885 886 887 888// funzione che accetta una valora con punti come migliaia e virgola per i decimali: 10.000,00 889// restituisce un numero usabile per i calcoli 890// DA RIVEDERE NON FUNZIONA
891function ckValutaFloat(euro, n_decimali) { 892 /*euro = euro.replace(/[\.]?/gi, ""); 893 euro = euro.replace(RegExp(",", "g"), "\."); 894 euro = Number(euro); 895 return euro.toFixed(n_decimali);*/ 896 return euro; 897} 898 899 900 901// trasforma un numero, già con i decimali presenti, in una stringa formattata in valuta con separazione delle migliaia 902// IMPORTANTE: il n_decimali deve esserci e almeno 1, altrimenti usare la 903function formatValutaMil(euro, n_decimali) { 904 euro = ckNumerico(euro, n_decimali); 905 num = euro.split("."); 906 decimali = num[1]; 907 nuovo = ''; 908 909 for (var i=1; i<=Math.ceil(num[0].length / 3); i++) { 910 // il cursore mi indica dove far partire il recupero della nuova stringa 911 cursore = num[0].length - (i*3); 912 if (cursore>0) { 913 fraz = num[0].substr(cursore, 3); 914 } 915 else { 916 // prende la rimanenza 917 fraz = num[0].substr(0, 3+cursore); 918 } 919 920 // aggiunge la formattazione delle migliaia 921 if (i>1) {nuovo = fraz +"."+ nuovo;} 922 else {nuovo = fraz + nuovo;} 923 } 924 925 nuovo += "," + decimali; 926 return nuovo; 927} 928 929 930 931// controllo e formattazione del valore numerico di un campo 932function ckInputNumerico(obj,n_decimali) { 933 obj.value = ckNumerico(obj.value,n_decimali); 934} 935 936 937 938// controllo e formattazione del valore numerico di un campo 939function ckInputNumericoID(idName,n_decimali) { 940 document.getElementById(idName).value = ckNumerico(document.getElementById(idName).value,n_decimali); 941} 942 943 944 945// check numero intero e pulitura dello stesso, alternativa semplice per i numeri interi 946function checkInteger(obj) { 947 var valore = obj.value; 948 if (Number(valore)) { 949 valore = Math.round(Math.round(valore.replace(RegExp(",", "g"), "\."))); 950 } 951 else { 952 valore = obj.value.replace(RegExp("[^0-9]", "g"), ""); 953 } 954 if (isNaN(valore)) {valore=0;} 955 obj.value = valore; 956} 957 958 959 960// validazione strutturale della mail 961function validaEMail(mail) { 962 var MailRExp = /^[0-9a-zA-Z_\.\-]{2,}@[0-9a-zA-Z_\.\-]{2,}\.[a-zA-Z]{2,}$/; 963 if (MailRExp.test(mail)) {return true;} 964 else {return false;} 965} 966 967 968 969// per rimuovere tutti gli elementi da una select 970function pulisciSelect(oggetto) { 971 if (oggetto) { 972 if (document.getElementById(oggetto)) { 973 document.getElementById(oggetto).options.length = 0; 974 } 975 } 976} 977 978 979 980// per aggiungere valori in un elemento select 981// versione migliorata con l'aggiunta della separazione del nome attributo dall'attributo 982function addToSelect(oggetto, valore, etichetta, attributo, nome_attributo) { 983 if (!nome_attributo) {nome_attributo = 'title'} 984 var indice = document.getElementById(oggetto).length; 985 document.getElementById(oggetto).options[indice] = new Option(etichetta,valore); 986 if (attributo) { 987 document.getElementById(oggetto).options[indice].setAttribute(nome_attributo, attributo); 988 } 989 // var newOption = document.createElement("option"); 990 // newOption.value = valore; 991 // newOption.text = etichetta; 992 // document.getElementById(oggetto).add(newOption); 993 // document.getElementById(oggetto).options[item] = new Option(valore,etichetta); // per inserire in un preciso punto (item)... da testare 994} 995 996 997 998// funzione che mette in un campo il valore proveniente da un'altro 999function fn_putAvalue(fieldFrom, fieldTo) { 1000 document.getElementById(fieldTo).value = document.getElementById(fieldFrom).value; 1001} 1002 1003 1004 1005// funzione per svuotare un frame 1006// PROVARE A RIFARE CON UN INNER HTML DI PAGINA VUOTA 1007function pulisciFrame(nomeFrame) { 1008 parent.frames[nomeFrame].location.href = 'frame_blank.php'; 1009} 1010 1011 1012 1013// funzione per aprire in un frame una determinara pagina 1014function pageFrame(nomeFrame, nomePHP) { 1015 parent.frames[nomeFrame].location.href = nomePHP; 1016} 1017 1018 1019 1020// funzione di richiesta di conferma prima di lanciare un url 1021// modificata per comandare l'apertura in una nuova finestra, si potrebbe anche provare con un target 1022function confirmLink(text, link, nuova_finestra) { 1023 if (confirm(text)) { 1024 if (nuova_finestra == true) {window.open(link, '_blank');} 1025 else {location.href = link;} 1026 } 1027} 1028 1029 1030 1031// funzione di carico di una pagina con aggiunta di un nuovo valore passato come parametro 1032// opzione con frame non ancora testata 1033function fn_urlGetNuovoValore(url_get,nomeCampo,valore,flag_frame,nomeFrame) { 1034 if ((flag_frame=="1")&&(nomeFrame)) {
1035 parent.frames[nomeFrame].location.href = url_get +'&'+ nomeCampo +'='+ valore; 1036 } 1037 else { 1038 location.href = url_get +'&'+ nomeCampo +'='+ valore; 1039 } 1040} 1041 1042 1043 1044// funzione di selezione/deselezione checkbox con un unico prefisso 1045// esempio: 1046// seleziona tutti: <input type='checkbox' id='checkboxALL' onClick=\"fn_CheckAllcheckBox('checkboxALL', 'nome_array_campi[]')\"> 1047// altri: <input type='checkbox' name='nome_array_campi[]' value='123'> 1048function fn_CheckAllcheckBox(nome_checkALL, nome_array_checkbox) { 1049 // array di tutti i checkbok appartenenti a nome_array_checkbox 1050 var arrayChecks = document.getElementsByName(nome_array_checkbox); 1051 1052 // recupero dello stato del comando padre 1053 if (document.getElementById(nome_checkALL).checked) {var doAll = true;} else {var doAll = false;} 1054 1055 // cicla tutti i check 1056 for (var i=0; i<arrayChecks.length; i++) { 1057 arrayChecks[i].checked = doAll; 1058 } 1059} 1060 1061 1062 1063 1064// funzione di analisi della correttezza della username e della password 1065// aggiornato al 07/11/2023 1066function ckUserPass(dati) { 1067 var n_errore = 0; 1068 var ckUSPWregExp_chKO = /[(){}<>\&\$\|\\\/;]/; 1069 var ckUSPWregExp_chOK = /[\!\?\,\.\:\+\-\*\"\'_=°^@§#%â¬Ã§]/; 1070 var ckUSPWregExp_mai = /[A-Z]/; 1071 var ckUSPWregExp_min = /[a-z]/; 1072 var ckUSPWregExp_num = /[0-9]/; 1073 var ckUSPWregExp_sp = /[\s]/; 1074 // ordine di importanza inverso 1075 if (!ckUSPWregExp_min.test(dati)) {n_errore = 5;} // almeno una minuscola 1076 if (!ckUSPWregExp_mai.test(dati)) {n_errore = 4;} // almeno una maiuscola 1077 if (!ckUSPWregExp_num.test(dati)) {n_errore = 3;} // almeno un numero 1078 if (!ckUSPWregExp_chOK.test(dati)) {n_errore = 8;} // almeno un caratteri speciale 1079 if (ckUSPWregExp_sp.test(dati)) {n_errore = 6;} // niente spazi 1080 if (ckUSPWregExp_chKO.test(dati)) {n_errore = 7;} // caratteri non permessi 1081 if (dati.length < 10) {n_errore = 2;} // almeno 10 caratteri 1082 if (!dati) {n_errore = 1;} // non presente 1083 return n_errore; 1084} 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100////////////////////////////////////////////////////// 1101// FUNZIONI PER ALERT PRIVACY & COOKIES IN TOP PAGE 1102// 1103// Il cookie memPrivacyCookieGDPR è un cookie tecnico e necessario, mantiene le preferenze dell'utente sulla scelta della policy sui cookies. 1104// 1105// funzione di emissione dell'area di alert per i cookies - versione 1.5 1106// questo codice deve essere presente sulle pagine: 1107/* 1108<script> 1109var itz_ALTprivacy_DivName = 'itzAlt_topPrivacy_up'; // scelta tra itzAlt_topPrivacy_up e itzAlt_topPrivacy_dw, riportare stesso nome nel div 1110var itz_ALTprivacy_lang = 'ita'; 1111var itz_ALTprivacy_type = '1-0-0'; // tecnici-statistici-social 1112var itz_ALTprivacy_2php = 0; // se presente implica ajax.dati 1113var itz_ALTprivacy_color = 2; // colore: 1 chiaro, 2 scuro 1114var itz_ALTprivacy_link = 'privacy_policy.php'; 1115addEvent(window,'load',function() {itz_ALTprivacy();}); 1116</script> 1117*/ 1118itz_ALTprivacy_valori = getCookie('memPrivacyCookieGDPR').split("-"); 1119if (isNaN(parseInt(itz_ALTprivacy_valori[0]))) {itz_ALTprivacy_valori[0] = 1;} 1120if (isNaN(parseInt(itz_ALTprivacy_valori[1]))) {itz_ALTprivacy_valori[1] = 0;} 1121if (isNaN(parseInt(itz_ALTprivacy_valori[2]))) {itz_ALTprivacy_valori[2] = 0;} 1122function itz_ALTprivacy() { 1123 var valorePrivacyCookieGDPR = getCookie('memPrivacyCookieGDPR'); 1124 tipi = itz_ALTprivacy_type.split("-"); 1125 itz_ALTprivacy_valoritemp = [1,0,0]; 1126 1127 // recupero le preferenze 1128 if (valorePrivacyCookieGDPR) { 1129 vedi_itzAlt_AreaPrivacy = false; 1130 itz_ALTprivacy_valori = valorePrivacyCookieGDPR.split("-"); 1131 if (isNaN(parseInt(itz_ALTprivacy_valori[0]))) {itz_ALTprivacy_valori[0] = 1;} 1132 if (isNaN(parseInt(itz_ALTprivacy_valori[1]))) {itz_ALTprivacy_valori[1] = 0;} 1133 if (isNaN(parseInt(itz_ALTprivacy_valori[2]))) {itz_ALTprivacy_valori[2] = 0;} 1134 } 1135 else { 1136 // selezione NON presente, set di default 1137 vedi_itzAlt_AreaPrivacy = true; 1138 itz_ALTprivacy_valori = [1,0,0]; 1139 } 1140 1141 // TEST 1142 //vedi_itzAlt_AreaPrivacy = true; 1143 //alert(valorePrivacyCookieGDPR); 1144 // set a nullo 1145 //setCookie('memPrivacyCookieGDPR', '', 0); 1146 1147 // recupero della data di oggi 1148 //var now = new Date() ; 1149 //now = now.getDate() + "-" + now.getMonth() + "-" + now.getFullYear(); 1150 1151 // valori di default 1152 if (!itz_ALTprivacy_lang) {var itz_ALTprivacy_lang = "ita";} 1153 1154 if (itz_ALTprivacy_lang == "ita") { 1155 var testo1 = "Questo sito utilizza cookies tecnici per mantenere il suo corretto funzionamento, con il tuo consenso può far funzionare anche cookies per fini di analisi e/o di terze parti per altri scopi. Maggiori informazioni sull'utilizzo dei cookies sono riportate nella"; 1156 var testo2 = ".<br>Puoi liberamente prestare, rifiutare o revocare il consenso a tutti o alcuni dei trattamenti utilizzando i pulsanti âAccetta tuttiâ, âRifiuta tuttiâ oppure con âSelezionaâ puoi indicare le tue preferenze.<br>Rifiutando tutti i cookies non si garantisce la migliore esperienza di navigazione su questo sito web."; 1157 var link_label = "privacy policy"; 1158 var label_seleziona = "Seleziona la tua preferenza"; 1159 var label_tecnici = "Cookies tecnici (necessari)"; 1160 var label_tecnici2 = "Cookies tecnici"; 1161 var label_statistici = "Cookies statistici/analitici"; 1162 var label_social = "Cookies social/terze parti"; 1163 var label_chiudi = "chiudi questo spazio"; 1164 var label_bott_1 = "Accetta tutti"; 1165 var label_bott_2 = "Seleziona"; 1166 var label_bott_3 = "Rifiuta tutti"; 1167 var label_bott_4 = "accetta i selezionati"; 1168 } 1169 else { 1170 var testo1 = "Questo sito utilizza cookies tecnici per mantenere il suo corretto funzionamento, con il tuo consenso può far funzionare anche cookies di terze parti per fini statistici e di analisi. Maggiori informazioni sull'utilizzo dei cookies sono riportate nella"; 1171 var testo2 = ".<br>Puoi liberamente prestare, rifiutare o revocare il consenso a tutti o alcuni dei trattamenti utilizzando i pulsanti âAccetta tuttiâ, âRifiuta tuttiâ oppure con âSelezionaâ puoi indicare le tue preferenze.<br>Rifiutando tutti i cookies non si garantisce la migliore esperienza di navigazione su questo sito web."; 1172 var link_label = "privacy policy"; 1173 var label_seleziona = "Seleziona la tua preferenza"; 1174 var label_tecnici = "Cookies tecnici (necessari)"; 1175 var label_tecnici2 = "Cookies tecnici"; 1176 var label_statistici = "Cookies statistici/analitici"; 1177 var label_social = "Cookies social/terze parti"; 1178 var label_chiudi = "chiudi questo spazio"; 1179 var label_bott_1 = "Accetta tutti"; 1180 var label_bott_2 = "Seleziona"; 1181 var label_bott_3 = "Rifiuta tutti"; 1182 var label_bott_4 = "accetta i selezionati"; 1183 } 1184 1185 // riempe l'alert se il cookie non è valorizzato 1186 /*if (valorePrivacyCookieGDPR == now) { 1187 // cookies accettato perchè visto due volte, c'è stata la volontà di proseguire nella navigazione del sito 1188 setCookie('memPrivacyCookieGDPR', 'ok', 216000); 1189 }*/ 1190 1191 // riferimenti immagini 1192 itzAlt_imgCk0 = new Image(16,16); itzAlt_imgCk0.src = "images/ico_ck0.png"; 1193 itzAlt_imgCk1 = new Image(16,16); itzAlt_imgCk1.src = "images/ico_ck1.png"; 1194 1195 if (vedi_itzAlt_AreaPrivacy) { 1196 var codice = "<div id='itzAlt_AreaPrivacy'><div id='itzAlt_AreaPrivacy_sx' class='itzAlt_textPrivacy_color"+ itz_ALTprivacy_color +"'>"+ testo1 + " <a href='"+ itz_ALTprivacy_link +"' target='_blank' class='itzAlt_linkPrivacy_color"+ itz_ALTprivacy_color +"'>"+ link_label +"</a>"+ testo2; 1197 codice += "<br><a href='javascript:void(0)' onClick='hiddenObj(itz_ALTprivacy_DivName)' title='exit'><img src='images/ico_exit.png' valign='middle' alt='exit'></a> <a href='javascript:void(0)' onClick='hiddenObj(itz_ALTprivacy_DivName)' class='itzAlt_linkPrivacy_color"+ itz_ALTprivacy_color +"'>"+ label_chiudi +"</a>"; 1198 codice += "<div id='itzAlt_AreaPrivacy_sel'><div class='itzAlt_AreaPrivacy_sel_area itzAlt_textPrivacy_color"+ itz_ALTprivacy_color +"'><b>"+ label_seleziona +"</b>:</div><div class='itzAlt_AreaPrivacy_sel_area itzAlt_textPrivacy_color"+ itz_ALTprivacy_color +"'><img src='images/ico_ck1.png' title='"+ label_tecnici2 +"' alt='"+ label_tecnici2 +"'> "+ label_tecnici +"</div>"; 1199 if (tipi[1] == 1) { 1200 if (itz_ALTprivacy_valori[1] == 1) { 1201 itz_ALTprivacy_img_stat = "ico_ck1.png"; 1202 itz_ALTprivacy_valoritemp[1] = 1; 1203 } 1204 else { 1205 itz_ALTprivacy_img_stat = "ico_ck0.png"; 1206 } 1207 codice += "<div class='itzAlt_AreaPrivacy_sel_area itzAlt_textPrivacy_color"+ itz_ALTprivacy_color +"'><a href='javascript:void(0)' onClick=\"itz_ALTprivacy_SEL(1)\"><img src='images/"+ itz_ALTprivacy_img_stat +"' title='"+ label_statistici +"' alt='"+ label_statistici +"' name='itzAlt_img1'></a> "+ label_statistici +"</div>"; 1208 } 1209 if (tipi[2] == 1) { 1210 if (itz_ALTprivacy_valori[2] == 1) { 1211 itz_ALTprivacy_img_social = "ico_ck1.png"; 1212 itz_ALTprivacy_valoritemp[2] = 1; 1213 } 1214 else { 1215 itz_ALTprivacy_img_social = "ico_ck0.png"; 1216 } 1217 codice += "<div class='itzAlt_AreaPrivacy_sel_area itzAlt_textPrivacy_color"+ itz_ALTprivacy_color +"'><a href='javascript:void(0)' onClick=\"itz_ALTprivacy_SEL(2)\"><img src='images/"+ itz_ALTprivacy_img_social +"' title='"+ label_social +"' alt='"+ label_social +"' name='itzAlt_img2'></a> "+ label_social +"</div>"; 1218 } 1219 codice += "<div class='itzAlt_AreaPrivacy_sel_area'><b><a href='javascript:void(0)' onClick='itz_ALTprivacy_OKSEL()' class='itzAlt_linkPrivacy_color"+ itz_ALTprivacy_color +"'>"+ label_bott_4 +"</a></b></div><div id='lineClear'></div></div></div>"; 1220 codice += "<div id='itzAlt_AreaPrivacy_dx'><a href='javascript:void(0);' onClick='itz_ALTprivacy_OK()' class='itzAlt_buttonPrivacy'>"+ label_bott_1 +"</a>"; 1221 codice += "<a href='javascript:void(0);' onClick='showObj(\"itzAlt_AreaPrivacy_sel\")' class='itzAlt_buttonPrivacy'>"+ label_bott_2 +"</a>"; 1222 codice += "<a href='javascript:void(0);' onClick='itz_ALTprivacy_KO()' class='itzAlt_buttonPrivacy'>"+ label_bott_3 +"</a></div></div>"; 1223 window.top.document.getElementById(itz_ALTprivacy_DivName).className = itz_ALTprivacy_DivName + '_color'+ itz_ALTprivacy_color; 1224 window.top.document.getElementById(itz_ALTprivacy_DivName).style.display = 'block'; 1225 window.top.document.getElementById(itz_ALTprivacy_DivName).innerHTML = codice; 1226 1227 // setta il messaggio come letto la prima volta 1228 // vale un giorno e manifesta la temporanea volonta di proseguire nel sito 1229 //setCookie('memPrivacyCookieGDPR', now, 86400); 1230 } 1231 1232 // comunica il vettore a php tramite ajax alla partenza della pagina 1233 itz_ALTprivacy_vettore = itz_ALTprivacy_valori[0] +"-"+ itz_ALTprivacy_valori[1] +"-"+ itz_ALTprivacy_valori[2]; 1234 if (itz_ALTprivacy_vettore != valorePrivacyCookieGDPR) { 1235 itz_ALTprivacy_2PHP(itz_ALTprivacy_vettore); 1236 } 1237} 1238 1239 1240function itz_ALTprivacy_SEL(tipo) { 1241 // cambia i valori momentanei 1242 if (itz_ALTprivacy_valoritemp[tipo] == 1) {itz_ALTprivacy_valoritemp[tipo] = 0;} 1243 else {itz_ALTprivacy_valoritemp[tipo] = 1;} 1244 // cambio immagine 1245 changeViewImg('itzAlt_img'+tipo, 'itzAlt_imgCk0', 'itzAlt_imgCk1'); 1246} 1247 1248 1249function itz_ALTprivacy_OKSEL() { 1250 // accetta i selezionati, salva i valori momentanei 1251 hiddenObj(itz_ALTprivacy_DivName); 1252 setCookie('memPrivacyCookieGDPR', itz_ALTprivacy_valoritemp[0] +"-"+ itz_ALTprivacy_valoritemp[1] +"-"+ itz_ALTprivacy_valoritemp[2], 31536000); // durata in secondi, adesso su 12 mesi 1253 1254 // comunica il vettore a php tramite ajax al settaggio 1255 itz_ALTprivacy_2PHP(itz_ALTprivacy_valoritemp[0] +"-"+ itz_ALTprivacy_valoritemp[1] +"-"+ itz_ALTprivacy_valoritemp[2]); 1256} 1257 1258 1259function itz_ALTprivacy_OK() { 1260 // accetta tutti 1261 hiddenObj(itz_ALTprivacy_DivName); 1262 setCookie('memPrivacyCookieGDPR', itz_ALTprivacy_type, 31536000); // durata in secondi, adesso su 12 mesi 1263 1264 // comunica il vettore a php tramite ajax al settaggio 1265 itz_ALTprivacy_2PHP(itz_ALTprivacy_type); 1266} 1267 1268 1269function itz_ALTprivacy_KO() { 1270 // annulla tutti, rimangono solo i tecnici 1271 hiddenObj(itz_ALTprivacy_DivName); 1272 setCookie('memPrivacyCookieGDPR', '1-0-0', 31536000); // durata in secondi, adesso su 12 mesi 1273 1274 // comunica il vettore a php tramite ajax al settaggio 1275 itz_ALTprivacy_2PHP('1-0-0'); 1276} 1277 1278 1279// comunica il vettore a php tramite ajax 1280// da attivare in caso servisse, necessario il ajax_dati.php 1281function itz_ALTprivacy_2PHP(vettore) { 1282 if (itz_ALTprivacy_2php) { 1283 var url_php = "ajax_dati.php?op=php2ALTprivacy&v="+ vettore; 1284 if (httpPHP) { 1285 httpPHP.open('GET', url_php, true); 1286 httpPHP.onreadystatechange = ajaxResponse_itz_ALTprivacy_2PHP; 1287 httpPHP.send(null); 1288 } 1289 } 1290} 1291 1292// funzione per ritorno del salvataggio del sottoprodotto 1293function ajaxResponse_itz_ALTprivacy_2PHP() { 1294 if (httpPHP.readyState == 4) { 1295 if (httpPHP.status == 200) { 1296 //alert(httpPHP.responseText); 1297 // lettura di un formato Json 1298 //JsonObj = JSON.parse(httpPHP.responseText); 1299 // gestione del ritorno 1300 //if (JsonObj['esito'] == "ok") {} 1301 } 1302 //else {alert('There was a problem with the request.');} 1303 } 1304} 1305 1306 1307 1308 1309 1310////////////////////////////////////////////////////// 1311// FUNZIONI per RESPONSIVE 1312// passaggio della larghezza della maschera a php 1313// 1314 1315// comunica il vettore a php tramite ajax 1316// da attivare in caso servisse, necessario il ajax_dati.php 1317// da chiamare con: <script>addEvent(window,'load',function() {ajax_itz_respBodyW()});</script> 1318function ajax_itz_respBodyW() { 1319 var url_php = "ajax_dati.php?op=respBodyW&bodyW="+ top.window.innerWidth; 1320 if (httpPHP) { 1321 httpPHP.open('GET', url_php, true); 1322 httpPHP.onreadystatechange = ajaxResponse_itz_respBodyW; 1323 httpPHP.send(null); 1324 } 1325} 1326 1327// funzione per ritorno del salvataggio del sottoprodotto 1328function ajaxResponse_itz_respBodyW() { 1329 if (httpPHP.readyState == 4) { 1330 if (httpPHP.status == 200) { 1331 //alert(httpPHP.responseText); 1332 // lettura di un formato Json 1333 //JsonObj = JSON.parse(httpPHP.responseText); 1334 // gestione del ritorno 1335 //if (JsonObj['esito'] == "ok") {} 1336 } 1337 //else {alert('There was a problem with the request.');} 1338 } 1339} 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351////////////////////////////////// 1352// FUNZIONI PER COOKIE 1353// 1354// scrittura di un cookie 1355function setCookie(nome, valore, secondi) { 1356 if (Number(secondi)) { 1357 var now = new Date(); 1358 var expires = new Date(); 1359 expires.setTime(now.getTime()+(parseInt(secondi)*1000)); 1360 document.cookie = nome +"="+ valore +"; expires="+ expires.toGMTString() +"; path=/"; 1361 } 1362 else { 1363 document.cookie = nome + "=" + valore + "; path=/"; 1364 } 1365} 1366 1367// recupero di un cookie 1368function getCookie(nome) { 1369 var valore = ''; 1370 var campi = document.cookie.split("; "); 1371 for (i=0; i<campi.length; i++) { 1372 nomeCampo = campi[i].split("="); 1373 if (nomeCampo[0] == nome) { 1374 valore = nomeCampo[1]; 1375 } 1376 } 1377 return valore; 1378} 1379 1380 1381 1382 1383 1384 1385 1386 1387////////////////////////////////// 1388// FUNZIONI PER AJAX E XML 1389// 1390// creo l'oggetto http 1391var httpPHP = getHTTPObject(); 1392
1393// crea l'oggetto XMLHttpRequest 1394function getHTTPObject() { 1395 var httpPHP = false; 1396 if (window.XMLHttpRequest) { 1397 // Mozilla, Safari,... 1398 httpPHP = new XMLHttpRequest(); 1399 if (httpPHP.overrideMimeType) {httpPHP.overrideMimeType('text/xml');} 1400 } 1401 else if (window.ActiveXObject) { 1402 // IE 1403 try {httpPHP = new ActiveXObject("Msxml2.XMLHTTP");} 1404 catch (e) { 1405 try {httpPHP = new ActiveXObject("Microsoft.XMLHTTP");} 1406 catch (e) {httpPHP = false;} 1407 } 1408 } 1409 // check 1410 if (!httpPHP) { 1411 alert('Cannot create an XMLHTTP instance'); 1412 return false; 1413 } 1414 return httpPHP; 1415} 1416 1417 1418 1419 1420 1421 1422 1423 1424////////////////////////////////// 1425// FUNZIONI EVENTI 1426// 1427 1428function addEvent(obj,ev,fn) { 1429 if (obj.addEventListener) { 1430 // metodo w3c 1431 obj.addEventListener(ev, fn, false); 1432 } 1433 else if (obj.attachEvent) { 1434 // metodo IE 1435 obj.attachEvent('on'+ev, fn); 1436 } 1437 else { 1438 // se i suddetti metodi non sono applicabili 1439 // se esiste gia' una funzione richiamata da quel gestore evento 1440 if (typeof(obj['on'+ev])=='function') { 1441 // salvo in variabile la funzione gia' associata al gestore 1442 var f=obj['on'+ev]; 1443 // setto per quel gestore una nuova funzione 1444 // che comprende la vecchia e la nuova 1445 obj['on'+ev]=function(){if(f)f();fn()} 1446 } 1447 // altrimenti setto la funzione per il gestore 1448 else obj['on'+ev]=fn; 1449 } 1450} 1451 1452 1453 1454 1455 1456 1457 1458 1459//////////////// FUNZIONI CHECK PARTITA IVA E CODICE FISCALE //////////////// 1460// far girare preventivamente le funzioni di pulitura spazi e di uppercase 1461 1462// rivisto per il funzionamento della partite iva internazionali, con la sigla davanti (controllo validit� solo sulle IT) 1463function check_piva(pivains) { 1464 var piva = pivains.toUpperCase(); 1465 var pivaReg = /^[A-Z]{2}\d+$/; 1466 var pivaITReg = /^IT\d+$/; 1467 piva = piva.replace(RegExp(" ", "g"), ""); 1468 piva = piva.replace(RegExp("\t", "g"), ""); 1469 if ((!pivaReg.test(piva))||(pivaITReg.test(piva))) { 1470 // p.iva italiana 1471 piva = piva.replace(RegExp("IT", "g"), ""); 1472 var n_Val=0,n_Som1=0,n_Som2=0,lcv=0; 1473 if (piva.length!=11 || isNaN(parseFloat(piva)) || parseFloat(piva)<parseFloat(0)) { 1474 return false; 1475 } 1476 for (lcv=0;lcv<9;lcv+=2) { 1477 n_Val=parseInt(piva.charAt(lcv)); 1478 n_Som1+=n_Val; 1479 n_Val=parseInt(piva.charAt(lcv+1)); 1480 n_Som1+=Math.floor(n_Val/5) + (n_Val<<1) % 10; 1481 } 1482 n_Som2 = 10 - (n_Som1 % 10); 1483 if (n_Som2 == 10) {n_Som2 = 0;} 1484 n_Val=parseInt(piva.charAt(10)); 1485 if (n_Som2==n_Val) { 1486 return true; 1487 } 1488 else { 1489 return false; 1490 } 1491 } 1492 else { 1493 // p.iva estera 1494 return true; 1495 } 1496} 1497 1498function check_cf(cfins) { 1499 var cf = cfins.toUpperCase(); 1500 var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/; 1501 if (!cfReg.test(cf)) { 1502 return false; 1503 } 1504 var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 1505 var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ"; 1506 var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 1507 var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX"; 1508 var s = 0; 1509 for(i=1; i<=13; i+=2) { 1510 s += setpari.indexOf(set2.charAt(set1.indexOf(cf.charAt(i)))); 1511 } 1512 for(i=0; i<=14; i+=2) { 1513 s += setdisp.indexOf(set2.charAt(set1.indexOf(cf.charAt(i)))); 1514 } 1515 if (s%26!=cf.charCodeAt(15)-'A'.charCodeAt(0)) { 1516 return false; 1517 } 1518 else { 1519 return true; 1520 } 1521} 1522 1523 1524// funzione di supporto per l'avviso della correttezza del codice fiscale 1525function alertCheck_cf(cfins) { 1526 var errore = 0; 1527 cfins = cfins.replace(RegExp(" ", "g"), ""); 1528 if (cfins) { 1529 if (!check_cf(cfins)) { 1530 if (!check_piva(cfins)) { 1531 errore = 1; 1532 } 1533 } 1534 if (errore) { 1535 alert("ATTENZIONE!!!\n\nil codice fiscale inserito non risulta corretto."); 1536 } 1537 } 1538} 1539 1540 1541// funzione di supporto per l'avviso della correttezza della partita iva 1542function alertCheck_piva(pivains) { 1543 pivains = pivains.replace(RegExp(" ", "g"), ""); 1544 if ((pivains)&&(!check_piva(pivains))) { 1545 alert("ATTENZIONE!!!\n\nla partita iva inserita non risulta corretta."); 1546 } 1547} 1548 1549 1550 1551 1552 1553
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.