var ids=new Array(55);
var names=new Array();
                    
                    
                  

function plotData(data){
    var names = data[0];
    data=data[1];
    var count= data.length;
    if(count>1){    
        var timeZone=-7;
        var splitdata= new Array();
        var dataspec=new Array();
        var j=0;
        for(j=1; j<data[0].length; j++){
            splitdata.push(new Array());
        }
        for (var i=0; i<count; i++){
            var row = data[i];
            var time = new Date(data[i][0]);
            var msecs=Date.parse(data[i][0]).getTime();
            data[i][0]=msecs+3600*1000*timeZone;
            for(j=1; j<row.length; j++){
                if(data[i][j]!=null){
                    
                    var floatdata= parseFloat(data[i][j]);
                    splitdata[j-1].push([data[i][0],floatdata]);
                }
            }
        }
                         
        for(j=0; j<data[0].length-1; j++){
            dataspec.push({
                label:names[j] ,
                data: splitdata[j]
            //                ,yaxis:j+1
            });
        }
        $.plot($("#graphContainer"),dataspec ,{
            xaxis: {
                mode: "time"
            // timeformat: "%y/%m/%d"
            }
        } );
    }
}
function getData(startDate,endDate){
    end=Date.parse(endDate);
    end.addDays(1);
    endDate=end.toString("yyyy-M-d H:m:ss");

    var start= new Date(startDate);
    var delta  = end.getTime()-start.getTime(); //time range in milliseconds
                        
    delta = delta / 1000/24/60/60;  //in days
    var interval= "m5";
    if(delta>10){
        interval="d";
    }else if(delta>4){
        interval="h";
    }else if(delta > 2){
        interval="m15";
    }
    
    if(ids.length>0){       
        var request = ("retrieveData.php?id=" +ids.join(",")+ "&startdate="+startDate+"&enddate="+endDate+"&type=json&interval="+interval);
        $.getJSON(request,plotData);
    }
}
            
function updateGraph(){
    ids=new Array();
    names=new Array();
    var inputs =document.getElementsByTagName("input");
    for (var j=0;j<inputs.length;j++) {
        if( inputs.item(j).checked==true){
            ids.push(inputs.item(j).value);
            names.push(inputs.item(j).id);
        }
    } 
    var startDate = $("#startdate").val();
    var endDate = $("#enddate").val();
    getData(startDate,endDate);
}


function download(){
    ids=new Array();
    var inputs =document.getElementsByTagName("input");
    for (var j=0;j<inputs.length;j++) {
        if( inputs.item(j).checked==true){
            ids.push(inputs.item(j).value);
        }
    } 
    var startDate = $("#startdate").val();
    var endDate = $("#enddate").val();
    var interval=$("#interval").val();
    window.location="./retrieveData.php?id=" +ids.join(",")+ "&startdate="+startDate+"&enddate="+endDate+"&interval="+interval;
}


function shiftDay(number){
    var startDate = Date.parse($("#startdate").val());
    var endDate = Date.parse($("#enddate").val());
    endDate.addDays(number);
    startDate.addDays(number);
     
    $("#startdate").val(startDate.toString("M/d/yyyy"))
    $("#enddate").val(endDate.toString("M/d/yyyy"))
    updateGraph();
   
}

function selectorOnLoad(){
    $(".datePicker").datepicker();  
    $(".sensorContainer").hide();
    $(".showHide").click(showHide);
    $(".showHide").eq(0).click();
    $(".idCheckbox input").eq(0).click()
    updateGraph();
}
                    
function graphTodayOnLoad(id){
    ids=[id];
    $.get("mostRecentDate.php?id="+id,plotMostRecent);

}

function plotMostRecent(date){
    var endDate =Date.parse(date)
    var startDate =Date.parse(date)
    startDate.addDays(-2);
    getData(startDate.toString("yyyy-M-d H:m:ss"),endDate.toString("yyyy-M-d H:m:ss"))
}
                    
function showHide(){
                        
    if($(this).html()=="Show"){
        $(this).siblings(".sensorContainer").show();
        $(this).html("Hide");
    }else{
        $(this).siblings(".sensorContainer").hide();
        $(this).html("Show");
    }
}
