1 2<!DOCTYPE HTML> 3<!--[if (gte IE 9)|!(IE)]><!--> 4<html class="no-js js csstransforms3d wf-liberationserif-n4-active wf-liberationserif-i4-active wf-liberationserif-n7-active wf-chaparralpro-n4-active wf-chaparralpro-i4-active wf-chaparralpro-n7-active wf-chaparralpro-n3-active wf-chaparralpro-n6-active wf-active js csstransforms3d" lang="it"> 5<!--<![endif]--> 6<!--[if lte IE 8 ]> <html class="no-js old-ie" lang="it"> <![endif]--> 7<head> 8 <title> 9 Comune di Forlì : TURISMO e CULTURA 10 </title> 11 <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> 12 <meta name="Description" content="Portale del Turismo di Forlì: comunicazione, informazione e servizi, e-government ecc."> 13 <meta name="DC.Description" content="Portale del Turismo di Forlì: comunicazione, informazione e servizi, e-government ecc."> 14 <meta name="keywords" content="italia, rete, civica, sito"> 15 <meta name="Revisit-after" content="7 days"> 16 <meta http-equiv="X-UA-Compatible" content="IE=EDGE" /> 17 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 18 <meta name="robots" content="all,index"> 19 <meta name="google-site-verification" content="PAHNHiFIFM5Jiz8mjKEIWIKRUwYuQkiOYOhj2vvEbyY" /> 20 21 22 <meta property="og:title" content="Comune di Forlì : TURISMO e CULTURA" /> 23 24 <meta property="og:description" content="Portale del Turismo di Forlì: comunicazione, informazione e servizi, e-government ecc." /> 25 26 27 28 <meta property="og:url" content="https://scopriforli.it/servizi/notizie/notizie_homepage.aspx" /> 29 30 <meta property="og:image" content="https://scopriforli.it/immagini/favicon/apple-touch-icon-120x120.png" /> 31 <link rel="image_src" href="https://scopriforli.it/immagini/favicon/apple-touch-icon-120x120.png"> 32 33 <link rel="shortcut icon" href="https://scopriforli.it/immagini/favicon/favicon.ico" 34 type="image/x-icon" /> 35 <link rel="apple-touch-icon" sizes="57x57" href="https://scopriforli.it/immagini/favicon/apple-touch-icon-57x57.png"> 36 <link rel="apple-touch-icon" sizes="60x60" href="https://scopriforli.it/immagini/favicon/apple-touch-icon-60x60.png"> 37 <link rel="apple-touch-icon" sizes="72x72" href="https://scopriforli.it/immagini/favicon/apple-touch-icon-72x72.png"> 38 <link rel="apple-touch-icon" sizes="76x76" href="https://scopriforli.it/immagini/favicon/apple-touch-icon-76x76.png"> 39 <link rel="apple-touch-icon" sizes="114x114" href="https://scopriforli.it/immagini/favicon/apple-touch-icon-114x114.png"> 40 <link rel="apple-touch-icon" sizes="120x120" href="https://scopriforli.it/immagini/favicon/apple-touch-icon-120x120.png"> 41 <link rel="apple-touch-icon" sizes="144x144" href="https://scopriforli.it/immagini/favicon/apple-touch-icon-144x144.png"> 42 <link rel="apple-touch-icon" sizes="152x152" href="https://scopriforli.it/immagini/favicon/apple-touch-icon-152x152.png"> 43 <link rel="apple-touch-icon" sizes="180x180" href="https://scopriforli.it/immagini/favicon/apple-touch-icon-180x180.png"> 44 <link rel="icon" type="image/png" href="https://scopriforli.it/immagini/favicon/favicon-16x16.png" 45 sizes="16x16"> 46 <link rel="icon" type="image/png" href="https://scopriforli.it/immagini/favicon/favicon-32x32.png" 47 sizes="32x32"> 48 <link rel="icon" type="image/png" href="https://scopriforli.it/immagini/favicon/favicon-96x96.png" 49 sizes="96x96"> 50 <link rel="icon" type="image/png" href="https://scopriforli.it/immagini/favicon/android-chrome-36x36.png" 51 sizes="36x36"> 52 <link rel="icon" type="image/png" href="https://scopriforli.it/immagini/favicon/android-chrome-48x48.png" 53 sizes="48x48"> 54 <link rel="icon" type="image/png" href="https://scopriforli.it/immagini/favicon/android-chrome-72x72.png" 55 sizes="72x72"> 56 <link rel="icon" type="image/png" href="https://scopriforli.it/immagini/favicon/android-chrome-96x96.png" 57 sizes="96x96"> 58 <link rel="icon" type="image/png" href="https://scopriforli.it/immagini/favicon/android-chrome-144x144.png" 59 sizes="144x144"> 60 <link rel="icon" type="image/png" href="https://scopriforli.it/immagini/favicon/android-chrome-192x192.png" 61 sizes="192x192"> 62 63 <meta name="application-name" content="Comune di Forlì : TURISMO e CULTURA" /> 64 65 <meta name="msapplication-TileColor" content="#FFFFFF" /> 66 <meta name="msapplication-TileImage" content="https://scopriforli.it/immagini/favicon/mstile-144x144.png" /> 67 <meta name="msapplication-square70x70logo" content="https://scopriforli.it/immagini/favicon/mstile-70x70.png" /> 68 <meta name="msapplication-square150x150logo" content="https://scopriforli.it/immagini/favicon/mstile-150x150.png" /> 69 <meta name="msapplication-wide310x150logo" content="https://scopriforli.it/immagini/favicon/mstile-310x150.png" /> 70 <meta name="msapplication-square310x310logo" content="https://scopriforli.it/immagini/favicon/mstile-310x310.png" /> 71 <link rel="manifest" href="https://scopriforli.it/manifest.json"> 72 <link rel="mask-icon" href="https://scopriforli.it/immagini/favicon/safari-pinned-tab.svg" color="#5bbad5"> 73 <link href="../../stile/googlefont/googlefont.css" rel="stylesheet" type="text/css"> 74 75 <link rel="stylesheet" title="Carattere normale" type="text/css" media="screen" href="../../stile/struttura.css"> 76 <link rel="stylesheet" title="Carattere normale" type="text/css" media="screen" href="../../stile/templategrafico.css"> 77 78 <link rel="stylesheet" type="text/css" media="screen" href="../../stile/bootstrap/ita-bootstrap.css"> 79 <link rel="stylesheet" type="text/css" media="screen" href="../../stile/fonts/font-awesome.min.css"> 80 <link rel="stylesheet" title="Carattere normale" type="text/css" media="screen" href="../../upload/turismoforli_ecm10/frontend_profili/0-template-forli-cultura-turismo-homepage_11947_16589.css"> 81 <link rel="alternate stylesheet" title="Carattere grande" type="text/css" media="screen" 82 href="../../stile/accessibilita/caratteregrande.css"> 83 <link rel="alternate stylesheet" title="Contrasto elevato" type="text/css" media="screen" 84 href="../../stile/accessibilita/fortecontrasto.css"> 85 <link rel="alternate stylesheet" title="Senza grafica" type="text/css" media="screen" 86 href="../../stile/accessibilita/senzagrafica.css"> 87 <link rel="stylesheet" href="../../script/cartografiagoogle/jquery.nyroModal/styles/nyroModal.css" 88 type="text/css" media="screen"> 89 <link rel="stylesheet" href="/stile/IFG/tipsy.css" /> 90 <link rel="stylesheet" href="/stile/tagit/jquery.tagit.css" /> 91 <link rel="stylesheet" href="/stile/tagit/tagit.ui-zendesk.css" /> 92 93 <link rel="stylesheet" title="Carattere normale" type="text/css" media="screen" href="../../stile/smartphone.css"> 94 95 96<link rel="alternate" type="application/rss+xml" title="Bandi" href="http://www.scopriforli.it/servizi/feed/ExpRSS_servizio.aspx?tabellaservizio=T_bandi%7ccampo=bandi_categoria%7ctitle=Comune+di+Forl%c3%ac+%3a+TURISMO+e+CULTURA+-+Bandi%7cfiltrocampi=" > 97<link rel="alternate" type="application/rss+xml" title="Archivio bandi scaduti" href="http://www.scopriforli.it/servizi/feed/ExpRSS_servizio.aspx?tabellaservizio=T_bandi%7ccampo=bandi_categoria%7carchivio=true%7ctitle=Comune+di+Forl%c3%ac+%3a+TURISMO+e+CULTURA+-+Archivio+bandi+scaduti%7cfiltrocampi=" > 98<link rel="alternate" type="application/rss+xml" title="Bilanci" href="http://www.scopriforli.it/servizi/feed/ExpRSS_servizio.aspx?tabellaservizio=T_bilanci%7ccampo=bilanci_Categoria1%7ctitle=Comune+di+Forl%c3%ac+%3a+TURISMO+e+CULTURA+-+Bilanci%7cfiltrocampi=" > 99<link rel="alternate" type="application/rss+xml" title="Comunicati stampa" href="http://www.scopriforli.it/servizi/feed/ExpRSS_servizio.aspx?tabellaservizio=T_comunicatistampa%7ccampo=comunicatistampa_categoria%7ctitle=Comune+di+Forl%c3%ac+%3a+TURISMO+e+CULTURA+-+Comunicati+stampa%7cfiltrocampi=" > 100<link rel="alternate" type="application/rss+xml" title="Atti amministrativi" href="http://www.scopriforli.it/servizi/feed/ExpRSS_servizio.aspx?tabellaservizio=T_delibere%7ccampo=Tipologia_delibere%7ctitle=Comune+di+Forl%c3%ac+%3a+TURISMO+e+CULTURA+-+Atti+amministrativi%7cfiltrocampi=" > 101<link rel="alternate" type="application/rss+xml" title="Eventi" href="http://www.scopriforli.it/servizi/feed/ExpRSS_servizio.aspx?tabellaservizio=T_eventi%7ccampo=categoria_eventi%7ctitle=Comune+di+Forl%c3%ac+%3a+TURISMO+e+CULTURA+-+Eventi%7cfiltrocampi=" > 102<link rel="alternate" type="application/rss+xml" title="Moduli" href="http://www.scopriforli.it/servizi/feed/ExpRSS_servizio.aspx?tabellaservizio=T_moduli%7ccampo=categorie_moduli%7ctitle=Comune+di+Forl%c3%ac+%3a+TURISMO+e+CULTURA+-+Moduli%7cfiltrocampi=" > 103<link rel="alternate" type="application/rss+xml" title="Notizie" href="http://www.scopriforli.it/servizi/feed/ExpRSS_servizio.aspx?tabellaservizio=T_notizie%7ccampo=Categoria_Notizie%7ctitle=Comune+di+Forl%c3%ac+%3a+TURISMO+e+CULTURA+-+Notizie%7cfiltrocampi=" > 104<link rel="alternate" type="application/rss+xml" title="Rassegna stampa" href="http://www.scopriforli.it/servizi/feed/ExpRSS_servizio.aspx?tabellaservizio=T_rassegnastampa%7ccampo=rassegnastampa_categoria%7ctitle=Comune+di+Forl%c3%ac+%3a+TURISMO+e+CULTURA+-+Rassegna+stampa%7cfiltrocampi=" > 105<link rel="alternate" type="application/rss+xml" title="Regolamenti" href="http://www.scopriforli.it/servizi/feed/ExpRSS_servizio.aspx?tabellaservizio=T_regolamenti%7ccampo=categoria_regolamenti%7ctitle=Comune+di+Forl%c3%ac+%3a+TURISMO+e+CULTURA+-+Regolamenti%7cfiltrocampi=" > 106 <link rel="stylesheet" type="text/css" media="print" href="../../stile/stampa/stampa.css"> 107 108<link id="Servizio0" type="text/css" rel="stylesheet" href="/stile/notizie/notizie.css" > 109
110<script src="JQuery.aspx?type=PDI.Web.JQuery.Source.Core&v=1.9.2" type="text/javascript"></script>
vendor: 1 bytes, line 110
110
111<script src="JQuery.aspx?type=PDI.Web.JQuery.Source.UI&v=1.12.1" type="text/javascript"></script>
vendor: 1 bytes, line 111
111
112<script src="JQuery.aspx?type=PDI.Web.JQuery.Source.Plugin.BlockUI&v=2.70" type="text/javascript"></script>
112 113 114 115 116 117 118 119 120 121 122 123 124 125
125<script src="../../script/templatew3c/strutturapagine.js"></script>
125 126 127 <!--[if (gte IE 9)|!(IE)]><!--> 128 129
129<script>window.jQuery || document.write('
129<script src="../../script/agid/jquery.min.js">\x3C/script>')</script>
129 130 131
131<script src="../../script/agid/bootstrap.min.js"></script>
131 132 133
133<script src="../../script/jquery/jquery-ui.js"></script>
133 134 <link rel="stylesheet" href="../../stile/jquery/jquery-ui.css" type="text/css" media="screen"> 135
135<script src="../../script/jquery/jquery.validate.min.js"></script>
135 136
136<script src="../../script/jquery/form-validator/jquery.form-validator.min.js"></script>
136 137 138 <!-- ---------------------------------------------------------- --> 139 140 <!--<![endif]--> 141 <!--[if IE 8]> 142
142<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
142 143
143<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
143 144
144<script src="../../script/agid/bootstrap.min.js"></script>
144 145 146 <link href="/script/cross-domain/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 147 <link href="/script/cross-domain/respond.proxy.gif" id="respond-redirect" rel="respond-redirect" /> 148
148<script src="/script/mediaquery/respond.min.js"></script>
148 149
149<script src="/script/cross-domain/respond.proxy.js"></script>
149 150 <![endif]--> 151</head> 152<body id="frontPage" class="responsive it" style="overflow: visible;"> 153 <div id="overlay" class="hidden"> 154 </div> 155 <!--[if lt IE 7 ]> <div id="boxTotale" class='home no-js ie ie6'> <![endif]--> 156 <!--[if IE 7 ]><div id="boxTotale" class='home no-js ie ie7'> <![endif]--> 157 <!--[if IE 8 ]><div id="boxTotale" class='home no-js ie ie8'> <![endif]--> 158 <!--[if (gte IE 9)|!(IE)]><!--> 159 <div id="boxTotale" class='home'> 160 <!--<![endif]--> 161 162 163 164 165 166 <div id="sectioncontent" class="oneCol content" role="main"> 167 168 169 170 <div role="navigation" aria-label="Navigazione Rapida" class="TestoNascosto"> 171 <a href="#corpo" title="vai al contenuto principale" class="sr-only sr-only-focusable">vai al contenuto principale</a> 172 <a href="#burger-wrapper" title="vai al menù principale" class="sr-only sr-only-focusable">vai al menu principale.</a> 173 </div> 174 <header class="header_container"> 175 176 177 178 179 180 <div id="formid_intestazione1" class="header-top clearfix " aria-hidden="true"> 181 182 183 184 185 186 </div> 187 <!-- #header-top end --> 188 189 190 191 <div id="formid_intestazione2" class="header-middle clearfix"> 192 193 194 195 196 197 198<div id="boxIntestazioneAccessibile"> 199 <span class="H1"> 200 Benvenuto nel 201 portale Modello 2 AGID</span><br> <hr> 202 <span class="H2"><a onkeypress="setActiveStyleSheet('standard'); return false;" title="caratteri normali" 203 onclick="setActiveStyleSheet('Carattere normale'); return false;" href="javascript:"> 204 clicca per ritornare alla modalità grafica</a></span> 205 <span class="H3"><a href="/servizi/accessibilita/accesskey.aspx"> 206 clicca per un aiuto alla navigazione per consultare l'elenco completo delle access key</a></span> 207 <hr> 208</div> 209 210 211 212 213 <!--[if lte IE 8 ]> 214 215<div id="oldIeMessage"> 216 <span class="bold">ATTENZIONE!</span> 217 <br> 218 La tua versione di Microsoft Internet Explorer è obsoleta e potrebbe compromettere la tua corretta navigazione. 219</div> 220 221<![endif]--> 222 223 <div class="rowWrapper"> 224<div class="row"> 225<div class="columnIsWide col-lg-12 col-md-12 col-sm-12"> 226<div class="col-content firstTitle"> 227 228 229 230 231<div class="homeBanner" style="background: transparent url('../../servizi/funzioni/download.aspx?IDc=7036&ID=168') no-repeat; background-size: cover; background-attachment: fixed;"> 232<a class="bannerLogo noBorder" href="/"><img src="/immagini/logo/logo-ente-home.png"></a> 233<a class="bannerLogoSito noBorder" href="/"><img src="/immagini/logo/logo-nome-sito.png"></a> 234 <div class="container-fluid caption"> 235 <div class="bannerText col-sm-8 col-md-offset-1 fiveStars"> 236 <h1><span>Scoprire la Città </span><br>a modo mio</h1> 237 <a class="btn btn-default" href="/servizi/turismo_cultura/ricerca_fase00.aspx" target="_self" title="Esplora">Esplora</a> 238 </div> 239 </div> 240</div> 241 242 243 244 245 246 247 248</div> 249</div> 250</div> 251 252 </section> 253 254 255 256 257 258 259 260 261 262 </div> 263 <!-- #header-middle end --> 264 265 266 267 268 <div id="formid_intestazione3" class="header-bottom clearfix"> 269 <div class="container"> 270 <div class="row"> 271 272 273 274 275 276 277 278 279<header class="header"> 280 <div class="menu clear"> 281 <h3 class="pageTitle" itemscope="" itemtype="http://schema.org/Corporation"> 282 <a href="#" class="url noBorder" rel="home" itemprop="url" title="Na prvo stran"> 283 284 </a> 285</h3> <nav class="navigation container-fluid" itemscope="" itemtype="http://schema.org/WebSite"> 286 <div class="row"><div class="col-sm-10" aria-label="main" itemscope="" itemtype="http://schema.org/SiteNavigationElement"> 287 288 289 290 291 292 <ul style="margin-left:5%"> 293 294 295 <li class="font-larger col-xs-6" id="Area_17231"> 296 <a href="../../servizi/Menu/menu_redirect.aspx?url=%2fservizi%2fturismo_cultura%2fricerca_fase01.aspx%3fCampo_34790%3d2&ID=17231&idCat=17231&TipoElemento=area" target="_self" title="Cultura">Cultura</a> 297 </li> 298 299 300 301 302 303 304 305 306 307 <li class="font-larger col-xs-6" id="Area_19725"> 308 <a href="../../servizi/Menu/menu_redirect.aspx?url=%2fservizi%2fturismo_cultura%2fricerca_fase01.aspx%3fCampo_34790%3d3&ID=19725&idCat=19725&TipoElemento=area" target="_self" title="Turismo">Turismo</a> 309 </li> 310 311 312 313 314 315 316 317 318 319 <li class="font-larger col-xs-6" id="Area_19726"> 320 <a href="../../servizi/Menu/menu_redirect.aspx?url=%2fservizi%2feventi%2fcerca_fase02.aspx&ID=19726&idCat=19726&TipoElemento=area" target="_self" title="Eventi">Eventi</a> 321 </li> 322 323 324 325 326 327 328 329 330 331 <li class="font-larger col-xs-6" id="Area_19727"> 332 <a href="http://www.artbonusforli.it/" target="_blank" title="Art Bonus - questa pagina si aprirà in una nuova finestra">Art Bonus</a> 333 </li> 334 335 336 337 338 339 340 341 342 343 <li class="font-larger col-xs-6" id="Area_22111"> 344 <a href="../../servizi/Menu/menu_redirect.aspx?url=https%3a%2f%2fwww.scopriforli.it%2fservizi%2feventi_gallery%2fcerca_fase02.aspx&ID=22111&idCat=22111&TipoElemento=area" target="_self" title="Gallery">Gallery</a> 345 </li> 346 347 348 349 350 351 352 353 </ul> 354 355 356 357 </div> 358 359 360 </div> 361 </nav> 362 363 364 365 366 367 <div class="rightMenu"> 368 <ul> 369 <li> 370 <a target="_blank" href="#"> 371 <i class="far fa-map-marked"></i> 372 373 </a> 374 </li> 375 <li> 376 <a href="/servizi/notizie/notizie_homepage.aspx?lang=1"> 377 <div class="sceltaLingua">ITA</div> 378 379 </a> 380 </li> 381 <li> 382 <a href="/servizi/notizie/notizie_homepage.aspx?lang=3"> 383 <div class="sceltaLingua">ENG</div> 384 385 </a> 386 </li> 387 <li class="search"> 388 <a href="/servizi/cercanelsito/cerca_fase01.aspx"> 389 <i class="fa fa-search" aria-hidden="true"></i> 390 391 </a> 392 </li> 393 394 395 </ul> 396 </div> 397 <div class="topSearch"> 398 <form name="search" method="get" action="#" class="searchForm" role="form search" itemprop="potentialAction" itemscope="" itemtype=""> 399 <meta itemprop="target" content=""> 400 <fieldset class="search noLabel noLegend width100 form-group" role="search"> 401 <p class="textType"> 402 <input id="search" placeholder="Ricerca" type="search" name="q" class="textType inputSearch form-control" value="" tabindex="1"> 403 <button type="submit" value="Ricerca" class="submitType button button3 bSquare noBorder btn btn-primary" tabindex="2" role="button"><i class="fa fa-search" aria-hidden="true"></i></button>
404 </p> 405 </fieldset> 406</form> </div> 407 </div> 408 </header> 409 </div> 410 </div> 411 </div> 412 <!-- #header-bottom end --> 413 414 </header> 415 416 417 418 <!--[if (gte IE 8)|!(IE)]><!--> 419 <main class="main_container" id="corpo"> 420 <!--<![endif]--> 421 422 <div id="content" class="clearfix"> 423 424 425 426 <div id="formid_sx"> 427 428 429 </div> 430 431 432 433 434 435 436 <div id="formid_centro"> 437 438 439 440 441 442<div class="testoTop row col-xs-12 col-sm-12"> 443 444<div class="container-fluid" style="background-color:#ff0000;text-align:center;"> 445<div class="row" style="text-align:center;"> 446<img src="/immagini/banner/banda-rossa.png" style="text-align:center;margin:0 auto;"> 447 448</div> 449</div> 450 451<!-- ------------------------------------------------ --> 452 453 454 455</div> 456</div> 457 458 459 460 461 462 463 464 465 466 467 468 469 <section> 470 <div class="container"> 471 <div class="row"> 472 <div class="col-xs-12 col-md-12 col-centered"> 473 474 <div id="carousel" class="carousel slide" data-ride="carousel" data-type="multi" data-interval="2500"> 475 <div class="carousel-inner"> 476 477 478 479 480 481 482 <div class="item active"> 483 484 485 486 <div class="carousel-col"> 487 <div class="block img-responsive"> 488 489 490 491 492 493 494 495 <div style="background-position: 50%;background-size: 170%;min-height:500px;max-height:100%;max-width:100%;background-image: url('https://www.scopriforli.it/upload/turismoforli_ecm10/eventi/ScopriForlPieghevolesenzalogo_2725_26524.png')"> 496 <img src='/immagini/simboli/null.gif' alt='Scopri Forlì in tutte le stagioni 2026 - Prossimi eventi'> 497 </div> 498 499 500 <h3 class="titolo-evento"> 501 <a title='Scopri Forlì in tutte le stagioni 2026 - Prossimi eventi' href="/servizi/eventi/cerca_fase03.aspx?ID=26524"> 502 <span id="PnlProssimiEventiHome_ariid_26524">Scopri Forlì in tutte le stagioni 2026 - Prossimi eventi</span> 503 </a> 504 </h3> 505 506 <div class="strillo-evento"> 507 508 </div> 509 510 511 </div> 512 513 514 </div> 515 </div> 516 517 518 519 520 521 522 523 <div class="item"> 524 525 526 <div class="carousel-col"> 527 <div class="block img-responsive"> 528 529 530 531 532 533 534 535 <div style="background-position: 50%;background-size: 170%;min-height:500px;max-height:100%;max-width:100%;background-image: url('https://www.scopriforli.it/upload/turismoforli_ecm10/eventi/14-04-26COMUNEDIFORLcartinaA32-500px_2725_27419.jpg')"> 536 <img src='/immagini/simboli/null.gif' alt='Esplora Forlì tra Musei e Monumenti - Programma 2026'> 537 </div> 538 539 540 <h3 class="titolo-evento"> 541 <a title='Esplora Forlì tra Musei e Monumenti - Programma 2026' href="/servizi/eventi/cerca_fase03.aspx?ID=27419"> 542 <sp
542an id="PnlProssimiEventiHome_ariid_27419">Esplora Forlì tra Musei e Monumenti - Programma 2026</span> 543 </a> 544 </h3> 545 546 <div class="strillo-evento"> 547 Un ricco programma annuale di visite guidate gratuite per esplorare il patrimonio culturale di Forlì â Programma 2026 548 </div> 549 550 551 </div> 552 553 554 </div> 555 </div> 556 557 558 559 560 561 562 563 <div class="item"> 564 565 566 <div class="carousel-col"> 567 <div class="block img-responsive"> 568 569 570 571 572 573 574 575 <div style="background-position: 50%;background-size: 170%;min-height:500px;max-height:100%;max-width:100%;background-image: url('https://www.scopriforli.it/upload/turismoforli_ecm10/eventi/spadiniemenzio_2725_28592.jpg')"> 576 <img src='/immagini/simboli/null.gif' alt='In viaggio con la Banca d'Italia: appuntamenti d'arte'> 577 </div> 578 579 580 <h3 class="titolo-evento"> 581 <a title='In viaggio con la Banca d'Italia: appuntamenti d'arte' href="/servizi/eventi/cerca_fase03.aspx?ID=28592"> 582 <span id="PnlProssimiEventiHome_ariid_28592">In viaggio con la Banca d'Italia: appuntamenti d'arte</span> 583 </a> 584 </h3> 585 586 <div class="strillo-evento"> 587 588 </div> 589 590 591 </div> 592 593 594 </div> 595 </div> 596 597 598 599 600 601 602 603 <div class="item"> 604 605 606 <div class="carousel-col"> 607 <div class="block img-responsive"> 608 609 610 611 612 613 614 615 <div style="background-position: 50%;background-size: 170%;min-height:500px;max-height:100%;max-width:100%;background-image: url('https://www.scopriforli.it/upload/turismoforli_ecm10/eventi/Manifesto70x100_LOW_page-00011_2725_28640.jpg')"> 616 <img src='/immagini/simboli/null.gif' alt='SOLO MUSICA PURA - la nuova stagione dell'Auditorium Conad'> 617 </div> 618 619 620 <h3 class="titolo-evento"> 621 <a title='SOLO MUSICA PURA - la nuova stagione dell'Auditorium Conad' href="/servizi/eventi/cerca_fase03.aspx?ID=28640"> 622 <sp
622an id="PnlProssimiEventiHome_ariid_28640">SOLO MUSICA PURA - la nuova stagione dell'Auditorium Conad</span> 623 </a> 624 </h3> 625 626 <div class="strillo-evento"> 627 628 </div> 629 630 631 </div> 632 633 634 </div> 635 </div> 636 637 638 639 640 641 642 643 <div class="item"> 644 645 646 <div class="carousel-col"> 647 <div class="block img-responsive"> 648 649 650 651 652 653 654 655 <div style="background-position: 50%;background-size: 170%;min-height:500px;max-height:100%;max-width:100%;background-image: url('https://www.scopriforli.it/upload/turismoforli_ecm10/eventi/Manifesto70x100UnOperaForl041026_page-00011_2725_28656.jpg')"> 656 <img src='/immagini/simboli/null.gif' alt='Un'opera al mese - San Francesco riceve le stigmate'> 657 </div> 658 659 660 <h3 class="titolo-evento"> 661 <a title='Un'opera al mese - San Francesco riceve le stigmate' href="/servizi/eventi/cerca_fase03.aspx?ID=28656"> 662 <span id="PnlProssimiEventiHome_ariid_28656">Un'opera al mese - San Francesco riceve le stigmate</span> 663 </a> 664 </h3> 665 666 <div class="strillo-evento"> 667 668 </div> 669 670 671 </div> 672 673 674 </div> 675 </div> 676 677 </div> 678 679 680 681 <div class="left carousel-control"> 682 <a href="#carousel" role="button" data-slide="prev"> 683 <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span> 684 <span class="sr-only">Previous</span> 685 </a> 686 </div> 687 <div class="right carousel-control"> 688 <a href="#carousel" role="button" data-slide="next"> 689 <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> 690 <span class="sr-only">Next</span> 691 </a> 692 </div> 693 694 </div> 695 </div> 696 </div> 697 </div> 698 </section> 699 700 701
702<script> 703 $('.carousel[data-type="multi"] .item').each(function () { 704 var next = $(this).next(); 705 if (!next.length) { 706 next = $(this).siblings(':first'); 707 } 708 next.children(':first-child').clone().appendTo($(this)); 709 710 for (var i = 0; i < 2; i++) { 711 next = next.next(); 712 if (!next.length) { 713 next = $(this).siblings(':first'); 714 } 715 716 next.children(':first-child').clone().appendTo($(this)); 717 } 718 }); 719 720</script>
720 721 722 723 724 725 726 727 728 729 730<h1 class="sr-only">Comune di Forlì : TURISMO e CULTURA</h1> 731<h2 class="sr-only">Notizie - Comune di Forlì : TURISMO e CULTURA</h2> 732 733 734 735 736 737 738 739 </div> 740 741 742 743 744 745 746 <div id="formid_dx"> 747 748 749 </div> 750 751 752 753 754 755 756 <div id="formid_allineaFondo"> 757 </div> 758 759 760 761 </div> 762 763 <!--[if (gte IE 8)|!(IE)]><!--> 764 </main> 765 <!--<![endif]--> 766 <footer class="footer_container" id="FooterContainter"> 767 768 769 770 <div id="formid_fondo1"> 771 772 </div> 773 774 775 776 <div id="formid_fondo2"> 777 778 779 780 781 782 783 784 785<div class="rowWrapper bgGreyLast"> 786<div class="container-fluid"> 787<div class="row"> 788<div class=" col-lg-12 col-md-12 col-sm-12 col-xs-12"> 789 790<a href="/servizi/newsletter/newsletter_utente_fase01.aspx"><img src="/immagini/banner/banner-newsletter.jpg" alt=iscriviti alla newsletter /></a> 791 792 793 794 795</div> 796</div> 797</div> 798</div> 799 800 801 802 803 804<div class="ifsBuy"> 805 <a class="ifsStore" href="/servizi/segnalazioni/segnalazioni_fase03.aspx"> 806 <i class="fa fa-info-circle" aria-hidden="true"></i> 807 <p>Stai cercando qualcosa e non lo trovi? Contattaci <i class="fa fa-angle-right" aria-hidden="true"></i></p> 808 </a> 809</div> 810 811 812 </div> 813 814 815 816 <div id="formid_fondo3"> 817 <div class="container"> 818 819 820 821 822<div id="boxMenuCentro"> 823 <div class="boxMenuEcmFooter row col-sm-12 col-xs-12 "> 824 825 826 827 828 829 830 <span class="InizioArea"></span><span class="area area_18973"> 831 832 833 </span> 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 <span class="InizioCategoria"></span><span class="categoria"> 865 <a href="../../servizi/Menu/dinamica.aspx?ID=18985" target="_self" title="Note Legali" >Note Legali</a></span> 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 <span class="FineCategoria"></span> 904 905 906 907 908 909 910 911 912 913 914 915 916 917 <span class="InizioCategoria"></span><span class="categoria"> 918 <a href="../../servizi/Menu/dinamica.aspx?ID=18986" target="_self" title="Privacy" >Privacy</a></span> 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955
956 <span class="FineCategoria"></span> 957 958 959 960 961 962 963 964 965 966 967 968 969 970 <span class="InizioCategoria"></span><span class="categoria"> 971 <a href="../../servizi/Menu/dinamica.aspx?ID=17262" target="_self" title="Redazione" >Redazione</a></span> 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 <span class="FineCategoria"></span> 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 <span class="FineArea"></span> 1040 1041 1042 1043 </div> 1044</div> 1045 1046 1047 1048 1049<div class="social boxSocialFooter row col-xs-12 col-sm-12"> 1050 <div class="nav-social row col-xs-12"> 1051 1052 <ul class="list-inline social-list"> 1053 <li> 1054 <a title="Seguici su Facebook - Questo link si aprirà in una nuova finestra" href="https://www.facebook.com/ScopriForl%C3%AC-100448556220067" target="_blank"> 1055 <span class="fa fa-facebook" aria-hidden="true"></span> 1056 <span class="hidden">facebook</span> 1057 </a> 1058 </li> 1059 <li> 1060 <a title="Seguici su Instagram - Questo link si aprirà in una nuova finestra" href="https://www.instagram.com/scopriforli?igsh=NzQydHdobHc1eDVl" target="_blank"> 1061 <span class="fa fa-instagram" aria-hidden="true"></span> 1062 <span class="hidden">instagram</span> 1063 </a> 1064 </li> 1065 1066 <li> </li> 1067 1068 </ul> 1069 </div> 1070</div> 1071 1072 1073 1074<div class="recapiti row col-xs-12 col-sm-12"> 1075 <div class="boxRecapitiFondo row col-xs-12"> 1076 1077 <p>Indirizzo: Piazza Saffi, 8 47121 Forlì 1078 1079 PEC: <a href="mailto:[email protected]" title='PEC - Questo link aprirà il software impostato sul tuo dispositivo per la scrittura delle email'>[email protected]</a> 1080 P.Iva: 00606620409<br> 1081 Email: <a href="mailto:[email protected]" title='Email - Questo link aprirà il software impostato sul tuo dispositivo per la scrittura delle email'>[email protected]</a> 1082 Telefono: 0543 712362<br> 1083 Redazione a cura del Servizio Cultura Turismo e Legalità , via Albicini n.12 - 47121 Forlì 1084 </p> 1085 </div> 1086 <div class="boxCreditFondo col-xs-12"> 1087 1088 <p>Sito web realizzato da <a href=http://www.assistenza.ai4smartcity.ai target="_blank" title="Ai4Smartcity s.r.l. (Gruppo Progetti di Impresa â Pikkart) ">Ai4Smartcity s.r.l.</a> © 2026</p> 1089 </div> 1090 1091</div> 1092 1093 1094 1095 <div id="users-device-size"> 1096 <div id="xs" class="visible-xs"></div> 1097 <div id="sm" class="visible-sm"></div> 1098 <div id="md" class="visible-md"></div> 1099 <div id="lg" class="visible-lg"></div> 1100 </div> 1101 </div> 1102 </div> 1103 </footer> 1104 1105
1106<script> 1107 1108 function createCookie(name, value, days) { 1109 if (days) { 1110 var date = new Date(); 1111 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 1112 var expires = "; expires=" + date.toGMTString(); 1113 } 1114 else expires = ""; 1115 document.cookie = name + "=" + value + expires + "; path=/"; 1116 } 1117 1118 function readCookie(name) { 1119 var nameEQ = name + "="; 1120 var ca = document.cookie.split(';'); 1121 for (var i = 0; i < ca.length; i++) { 1122 var c = ca[i]; 1123 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 1124 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 1125 } 1126 return null; 1127 } 1128 1129 function AccettaCookie() { 1130 var title1 = "Accettato"; 1131 createCookie("CookiesAccettato", title1, 0); 1132 var miodiv = document.getElementById("cookie-bar"); 1133 1134 if (miodiv != null) { 1135 miodiv.style.display = "none"; 1136 } 1137 } 1138 1139 window.onload = function (e) { 1140 var cookie = readCookie("CookiesAccettato"); 1141 var title1 = cookie ? cookie : "NonAccettato"; 1142 1143 var miodiv = document.getElementById("cookie-bar"); 1144 1145 if (miodiv != null) { 1146 if (title1 == "Accettato") { 1147 miodiv.style.display = "none"; 1148 } 1149 else { 1150 miodiv.style.display = "block"; 1151 } 1152 } 1153 } 1154 1155</script>
1155 1156 1157<div id="cookie-bar" style="display: none; z-index: 1000; width: 100%; background: #BAB9B9; height: auto; min-height: 24px; line-height: 24px; color: black; text-align: center; padding: 3px 0; bottom: 0; position: FIXED;" role="contentinfo"> 1158 <p style="margin: 0;"> 1159 Questo sito usa i cookie per migliorare la tua esperienza di navigazione. Proseguendo nella navigazione acconsenti al loro utilizzo. 1160 <a title="Accetto" href="#" id="cc-approve-button-thissite" onclick="javascript:AccettaCookie();" style="color: BLACK; margin: 0 0.5em 0 1em">Accetto</a> 1161 <a title="Informativa estesa" style="color: BLACK; margin: 0 1em 0 0.5em" href="/servizi/Menu/dinamica.aspx?ID=18986" class="cb-policy">Informativa estesa</a> 1162 </p> 1163</div> 1164 1165 <div role="tooltip" class="Tooltip" id="tooltipdiv" style="display: none; position: absolute"></div> 1166 1167 1168 1169 1170 1171 1172 </div> 1173 1174 1175 1176 </div> 1177 1178
1178<script type="text/javascript"> 1179 1180 function initWidget() { 1181 1182 ReplaceCKTag(); 1183 1184 GestisciTitle(); 1185 1186 EachLink(); 1187 1188 EachInput(); 1189 1190 EachAriaHidden(); 1191 1192 EachH1(); 1193 1194 EachAriaLabel(); 1195 1196 $("*[title]").focus(function (event) { handleFocus(event); }); 1197 $("*[title]").blur(function (event) { handleHiddenTooltip(event); }); 1198 1199 $("*[title]").mouseover(function (event) { handleMouseOver(event); }); 1200 $("*[title]").mouseleave(function (event) { handleHiddenTooltip(event); }); 1201 1202 1203 1204 var textarea = document.getElementById("g-recaptcha-response"); 1205 1206 if (textarea != null) { 1207 textarea.setAttribute("aria-hidden", "true"); 1208 textarea.setAttribute("aria-label", "do not use"); 1209 textarea.setAttribute("aria-readonly", "true"); 1210 } 1211 1212 IframePulisci(); 1213 CheckboxSelect(); 1214 PulisciH(); 1215 AttivaTitleEsc(); 1216 CorreggiCaption(); 1217 1218 } 1219 1220 function PulisciH() { 1221 1222 $('h1').each(function () { 1223 var $this = $(this); 1224 if ($this.html().replace(/\s| /g, '').length == 0 || ($(this)[0].innerText == 0 && $(this).html().indexOf("<img") < 0)) 1225 $this.remove(); 1226 }); 1227 1228 $('h2').each(function () { 1229 var $this = $(this); 1230 if ($this.html().replace(/\s| /g, '').length == 0 || ($(this)[0].innerText == 0 && $(this).html().indexOf("<img") < 0)) 1231 $this.remove(); 1232 }); 1233 1234 $('h3').each(function () { 1235 var $this = $(this); 1236 if ($this.html().replace(/\s| /g, '').length == 0 || ($(this)[0].innerText == 0 && $(this).html().indexOf("<img") < 0)) 1237 $this.remove(); 1238 }); 1239 1240 $('h4').each(function () { 1241 var $this = $(this); 1242 if ($this.html().replace(/\s| /g, '').length == 0 || ($(this)[0].innerText == 0 && $(this).html().indexOf("<img") < 0)) 1243 $this.remove(); 1244 }); 1245 1246 $('h5').each(function () { 1247 var $this = $(this); 1248 if ($this.html().replace(/\s| /g, '').length == 0 || ($(this)[0].innerText == 0 && $(this).html().indexOf("<img") < 0)) 1249 $this.remove(); 1250 }); 1251 1252 $('h6').each(function () { 1253 var $this = $(this); 1254 if ($this.html().replace(/\s| /g, '').length == 0 || ($(this)[0].innerText == 0 && $(this).html().indexOf("<img") < 0)) 1255 $this.remove(); 1256 }); 1257 1258 $('h7').each(function () { 1259 var $this = $(this); 1260 if ($this.html().replace(/\s| /g, '').length == 0 || ($(this)[0].innerText == 0 && $(this).html().indexOf("<img") < 0)) 1261 $this.remove(); 1262 }); 1263 } 1264 1265 function IframePulisci() { 1266 1267 $("iframe").each(function (i, elem) { 1268 1269 var $this = $(this); 1270 1271 if (!$this[0].title || $this[0].title === "") { 1272 $this[0].title = "Iframe esterno " + i; 1273 } 1274 1275 var attributes = $.map(this.attributes, function (item) { 1276 return item.name; 1277 }); 1278 1279 // now use jQuery to remove the attributes 1280 var iframe = $(this); 1281 1282 var height = null; 1283 var width = null; 1284 var frameborder = null; 1285 var scrolling = null; 1286 var style = ""; 1287 1288 1289 1290 1291 $.each(attributes, function (i, item) { 1292 switch (item) { 1293 case 'height': 1294 height = $this.attr(item); 1295 iframe.removeAttr(item); 1296 break; 1297 case 'width': 1298 1299 width = $this.attr(item); 1300 iframe.removeAttr(item); 1301 break; 1302 case 'frameborder': 1303 frameborder = $this.attr(item); 1304 iframe.removeAttr(item); 1305 break; 1306 case 'scrolling': 1307 scrolling = $this.attr(item); 1308 iframe.removeAttr(item); 1309 break; 1310 case 'style': 1311 if ($this.attr(item) != null) { 1312 style = $this.attr(item); 1313 } 1314 else { style = ""; } 1315 break; 1316 default: 1317 break; 1318 } 1319 1320 }); 1321 1322 if (height != null) { 1323 if (height.endsWith("%") || height.endsWith("px")) { 1324 style += "height: " + height + ";"; 1325 } 1326 else { 1327 1328 style += "height: " + height + "px; "; 1329 } 1330 1331 } 1332 1333 if (width != null) { 1334 if (width.endsWith("%") || width.endsWith("px")) { 1335 style += "width: " + width + ";"; 1336 } 1337 else { 1338 1339 style += "width: " + width + "px; "; 1340 } 1341 } 1342 1343 if (frameborder != null) { 1344 style += "border: " + frameborder + "px; "; 1345 } 1346 1347 if (scrolling != null) { 1348 style += "overflow: hidden;"; 1349 } 1350 1351 if (style != null) { 1352 $this[0].setAttribute("style", style); 1353 } 1354 1355 }); 1356 } 1357 1358 function CheckboxSelect() { 1359 $('input:checkbox').each(function (i, elem) { 1360 var $this = $(this); 1361 //$this[0].addEventListener("click", handleCheckboxEvent, true); 1362 $this[0].addEventListener("keyup", handleCheckboxEvent, true); 1363 }); 1364 } 1365 1366 function CheckboxPress(elem) { 1367 var keycode = (event.keyCode ? event.keyCode : event.which); 1368 1369 if (keycode == 32) { 1370 $(elem).trigger('click'); 1371 } 1372 event.stopPropagation(); 1373 } 1374 1375 function handleCheckboxEvent(e) { 1376 e.preventDefault(); 1377 1378 if (e.keyCode === 32) { // If spacebar fired the event 1379 this.checked = !this.checked; 1380 } 1381 } 1382 1383 function getOffset(el) { 1384 const rect = el.getBoundingClientRect(); 1385 return { 1386 left: rect.left + window.scrollX, 1387 top: rect.top + window.scrollY 1388 }; 1389 } 1390 1391 /// Da chiamare per il Ckeditor per eliminare i tag non corretti 1392 function ReplaceIncorrectTag(stringa) { 1393 var s = stringa; 1394 s = s.replace(/<u>/g, "<span style=\"text-decoration: underline;\">"); 1395 s = s.replace(/<\/u>/g, "<span/>"); 1396 s = s.replace(/<s>/g, "<span style=\"text-decoration: line-through;\">"); 1397 s = s.replace(/<\/s>/g, "<span/>"); 1398 s = s.replace(/<strike>/g, "<span style=\"text-decoration: line-through;\">"); 1399 s = s.replace(/<\/strike>/g, "<span/>"); 1400 s = s.replace(/<i>/g, "<span style=\"font-style: italic;\">"); 1401 s = s.replace(/<\/i>/g, "<span/>"); 1402 s = s.replace(/<b>/g, "<strong>"); 1403 s = s.replace(/<\/b>/g, "<strong/>"); 1404 return s; 1405 } 1406 1407 /// Si aggiunge il tooltip alla navigazione tramite menu 1408 function handleFocus(event) { 1409 var $title = $(event.target).attr('title'); 1410 $('#tooltipdiv').html("<div class=\"tooltiptext\">" + $title + "</div>"); 1411 1412 var rect = getOffset(event.target); 1413 var top = Math.floor(rect.top) + event.target.offsetHeight - 10; 1414 1415 var left = Math.floor(rect.left); 1416 1417 if ((window.innerWidth - (parseInt(rect.left) + 250)) < 0) { 1418 left = window.innerWidth - 300; 1419 } 1420 1421 //document.getElementById("tooltipdiv").setAttribute("style", "display:block; position: absolute; top: " + top + "px!important; left: " + left + "px!important; width:250px!important; z-index:1000!important"); 1422 var elPosition = getPosition(event.target); 1423 if (elPosition.y > $(window).height() / 2) { 1424 document.getElementById("tooltipdiv").setAttribute("style", "display:block; position: absolute; top: -700px!important; left: 100px!important; width:250px!important; z-index:1000!important"); 1425 var tooltipHeight = document.getElementById("tooltipdiv").offsetHeight; 1426 var elOffset = getOffset(event.target); 1427 var tooltipTop = elOffset.top - tooltipHeight - 5; 1428 document.getElementById("tooltipdiv").setAttribute("style", "display:block; position: absolute; top: " + tooltipTop + "px!important; left: " + left + "px!important; width:250px!important; z-index:1000!important"); 1429 } else { 1430 var top = Math.floor(rect.top) + event.target.offsetHeight + 5; 1431 document.getElementById("tooltipdiv").setAttribute("style", "display:block; position: absolute; top: " + top + "px!important; left: " + left + "px!important; width:250px!important; z-index:1000!important"); 1432 } 1433 } 1434 1435 function handleMouseOver(event) { 1436 var $title = $(event.currentTarget).attr('title'); 1437 $('#tooltipdiv').html("<div class=\"tooltiptext\">" + $title + "</div>"); 1438 1439 var rect = getOffset(event.target); 1440 var left = Math.floor(rect.left); 1441 1442 if ((window.innerWidth - (parseInt(rect.left) + 250)) < 0) { 1443 left = window.innerWidth - 300; 1444 } 1445 1446 var elPosition = getPosition(event.target); 1447 if (elPosition.y > $(window).height() / 2) { 1448 document.getElementById("tooltipdiv").setAttribute("style", "display:block; position: absolute; top: -700px!important; left: 100px!important; width:250px!important; z-index:1000!important"); 1449 var tooltipHeight = document.getElementById("tooltipdiv").offsetHeight; 1450 var elOffset = getOffset(event.target); 1451 var tooltipTop = elOffset.top - tooltipHeight - 5; 1452 document.getElementById("tooltipdiv").setAttribute("style", "display:block; position: absolute; top: " + tooltipTop + "px!important; left: " + left + "px!important; width:250px!important; z-index:1000!important"); 1453 } else { 1454 var top = Math.floor(rect.top) + event.target.offsetHeight + 5; 1455 document.getElementById("tooltipdiv").setAttribute("style", "display:block; position: absolute; top: " + top + "px!important; left: " + left + "px!important; width:250px!important; z-index:1000!important"); 1456 } 1457 } 1458 1459 function handleHiddenTooltip(event) { 1460 $('#tooltipdiv').html(''); 1461 document.getElementById("tooltipdiv").setAttribute("style", "display:none; position: absolute;"); 1462 } 1463 1464 function getPosition(el) { 1465 var xPos = 0; 1466 var yPos = 0; 1467 1468 while (el) { 1469 if (el.tagName == "BODY") { 1470 // deal with browser quirks with body/window/document and page scroll 1471 var xScroll = el.scrollLeft || document.documentElement.scrollLeft; 1472 var yScroll = el.scrollTop || document.documentElement.scrollTop; 1473 1474 xPos += (el.offsetLeft - xScroll + el.clientLeft); 1475 yPos += (el.offsetTop - yScroll + el.clientTop); 1476 } else { 1477 // for all other non-BODY elements 1478 xPos += (el.offsetLeft - el.scrollLeft + el.clientLeft); 1479 yPos += (el.offsetTop - el.scrollTop + el.clientTop); 1480 } 1481 1482 el = el.offsetParent; 1483 } 1484 return { 1485 x: xPos, 1486 y: yPos 1487 }; 1488 } 1489 1490 function CorreggiCaption() { 1491 $("table").each(function (i, elem) { 1492 1493 var $this = $(this); 1494 1495 var caption = null; 1496 1497 $this.find("caption").each(function (i, eimg) { 1498 caption = true; 1499 }); 1500 1501 if (caption == null) { 1502 var titoloCaption = 'Portale del Turismo di Forlì: comunicazione, informazione e servizi, e-government ecc.'; 1503 $this.first().prepend('<caption><span>' + titoloCaption + ' _ ' + i + '</caption>'); 1504 } 1505 }); 1506 1507 $("caption").each(function () { 1508 $(this).addClass("sr-only"); 1509 }); 1510 } 1511 1512 function AttivaTitleEsc() { 1513 $(document).keyup(function (e) { 1514 if (e.key === "Escape") { // escape key maps to keycode `27` 1515 handleHiddenTooltip(e); 1516 } 1517 }); 1518 } 1519 1520 function ReplaceCKTag() { 1521 var replaceTags = document.getElementsByClassName("ReplaceIncorrectTag"); 1522 Array.prototype.forEach.call(replaceTags, function (replaceTag, index) { 1523 replaceTags.item(index).innerHTML = ReplaceIncorrectTag(replaceTags.item(index).innerHTML); 1524 1525 var aa = replaceTags.item(index).getElementsByTagName("a"); 1526 Array.prototype.forEach.call(aa, (a, index) => { 1527 if (a.title.length === 0) { 1528 if (a.innerText === 0 || a.innerText === undefined || a.innerText === "") { 1529 a.title = "Link alla pagina " + a.href + " _ " + index; 1530 } 1531 else { 1532 a.title = a.innerText 1533 } 1534 } 1535 }); 1536 }); 1537 } 1538 1539 function GestisciTitle() { 1540 $("*[title]").keyup(function (event) { handleFocus(event); }); 1541 $("*[title]").focusout(function (event) { handleHiddenTooltip(event); }); 1542 1543 $("*[title]").mouseover(function (event) { handleMouseOver(event); }); 1544 $("*[title]").mouseleave(function (event) { handleHiddenTooltip(event); }); 1545 } 1546 1547 function WidthPulisci() { 1548 1549 $("*[width]").each(function (i, elem) { 1550 1551 var $this = $(this); 1552 1553 var attributes = $.map(this.attributes, function (item) { 1554 return item.name; 1555 }); 1556 1557 // now use jQuery to remove the attributes 1558 var iframe = $(this); 1559 1560 var height = null; 1561 var width = null; 1562 var frameborder = null; 1563 var scrolling = null; 1564 var style = ""; 1565 1566 1567 1568 $.each(attributes, function (i, item) { 1569 switch (item) { 1570 case 'height': 1571 height = $this.attr(item); 1572 iframe.removeAttr(item); 1573 break; 1574 case 'width': 1575 width = $this.attr(item); 1576 iframe.removeAttr(item); 1577 break; 1578 case 'frameborder': 1579 frameborder = $this.attr(item); 1580 iframe.removeAttr(item); 1581 break; 1582 case 'scrolling': 1583 scrolling = $this.attr(item); 1584 iframe.removeAttr(item); 1585 break; 1586 case 'style': 1587
1587 style = $this.attr(item); 1588 break; 1589 default: 1590 break; 1591 } 1592 1593 if (height != null) { 1594 style += "height: " + height + "px; "; 1595 } 1596 1597 if (width != null) { 1598 style += "width: " + width + "px; "; 1599 } 1600 1601 if (frameborder != null) { 1602 style += "border: " + frameborder + "px; "; 1603 } 1604 1605 if (scrolling != null) { 1606 style += "overflow: hidden;"; 1607 } 1608 1609 }); 1610 1611 if (style != null) { 1612 $this[0].setAttribute("style", style); 1613 } 1614 1615 }); 1616 } 1617 1618 function HeightPulisci() { 1619 1620 $("*[height]").each(function (i, elem) { 1621 1622 var $this = $(this); 1623 1624 var attributes = $.map(this.attributes, function (item) { 1625 return item.name; 1626 }); 1627 1628 // now use jQuery to remove the attributes 1629 var iframe = $(this); 1630 1631 var height = null; 1632 var width = null; 1633 var frameborder = null; 1634 var scrolling = null; 1635 var style = ""; 1636 1637 1638 1639 $.each(attributes, function (i, item) { 1640 switch (item) { 1641 case 'height': 1642 height = $this.attr(item); 1643 iframe.removeAttr(item); 1644 break; 1645 case 'width': 1646 width = $this.attr(item); 1647 iframe.removeAttr(item); 1648 break; 1649 case 'frameborder': 1650 frameborder = $this.attr(item); 1651 iframe.removeAttr(item); 1652 break; 1653 case 'scrolling': 1654 scrolling = $this.attr(item); 1655 iframe.removeAttr(item); 1656 break; 1657 case 'style': 1658 style = $this.attr(item); 1659 break; 1660 default: 1661 break; 1662 } 1663 1664 if (height != null) { 1665 style += "height: " + height + "px; "; 1666 } 1667 1668 if (width != null) { 1669 style += "width: " + width + "px; "; 1670 } 1671 1672 if (frameborder != null) { 1673 style += "border: " + frameborder + "px; "; 1674 } 1675 1676 if (scrolling != null) { 1677 style += "overflow: hidden;"; 1678 } 1679 1680 }); 1681 1682 if (style != null) { 1683 $this[0].setAttribute("style", style); 1684 } 1685 1686 }); 1687 } 1688 1689 function FrameborderPulisci() { 1690 1691 $("*[frameborder]").each(function (i, elem) { 1692 1693 var $this = $(this); 1694 1695 var attributes = $.map(this.attributes, function (item) { 1696 return item.name; 1697 }); 1698 1699 // now use jQuery to remove the attributes 1700 var iframe = $(this); 1701 1702 var height = null; 1703 var width = null; 1704 var frameborder = null; 1705 var scrolling = null; 1706 var style = ""; 1707 1708 1709 1710 $.each(attributes, function (i, item) { 1711 switch (item) { 1712 case 'height': 1713 height = $this.attr(item); 1714 iframe.removeAttr(item); 1715 break; 1716 case 'width': 1717 width = $this.attr(item); 1718 iframe.removeAttr(item); 1719 break; 1720 case 'frameborder': 1721 frameborder = $this.attr(item); 1722 iframe.removeAttr(item); 1723 break; 1724 case 'scrolling': 1725 scrolling = $this.attr(item); 1726 iframe.removeAttr(item); 1727 break; 1728 case 'style': 1729 style = $this.attr(item); 1730 break; 1731 default: 1732 break; 1733 } 1734 1735 if (height != null) { 1736 style += "height: " + height + "px; "; 1737 } 1738 1739 if (width != null) { 1740 style += "width: " + width + "px; "; 1741 } 1742 1743 if (frameborder != null) { 1744 style += "border: " + frameborder + "px; "; 1745 } 1746 1747 if (scrolling != null) { 1748 style += "overflow: hidden;"; 1749 } 1750 1751 }); 1752 1753 if (style != null) { 1754 $this[0].setAttribute("style", style); 1755 } 1756 1757 }); 1758 } 1759 1760 function ScrollingPulisci() { 1761 1762 $("*[scrolling]").each(function (i, elem) { 1763 1764 var $this = $(this); 1765 1766 var attributes = $.map(this.attributes, function (item) { 1767 return item.name; 1768 }); 1769 1770 // now use jQuery to remove the attributes 1771 var iframe = $(this); 1772 1773 var height = null; 1774 var width = null; 1775 var frameborder = null; 1776 var scrolling = null; 1777 var style = ""; 1778 1779 1780 1781 $.each(attributes, function (i, item) { 1782 switch (item) { 1783 case 'height': 1784 height = $this.attr(item); 1785 iframe.removeAttr(item); 1786 break; 1787 case 'width': 1788 width = $this.attr(item); 1789 iframe.removeAttr(item); 1790 break; 1791 case 'frameborder': 1792 frameborder = $this.attr(item); 1793 iframe.removeAttr(item); 1794 break; 1795 case 'scrolling': 1796 scrolling = $this.attr(item); 1797 iframe.removeAttr(item); 1798 break; 1799 case 'style': 1800 style = $this.attr(item); 1801 break; 1802 default: 1803 break; 1804 } 1805 1806 if (height != null) { 1807 style += "height: " + height + "px; "; 1808 } 1809 1810 if (width != null) { 1811 style += "width: " + width + "px; "; 1812 } 1813 1814 if (frameborder != null) { 1815 style += "border: " + frameborder + "px; "; 1816 } 1817 1818 if (scrolling != null) { 1819 style += "overflow: hidden;"; 1820 } 1821 1822 }); 1823 1824 if (style != null) { 1825 $this[0].setAttribute("style", style); 1826 } 1827 1828 }); 1829 } 1830 1831 function EachLink() { 1832 1833 $("a").each(function (index, element) { 1834 var value = $(this)[0].title; 1835 1836 if ($(this)[0].title.length === 0) { 1837 if ($(this)[0].innerText === 0 || $(this)[0].innerText === undefined || $(this)[0].innerText === "") { 1838 $(this)[0].title = "Link alla pagina " + $(this)[0].href + " _ " + index; 1839 } 1840 else { 1841 $(this)[0].title = $(this)[0].innerText; 1842 } 1843 } 1844 1845 //$(this)[0].title = $(this)[0].title.replace("'", " "); 1846 $(this)[0].title = $(this)[0].title.replace(/'/g, " "); 1847 }); 1848 1849 $("a").each(function (index, element) { 1850 var value = $(this)[0].title; 1851 1852 1853 if ($("a[title='" + value + "']").length > 1) { 1854 var linkprec = ""; 1855 var linkatt = ""; 1856 $("a[title='" + value + "']").each(function (indexi, elementi) { 1857 if (indexi === 0) { 1858 linkprec = $(this)[0].href; 1859 linkatt = $(this)[0].href; 1860 } 1861 else { 1862 linkatt = $(this)[0].href; 1863 if (linkprec.toLowerCase() === linkatt.toLowerCase()) { 1864 1865 } 1866 else { 1867 // aggiungo un numero alla fine del title 1868 //$(this)[0].title = $(this)[0].title + indexi; 1869 1870 // lascio i title uguali, ma aggiungo un aria-label e lì metto il numero alla fine del testo 1871 $(this)[0].setAttribute("aria-label", $(this)[0].title + ' ' + indexi); 1872 } 1873 1874 } 1875 }); 1876 } 1877 1878 }); 1879 } 1880 1881 function EachInput() { 1882 1883 $("input").each(function (index, element) { 1884 var value = $(this)[0].getAttribute('data-autocomplete-type'); 1885 1886 if (value != null && value != null) { 1887 $(this)[0].setAttribute("type", value); 1888 } 1889 }); 1890 1891 } 1892 1893 function EachAriaHidden() { 1894 $("*[aria-hidden='true']").each(function (index, element) { 1895 var value = $(this)[0].getAttribute('aria-hidden'); 1896 1897 $(this).find("*").each(function (index2, element) { 1898 $(this)[0].setAttribute("aria-hidden", value); 1899 }); 1900 }); 1901 1902 } 1903 1904 function ClassBold() { 1905 $(".bold").each(function (index, element) { 1906 var classe = $(this)[0].getAttribute('class'); 1907 1908 classe = classe.replace("bold", ""); 1909 1910 if (classe != "") { 1911 $(this).replaceWith(function () { 1912 return $('<strong class=\"' + classe + '\">').append($(this).html()) 1913 }) 1914 } else { 1915 $(this).replaceWith(function () { 1916 return $('<strong>').append($(this).html()) 1917 }) 1918 } 1919 }); 1920 1921 } 1922 1923 function EachAriaLabel() { 1924 $("*[aria-label]").each(function (index, element) { 1925 var value = $(this)[0].getAttribute('aria-label'); 1926 }); 1927 1928 $("*[aria-label]").each(function (index, element) { 1929 var value = $(this)[0].getAttribute('aria-label'); 1930 1931 if ($("*[aria-label='" + value + "']").length > 1) { 1932 var labelprec = ""; 1933 var labelatt = ""; 1934 $("*[aria-label='" + value + "']").each(function (indexi, elementi) { 1935 if (indexi === 0) { 1936 labelprec = $(this)[0].getAttribute('aria-label'); 1937 labelatt = $(this)[0].getAttribute('aria-label'); 1938 } 1939 else { 1940 labelatt = $(this)[0].getAttribute('aria-label'); 1941 if (labelatt.toLowerCase() === labelprec.toLowerCase()) { 1942 $(this)[0].setAttribute("aria-label", labelatt + " " + indexi); 1943 } 1944 } 1945 }); 1946 } 1947 }); 1948 } 1949 1950 1951 function EachAccesskey() { 1952 1953 $("*[accesskey]").each(function (index, element) { 1954 var value = $(this)[0].getAttribute('accesskey'); 1955 1956 if ($("*[accesskey='" + value + "']").length > 1) { 1957 $("*[accesskey='" + value + "']").each(function (indexi, elementi) { 1958 if (indexi === 0) { 1959 } 1960 else { 1961 $(this)[0].removeAttribute("accesskey"); 1962 } 1963 }); 1964 } 1965 }); 1966 } 1967 1968 function Eachimg() { 1969 1970 $("img").each(function (index, element) { 1971 1972 if ($(this)[0].alt.length === 0) { 1973 $(this)[0].setAttribute("alt", ""); 1974 } 1975 }); 1976 } 1977 1978 function EachTable() { 1979 1980 $("table[title]").each(function (index, element) { 1981 $(this)[0].removeAttribute("title"); 1982 }); 1983 } 1984 1985 1986 function EachH1() { 1987 1988 if ($("h1").length > 1) { 1989 1990 if(document.getElementById("IDboxPaginaEcm") != null) 1991 var elms = document.getElementById("IDboxPaginaEcm").getElementsByTagName("h1"); 1992 else 1993 var elms = ""; 1994 1995 Array.prototype.forEach.call(elms, function (elm, index) { 1996 1997 var stile = elm.getAttribute("style"); 1998 1999 var stileH1 = ""; 2000 2001 if (stile === null) { 2002 stileH1 = 'style=display:block;'; 2003 } 2004 else { 2005 stileH1 = 'style=' + stile + ';display:block; '; 2006 } 2007 2008 console.log(stileH1); 2009 2010 $(elm).replaceWith(function () { 2011 2012 return $("<span class=\"h1\" " + stileH1 + " />").append($(this).contents()); 2013 }); 2014 }); 2015 } 2016 2017 } 2018 function EachB() { 2019 2020 $("b").each(function (index, element) { 2021 $(this).replaceWith(function () { 2022 return $('<strong>').append($(this).html()) 2023 }) 2024 }); 2025 2026 2027 } 2028 2029 function EachI() { 2030 2031 $("i").each(function (index, element) { 2032 $(this).replaceWith(function () { 2033 if ($(this).context.classList.value != "fa fa-info-circle") { 2034 return $('<em>').append($(this).html()) 2035 } 2036 }) 2037 }); 2038 2039 } 2040 2041 function OverlayUP() { 2042 var valueCSS = document.getElementById("overlay").getAttribute('class'); 2043
2044 if (valueCSS === undefined || valueCSS === null || valueCSS === "") { 2045 $("#overlay").toggleClass('hidden'); 2046 $("#nav-icon").toggleClass('open'); 2047 $("#menuEcm").toggleClass('menu-open menu-close'); 2048 $("#nav-icon .fa").toggleClass('fa-bars fa-times'); 2049 $("#boxTotale").toggleClass('menu-open'); 2050 $('#menuEcm').css("display", "none"); 2051 } 2052 } 2053 2054 function realBackgroundColor(elem) { 2055 var transparent = 'rgba(0, 0, 0, 0)'; 2056 var transparentIE11 = 'transparent'; 2057 if (!elem) return transparent; 2058 2059 var bg = getComputedStyle(elem).backgroundColor; 2060 if (bg === transparent || bg === transparentIE11) { 2061 return realBackgroundColor(elem.parentElement); 2062 } else { 2063 return bg; 2064 } 2065 } 2066 2067 function realColor(elem) { 2068 var transparent = ''; 2069 if (!elem) return transparent; 2070 2071 var bg = getComputedStyle(elem).color; 2072 if (bg === '' || bg === '') { 2073 return realColor(elem.parentElement); 2074 } else { 2075 return bg; 2076 } 2077 } 2078 2079 function setContrast(elem) { 2080 2081 var rgbString = realBackgroundColor(elem).replace("rgb(", "").replace(")", ""); 2082 const rgb = rgbString.split(','); 2083 2084 // http://www.w3.org/TR/AERT#color-contrast 2085 const brightness = Math.round(((parseInt(rgb[0]) * 299) + 2086 (parseInt(rgb[1]) * 587) + 2087 (parseInt(rgb[2]) * 114)) / 1000); 2088 const textColour = (brightness > 125) ? 'black' : 'white'; 2089 $(elem).css('color', textColour); 2090 $(elem).css('background-color', 'rgb(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ')'); 2091 } 2092 2093 const setContrastAllElements = () => { 2094 2095 const els = document.querySelectorAll("*[style]"); 2096 2097 Array.prototype.forEach.call(els, (el) => { 2098 if (el.style.color || el.style.backgroundColor) { 2099 setContrast(el); 2100 } 2101 }); 2102 }; 2103 2104 const checkContrastAllElements = () => { 2105 2106 const els = document.querySelectorAll("*[style]"); 2107 2108 Array.prototype.forEach.call(els, (el) => { 2109 if (el.style.color || el.style.backgroundColor) { 2110 checkContrast(el); 2111 } 2112 }); 2113 }; 2114 2115 function checkContrast(elem) { 2116 2117 var rgbString = realBackgroundColor(elem).replace("rgb(", "").replace(")", ""); 2118 const rgb = rgbString.split(','); 2119 2120 var colorString = realColor(elem).replace("rgb(", "").replace(")", ""); 2121 const color = colorString.split(','); 2122 2123 var contrastcolor = contrast([rgb[0], rgb[1], rgb[2]], [color[0], color[1], color[2]]); 2124 2125 if (contrastcolor < 4.5) { 2126 // http://www.w3.org/TR/AERT#color-contrast 2127 const brightness = Math.round(((parseInt(rgb[0]) * 299) + 2128 (parseInt(rgb[1]) * 587) + 2129 (parseInt(rgb[2]) * 114)) / 1000); 2130 const textColour = (brightness > 125) ? 'black' : 'white'; 2131 $(elem).css('color', textColour); 2132 $(elem).css('background-color', 'rgb(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ')'); 2133 } 2134 } 2135 2136 function contrast(rgb1, rgb2) { 2137 var lum1 = luminanace(rgb1[0], rgb1[1], rgb1[2]); 2138 var lum2 = luminanace(rgb2[0], rgb2[1], rgb2[2]); 2139 var brightest = Math.max(lum1, lum2); 2140 var darkest = Math.min(lum1, lum2); 2141 return (brightest + 0.05) 2142 / (darkest + 0.05); 2143 } 2144 2145 function luminanace(r, g, b) { 2146 var a = [r, g, b].map(function (v) { 2147 v /= 255; 2148 return v <= 0.03928 2149 ? v / 12.92 2150 : Math.pow((v + 0.055) / 1.055, 2.4); 2151 }); 2152 return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722; 2153 } 2154 2155 2156 jQuery(document).ready(function ($) { 2157 2158 var lastScrollTop = 0; 2159 2160 var body = document.body; 2161 var html = document.documentElement; 2162 2163 ReplaceCKTag(); 2164 2165 EachLink(); 2166 2167 EachInput(); 2168 2169 EachAriaHidden(); 2170 2171 EachH1(); 2172 2173 EachAriaLabel(); 2174 2175 EachAccesskey(); 2176 2177 Eachimg(); 2178 2179 EachB(); 2180 2181 EachI(); 2182 2183 WidthPulisci(); 2184 2185 HeightPulisci(); 2186 2187 FrameborderPulisci(); 2188 ScrollingPulisci(); 2189 ClassBold(); 2190 EachTable(); 2191 $('input:checkbox').keypress(function (event) { 2192 var keycode = (event.keyCode ? event.keyCode : event.which); 2193 2194 if (keycode == 32) { 2195 $(this).trigger('click'); 2196 } 2197 event.stopPropagation(); 2198 }); 2199 2200 2201 IframePulisci(); 2202 CheckboxSelect(); 2203 PulisciH(); 2204 AttivaTitleEsc(); 2205 CorreggiCaption(); 2206 2207 GestisciTitle(); 2208 2209 var height = Math.max(body.scrollHeight, body.offsetHeight, 2210 html.clientHeight, html.scrollHeight, html.offsetHeight); 2211 2212 var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop; 2213 if (scrollTop > lastScrollTop) { 2214 if ((scrollTop > 40)) { 2215 $("body").addClass("onscroll"); 2216 } 2217 } 2218 else { 2219 if ((scrollTop < 40)) { 2220 $("body").removeClass("onscroll"); 2221 } 2222 // upscroll code 2223 } 2224 2225 $(window).scroll(function () { 2226 var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop; 2227 if (scrollTop > lastScrollTop) { 2228 if ((scrollTop > 40)) { 2229 $("body").addClass("onscroll"); 2230 } 2231 } 2232 else { 2233 if ((scrollTop < 40)) { 2234 $("body").removeClass("onscroll"); 2235 } 2236 // upscroll code 2237 } 2238 }); 2239 2240 //checkContrastAllElements(); 2241 2242 }); 2243 2244 </script>
2244 2245 2246 2247 2248 2249 2250 2251
2251<script type="text/javascript" src="/script/theme/lozad.min.js"></script>
2251 2252 2253
2253<script> 2254 const observer = lozad('.lzload', { 2255 rootMargin: '400px 0px', // syntax similar to that of CSS Margin 2256 }); 2257 observer.observe(); 2258 var p = document.getElementsByTagName('p'); 2259 var pArray = Array.prototype.slice.call(p); 2260 var pImg=[]; 2261 for (i = 0; i < pArray.length; i++) { 2262 if(pArray[i].getElementsByTagName('img').length>0) { 2263 pImg.push(pArray[i]); 2264 } 2265 } 2266 for (i = 0; i < pImg.length; i++) { 2267 var parent = pImg[i].parentNode; 2268 parent.insertBefore( pImg[i].firstChild, pImg[i] ); 2269 parent.removeChild( pImg[i] ); 2270 } 2271 </script>
2271 2272 2273
2273<script type="text/javascript">(function(){var d=(new Date).getTime(),a=0,h=0,b=!0,g=!1,k=function(){h=(new Date).getTime();a+=h-d;b=!0},e=function(a){b&&(b=!1,d=(new Date).getTime(),g=!1);window.clearTimeout(l);l=window.setTimeout(k,5E3)},c=function(a,b){window.addEventListener?window.addEventListener(a,b):window.attachEvent&&window.attachEvent("on"+a,b)},f=function(c){b||(a+=(new Date).getTime()-d);!g&&0<a&&36E5>a&&window.dataLayer.push({event:"nonIdle",nonIdleTimeElapsed:a});b&&(g=!0);c&&"beforeunload"===c.type&&window.removeEventListener("beforeunload", 2274f);a=0;d=(new Date).getTime();window.setTimeout(f,15E3)};c("mousedown",e);c("keydown",e);c("scroll",e);c("mousemove",e);c("beforeunload",f);var l=window.setTimeout(k,5E3);window.setTimeout(f,15E3)})();</script>
2274 2275 2276
2276<script type="text/javascript" src="/script/theme/element_content.js"></script>
2276 2277 2278 2279 2280 2281 2282</body> 2283</html>
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.