var dataGlobal = new Object();
function populateBarChart(dataUrl, divId, title, mode, start, end) {
    $.ajax({
        url: dataUrl,
        data: {
            startTime: start.getTime(),
            endTime:  end.getTime(),
            mode: mode
        },
        type: "POST",
        success: function(data) {
            generateChart(data, title, dataUrl, divId)
        }
    });
};

function ofc_get_data(id) {
    return dataGlobal[id];
}

function pwz(value) {
    if (value < 10) {
        return "0"+value;
    } else {
        return value;
    }
}

function generateChart(data, title, dataUrl, divId) {
    var line1 = new Array();
    var ticks = new Array();
    $.each(eval(data), function(index, value) {
        line1.push(value.count);
        var d = new Date(value.date);
        ticks.push(pwz(d.getDate())+"."+pwz(d.getMonth()+1)+" "+pwz(d.getHours())+":"+pwz(d.getMinutes()));
    });

    var steps = 1;
    if (line1.length > 12 && line1.length < 24) {
        steps = 2;
    } else if (line1.length < 48) {
        steps = 4;
    } else if (line1.length < 96) {
        steps = 8;
    } else if (line1.length < 192) {
        steps = 16;
    } else {
        steps = 24;
    }

    value = {
        "elements": [
        {
            "type": "bar",
            "values": line1
        }
        ],
        "x_axis":{
            "stroke":      1,
            "tick_height": 10,
            "colour":      "#d000d0",
            "grid_colour": "#00ff00",
            "labels":      {
                "steps": steps,
                "rotate": 270,
                "labels": ticks
            }
        },
        "title": {
            "text": title
        }
    };

    dataGlobal[dataUrl] = JSON.stringify(value);

    swfobject.embedSWF(
        "/flash/open-flash-chart.swf", divId, "1100", "400",
        "9.0.0", "expressInstall.swf", {
            "get-data":"ofc_get_data",
            "id": dataUrl
        });
}
