Blame | Letzte Änderung | Log anzeigen | RSS feed
/*** jqPlot* Pure JavaScript plotting plugin using jQuery** Version: 1.0.8* Revision: 1250** Copyright (c) 2009-2013 Chris Leonello* jqPlot is currently available for use in all personal or commercial projects* under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL* version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can* choose the license that best suits your project and use it accordingly.** Although not required, the author would appreciate an email letting him* know of any substantial use of jqPlot. You can reach the author at:* chris at jqplot dot com or see http://www.jqplot.com/info.php .** If you are feeling kind and generous, consider supporting the project by* making a donation at: http://www.jqplot.com/donate.php .** sprintf functions contained in jqplot.sprintf.js by Ash Searle:** version 2007.04.27* author Ash Searle* http://hexmen.com/blog/2007/03/printf-sprintf/* http://hexmen.com/js/sprintf.js* The author (Ash Searle) has placed this code in the public domain:* "This code is unrestricted: you are free to use it however you like."**/(function($) {/*** Class: $.jqplot.ciParser* Data Renderer function which converts a custom JSON data object into jqPlot data format.* Set this as a callable on the jqplot dataRenderer plot option:** > plot = $.jqplot('mychart', [data], { dataRenderer: $.jqplot.ciParser, ... });** Where data is an object in JSON format or a JSON encoded string conforming to the* City Index API spec.** Note that calling the renderer function is handled internally by jqPlot. The* user does not have to call the function. The parameters described below will* automatically be passed to the ciParser function.** Parameters:* data - JSON encoded string or object.* plot - reference to jqPlot Plot object.** Returns:* data array in jqPlot format.**/$.jqplot.ciParser = function (data, plot) {var ret = [],line,temp,i, j, k, kk;if (typeof(data) == "string") {data = $.jqplot.JSON.parse(data, handleStrings);}else if (typeof(data) == "object") {for (k in data) {for (i=0; i<data[k].length; i++) {for (kk in data[k][i]) {data[k][i][kk] = handleStrings(kk, data[k][i][kk]);}}}}else {return null;}// function handleStrings// Checks any JSON encoded strings to see if they are// encoded dates. If so, pull out the timestamp.// Expects dates to be represented by js timestamps.function handleStrings(key, value) {var a;if (value != null) {if (value.toString().indexOf('Date') >= 0) {//here we will try to extract the ticks from the Date string in the "value" fields of JSON returned dataa = /^\/Date\((-?[0-9]+)\)\/$/.exec(value);if (a) {return parseInt(a[1], 10);}}return value;}}for (var prop in data) {line = [];temp = data[prop];switch (prop) {case "PriceTicks":for (i=0; i<temp.length; i++) {line.push([temp[i]['TickDate'], temp[i]['Price']]);}break;case "PriceBars":for (i=0; i<temp.length; i++) {line.push([temp[i]['BarDate'], temp[i]['Open'], temp[i]['High'], temp[i]['Low'], temp[i]['Close']]);}break;}ret.push(line);}return ret;};})(jQuery);