var graph_data = new Object();
var graph_info = new Array();
var graph_date = "";

function displayGraph(date, config) {
	var data = new Object();
	
	data.topic1 = config[0].topic;
	data.issue1 = config[0].issue;
	data.region1 = config[0].location;
	
	data.topic2 = config[1].topic;
	data.issue2 = config[1].issue;
	data.region2 = config[1].location;
	
	data.topic3 = config[2].topic;
	data.issue3 = config[2].issue;
	data.region3 = config[2].location;
	
	data.date = date;
	
	MAP = new Array();
	SET_DATE = date;

	//log(data);

	$.getJSON(
		'/index.php?eID=sig_frontend&what=getIssueTrackerData',
		data,
		function(r) {
			if (typeof(r[0].data) == 'undefined' && typeof(r[1].data) == 'undefined' && typeof(r[2].data) == 'undefined') {
				//alert("No data to display!");
				var img = $('<div></div>').append($('<img/>').attr('src', 'typo3conf/ext/sig_frontend/res/nodata.png')).attr('align', 'center');
				
				$('#placeholder').fadeOut(100, function() {
					$(this).empty();
					$(this).append(img);
					$(this).fadeIn(100);
				});
			}
			else {
				graph_data = r;
				var series = new Array();
				if (typeof(r[0].data) != 'undefined') {
					var obj = new Object();
					
					obj.color = '#CC0000';
					obj.data = new Array();
					obj.label = config[0].name;

					for (j=0; j<r[0].data.length; j++) {
						obj.data[j] = new Array();
						obj.data[j][0] = j+1;
						obj.data[j][1] = r[0].data[j].activity;

						MAP[j+1] = new Object();
						MAP[j+1].year = r[0].data[j].year;
						MAP[j+1].month = r[0].data[j].month;
					}
					
					series[series.length] = obj;
				}
				
				if (typeof(r[1].data) != 'undefined') {
					var obj = new Object();
					
					obj.color = '#39b54a';
					obj.data = new Array();
					obj.label = config[1].name;

					for (j=0; j<r[1].data.length; j++) {
						obj.data[j] = new Array();
						obj.data[j][0] = j+1;
						obj.data[j][1] = r[1].data[j].activity;

						MAP[j+1] = new Object();
						MAP[j+1].year = r[1].data[j].year;
						MAP[j+1].month = r[1].data[j].month;
					}
					
					series[series.length] = obj;
				}
				
				if (typeof(r[2].data) != 'undefined') {
					var obj = new Object();
					
					obj.color = '#0054a6';
					obj.data = new Array();
					obj.label = config[2].name;

					for (j=0; j<r[2].data.length; j++) {
						obj.data[j] = new Array();
						obj.data[j][0] = j+1;
						obj.data[j][1] = r[2].data[j].activity;

						MAP[j+1] = new Object();
						MAP[j+1].year = r[2].data[j].year;
						MAP[j+1].month = r[2].data[j].month;
					}
					
					series[series.length] = obj;
				}
				
				//log(series);
				graph_info = new Array();
				for(i=0; i<series.length; i++){
					graph_info[graph_info.length] = { "label": series[i].label,
													  "color":series[i].color};
				};
				
				graph_date = $('.date').selectedOptions().html();
				
				//log(graph_info);
				
				var options = {
					lines: { show: true },
					points: { show: true },
					grid: { hoverable: true },
					xaxis: {
						tickDecimals: 0,
						tickFormatter: function formatter(val, axis) {
							if (typeof(MAP[parseInt(val)])!='undefined')
								return MAP[parseInt(val)].month + '. ' + MAP[parseInt(val)].year;
							else
								return '';
						}
					}
				};
				
				if (SET_DATE > 12) {
					options.points.show = false;
				}
				
				$.plot($("#placeholder"), series, options);
				
				// Tooltip
				function showTooltip(x, y, contents) {
			        $('<div id="tooltip">' + contents + '</div>').css( {
			            position: 'absolute',
			            display: 'none',
			            top: y - 25,
			            left: x + 10,
			            border: '1px solid #fdd',
			            padding: '2px',
			            'background-color': '#fee',
			            'font-weight': 'bold',
			            'font-size': '11px',
			            opacity: 0.80
			        }).appendTo("body").fadeIn(200);
			    }
			
			    var previousPoint = null;
			    $("#placeholder").bind("plothover", function (event, pos, item) {
			       	//$("#x").text(pos.x.toFixed(2));
			        //$("#y").text(pos.y.toFixed(2));
			
			        //if ($("#enableTooltip:checked").length > 0) {
			            if (item) {
			                if (previousPoint != item.datapoint) {
			                    previousPoint = item.datapoint;

			                    $("#tooltip").remove();
			                    //var x = item.datapoint[0].toFixed(2),
			                    //    y = item.datapoint[1].toFixed(2);
			                    
			                    var text = MAP[item.datapoint[0]].month + ". " + MAP[item.datapoint[0]].year + " (" + item.datapoint[1]  + ")";
			                    
			                    showTooltip(item.pageX, item.pageY, text);
			                }
			            }
			            else {
			                $("#tooltip").remove();
			                previousPoint = null;            
			            }
			        //}
			    });

				// Tooltip
			}
		}
	);
}

