var homeIndexChart = { code : "", name : "HSI", period : "", container : "", chart:null, init : function(code, period, callback){ var self = this; if (code != ""){ self.code = code; self.name = code.toUpperCase(); self.name = (self.name == "AT")?"FHSI(AT)":((self.name == "FUR")?"FHSI":((self.name == "CEI")?"HSCEI":self.name)); } self.period = period; $.getJSON('/'+lang+'/data/chart/homeIndexChart?_='+Math.random()+'&code='+self.code+'&period='+period, function(_data) { var data = self.decode(_data); self.container = (self.container=='')?'#homeIndexChartContainer':'#'+self.container.replace("#",""); $(self.container).highcharts('StockChart', self.getJSON(data), function(chart){ self.chart = chart; if (callback!==undefined){ callback(chart,data); } //****************** if($(self.container).find(".link_table_a").length == 0){ $(self.container).find(".highcharts-container").attr("aria-hidden","true"); var _text = []; if (lang == "tc"){ _text[0] = "查看圖表指數數據"; _text[1] = "於表單查看指數數據"; }else if (lang == "sc"){ _text[0] = "查看图表指数数据"; _text[1] = "於表单查看指数数据"; }else{ _text[0] = "View detailed data"; _text[1] = "View Index chart detail from table"; } $(self.container).append(''+_text[1]+''); } //****************** }); }); }, decode : function(_data){ return _data; }, getJSON : function(_data){ var dp = 0; var close = []; var turnover = []; var data = _data.mainData; var fdata = _data.furtherData; var groupingUnits = [['minute',[5]], ['hour',[1]]]; for (i = 0; i < data.length; i++) { close.push([data[i][0], data[i][1]]); turnover.push([data[i][0], data[i][2]]); } var self = this; return { chart:{ spacing: [0, 0, 10, 0], marginLeft: 0, marginRight: 50, marginTop: 0, }, tooltip: { backgroundColor: 'none', borderWidth: 0, shadow: false, useHTML: true, padding: 0, formatter: function() { var stime; var last = addcomma(this.points[0].y); if (self.period == "month"){ stime = Highcharts.dateFormat('%Y-%m-%d', this.points[0].x); }else{ stime = Highcharts.dateFormat('%Y-%m-%d %H:%M', this.points[0].x); } var html = '
'+stime+'
'; var _name = self.name; if (self.name == "HSI"){ _name = self.labels()[lang].hsi; }else if (self.name == "HSCEI"){ _name = self.labels()[lang].hscei; }else if (self.name == "FHSI"){ _name = self.labels()[lang].fhsi; } html += '
'+_name+'
'+last+"
"; if (this.points[1] && this.points[1].y>0){ var turnover = addcomma(this.points[1].y/1000000)+ self.labels()[lang].unit_M; html += '
'+self.labels()[lang].turnover+'
'+turnover+"
"; } if ((self.code == "at" || self.code == "fur") && (self.period == "day")){ var p4change = this.points[0].y - ($("#indices_last4_val").text().replace(",","")*1); if (!isNaN(p4change)){ html += '
'+self.labels()[lang].last4+''+((p4change>0)?"+":"")+addcomma(p4change)+"pts
"; } } html += '
'; return html; } }, rangeSelector: { enabled: false, }, plotOptions: { series: { events: { mouseOver: function() { if (this.name=="ulast"){ this.graph.attr('stroke', '#005E59'); } }, mouseOut: function() { if (this.name=="ulast"){ this.graph.attr('stroke', '#00716C'); } } } } }, xAxis: { tickLength:3, gridLineWidth: 0, lineWidth: 0, tickColor: "#D7D8D6", lineColor: '#00000000', events: { setExtremes: function(e) { if(typeof(e.rangeSelectorButton)!== 'undefined'){ if (e.rangeSelectorButton.type == "all"){ }else{ } } } }, labels: { formatter : function() { if (self.period == "month"){ return Highcharts.dateFormat('%d/%m', this.value); }else if (self.period == "week"){ return Highcharts.dateFormat('%d/%m', this.value); }else{ return Highcharts.dateFormat('%H:%M', this.value); } } }, tickPositioner: function () { var positions = []; var lastday = 0; var msec; if (self.period == "month"){ msec = 60*60*24*7*1000; lastday = 0; }else if (self.period == "week"){ msec = 60*60*24*1000; lastday = Math.floor(close[0][0]/msec)*msec; }else{ msec = 60*60*2*1000; lastday = Math.floor(close[0][0]/msec)*msec; } for (i=0;i