﻿// client_customgraphs.js

var opts = {
    "enableEvents": true,
    "strokeColor": null,
    "colorScheme": PlotKit.Base.palette(PlotKit.Base.baseColors()[2]),
    "axisLabelFontSize": 9,
    "axisLabelWidth": 90
};

function genericTest(canvas, plotStyle, xTicks, data) {
        
    var l = new PlotKit.Layout(plotStyle, {"xTicks": xTicks} );
    //var success = l.addDatasetFromTable("data" + num, $("test" + num));
    var success = l.addDataset("ret", data);
    l.evaluate();
    //var c = $("test" + num_c + "canvas");
    var c = $(canvas + "canvas");
    var g = new PlotKit.CanvasRenderer(c, l, opts);
    g.render();

    // test events
    //MochiKit.Signal.connect(g, "onclick", alert_val);
}

function generateCanvas(divid) {
    var canvasid = divid + "canvas";
    var canvas = CANVAS({"id":canvasid, "width": "400", "height": "200"}, "");
    return canvas
}

function drawPortos(id_po_dist, data_values, data_labels)
{
    var canvas_name = "graph_po_" + id_po_dist;
    var canvas = $(canvas_name);
    
    if (canvas != null && canvas.innerHTML != "")
    {
        document.getElementById(canvas_name).style.display = "none";
        canvas.innerHTML = "";
    }
    else
    {
        canvas.appendChild(DIV({"class": "canvas"}, generateCanvas(canvas_name)));

        var _xTicks = [{label: data_labels[0], v: 1},
                        {label: data_labels[1], v: 2}, 
                        {label: data_labels[2], v: 3},
                        {label: data_labels[3], v: 4},
                        {label: data_labels[4], v: 5}];
        
        genericTest(canvas_name, "pie", _xTicks, data_values);
        document.getElementById(canvas_name).style.display = "block";
    }
}

function drawNUTIII(id_nutiii, data_values, data_labels)
{
    var canvas_name = "graph_nut_" + id_nutiii;
    var canvas = $(canvas_name);
    

    canvas.innerHTML = ""
    canvas.appendChild(DIV({"class": "canvas"}, generateCanvas(canvas_name)));

    var _xTicks = [{label: data_labels[0], v: 1},
                    {label: data_labels[1], v: 2}, 
                    {label: data_labels[2], v: 3},
                    {label: data_labels[3], v: 4}];
    
    genericTest(canvas_name, "pie", _xTicks, data_values);
    document.getElementById(canvas_name).style.display = "block";

} 

///Callback functions
function getPortosGraph(id_po_dist)
{
    DettachFuncCloseOut();

    var argument = "ControlType=MapTips";
    argument += "&EventArg=Portos";
    argument += "&ID=" + id_po_dist;
    var context = "";
    
    eval(m_getPortosGraphCallback);
}

function getNUTIIIEmpregoGraph(objid)
{
    DettachFuncCloseOut();
    
    var argument = "ControlType=MapTips";
    argument += "&EventArg=NUTIIIEmprego";
    argument += "&ID=" + objid;
    var context = "";
    
    eval(m_getNUTIIIEmpregoGraphCallback);
}

function getNUTIIIVABGraph(objid)
{
    DettachFuncCloseOut();

    var argument = "ControlType=MapTips";
    argument += "&EventArg=NUTIIIVAB";
    argument += "&ID=" + objid;
    var context = "";
    
    eval(m_getNUTIIIVABGraphCallback);
}


///Callback Responses
function getPortosGraphResponse(result,context)
{
    AttachFuncCloseOut();

    if (result.split('|')[0] == "false")
    {
        var canvas_name = "graph_po_" + result.split('|')[1];
        var canvas = $(canvas_name);
        
        canvas.innerHTML = result.split('|')[2];
        
        return;
    }
    
    var vals_label = result.split('|');
        
    var vals = new Array();
    var labels = new Array();
    
    for(var j=0; j<vals_label.length - 1; j++)
    {
        vals[j] = parseInt(vals_label[j].split('=')[0]);
        labels[j] = vals_label[j].split('=')[1];
    }
        
    var data_values = [[1,vals[0]], 
                        [2,vals[1]], 
                        [3,vals[2]], 
                        [4,vals[3]], 
                        [5,vals[4]]];
    
    
    drawPortos(vals_label[5],data_values, labels);
    
}

function getNUTIIIGraphResponse(result,context)
{
    AttachFuncCloseOut();
        
    if (result.split('|')[0] == "false")
    {
        var canvas_name = "graph_nut_" + result.split('|')[1];
        var canvas = $(canvas_name);
        
        canvas.innerHTML = result.split('|')[2];
        
        return;
    }
    
    var vals_label = result.split('|');
        
    var vals = new Array();
    var labels = new Array();
    
    for(var j=0; j<vals_label.length - 1; j++)
    {
        vals[j] = parseInt(vals_label[j].split('=')[0]);
        labels[j] = vals_label[j].split('=')[1];
    }
        
    var data_values = [[1,vals[0]], 
                        [2,vals[1]], 
                        [3,vals[2]],
                        [4,vals[3]]];
    
    
    drawNUTIII(vals_label[4],data_values, labels);
    
}