/*
    Copyright 2009 francesca falconi francesca.falconi@bologna.enea.it,
                   ruggero gallimbeni ruggero.gallimbeni@onionx.com,
		   germana olivieri germana.olivieri@bologna.enea.it

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

var kid = new Object();
kid.ret = false;

function kchk(e) {
   var k = (window.event) ? event.keyCode : e.keyCode;

   kid.ret = (k == 13);
}

document.onkeydown = kchk;       

function nbt(n) {
    if(n>99)
	return Math.round(n);
    return n.toPrecision(2).replace(/\./,',');
}

function subst(id, text ) {
	var du = document.getElementById(id);
	var cs = du.childNodes;
	var i;

	for(i=0; i<cs.length; i++) du.removeChild(cs[i]);

	du.innerHTML = text;
}

function toggleVisibility(id) {
    var e = document.getElementById(id);

    e.style.visibility = (e.style.visibility == 'hidden')?'visible':'hidden';
    e.innerHTML;
}

function toggleHelp(arg) {
    var e = document.getElementById(arg.helpdiv);

    e.innerHTML = arg.help;
    toggleVisibility(arg.helpdiv);
}

function darken(id) {
    var e = document.getElementById(id);

    e.style.visibility = 'hidden';
    e.innerHTML;
}

function lighten(id) {
    var e = document.getElementById(id);

    e.style.visibility = 'visible';
    e.innerHTML;
}

function datait() {
    var d = new Date();
    var g = ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato'];
    var m = ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'];

    return g[d.getDay()] + ' ' + d.getDate() + ' ' + m[d.getMonth()] + ' ' + d.getFullYear();
}

var calcalobj = new Object();
var calcaldiv = new Object();

calcalobj.bere = [
		  ['latte', 
		   'quanti litri di latte bevi un una settimana', 
		   'litri', 
		   'nell\'allevamento delle bovine:<ul><li>emissioni dirette di metano (metabolismo animale)</li><li>coltivazione dei foraggi e produzione di mangimi per l\'alimentazione delle bovine, (utilizzo di fertilizzanti: processi energivori)</li></ul>', 
		   'nell\'allevamento delle bovine:<ul><li>coltivazione dei foraggi e produzione di mangimi per l\'alimentazione delle bovine</li><li>refrigerazione del latte munto</li></ul>',
		   '<ul><li>refrigerazione del latte</li><li>produzione di fertilizzanti per le coltivazioni ad uso zootecnico</li></ul>',
		   'elettricità da gas naturale, in prevalenza russo',
		   'LCA Food DK',
		   0.65, 
		   58,
		   3.8],
		  ['acqua del rubinetto', 
		   'quanti litri di acqua bevi in una settimana', 
		   'litri', 
		   'consumo energia elettrica per estrazione e meccanismi di pompaggio acqua', 
		   '<ul><li>materia prima</li><li>energia idroelettrica</li></ul>',
		   'consumo energia elettrica (porzione idrolettrica) per estrazione e meccanismi di pompaggio acqua',
		   'mix europeo rete elettrica a medio voltaggio',
		   'Ecoinvent',
		   0.0003,
		   3.5,
		   0.006],
		  ['coca cola', 
		   'quanti litri di coca cola bevi in una settimana', 
		   'litri', 
		   'produzione dello zucchero (processo energivoro)',
		   'coltivazione della barbabietola da zucchero',
		   '<ul><li>produzione dello zucchero (processo energivoro)</li><li>produzione della bottiglia in plastica</li><li>trasporti</li></ul>',
		   'mix italiano dell\'elettricità ad uso finale',
		   'IVAM LCA3',
		   0.17,
		   75, 
		   2.8]
		  ];
calcalobj.fumare = [
		    ['sigarette di tabacco', 
		     'quante sigarette fumi al giorno', 
		     '', 
		     '<ul><li>coltivazione del tabacco</li><li>essiccazione del tabacco</li></ul>', 
		     '',
		     '<ul><li>coltivazione del tabacco</li><li>essiccazione del tabacco</li></ul>', 
		     'petrolio greggio, gas naturale e carbone',
		     'Input-Output USA',
		     0.1,
		     0, 
		     1.35]
		    ];
calcalobj.mangiare = [
		      ['pane', 
		       'quanti chili di pane mangi in una settimana', 
		       'kg', 
		       'coltivazione del frumento (pratiche agricole, utilizzo di fertilizzanti e prodotti di sintesi chimica)',
		       'coltivazione del frumento',
		       '<ul><li>coltivazione del frumento (pratiche agricole, utilizzo di fertilizzanti e prodotti di sintesi chimica)</li><li>produzione del pane</li></ul>',
		       'elettricità da gas naturale, in prevalenza russo',
		       'LCA Food DK',
		       0.54, 
		       48,
		       4.7],
		      ['prosciutto', 
		       'quanti etti di prosciutto compri alla volta', 
		       'hg', 
		       'nell\'allevamento dei suini:<ul><li>alimentazione: coltivazioni (macchine agricole e utilizzo fertilizzanti) e produzioni mangimi</li><li>consumi energetici</li></ul>', 
		       'allevamento dei suini',
		       'nell\'allevamento dei suini:<ul><li>alimentazione: coltivazioni (macchine agricole e utilizzo fertilizzanti) e produzioni mangimi</li><li>consumi energetici</li></ul>', 
		       'elettricità da gas naturale, in prevalenza russo',
		       'LCA Food DK',
		       0.215,
		       23.3, 
		       1.43],
		      ['formaggio', 
		       'quanti chili di formaggio compri in una settimana', 
		       'kg', 
		       '<ul><li>allevamento delle bovine per la produzione del latte</li><li>processi industriali di trasformazione del formaggio</li></ul>', 
		       '<ul><li>allevamento delle bovine per la produzione del latte</li><li>processi industriali di trasformazione del formaggio</li></ul>', 
		       '<ul><li>allevamento delle bovine per la produzione del latte</li><li>processi industriali di trasformazione del formaggio</li></ul>', 
		       'elettricità da gas naturale, in prevalenza russo',
		       'LCA Food DK',
		       6.5,
		       630,
		       45.5],
		      ['gelato', 
		       'quanti euro di gelato compri alla volta', 
		       'euro', 
		       '<ul><li>produzione agricola degli ingredienti di base (latte, frutta, cioccolato, zucchero)</li><li>trasformazione del gelato</li></ul>',
		       '',
		       '<ul><li>produzione agricola degli ingredienti di base (latte, frutta, cioccolato, zucchero)</li><li>trasformazione del gelato</li><li>produzione di freddo (processo energivoro)</li></ul>',
		       'petrolio greggio, gas naturale e carbone',
		       'Input-Output USA',
		       1.5,
		       0,
		       21]
		      ];
calcalobj.rilassarsi = [
			['computer', 
			 'per quante ore al giorno stai al computer', 
			 'ore', 
			 'consumo energia elettrica',
			 'produzione energia elettrica',
			 'consumo energia elettrica',
			 'mix italiano rete elettrica a basso voltaggio',
			 'Ecoinvent', 
			 0.081, 
			 600,
			 1.1],
			['libri', 
			 'quanti libri leggi in un anno', 
			 '', 
			 '<ul><li>materie prime per la produzione della carta (cellulosa, ecc.)</li><li>processo di stampa</li></ul>', 
			 'materie prime per la produzione della carta (acqua, ecc.)', 
			 '<ul><li>materie prime per la produzione della carta</li><li>processo di stampa</li></ul>', 
			 'mix europeo rete elettrica a medio voltaggio',
			 'ETH-ESU 96',
			 0.8,
			 520,
			 3.8],
			['giornali o fumetti', 
			 'quanti giornali compri alla settimana', 
			 '', 
			 '<ul><li>materie prime per la produzione della carta (cellulosa, ecc.)</li><li>processo di stampa</li></ul>', 
			 'materie prime per la produzione della carta (acqua, ecc.)', 
			 '<ul><li>materie prime per la produzione della carta</li><li>processo di stampa</li></ul>', 
			 'mix europeo rete elettrica a medio voltaggio',
			 'ETH-ESU 96',
			 0.037,
			 400,
			 0.73],
			['i-pod', 
			 'per quante ore al giorno ascolti l\'i-pod', 
			 'ore', 
			 'consumo energia elettrica',
			 'produzione energia elettrica',
			 'consumo energia elettrica',
			 'mix italiano rete elettrica a basso voltaggio',
			 'Ecoinvent', 
			 0.00062, 
			 4.6,
			 0.01]
			];
calcalobj.muoversi = [
		      ['autobus', 
		       'quanti chilometri al giorno fai in autobus', 
		       'km', 
		       '<ul><li>consumo carburante</li><li>produzione autobus</li><li>produzione infrastrutture</li></ul>', 
		       '<ul><li>consumo carburante</li><li>produzione autobus</li><li>produzione infrastrutture</li></ul>', 
		       '<ul><li>consumo carburante</li><li>produzione autobus</li><li>produzione infrastrutture</li></ul>', 
		       'mix italiano rete elettrica a medio voltaggio',
		       'Ecoinvent',
		       0.05,
		       160,
		       0.91],
		      ['scooter', 
		       'quanti chilometri fai con lo scooter in una settimana', 
		       'km', 
		       '<ul><li>consumo carburante</li><li>produzione scooter</li><li>produzione infrastrutture</li></ul>', 
		       '<ul><li>consumo carburante</li><li>produzione scooter</li><li>produzione infrastrutture</li></ul>', 
		       '<ul><li>consumo carburante</li><li>produzione scooter</li><li>produzione infrastrutture</li></ul>', 
		       'petrolio',
		       'IDEMAT',
		       0.08,
		       250,
		       0.86],
		      ['auto a benzina', 
		       'quanti chilometri percorri all\'anno in auto', 
		       'km', 
		       '<ul><li>consumo carburante</li><li>produzione automobile</li><li>produzione infrastrutture</li></ul>', 
		       '<ul><li>consumo carburante</li><li>produzione automobile</li><li>produzione infrastrutture</li></ul>', 
		       '<ul><li>consumo carburante</li><li>produzione automobile</li><li>produzione infrastrutture</li></ul>', 
		       'petrolio',
		       'Ecoinvent',
		       0.25,
		       620, 
		       3.2],
		      ['automobile diesel', 
		       'quanti chilometri percorri all\'anno in auto', 
		       'km', 
		       '<ul><li>consumo carburante</li><li>produzione auto diesel</li><li>produzione infrastrutture</li></ul>', 
		       '<ul><li>consumo carburante</li><li>produzione auto diesel</li><li>produzione infrastrutture</li></ul>', 
		       '<ul><li>consumo carburante</li><li>produzione auto diesel</li><li>produzione infrastrutture</li></ul>', 
		       'diesel',
		       'IDEMAT',
		       0.17,
		       550,
		       2.8]
		      ];
	       
	    
calcaldiv.help = '<ul><li><b>LCA (Life Cycle Assessment - valutazione del ciclo di vita)</b>: metodologia scientifica che consente di calcolare degli indicatori quantitativi dell\'impatto ambientale di grande parte delle attività economiche e non.<br>La metodologia LCA tiene conto di tutti i processi coinvolti in un\'attività, prima l\'estrazione di risorse, poi la produzione o la trasformazione, l\'impiego di energia, il trasporto, l\'uso, e per ultimo lo smaltimento.<br>Alla fine di uno studio di impatto ambientale LCA vengono calcolati dei punteggi relativi a diversi tipi di  danno, come l\'impatto sulla salute, la riduzione della biodiversità, il consumo di risorse non rinnovabili e il costo economico.<br><i>I numeri macinati da questa calcolatrice sono il risultato di studi LCA approfonditi.</i></li><li><b>kg CO<span style="vertical-align: sub; font-size: smaller">2</span> equivalente</b>: unità di misura che permette di pesare insieme le emissioni dei vari gas serra aventi differenti effetti sul clima (CO<span style="vertical-align: sub; font-size: smaller">2</span>, CH<span style="vertical-align: sub; font-size: smaller">4</span>, NO<span style="vertical-align: sub; font-size: smaller">2</span>, ecc.)</li><li><b>risorse non rinnovabili</b>: sono quelle che si esauriscono con l\'uso, o comunque, si consumano in tempi più brevi di quelli necessari per la loro formazione</li><li><b>mix energetico italiano</b>: la corrente elettrica in Italia costa (sia da un punto di vista economico che ambientale) circa il 40% in più che nel resto d\'Europa. Costa ad esempio il doppio di quella prodotta in Francia (con una forte componente di energia nucleare) e quasi triplo di quella prodotta in Svezia (in gran parte idroelettrico). Un costo così elevato è dovuto ad un mix di centrali elettriche ancora sbilanciato verso l\'utilizzo di risorse pregiate e costose (come il petrolio) o comunque di provenienza estera (come il gas naturale)</li><li><b>dettagli del calcolo</b>: i criteri adottati per il calcolo dell\'impatto corrispondono al metodo <a href="http://www.sph.umich.edu/riskcenter/jolliet/impact2002+.htm">IMPACT 2002+</a></li><li><b>per ulteriori informazioni</b>: <a href="http://www.lca-lab.com">LCA-lab</a></li></ul>';
calcaldiv.infodiv = 'lcainfo';
calcaldiv.helpdiv = 'lcahelp';
calcaldiv.calcdiv = 'lcalcal';
calcaldiv.textdiv = 'lcaltxt';


function calcalatt(e) {
    var id = e.parentNode.id;
    var v = calcalobj[id];
    var s, i, j;

    darken(calcaldiv.infodiv);
    darken(calcaldiv.helpdiv);
    subst(calcaldiv.calcdiv, '');
    for(j in calcalobj)
	if(j == id) {
	    s = '<table>';
	    for(i = 0; i < v.length; i++) 
		s += '<tr><td style="text-align: right"><div style="font-style: italic; color: #008080; cursor: pointer" onclick="calcalsel(\'' +
		    id + '\', ' + i + ')">' + v[i][0] + '</div></td></tr>'; 
	    s += '</table>';
	    subst(id, s);
	} 
	else 
	    subst(j, '<div style="font-style: italic; color: #008080; cursor: pointer" onclick="calcalatt(this)">' + j + '</div>');
}

function calcalsel(id, idx) {
    var v = calcalobj[id][idx];
    var s = v[1] + '? <input id="' + calcaldiv.textdiv + '" onkeyup="calcalcalc(\'' + id + '\', ' + idx + ')" />';

    subst(calcaldiv.calcdiv, s);
    document.getElementById(calcaldiv.textdiv).focus();
}


function calcalcalc(id, idx) {
    if(kid.ret) {
	var e = document.getElementById(calcaldiv.textdiv);
	var v = calcalobj[id][idx];
	var s = e.value.replace(/\./,',');
	var n = new Number(e.value.replace(/,/,'.'));

	if (isNaN(n)) {
	    e.value = s + ' non è un numero';
	    e.select();
	}
	else {
	    s = '<br><table><tr><td colspan="2">Con ' + s + 
		((v[2] == '')?' ':(' ' + v[2] + ' di ')) + v[0] + 
		' si producono ' + nbt(n*v[8]) + ' kg di CO<span style="vertical-align: sub; font-size: smaller">2</span> equivalente e si consumano ' + 
		((v[9] != 0)?nbt(n*v[9]) + ' litri di acqua e ':'')+ 
		nbt(n*v[10]) + ' megajoule di risorse non rinnovabili.' +
		'</td></tr><tr><td>&nbsp;</td></tr><tr><td valign="top"><i>Cause principali delle emissioni di CO<span style="vertical-align: sub; font-size: smaller">2</span></i>:</td><td>' + v[3] +
		((v[9] != 0)?'</td></tr><tr><td valign="top"><i>Cause principali del consumo di acqua</i>:</td><td>' + v[4]:'') +
		'</td></tr><tr><td valign="top"><i>Cause principali del consumo di risorse non rinnovabili</i>:</td><td>' + v[5] +
		'</td></tr></table><br><i>Fonte (banca dati LCA)</i>: ' + v[7];
	    subst(calcaldiv.calcdiv, s);
	    lighten(calcaldiv.infodiv);
	}
    }
}