/* 
 * Denne fila inneholder metoder for å oppdatere siste målinger tabellene
 */

/*
 *  Metode som genererer et XML kall til serveren for å oppdatere siste målinger
 *  Sender oss videre til uplastReading når dette er gjort.
 */
function updateLatestReadings(boeyid){
    createRequest();
    var uri = "ajax/updateLastReadings.ajx?boey="+boeyid;
    request.open("GET",uri,true);
    request.onreadystatechange=uplastReading;
    request.send(null);
}

/*
 *  Metode for å oppdatere tabellene for siste målinger basert på retur i form
 *  av en XML fil fra serveren
 */
function uplastReading(){
    if(request.readyState == 4){
        if(request.status == 200){
            var xmlDoc = request.responseXML;
            /*Henter ut tabellene og sletter disse for så å lage 2 nye som legges til i div'en*/
            var tablediv = document.getElementById("latestDataFrame");
            var watertable = document.getElementById("latestWaterData");
            var airtable = document.getElementById("latestAirData");
            if(watertable != null){tablediv.removeChild(watertable);}
            if(airtable != null){tablediv.removeChild(airtable);}
            watertable = document.createElement("table");
            airtable = document.createElement("table");
            tablediv.appendChild(airtable);
            tablediv.appendChild(watertable);
            watertable.setAttribute("id","latestWaterData");
            airtable.setAttribute("id","latestAirData");
            watertable.className = "latestMeasureTable";
            airtable.className = "latestMeasureTableRight";

            /*Setter opp waterdata tabellen*/
            var thead = document.createElement("thead");
            watertable.appendChild(thead);
            var tbody = document.createElement("tbody");
            watertable.appendChild(tbody);
            var tr = document.createElement("tr");
            thead.appendChild(tr);
            var dateheading = document.createElement("th");
            tr.appendChild(dateheading);
            dateheading.setAttribute("colSpan","5");
            dateheading.innerHTML = waterMainHeading;
            dateheading.className = "mainheadinglatest";
            tr = document.createElement("tr");
            thead.appendChild(tr);
            dateheading = document.createElement("th");
            tr.appendChild(dateheading);
            dateheading.innerHTML = waterDepthHeading;
            dateheading = document.createElement("th");
            tr.appendChild(dateheading);
            dateheading.innerHTML = waterTempHeading;
            dateheading = document.createElement("th");
            tr.appendChild(dateheading);
            dateheading.innerHTML = waterSalHeading;
            dateheading = document.createElement("th");
            tr.appendChild(dateheading);
            dateheading.innerHTML = waterCurrSpeedHeading;            
            dateheading = document.createElement("th");
            tr.appendChild(dateheading);
            dateheading.innerHTML = waterCurrDirHeading;   

            //Henter ut data fra xmlfila og lager vann tabellen
            var data = xmlDoc.getElementsByTagName("depth");
            var updateTime = "";
            var updateDate = "";
            for(i = 0; i < data.length; i++){
                var depth = data[i].getElementsByTagName("dval")[0].firstChild.nodeValue;
                updateDate = data[i].getElementsByTagName("date")[0].firstChild.nodeValue;
                updateTime = data[i].getElementsByTagName("time")[0].firstChild.nodeValue;
                var measures = data[i].getElementsByTagName("measure");

                var row = document.createElement("tr");
                tbody.appendChild(row);
                var dybde = document.createElement("td");
                row.appendChild(dybde);
                dybde.innerHTML = depth;
                var temp = document.createElement("td");
                var sal = document.createElement("td");
                var current = document.createElement("td");
                var currentHeading = document.createElement("td");
                row.appendChild(temp);
                row.appendChild(sal);
                row.appendChild(current);
                row.appendChild(currentHeading);
                for(var j = 0; j < measures.length;j++){
                    var measureType = measures[j].getElementsByTagName("type")[0].firstChild.nodeValue;
                    var value = measures[j].getElementsByTagName("value")[0].firstChild.nodeValue;
                    
                    if(measureType == "0"){
                        //temp
                        temp.innerHTML = value;
                    }else if(measureType == "1"){
                        //salt
                        sal.innerHTML = value;
                    }else if(measureType == "3"){
                        //strømfart
                        current.innerHTML = value;
                    }else if(measureType == "2"){
                        //strøm retning
                        currentHeading.innerHTML = value;
                    }
                }
            }
            
            /*Lager til luft tabellen*/            
            var air = xmlDoc.getElementsByTagName("air");
            measures = air[0].getElementsByTagName("measure");
            
            thead = document.createElement("thead");
            airtable.appendChild(thead);
            tbody = document.createElement("tbody");
            airtable.appendChild(tbody);
            tr = document.createElement("tr");
            thead.appendChild(tr);            
            dateheading = document.createElement("th");
            tr.appendChild(dateheading);
            dateheading.setAttribute("colSpan","4");
            dateheading.innerHTML = airHeading;
            dateheading.className = "mainheadinglatest";
            tr = document.createElement("tr");
            thead.appendChild(tr);
            var tempHeading = document.createElement("th");
            tr.appendChild(tempHeading);
            tempHeading.innerHTML = airTempHeading;
            var retningHeading = document.createElement("th");
            tr.appendChild(retningHeading);
            retningHeading.innerHTML = airCurrDirHeading;
            var vindHeading = document.createElement("th");
            tr.appendChild(vindHeading);
            vindHeading.innerHTML = airCurrSpeedHeading;

            /*Lager dataene i tabellen*/
            tr = document.createElement("tr");
            tbody.appendChild(tr);
            temp = document.createElement("td");
            var retning = document.createElement("td");
            var vind = document.createElement("td");
            tr.appendChild(temp);
            tr.appendChild(retning);
            tr.appendChild(vind);
            for(i = 0; i < measures.length; i++){
                measureType = measures[i].getElementsByTagName("name")[0].firstChild.nodeValue;
                value = measures[i].getElementsByTagName("value")[0].firstChild.nodeValue;                
                
                if(measureType == "2"){
                    //lufttemp
                    temp.innerHTML = value;
                }else if(measureType =="1"){
                    //retning
                    retning.innerHTML = value;
                }else if(measureType == "3"){
                    //vindstyrke
                    vind.innerHTML = value;
                }
            }
            
            /* Oppdaterer tida for siste uthenting av data */            
            var textElement = document.getElementById("latestDataHeading");
            var text = latestReadingHeading + updateDate + ", " +updateTime + "  lokal tid";// +" UTC";
            replaceText(textElement,text);

            /* Oppdaterer grafen slik at vi får en graf fra den valgte bøyen.*/
            updateGraphInit();
        }
    }
}
