-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.js
executable file
·118 lines (108 loc) · 2.73 KB
/
utils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/** Find a variable code inside 'Global'*/
function locateVariable(code) {
var localization={};//e.g {"level":"Water","sublevel":"Abstraction"}
localization.toString=function() {
var levelName=(function()
{
switch(localization.level)
{
case "Water": return translate('Water');break;
case "Waste": return translate('Waste');break;
default: return localization.level;break;
}
})();
if(localization.sublevel)
{
var sublevelName=(function()
{
switch(localization.sublevel)
{
default: return localization.sublevel; break;
}
})();
return levelName+"/"+sublevelName
}
else
return levelName;
};
for(var level in Global) {
for(var field in Global[level])
{
if(typeof(Global[level][field])=='object')
{
for(var subfield in Global[level][field])
{
if(code==subfield)
{
localization["level"]=level;
localization["sublevel"]=field;
return localization;
break;
}
}
}
else
{
if(code==field)
{
localization["level"]=level;
localization["sublevel"]=0;
return localization;
break;
}
}
}
}
return false;
}
//return directly to the variable object
function getVariable(code){
var loc=locateVariable(code);
if(!loc){
return false;
}else if(loc.sublevel){
return Global[loc.level][loc.sublevel][code];
}else{
return Global[loc.level][code];
}
}
/*convert number to formated string: i.e. "3.999,4" instead of 3999.4*/
function format(number,digits){
//default digits if not specified
digits=digits||2;
//for non applicable
if(number=="NA"){ return "<span style=color:#ccc>NA</span>"; }
//get the result string
var str=new Intl.NumberFormat('en-EN',{maximumFractionDigits:digits}).format(number);
//if "NaN" or "Infinity" display 'missing inputs'
if(str=="NaN" || !isFinite(number)) return "<span style=color:#666;font-size:10px>~"+translate('missing_inputs')+"</span>";
//return resulting string
return str;
}
/** Colors for GHG emissions */
var ColorsGHG = {
ws_KPI_GHG_elec :"#3366CC", //electricity
ws_KPI_GHG_ne :"#DC3912", //fuel
ww_KPI_GHG_elec :"#FF9900", //electricity
ww_KPI_GHG_ne_ch4_wwt:"#109618", //methane treated
ww_KPI_GHG_ne_n2o_tre:"#990099", //nitrogen treated
ww_KPI_GHG_ne_tsludge:"#0099C6", //transport
ww_KPI_GHG_ne_ch4_unt:"#DD4477", //methane untreated
ww_KPI_GHG_ne_n2o_unt:"#66AA00", //nitrogen untreated
ww_KPI_GHG_ne_engines:"#B82E2E", //fuel
}
var Utils={};//namespace
//return array of codes that use "code" in its formula
Utils.usedInBenchmarks=function(code)
{
var benchmarks=[];
for(var bm in RefValues)
{
var bm_formula=RefValues[bm];
if(bm_formula.toString().indexOf(code)+1)
{
benchmarks.push(bm);
}
}
return benchmarks;
}