1: <!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
2:
3: <div id="chart">Unable to load Flash content. The YUI Charts Control requires Flash Player 9.0.45 or higher. You can download the latest version of Flash Player from the <a href="http://www.adobe.com/go/getflashplayer">Adobe Flash Player Download Center</a>.</p></div>
4:
5: <script type="text/javascript">
6:
7: YAHOO.widget.Chart.SWFURL
8: = "http://yui.yahooapis.com/2.8.0r4/build/charts/assets/charts.swf";
9:
10: //used to format x axis labels
11: YAHOO.example.numberToCurrency = function(value) { 12: return YAHOO.util.Number.format(Number(value), { prefix: "$", thousandsSeparator: "," }); 13: }
14:
15: YAHOO.example.render = function() { 16: var incomeData = new YAHOO.util.DataSource(YAHOO.example.annualIncome);
17: incomeData.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
18: incomeData.responseSchema = { fields: ["year", "revenue", "expense", "income"] }; 19:
20: //--- chart
21: var seriesDef =
22: [
23: { 24: xField: "revenue",
25: displayName: "Revenue"
26: },
27: { 28: xField: "expense",
29: displayName: "Expense"
30: },
31: { 32: type: "line",
33: xField: "income",
34: displayName: "Income"
35: }
36: ];
37:
38: var currencyAxis = new YAHOO.widget.NumericAxis();
39: currencyAxis.labelFunction = "YAHOO.example.numberToCurrency";
40:
41: var mychart = new YAHOO.widget.BarChart("chart", incomeData, 42: { 43: series: seriesDef,
44: yField: "year",
45: xAxis: currencyAxis,
46: //only needed for flash player express install
47: expressInstall: "assets/expressinstall.swf"
48: });
49: }
50:
51:
60:
61: var JSONP = { 62: scriptCounter: 1,
63: callbacks: {}, 64: request: function(fullUrl, callback) { 65:
66: var ix = this.scriptCounter++;
67: var scriptId = 'JscriptId' + ix;
68:
69: var jsonp = "jsonp=" + encodeURIComponent("JSONP.callbacks[" + ix + "]"); 70: if (fullUrl.indexOf("?") != -1) { 71: jsonp = "&" + jsonp;
72: }
73: else { 74: jsonp = "?" + jsonp;
75: }
76:
77: this.buildScriptTag(scriptId, fullUrl + jsonp);
78: var captured = this;
79: this.callbacks[ix] = function(d) { 80: callback(d);
81: var s = document.getElementById(scriptId);
82: s.parentNode.removeChild(s);
83: captured.callbacks[ix] = null;
84: }
85: },
86: buildScriptTag: function(scriptId, fullUrl) { 87: // Keep IE from caching requests
88: var noCacheIE = '&noCacheIE=' + (new Date()).getTime();
89: var s = document.createElement("script"); 90:
91: // Add script object attributes
92: s.setAttribute("type", "text/javascript"); 93: s.setAttribute("src", fullUrl + noCacheIE); 94: s.setAttribute("id", scriptId); 95:
96: var headLoc = document.getElementsByTagName("head").item(0); 97: headLoc.appendChild(s);
98: }
99: };
100:
101: YAHOO.example.makeRequest = function() { 104: var uri = "http://jndtvbx64/mashpoint/1/$json$/Lists/Financial/AllItems.aspx/$Items$";
105: JSONP.request(uri, function(d) { 106: YAHOO.example.annualIncome = d.d;
107: YAHOO.example.render();
108: });
109: }
110:
111: //manipulating the DOM causes problems in ie, so create after window fires "load"
112: YAHOO.util.Event.addListener(window, "load", YAHOO.example.makeRequest);
113:
114: </script>
115: <!--END SOURCE CODE FOR EXAMPLE =============================== -->