 function createDataTable(JSONtext) { var response = YAHOO.lang.JSON.parse(JSONtext); var Products = response.products; var FinalArray = new Array(); for(var i in Products) { Product = Products[i]; var TempArray = 'var ProductArray = [{'; for(var j in Product) { TempArray += '"'+j+'": "'+Product[j].replace(/&#(\d+);/g, function (m, n) { return String.fromCharCode(n); })+'",'; } TempArray = TempArray.substring(0, TempArray.length-1); TempArray += '}];'; eval(TempArray); FinalArray = FinalArray.concat(ProductArray); } var incomeData = new YAHOO.util.DataSource( FinalArray ); incomeData.responseType = YAHOO.util.DataSource.TYPE_JSARRAY; incomeData.responseSchema = { fields: [ "year", "revenue", "expense", "income" ] }; } var Utf8 = { encode : function (string) { string = string.replace(/\r\n/g,"\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; }, decode : function (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while ( i < utftext.length ) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } } 