﻿AttachEvent(window, "onload", ScrollToCriteria);

/*
 * Scroll to the critera pane when the window loads
 */
function ScrollToCriteria() {
    var divCriteria = document.getElementById("divCriteria");
    if (divCriteria) {
        var pos = FindPosition(divCriteria);
        scroll(pos[0], pos[1]);
    }
}

/*
 * Fetch metadata
 */
function FetchMetadata(goals, targets, indicators, series) {
    // Collapse the search criteria div, and display the data one
    SetPanelVisible("divCriteria", false);
    SetPanelVisible("divMetadata", true);
    
    // Display the "Loading data" message
    var divMetadata = document.getElementById("divMetadata");
    divMetadata.innerHTML = GetProgressImage(label_Loading, null, "margin:80px;text-align:center;");

    if (xmlHttp) {
        xmlHttp.abort();
    }
    
    var url = "Handlers/MetadataHandler.ashx?ServiceName=FetchSeriesMetadata";
    url += BuildQueryStringParam("Goals", goals);
    url += BuildQueryStringParam("Targets", targets);
    url += BuildQueryStringParam("Indicators", indicators);
    url += BuildQueryStringParam("Series", series);

    SendXmlHttpRequest(url, OnDataFound, OnError);
}

/*
 * Event callback invoked after the FindSeries XmlHttpRequest has returned
 */
function OnDataFound(responseText) {
    var divMetadata = document.getElementById("divMetadata");
    divMetadata.innerHTML = GetProgressImage(label_Rendering, null, "margin:80px;text-align:center;");

    divMetadata.innerHTML = responseText && responseText != ""
        ? responseText
        : BuildMessageBox(label_NoResults, "warning");

    DiscardXmlHttpRequest();
}

/*
 * Invoked if an error is raised during an XmlHttpRequest
 */
function OnError(errorText) {
    var divMetadata = document.getElementById("divMetadata");
    divMetadata.innerHTML = BuildMessageBox(errorText, "error");
}
