/* YQL Chart Demo */

Array.prototype.max = function() {
    return Math.max.apply({},this)
}
Array.prototype.min = function() {
    return Math.min.apply({},this)
}

$(function () {
var host = "http://query.yahooapis.com/v1/public/yql";
var format = "json";
var env = "http://ghostbyte.com/datatables/eve/all.env";
var developer_key = "1D0CB68A603A0A4C04B66"
var callback = "?";

$("#msg").append("<li>Lib Loaded.</li>");

 $("#msg").ajaxComplete(function(event,request, settings){
   $(this).append("<li>Request Complete.</li>");
 });

 $("#msg").ajaxError(function(event, request, settings){
   $(this).append("<li>Error requesting page " + settings.url + "</li>");
 });

 $("#msg").ajaxSuccess(function(evt, request, settings){
   $(this).append("<li>Successful Request!</li>");
 });

 $("#loading").ajaxStart(function(){
   $(this).show();
 });

 $("#loading").ajaxStop(function(){
   $(this).hide();
 });



$("button").click(function () { 
    $("#msg").empty(); 
    $("#result").empty(); 
    $("#chart").gchart('destroy') 

    var q = "select * from eve-metrics.item.history where type_ids="+$("#typeID").val()+" and developer_key=@developer_key";
    $.getJSON("http://query.yahooapis.com/v1/public/yql?callback=?",{'q': q, 'format': format, 'env': env, 'developer_key': developer_key}, function(json){
        if (json.query.results) { 
            $("#msg").append("<li>Good result.</li>");
            $("#msg").append("<li>YQL user-time: " + json.query.diagnostics['user-time'] + "</li>");

            $("#result").append(" <tr> <th colspan='6'>"+json.query.results.type.name+" </th> </tr>");

            $("#result").append("<tr><th>Day</th><th>Average</th><th>Maximum</th><th>Minimum</th><th>Movement</th><th>Orders</th></tr>");
             var days = new Array();
             var average = new Array();
             var maximum = new Array();
             var minimum = new Array();
             var orders = new Array();
             $.each(json.query.results.type.global.history.day, function(i,item){
                days[i] = item.content; 
                average[i] = item.average; 
                maximum[i] = item.maximum; 
                minimum[i] = item.minimum; 
                orders[i] = item.orders; 
                $("#result").append("<tr><td>"+item.content+"</td><td>"+item.average+"</td><td>"+item.maximum+"</td><td>"+item.minimum+"</td><td>"+item.movement+"</td><td>"+item.orders+"</td></tr>");
              });
            $('#chart').gchart({
                title: json.query.results.type.name ,
                type: 'sparkline', 
                dataLabels: days.reverse(), 
                legend: 'right', 
                minValue: minimum.min(),
                maxValue: maximum.max(),
                series: [$.gchart.series('Max', maximum.reverse(), 'red', 'ffcccc'), 
                    $.gchart.series('Min', minimum.reverse(), 'green'), 
                    $.gchart.series('Avg', average.reverse(), 'black'),
                    $.gchart.series('Orders', orders.reverse(), 'blue','',0,orders.max())],
                axes: [$.gchart.axis('left', minimum.min(), maximum.max(), 'black', 'right'), 
                    $.gchart.axis('left', ['ISK'], [50], 'black', 'right'), 
                    $.gchart.axis('right', orders.min(), orders.max(),'blue', 'left'), 
                    $.gchart.axis('right', [''], [50], 'blue', 'left')] 
            }); 
    } else {
            $("#msg").append("<li>No results.</li>");
        }
    });
});
});
