// Funzionalità "cross-browser" (sviluppata da Scott Andrew LePera) per attivare automaticamente una funzione al caricamento della pagina
if(typeof window.addEventListener != 'undefined') {window.addEventListener('load', Impagina, false)}
else if(typeof document.addEventListener != 'undefined') {document.addEventListener('load', Impagina, false)}
else if(typeof window.attachEvent != 'undefined') {window.attachEvent('onload', Impagina)}


// Impagina, ed eventualmente incornicia, tutti gli oggetti (immagini, tabelle ecc.) presenti nella pagina che abbiano la classe "Impagina" (richiede lo script 'trova_classe.js')
function Impagina() {
 var Oggetti = TrovaElementiPerClasse('impagina'); for (var i=0; i<Oggetti.length; ++i) {Imp(Oggetti[i])}
}


/*
La funzione d'incorniciatura delle immagini normalmente viene applicata automaticamente a tutte le immagini con la classe "Impagina", comprese quelle zoomabili con Shadowbox: per queste ultime però, a causa di un difetto di IE (o di Shadowbox...), è necessario invocare esplicitamente l'incorniciatura nell'evento onLoad (vedi), pena il mancato funzionamento di Shadowbox in IE...
*/
function Imp(Elemento,Zoom,Titolo) {
 // Crea un DIV provvisorio...
 var TrattasiDiImmagine=(Elemento.tagName=='IMG'),TrattasiDiTabella=(Elemento.tagName=='TABLE'),Div=document.createElement('div'), Numero=Elemento.getAttribute('numero'), CollInizio='', CollFine='', Collegamento=Elemento.getAttribute('longdesc'), Segnalibro='<a name="'+((TrattasiDiImmagine)?'fig':'tab')+Numero+'"></a>', Classi=Elemento.className, Allineamento, Margini='', Lente='', ImmLente='', AncoraInizio='', AncoraFine='', AttivaLente='', RifFig='', Sep='', Dida, RigaDida='', DidaSup=false, RigaSupDida='', RigaInfDida='', SpaziDida, CondDia, CondLente, CondOmbra='', Larghezza='', Codice
 if (TrattasiDiImmagine)
  {Dida=Elemento.alt} // Immagini
 else
  {if (Elemento.getAttribute('alt')) {Dida=Elemento.getAttribute('alt')} else {Dida=''}} // Tabelle e Paragrafi
 if (Collegamento!=null) {CollInizio='<a href="'+Collegamento+'" target="_blank">'; CollFine='</a>'}
 CondDia=(Zoom!=null&&Zoom.length>0) // CondDia è vera quando l'immagine è ingrandibile con Shadowbox
 CondLente=(Classi.indexOf("Lente")!=-1) // CondLente è vera quando l'immagine è ingrandibile con TJPZoom
 if (Dida.indexOf("^")==0) {DidaSup=true; Dida=Dida.substr(1)} // Individua l'opzione per posizionare la didascalia sopra all'immagine, a mo' di titolo
 if (Numero!=null) {RifFig='<font color=#183149>'+((TrattasiDiImmagine)?'Fig':'Tab')+'. '+Numero+'</font>'} // Se viene specificato un numero, quello viene preparato per inserirlo nella didascalia
 if (Numero!=null&&Dida!='') {Sep=' - '} // Se vengono specificati sia un numero sia una didascalia, viene definito un separatore tra i due
 if(CondDia) { // Immagine ingrandibile con Shadowbox
  ImmLente="lente.png"
  if (Titolo==null) Titolo=Dida // Se non viene specificato un titolo per l'immagine ingrandita, si usa la didascalia
  AncoraInizio = "<a href='"+Zoom+"' onmouseover='Tip(&quot;<img src=&#39;i/"+ImmLente+"&#39; width=&#39;16px&#39; height=&#39;16px&#39; style=&#39;margin-right: 4px; margin-top: 1; vertical-align: middle&#39;>Puoi cliccare per ingrandire l&#146;immagine&quot;, FONTSIZE, &quot;11px&quot;)' onmouseout='UnTip()' rel='Shadowbox; title=<b>"+Titolo+"</b>'>"
  AncoraFine = '</a>'
 }
 if (CondLente) {ImmLente="lente-.png"; AttivaLente='onmouseover="TJPzoom(this)"'} // Immagine ingrandibile con TJPZoom
 // In entrambi i casi di immagine ingrandibile inserisce l'apposita icona della lente d'ingrandimento nella didascalia
 if (CondDia||CondLente) Lente="<img src='i/"+ImmLente+"' width='16px' height='16px' style='margin-right: 4px; margin-top: 1; vertical-align: middle'>"
 // Predisponde l'allineamento della tabella con la cornice e la didascalia
 if (Classi.indexOf("Destra")!=-1)
  {Allineamento='right';Margini='style="margin: '+RicavaStile(Elemento,"margin-top")+' 0 '+RicavaStile(Elemento,"margin-bottom")+' '+RicavaStile(Elemento,"margin-left")+'"'}
 else if (Classi.indexOf("Sinistra")!=-1)
  {Allineamento='left';Margini='style="margin: '+RicavaStile(Elemento,"margin-top")+' '+RicavaStile(Elemento,"margin-right")+' '+RicavaStile(Elemento,"margin-bottom")+' 0"'}
 else if (Classi.indexOf("Nessuno")!=-1)
  {Allineamento=''}
 else
  {Allineamento='center'}
  
 if (Classi.indexOf("Cornice")!=-1) Elemento.style.border='0 white none' // Rimuove la cornice d'anteprima
 if (TrattasiDiImmagine)
  {
   Codice = '<img border="0" '+AttivaLente+' src="'+Elemento.src+'" width="'+Elemento.width+'" height="'+Elemento.height+'" style="border:'+Elemento.style.border+'"/>'
  }
 else if (TrattasiDiTabella)
  {
   Elemento.style.margin='0' // Azzera eventuali spaziature che distacchino la tabella dal testo circostante
   if (Elemento.width) Larghezza='width="'+Elemento.width+'"'
   Elemento.width='100%' // Predispone la tabella interna a riempire quella esterna
   Codice = CodiceHTML(Elemento)
  }
 
 // ... che riempie con una tabella con l'immagine, un segnalibro e una didascalia, ...
 // Secondo la posizione dell'eventuale didascalia (sopra/sotto l'immagine), ne regola i margini
 if (DidaSup==true) {SpaziDida='<p class="Didascalia" style="margin-top: 0; margin-bottom: 4px">'} else {SpaziDida='<p class="Didascalia" style="margin-top: 4px; margin-bottom: 0">'}

 if (Classi.indexOf("Cornice")!=-1) // ---------------------- Elemento con cornice
  {
   Elemento.style.border='0 white none' // Rimuove la cornice d'anteprima
   // Eventualmente prepara la riga della tabella per la didascalia...
   if (Numero!=null||Dida!='') RigaDida='<tr><td></td><td style="width: '+Elemento.width+'px">'+SpaziDida+RifFig+Sep+Lente+Dida+'</p></td><td></td></tr>'
   if (DidaSup==true) {RigaSupDida=RigaDida} else {RigaInfDida=RigaDida} // ... quindi compone la tabella con la riga per la didascalia dove serve
  }
 if (Classi.indexOf("CornicePiccola")!=-1) // ---------------------- Elemento con cornice piccola
  {
   var InsNNE='"', InsSSO='"'
   if (Classi.indexOf("Ombra")!=-1) // Elemento con ombra (immagini col segno '+' nel nome, es. 'ovest+.png', ed inserti NNE e SSO)
    {CondOmbra="+"; InsNNE=';background-position:0 2px;background-repeat:no-repeat" valign="top"><img alt="" src="i/bordi/c(+o)/nord-nord-est 10.png" width="10" height="2" /'; InsSSO=';background-position:2px 0;background-repeat:no-repeat"><img alt="" src="i/bordi/c(+o)/sud-sud-ovest 10.png" width="2" height="10" /'}
   Div.innerHTML = '<table cellspacing="0" cellpadding="0" align="'+Allineamento+'"'+Margini+Larghezza+'>'+Segnalibro+RigaSupDida+'<tr><td style="background-image:url(\'i/bordi/c(+o)/nord-ovest 10.png\'); width: 10px; height: 10px"></td><td style="background-image:url(\'i/bordi/c(+o)/nord 10.png\')"></td><td style="background-image:url(\'i/bordi/c(+o)/nord-est 10'+CondOmbra+'.png\')"></td></tr><tr><td style="background-image:url(\'i/bordi/c(+o)/ovest 10.png\')"></td><td>'+AncoraInizio+CollInizio+Codice+CollFine+AncoraFine+'</td><td style="background-image:url(\'i/bordi/c(+o)/est 10'+CondOmbra+'.png\')'+InsNNE+'></td></tr><tr><td style="background-image:url(\'i/bordi/c(+o)/sud-ovest 10'+CondOmbra+'.png\')"></td><td style="background-image:url(\'i/bordi/c(+o)/sud 10'+CondOmbra+'.png\')'+InsSSO+'></td><td style="background-image:url(\'i/bordi/c(+o)/sud-est 10'+CondOmbra+'.png\'); width: 10px; height: 10px"></td></tr></tr>'+RigaInfDida+'</table>'
  }
 else if (Classi.indexOf("CorniceGrande")!=-1) // ---------------------- Elemento con cornice grande
  {
   if (Classi.indexOf("Ombra")!=-1) {CondOmbra="+"} // Elemento con ombra (immagini col segno '+' nel nome, es. 'ovest+.png')
   Div.innerHTML = '<table cellspacing="0" cellpadding="0" align="'+Allineamento+'"'+Margini+Larghezza+'>'+Segnalibro+RigaSupDida+'<tr><td style="background-image:url(\'i/bordi/c(+o)/nord-ovest 14.png\'); width: 14px; height: 14px"></td><td style="background-image:url(\'i/bordi/c(+o)/nord 14.png\')"></td><td style="background-image:url(\'i/bordi/c(+o)/nord-est 14'+CondOmbra+'.png\')"></td></tr><tr><td style="background-image:url(\'i/bordi/c(+o)/ovest 14.png\')"></td><td>'+AncoraInizio+CollInizio+Codice+CollFine+AncoraFine+'</td><td style="background-image:url(\'i/bordi/c(+o)/est 14'+CondOmbra+'.png\')"></td></tr><tr><td style="background-image:url(\'i/bordi/c(+o)/sud-ovest 14'+CondOmbra+'.png\')"></td><td style="background-image:url(\'i/bordi/c(+o)/sud 14'+CondOmbra+'.png\')"></td><td style="background-image:url(\'i/bordi/c(+o)/sud-est 14'+CondOmbra+'.png\'); width: 14px; height: 14px"></td></tr></tr>'+RigaInfDida+'</table>'
  }
 else // ---------------------- Elemento senza cornice...
  {
   if (Classi.indexOf("Ombra")!=-1) // ---------------------- ... ma con ombra
    {
     // Eventualmente prepara la riga della tabella per la didascalia...
     if (Numero!=null||Dida!='') RigaDida='<tr><td style="width: '+Elemento.width+'px">'+SpaziDida+RifFig+Sep+Lente+Dida+'</p></td><td></td></tr>'
     if (DidaSup==true) {RigaSupDida=RigaDida} else {RigaInfDida=RigaDida} // ... quindi compone la tabella con la riga per la didascalia dove serve
     Div.innerHTML = '<table cellspacing="0" cellpadding="0" align="'+Allineamento+'"'+Margini+Larghezza+'>'+Segnalibro+RigaSupDida+'<tr><td>'+AncoraInizio+CollInizio+Codice+CollFine+AncoraFine+'</td><td style="background-image: url(\'i/bordi/o_rett/est.png\');background-position:0 6px;background-repeat:no-repeat" valign="top"><img alt="" src="i/bordi/o_rett/nord-est.png" width="6" height="6" /></td></tr><tr><td style="background-image: url(\'i/bordi/o_rett/sud.png\');background-position:6px 0;background-repeat:no-repeat"><img alt="" src="i/bordi/o_rett/sud-ovest.png" width="6" height="6" /></td><td style="background-image: url(\'i/bordi/o_rett/sud-est.png\')"></td></tr>'+RigaInfDida+'</table>'
    }
   else // ---------------------- ... né ombra
    {
     // Eventualmente prepara la riga della tabella per la didascalia...
     if (Numero!=null||Dida!='') RigaDida='<tr><td style="width: '+Elemento.width+'px">'+SpaziDida+RifFig+Sep+Lente+Dida+'</p></td></tr>'
     if (DidaSup==true) {RigaSupDida=RigaDida} else {RigaInfDida=RigaDida} // ... quindi compone la tabella con la riga per la didascalia dove serve
     Div.innerHTML = '<table cellspacing="0" cellpadding="0" align="'+Allineamento+'"'+Margini+Larghezza+'>'+Segnalibro+RigaSupDida+'<tr><td>'+AncoraInizio+CollInizio+Codice+CollFine+AncoraFine+'</td></tr>'+RigaInfDida+'</table>'
    }
 }

 Elemento.parentNode.insertBefore(Div, Elemento) // ... DIV e tabella che inserisce...
 Elemento.parentNode.removeChild(Elemento) // ... al posto dell'immagine originaria.
}


// Adattata da una funzione originale trovata su help.dottoro.com/ljloliex.php
function CodiceHTML (Elemento) {
 var Contenuto
 if (Elemento.outerHTML) // IE, Opera, Safari
  {Contenuto = Elemento.outerHTML}
 else // Firefox
  {
   var Attributi = Elemento.attributes, Attrib = ""
   for (var i = 0; i < Attributi.length; i++)
    {Attrib += " " + Attributi[i].name + "=\"" + Attributi[i].value + "\""}
   Contenuto = "<" + Elemento.tagName + Attrib + ">" + Elemento.innerHTML + "</" + Elemento.tagName + ">"
  }
 return Contenuto
}


function RicavaStile(oElm, strCssRule){
  var strValue = "";
  if(document.defaultView && document.defaultView.getComputedStyle){
    strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
  }
  else if(oElm.currentStyle){
    strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
      return p1.toUpperCase();
    });
    strValue = oElm.currentStyle[strCssRule];
  }
  return strValue;
}
