var firstrun = 1;
var selectedranges = 0;

function getandmake(lang,rlang) {
$("h3").empty();
$("span").attr("style","color:black");
$("span#"+lang).attr("style","color:red");

$.getJSON("http://debian.jeb.be/wml_"+lang+"_trans_stats.dat", function(datasets){
    
    // hard-code color indices to prevent them from shifting as account are turned on/off
    var i = 0;
    $.each(datasets, function(key, val) {
        val.color = i;
        ++i;
    });

	var options =    {
	        lines:  { show: true },
	        points: { show: true },
	        legend: { show: true, position: "nw" },
	        xaxis:  { mode: "time" },
		yaxis:  { ticks: 10 },
	        grid:   { hoverable: true, clickable: true },
	        selection: { mode: "x" }
	    };


    // insert checkboxes
    var choiceContainer = $("#choices");
    if (firstrun == 1) {
    choiceContainer.append("Show:");
var checkedList = new Array();
if ($(document).getUrlParam("checked")) {
	if ($(document).getUrlParam("checked").constructor == Array) {
		checkedList = $(document).getUrlParam("checked");
	} else {
		checkedList.push($(document).getUrlParam("checked"));
	}
} else {
	checkedList = ["Outdated", "Untranslated"];
}
    $.each(datasets, function(key, val) {
//alert(jQuery.inArray(val.label, val));

      if (jQuery.inArray(val.label, checkedList) >= 0 ) {
              choiceContainer.append('<br/><input type="checkbox" name="' + key +
                                     '" checked="checked" >' + val.label + '</input>');
      } else {
              choiceContainer.append('<br/><input type="checkbox" name="' + key +
                                     '" >' + val.label + '</input>');
      }
    });
    firstrun = 0;
    } 
    choiceContainer.find("input").click(plotAccordingToChoices);

    
    function showTooltip(x, y, contents) {
        $('<div id="tooltip">' + contents + '</div>').css( {
            position: 'absolute',
            display: 'none',
            top: y + 5,
            left: x + 5,
            border: '1px solid #fdd',
            padding: '2px',
            'background-color': '#fee',
            opacity: 0.80
        }).appendTo("body").fadeIn(200);
    }

    function getData(x1, x2) {
        var zoomdata = [];
       choiceContainer.find("input:checked").each(function () {
            var d = [];
            var nearx1 = [null, null];
            var nearx2 = [null, null];
            var key = $(this).attr("name");
            if (key && datasets[key]) {
		for ( var i in datasets[key]["data"]) {
			if ((datasets[key]["data"][i][0] >= x1) && (datasets[key]["data"][i][0] <= x2)) {
				d.push([datasets[key]["data"][i][0],datasets[key]["data"][i][1]]);
			} else {
				if ((datasets[key]["data"][i][0] < x1) && (datasets[key]["data"][i][0] > nearx1[0])) {
					nearx1 = datasets[key]["data"][i];
				} 
				if ((datasets[key]["data"][i][0] > x2) && ((datasets[key]["data"][i][0] < nearx2[0]) || (nearx2[0] == null))) {
					nearx2 = datasets[key]["data"][i];
				} 
			}
		}
		 d.unshift(nearx1);
		 d.push(nearx2);
                zoomdata.push({ label: key, data: d, color: datasets[key]["color"] });
	     }
        });
	return zoomdata;
    }

    function plotAccordingToChoices() {
        var data = [];

        choiceContainer.find("input:checked").each(function () {
            var key = $(this).attr("name");
            if (key && datasets[key])
                data.push(datasets[key]);
        });

    $("#late08").click(function () {
        $.plot($("#placeholder"), getData((new Date("2008/12/20")).getTime(), (new Date()).getTime()), $.extend(true, {}, options, {
		xaxis: { mode: "time", min: (new Date("2008/12/20")).getTime(), max: (new Date()).getTime() } 
        })
    );
});

	    // setup overview
	    var overview = $.plot($("#overview"), data, {
        	lines:  { show: true, lineWidth: 1 },
	        points: { show: false },
	        legend: { show: false },
	        xaxis:  { mode: "time" },
		yaxis:  { min: 0, ticks: 3 },
	        grid:   { hoverable: true, clickable: true },
	        selection: { mode: "x" },
	        shadowSize: 0,
      		grid: { color: "#999" },
	    }
	   );

    
        if (data.length > 0)
if ($(document).getUrlParam("start")) {
var starttime = parseInt($(document).getUrlParam("start"));
var Now = new Date();
	     var plot = $.plot($("#placeholder"), getData(starttime,Now.getTime()),
			$.extend(true, {}, options, {
				xaxis: { min: starttime }
			}));
} else {
	  if (selectedranges == 0) {
             var plot = $.plot($("#placeholder"), data, options);
	  } else {
	     var plot = $.plot($("#placeholder"), getData(selectedranges.xaxis.from, selectedranges.xaxis.to),
			$.extend(true, {}, options, {
				xaxis: { min: selectedranges.xaxis.from, max: selectedranges.xaxis.to }
			}));
			overview.setSelection(selectedranges, true);
	  }
}

    $("#placeholder").unbind("plotselected");
    $("#placeholder").bind("plotselected", function (event, ranges) {
        // do the zooming
        plot = $.plot($("#placeholder"), getData(ranges.xaxis.from, ranges.xaxis.to),
                      $.extend(true, {}, options, {
                          xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }
                      }));
		selectedranges = ranges;
        // don't fire event on the overview to prevent eternal loop
        overview.setSelection(ranges, true);
    });
    
    $("#overview").unbind("plotselected");
    $("#overview").bind("plotselected", function (event, ranges) {
        plot.setSelection(ranges);
    });



    }

    var previousPoint = null;
    $("#placeholder").unbind("plothover");
    $("#placeholder").bind("plothover", function (event, pos, item) {
        $("#x").text(pos.x.toFixed(2));
        $("#y").text(pos.y.toFixed(2));

            if (item) {
                if (previousPoint != item.datapoint) {
                    previousPoint = item.datapoint;
                    
                    $("#tooltip").remove();
                    var x = pos.x.toFixed(2);
                        var y = item.datapoint[1].toFixed(0);
                    
			var month=new Array(12);
			month[0]="Janary";
			month[1]="Febuary";
			month[2]="March";
			month[3]="April";
			month[4]="May";
			month[5]="June";
			month[6]="Juily";
			month[7]="August";
			month[8]="September";
			month[9]="October";
			month[10]="November";
			month[11]="December";

			var theDate = new Date(x/1);
			var dateString = theDate.getDate()+" "+month[theDate.getMonth()]+" "+theDate.getFullYear();

                    showTooltip(item.pageX, item.pageY,
                                item.series.label + " as of " + dateString + " = " + y);
                }
           }
            else {
                $("#tooltip").remove();
                previousPoint = null;            
            }
    });

    plotAccordingToChoices();


});
$("h3").append("Debian "+rlang+" WML translation statistics");
}
