# visualizer/1.1.2/js/render.js

Visualizer – Tables &amp; Charts Manager with Built-in AI Generator, version 1.1.2. 103 lines.

- Page: https://pluginprobe.com/plugins/visualizer/1.1.2/code/js/render.js
- Raw: https://pluginprobe.com/plugins/visualizer/1.1.2/raw/js/render.js
- Modified: 2013-07-21T20:36:32+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/visualizer/1.1.2/code/js/render.js#L10-L20`.

```javascript
(function(v, g) {
	var gv;

	v.objects = {};

	v.renderChart = function(id) {
		var chart, render, container, series, data, table, settings, i, j, row, date;

		chart = v.charts[id];
		series = chart.series;
		data = chart.data;
		settings = chart.settings;

		container = document.getElementById(id);
		table = new gv.DataTable({cols: series});

		render = v.objects[id] || null;
		if (!render) {
			render = chart.type == 'gauge'
				? 'Gauge'
				: chart.type.charAt(0).toUpperCase() + chart.type.slice(1) + 'Chart';

			render = new gv[render](container);
		}

		switch (v.charts[id].type) {
			case 'pie':
				if (settings.slices) {
					for (i in settings.slices) {
						if (settings.slices[i]['color'] == '') {
							delete settings.slices[i]['color'];
						}
					}
				}
				break;
			case 'line':
			case 'bar':
			case 'column':
			case 'area':
			case 'scatter':
			case 'candlestick':
				if (settings.series) {
					for (i in settings.series) {
						if (settings.series[i]['color'] == '') {
							delete settings.series[i]['color'];
						}
					}
				}
				break;
			case 'geo':
				if (settings.region != undefined && settings.region.replace(/^\s+|\s+$/g, '') == '') {
					settings['region'] = 'world';
				}
				break;
			case 'gauge':
				break;
			default:
				return;
		}

        for (i = 0; i < data.length; i++) {
			row = [];
			for (j = 0; j < series.length; j++) {
				if (series[j].type == 'date' || series[j].type == 'datetime') {
					date = new Date(data[i][j]);
					data[i][j] = null;
					if (Object.prototype.toString.call(date) === "[object Date]") {
						if (!isNaN(date.getTime())) {
							data[i][j] = date;
						}
					}
				}
				row.push(data[i][j]);
			}
			table.addRow(row);
        }

        render.draw(table, settings);
	};

	v.render = function() {
		for (var id in (v.charts || {})) {
			v.renderChart(id);
		}
	};

	g.load("visualization", "1", {packages: ["corechart", "geochart", "gauge"]});
	g.setOnLoadCallback(function() {
		gv = g.visualization;
		v.render();
	});
})(visualizer, google);

(function($, v) {
	var resizeTimeout;

	$(document).ready(function() {
		$(window).resize(function() {
			clearTimeout(resizeTimeout);
			resizeTimeout = setTimeout(v.render, 100);
		});
	});
})(jQuery, visualizer);
```
