// -------------------------------------------------------------------------------------------
// Declaració de variables, funcions generals de dades historiques.
//

// -------------------------------------------------------------------------------------------
// Dia i hora d'actualització del fitxer.
var actual_dia_hora_10  = '';
var actual_dia_hora_dia  = '';
function up_Dia_Hora(camp1, camp2, camp3)
{
 if (camp1 == '10')
     actual_dia_hora_10   = camp2 + ' ' + camp3;
 if (camp1 == 'Dia')
     actual_dia_hora_dia  = camp2 + ' ' + camp3;
}


// -------------------------------------------------------------------------------------------
var nQuantsRegistres = 0;

var eDia  = new Array("");
var eRegistre = new Array(0);
var eTemp_Avg = new Array(0);
var eTemp_Max = new Array(0);
var eTemp_Tmx = new Array("");
var eTemp_Min = new Array(0);
var eTemp_Tmn = new Array("");
var eHum_Rel_Avg = new Array(0);
var eHum_Rel_Max = new Array(0);
var eHum_Rel_Tmx = new Array("");
var eHum_Rel_Min = new Array(0);
var eHum_Rel_Tmn = new Array("");
var eRad_Solar_Ac_Tot = new Array(0);
var eVv_Mit = new Array(0);
var eDv_Mit = new Array(0);
var eDesv_St_Dv = new Array(0);
var eVel_Vent_Max = new Array(0);
var eVel_Vent_Tmx = new Array("");
var eVel_Vent_Smm = new Array(0);
var ePluja_Tot = new Array(0);
var ePressio_Avg = new Array(0);
var ePressio_Max = new Array(0);
var ePressio_Tmx = new Array("");
var ePressio_Min = new Array(0);
var ePressio_Tmn = new Array("");
var eBateria_Max = new Array(0);
var eBateria_Tmx = new Array("");
var eBateria_Min = new Array(0);
var eTemp_Int_Max = new Array(0);
var eTemp_Int_Tmx = new Array("");
var eTemp_Int_Min = new Array(0);

// -------------------------------------------------------------------------------------------
// Declaració de variables, funcions generals de dades diaries.
//
var nRegistresDiaris = 0;

var e10Dia  = new Array("");
var e10Registre = new Array(0);
var e10Temp_Avg = new Array(0);
var e10Hum_Rel_Avg = new Array(0);
var e10Rad_Solar_Ac_Tot = new Array(0);
var e10Vv_Mit = new Array(0);
var e10Dv_Mit = new Array(0);
var e10Desv_St_Dv = new Array(0);
var e10Vel_Vent_Max = new Array(0);
var e10Vel_Vent_Smm = new Array(0);
var e10Pluja_Tot = new Array(0);
var e10Pressio_Avg = new Array(0);
var e10WSDiag_Max = new Array(0);
var e10c_no_vent = new Array(0);
var e10Pluja_diaria = new Array(0);
var e10Pluja_mensual = new Array(0);
var e10Pluja_anual = new Array(0);

// -------------------------------------------------------------------------------------------
// Afegeix les dades històriques que arriben de l'script.
//
function meteo_afegir()
{
 var nArguments = meteo_afegir.arguments.length;
 
 window.status = "Carregant dades ... " + nQuantsRegistres;
 eDia[nQuantsRegistres] =              meteo_afegir.arguments[0];
 eRegistre[nQuantsRegistres] =         meteo_afegir.arguments[1];
 eTemp_Avg[nQuantsRegistres] =         meteo_afegir.arguments[2];
 eTemp_Max[nQuantsRegistres] =         meteo_afegir.arguments[3];
 eTemp_Tmx[nQuantsRegistres] =         meteo_afegir.arguments[4];
 eTemp_Min[nQuantsRegistres] =         meteo_afegir.arguments[5];
 eTemp_Tmn[nQuantsRegistres] =         meteo_afegir.arguments[6];
 eHum_Rel_Avg[nQuantsRegistres] =      meteo_afegir.arguments[7];
 eHum_Rel_Max[nQuantsRegistres] =      meteo_afegir.arguments[8];
 eHum_Rel_Tmx[nQuantsRegistres] =      meteo_afegir.arguments[9];
 eHum_Rel_Min[nQuantsRegistres] =      meteo_afegir.arguments[10];
 eHum_Rel_Tmn[nQuantsRegistres] =      meteo_afegir.arguments[11];
 eRad_Solar_Ac_Tot[nQuantsRegistres] = meteo_afegir.arguments[12];
 eVv_Mit[nQuantsRegistres] =           meteo_afegir.arguments[13];
 eDv_Mit[nQuantsRegistres] =           meteo_afegir.arguments[14];
 eDesv_St_Dv[nQuantsRegistres] =       meteo_afegir.arguments[15];
 eVel_Vent_Max[nQuantsRegistres] =     meteo_afegir.arguments[16];
 eVel_Vent_Tmx[nQuantsRegistres] =     meteo_afegir.arguments[17];
 eVel_Vent_Smm[nQuantsRegistres] =     meteo_afegir.arguments[18];
 ePluja_Tot[nQuantsRegistres] =        meteo_afegir.arguments[19];
 ePressio_Avg[nQuantsRegistres] =      meteo_afegir.arguments[20];
 ePressio_Max[nQuantsRegistres] =      meteo_afegir.arguments[21];
 ePressio_Tmx[nQuantsRegistres] =      meteo_afegir.arguments[22];
 ePressio_Min[nQuantsRegistres] =      meteo_afegir.arguments[23];
 ePressio_Tmn[nQuantsRegistres] =      meteo_afegir.arguments[24];
 eBateria_Max[nQuantsRegistres] =      meteo_afegir.arguments[25];
 eBateria_Tmx[nQuantsRegistres] =      meteo_afegir.arguments[26];
 eBateria_Min[nQuantsRegistres] =      meteo_afegir.arguments[27];
 eTemp_Int_Max[nQuantsRegistres] =     meteo_afegir.arguments[28];
 eTemp_Int_Tmx[nQuantsRegistres] =     meteo_afegir.arguments[29];
 eTemp_Int_Min[nQuantsRegistres] =     meteo_afegir.arguments[30];

 nQuantsRegistres += 1;
}

// -------------------------------------------------------------------------------------------
// Afegeix les dades diaries que arriben de l'script.
//
function meteo_10_afegir()
{
 var nArguments = meteo_10_afegir.arguments.length;

 window.status = "Carregant dades ... " + nRegistresDiaris;

 e10Dia[nRegistresDiaris] =              meteo_10_afegir.arguments[0];
 e10Registre[nRegistresDiaris] =         meteo_10_afegir.arguments[1];
 e10Temp_Avg[nRegistresDiaris] =         meteo_10_afegir.arguments[2];
 e10Hum_Rel_Avg[nRegistresDiaris] =      meteo_10_afegir.arguments[3];
 e10Rad_Solar_Ac_Tot[nRegistresDiaris] = meteo_10_afegir.arguments[4];
 e10Vv_Mit[nRegistresDiaris] =           meteo_10_afegir.arguments[5];
 e10Dv_Mit[nRegistresDiaris] =           meteo_10_afegir.arguments[6];
 e10Desv_St_Dv[nRegistresDiaris] =       meteo_10_afegir.arguments[7];
 e10Vel_Vent_Max[nRegistresDiaris] =     meteo_10_afegir.arguments[8];
 e10Vel_Vent_Smm[nRegistresDiaris] =     meteo_10_afegir.arguments[9];
 e10Pluja_Tot[nRegistresDiaris] =        meteo_10_afegir.arguments[10];
 e10Pressio_Avg[nRegistresDiaris] =      meteo_10_afegir.arguments[11];
 e10WSDiag_Max[nRegistresDiaris] =       meteo_10_afegir.arguments[12];
 e10c_no_vent[nRegistresDiaris] =        meteo_10_afegir.arguments[13];
 e10Pluja_diaria[nRegistresDiaris] =     meteo_10_afegir.arguments[14];
 e10Pluja_mensual[nRegistresDiaris] =    meteo_10_afegir.arguments[15];
 e10Pluja_anual[nRegistresDiaris] =      meteo_10_afegir.arguments[16];

 nRegistresDiaris += 1;
}

// -------------------------------------------------------------------------------------------
// Retorna un número com a cadena amb un número concret de decimals.
//
function decimals(valor, decs)
{
var nou_valor = parseInt(valor * Math.pow(10,decs)) / Math.pow(10,decs);
    if (nou_valor == parseInt(nou_valor))
        nou_valor += '.0';
    return nou_valor;
}

// -------------------------------------------------------------------------------------------
// Retorna la direcció del vent, a partir de graus.
//
function dir_vent(graus)
{
 dir = '';
 if (graus>348.75 || graus<= 11.25) dir ='N';
 if (graus> 11.25 && graus<= 33.75) dir ='NNE';
 if (graus> 33.75 && graus<= 56.25) dir ='NE';
 if (graus> 56.25 && graus<= 78.75) dir ='ENE';
 if (graus> 78.75 && graus<=101.25) dir ='E';
 if (graus>101.25 && graus<=123.75) dir ='ESE';
 if (graus>123.75 && graus<=146.25) dir ='SE';
 if (graus>146.25 && graus<=168.75) dir ='SSE';
 if (graus>168.75 && graus<=191.25) dir ='S';
 if (graus>191.25 && graus<=213.75) dir ='SSW';
 if (graus>213.75 && graus<=236.25) dir ='SW';
 if (graus>236.25 && graus<=258.75) dir ='WSW';
 if (graus>258.75 && graus<=281.25) dir ='W';
 if (graus>281.25 && graus<=303.75) dir ='WNW';
 if (graus>303.75 && graus<=326.25) dir ='NW';
 if (graus>326.25 && graus<=348.75) dir ='NNW';
 return dir;
}

// -------------------------------------------------------------------------------------------
// El nom del vent.
//
function nom_vent(graus)
{
 dir = '';
 if (graus>337.5 || graus<= 22.5) dir ='Tramuntana';
 if (graus> 22.5 && graus<= 67.5) dir ='Gregal';
 if (graus> 67.5 && graus<=112.5) dir ='Llevant';
 if (graus>112.5 && graus<=157.5) dir ='Xaloc';
 if (graus>157.5 && graus<=202.5) dir ='Migjorn';
 if (graus>202.5 && graus<=247.5) dir ='Llebeig';
 if (graus>247.5 && graus<=292.5) dir ='Ponent';
 if (graus>292.5 && graus<=337.5) dir ='Mestral';
 return dir;
}

// -------------------------------------------------------------------------------------------
// De les dades (històriques i diaries) en retorna la data en forma dd.mm.aaaa.
//
function meteo_dia(quin_dia)
{
var txt = '';
    txt += quin_dia.substr(8,2) + '.' + quin_dia.substr(5,2) + '.' +quin_dia.substr(0,4);
    return txt;
}

// -------------------------------------------------------------------------------------------
// De les dades (històriques i diaries) en retorna la data i hora en forma dd.mm.aaaa hh:mm.
//
function meteo_dia_hora(quin_dia)
{
var txt = '';
    txt += quin_dia.substr(8,2) + '.' + quin_dia.substr(5,2) + '.' +quin_dia.substr(0,4);
    txt += ' ' + quin_dia.substr(11,5);
    return txt;
}

// -------------------------------------------------------------------------------------------
// De les dades (històriques i diaries) en retorna l'hora en forma hh:mm.
//
function meteo_hora(quin_dia)
{
var txt = '';
    txt += quin_dia.substr(11,5);
    return txt;
}

// -------------------------------------------------------------------------------------------
// Retorna un HTML amb les últimes dades d'avui.
//
function meteo_avui()
{
var txt = '';
var i   = nRegistresDiaris - 1;
var dd_mm_aa = e10Dia[i].substr(8,2) + "." + e10Dia[i].substr(5,2) + "." + e10Dia[i].substr(0,4);
var hh_mm_ss = e10Dia[i].substr(11,5);

    txt += '<tr><td align="center" colspan="2" class="fontTexte">' + dd_mm_aa + '<br>';
    txt += Hora_Local(dd_mm_aa, hh_mm_ss) + '  (' + hh_mm_ss + 'Z)' + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'Temperatura (ºC): '+ '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(e10Temp_Avg[i],1) + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'Humitat (%): ' + '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(e10Hum_Rel_Avg[i],1) + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'Pressió (Hpa): ' + '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(e10Pressio_Avg[i],1) + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'Vent (m/s): ' + '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(e10Vv_Mit[i],1) + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'Dir.Vent : ' + '</td>';
    txt += '<td align="right"class="fontDades">' + nom_vent(e10Dv_Mit[i],1) + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'Pluja actual (mm): ' + '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(e10Pluja_Tot[i],1) + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'Pluja diària (mm): ' + '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(e10Pluja_diaria[i],1) + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'Rad.Solar  (W/m²): ' + '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(e10Rad_Solar_Ac_Tot[i],1) + '</td></tr>';
    txt += '<tr><td align="right">&nbsp;</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'Punt rosada (ºC): ' + '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(punt_rosada(e10Temp_Avg[i], e10Hum_Rel_Avg[i]),1) + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'T. confort (ºC): ' + '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(temperatura_xafagor(e10Temp_Avg[i], e10Hum_Rel_Avg[i]),1) + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'T. sensació (ºC): ' + '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(wind_chill(e10Temp_Avg[i], e10Vv_Mit[i]),1) + '</td></tr>';
    txt += '<tr><td align="left" class="fontTexte">' + 'Índex humitat: ' + '</td>';
    txt += '<td align="right"class="fontDades">' + decimals(index_humitat(e10Temp_Avg[i], e10Hum_Rel_Avg[i]),1) + '</td></tr>';

    txt = '<table width="95%" align="center" border="0" cellpadding="0" cellspacing="0"><tr><td>' + txt + '</td></tr></table>';
    document.getElementById("tActual").innerHTML = txt;
}
