function handleOnlineEvent(online){
    assetId = online.getAttribute('id');
    isOnline = online.getAttribute("isOnline");

    var img = document.getElementById("sidebarOnline_" + assetId);
    var src = "/images/deviceoffline.png";
    if(isOnline == 'true'){
       src = "/images/deviceonline.png";
    }
    
    if(isDefined("assetOnlineEvent")){
        assetOnlineEvent(online);
    }
    if(img){
      img.setAttribute("src", src);
    }
}

function displaySidebarMessage(html){
    sidebarMessageElm = document.getElementById('sidebarMessage');
    sidebarMessageElm.innerHTML = html;
}

var autoUpdateRequestObject;
function generateSidebarRequest(){
    var url = '/servlet/LocateEventServlet';
    var params = "op=online";

    //Get a new request object, it seems more robust this way.
    autoUpdateRequestObject = createRequestObject();
    doAjaxCall(autoUpdateRequestObject, 'POST', url, processAutoUpdateResult, params);
}

function processAutoUpdateResult(){
    try{
        geomaxXMLHandler.processXML(autoUpdateRequestObject);
    }catch(e){}
}

geomaxXMLHandler.addGeomaxEventListener(geomaxXMLDefinition.ONLINE, handleOnlineEvent);
sidebarRefresh = new GeomaxAutoRefresh('sidebarRefresh');
sidebarRefresh.setDelay(20000);
sidebarRefresh.setRequestGenerator(generateSidebarRequest);
sidebarRefresh.run();

var openWindow;
function openOptionsWindow(id){
    if(openWindow){
        hideFloatingLayer(openWindow);
    }
    showFloatingLayer(id);
    openWindow = id;
}

var assetSelectedRequestObject;
function checkUncheck(me, assetId){
    assetSelectedRequestObject = createRequestObject();
    var url = '/servlet/AccountManager';
    var params = 'op=selectDeselectAsset&assetId=' + assetId + '&selected=' + me.checked;
    doAjaxCall(assetSelectedRequestObject, 'POST', url, processCheckUncheckResult, params);
}

function processCheckUncheckResult(){
    try{
        geomaxXMLHandler.processXML(assetSelectedRequestObject);
    }catch(e){}
}
