google.load('visualization', '1', {packages : [ 'motionchart', 'columnchart', 'barchart', 'annotatedtimeline' ]});
google.setOnLoadCallback(drawAll);

var reqId = -1;
var ajaxDone = -1;

function checkAjax() {
	ajaxDone++;
	if(ajaxDone == 3) {
		$('div#overlay').fadeOut();
	}
}

function drawAll() {
/*
	drawTrendsChart();
	drawSourcesChart();
	drawTopicsChart();
	drawMotionChart();
*/
}

function drawTrendsChart() {
	reqId++;
    var options = {};
    options['displayAnnotations'] = true
    options['displayAnnotationsFilter'] = true
    options['thickness'] = 1
    options['allValuesSuffix'] = "VI"
    options['scaleColumns'] = []
    var query = new google.visualization.Query('http://isb.claraportal.com/cgi-bin/trends.py?reqId=' + reqId);
	query.send(function(response) {
		if (response.isError()) {
			alert('Error in query: ' + response.getMessage() + ' '
					+ response.getDetailedMessage());
			return;
		}
		
		var data = response.getDataTable();
		var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('trends_chart'));
		chart.draw(data, options);
		
	    google.visualization.events.addListener(chart, 'rangechange', rangeChanged);
	    function rangeChanged(range){
	    	$.scrollTo('#trends_chart', {duration: 1500, easing:'easeInOutQuart'});
	    	
	    	var startDate = range.start.getFullYear() + '-' + (range.start.getMonth()+1) + '-' + range.start.getDate();
	    	var endDate   = range.end.getFullYear() + '-' + (range.end.getMonth()+1) + '-' + range.end.getDate();
	    	$('#trends_connections').html('<img src="/cgi-bin/topic_graph.py?start_date=' + startDate + '&end_date=' + endDate + '&output=png" />');
	    }
	    checkAjax();
	});
}

function drawSourcesChart() {
	reqId++;
	var options = {};
	options['width'] = 400;
	options['height'] = 240;
	options['is3D'] = false;
	options['legend'] = 'label';
	options['colors'] = ['#555555','#ED1C24','#777777','#222222','#ED767B']
	options['enableTooltip'] = false;
	var query = new google.visualization.Query('http://isb.claraportal.com/cgi-bin/sources.py?reqId=' + reqId);
	query.send(function(response) {
		if (response.isError()) {
			alert('Error in query: ' + response.getMessage() + ' '
					+ response.getDetailedMessage());
			return;
		}
		
		var data = response.getDataTable();
		var chart = new google.visualization.ColumnChart(document.getElementById('sources_chart'));
		chart.draw(data, options);
		checkAjax();
	});
}

function drawTopicsChart() {
	reqId++;
    var options = {};
    options['width'] = 800;
    options['height'] = 450;
    options['is3D'] = false;
    options['isStacked'] = true;
    options['legend'] = 'right';
    options['enableTooltip'] = false;
    var query = new google.visualization.Query('http://isb.claraportal.com/cgi-bin/bars.py?reqId=' + reqId);
	query.send(function(response) {
		if (response.isError()) {
			alert('Error in query: ' + response.getMessage() + ' '
					+ response.getDetailedMessage());
			return;
		}
		
		var data = response.getDataTable();
		var chart = new google.visualization.BarChart(document.getElementById('topics_chart'));
		chart.draw(data, options);
		checkAjax();
	});
}

function drawMotionChart(aggregate) {
	reqId++;
	if(aggregate==undefined) { var aggregate = 0; }
	var options = {};
	options['state'] = '{"xZoomedIn":false,"orderedByY":false,"xZoomedDataMax":100,"sizeOption":"2","dimensions":{"iconDimensions":["dim0"]},"xZoomedDataMin":20,"yZoomedDataMin":0,"yZoomedIn":false,"yLambda":0,"iconKeySettings":[],"colorOption":"_UNIQUE_COLOR","duration":{"multiplier":1,"timeUnit":"W"},"xLambda":1,"stateVersion":3,"yAxisOption":"3","showTrails":false,"iconType":"BUBBLE","yZoomedDataMax":0,"xAxisOption":"4","playDuration":15,"nonSelectedAlpha":0.4,"time":"2008-12-08","orderedByX":false};';
	options['width'] = 850;
	options['height'] = 400;
	var query = new google.visualization.Query('http://isb.claraportal.com/cgi-bin/bubbles.py?reqId=' + reqId + '&aggregate=' + aggregate);
	query.send(function(response) {
		if (response.isError()) {
			alert('Error in query: ' + response.getMessage() + ' '
					+ response.getDetailedMessage());
			return;
		}
		
		var data = response.getDataTable();
		var chart = new google.visualization.MotionChart(document.getElementById('motion_chart'));
		chart.draw(data, options);
		checkAjax();
	});
}

