<?xml version="1.0" encoding="UTF-8" ?> 
<Module>
  <ModulePrefs title="CloudDot Channel"
               title_url="http://cloud.labjack.com"
               description="Displays the latest record from your LabJack CloudDot channel."
               author="LabJack Support"
               author_email="support@labjack.com"
               screenshot="http://cloudgadget.labjack.com/CloudDotGadgetScreenshot.png"
               thumbnail="http://cloudgadget.labjack.com/CloudDotGadgetThumbnail.png" >
      <Require feature="dynamic-height"/>
      <Require feature="settitle"/>
  </ModulePrefs>
   <Content type="html"> 
     <![CDATA[
        <script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript">


var restBaseUrl = "http://cloudapi.labjack.com";
var username = "";

var UPDATE_MILLISECONDS = 900000;
var channelNameList = [];

function initCD(myusername, autoUpdate, callbackFunction) {
    username = myusername;
    $(".channel").each(function() {
        var thisChannelName = $(this).text();
        $(this).attr("cdChannelName", thisChannelName);
        channelNameList.push(thisChannelName);
    });
    updateChannelValues(callbackFunction);
    if (autoUpdate == true) {
        setInterval(function(){ 
            updateChannelValues(callbackFunction);
        }, UPDATE_MILLISECONDS);
    }
}

function updateChannelValues(callbackFunction) {
    for (var i in channelNameList) {
        if ("" != restBaseUrl) {
            $.getJSON(restBaseUrl + "/" + username + "/channels/" + channelNameList[i] +  ".json?callback=?",
                function(item) {
                    var readingAndUnits = "No recent reading";
                    var utcTime = "";
                    if (undefined != item.latestReading) {
                        readingAndUnits = item.latestReading.stringValue;
                        utcTime = item.latestReading.updated_at;
                    }
                    if (item.units != "" && item.units != null) {
                        readingAndUnits += " (" + item.units + ")";
                    }
                    if (undefined != gadgets.window) {
                        gadgets.window.setTitle(item.name);
                    } else {
                        readingAndUnits = item.name + ": " + readingAndUnits;
                    }
                    $(".channel[cdChannelName='" + item.nickname + "']").text(readingAndUnits).addClass("prettyDate").attr("title", utcTime).data("utcTime", utcTime);
                    if (undefined != gadgets.window)
                        gadgets.window.adjustHeight();
                    if (null != callbackFunction) {
                        callbackFunction(item);
                    }
                }
            );
        }
    }
}

            $(document).ready(function() {
                $("#the-channel").text("SiteIsUpText");
                initCD("islabjackup", true);
            });
        </script>
        <div id="the-channel" class="channel" style="font-size:300%;margin:20px 0;text-align:center;overflow:hidden;">Loading...</div>
     ]]> 
   </Content> 
</Module>

