var cnhkIntradayChart = { chart : null, type : null, fromdate : null, todate : null, mode : "desktop", container : "", lineWidth: 2, init : function(type){ var self = this; self.labels["edu"] = self.labels["zh_cn"]; self.labels["edu-zh_hk"] = self.labels["zh_hk"]; self.labels["edu-en_hk"] = self.labels["en_hk"]; self.labels["edu-zh_cn"] = self.labels["zh_cn"]; self.type = type; //self.mode = (window.innerWidth<991)?"mobile":"desktop"; $.getJSON('/?q=/'+lang+'/data/chart/cnhkIntradayChart/type/'+type, function(_data) { var data = self.decode(_data); $('#cnhkIntradayChartContainer').highcharts('StockChart',self.getJSON(data), function (chart){ self.chart = chart; self.drawBackground(); }); }); }, decode : function(_data){ return _data.mainData; }, colors : {szLine : "#88abd5", shLine : "#ed8b00", line3 : "#000"}, margin : {mobile: 70, desktop: 100}, getJSON : function(data){ var self = this; var sh = data.sh; var sz = data.sz; var upperlimit = data.upperlimit; var max = data.max; var min = data.min; var last_date = Highcharts.dateFormat('%Y-%m-%d', sh[0][0]); var endTime = new Date(last_date+' 17:00:00 GMT').getTime(); for (var i=0;i-1) { self.halfday = false; } }; return { chart : { useHTML: true, plotBorderWidth: 0, marginTop: 50, marginRight: 50, marginBottom: 30, height: 198, //width: 371, events: { redraw: function(event) { self.redraw(); } } }, plotOptions: { series: { grouping: false } }, tooltip: { useHTML: true, formatter: function() { var _html = '
'+Highcharts.dateFormat('%Y-%m-%d', this.x)+' '+Highcharts.dateFormat('%H:%M', this.x)+''; var name_sh = (self.type=="NB")?self.labels[lang].nb_sh:self.labels[lang].sb_sh; var name_sz = (self.type=="NB")?self.labels[lang].nb_sz:self.labels[lang].sb_sz; if(sh[this.points[0].point.index][1]!=null){ var number = formatTurnover(sh[this.points[0].point.index][1]*100000000, lang, ''); if(lang=="en_hk"){ number = formatTurnover(sh[this.points[0].point.index][1]*1000000000, lang, ''); } number = number.replace("+", self.labels[lang].inText); number = number.replace("-", self.labels[lang].outText); _html += '
'+self.labels[lang].sh+' ('+name_sh+') : '+number+''; }else{ _html += '
'+self.labels[lang].sh+' ('+name_sh+') : - '; } if(sz[this.points[0].point.index]!=null){ var number = formatTurnover(sz[this.points[0].point.index][1]*100000000, lang, ''); if(lang=="en_hk"){ number = formatTurnover(sz[this.points[0].point.index][1]*1000000000, lang, ''); } number = number.replace("+", self.labels[lang].inText); number = number.replace("-", self.labels[lang].outText); _html += '
'+self.labels[lang].sz+' ('+name_sz+') : '+number+''; }else{ _html += '
'+self.labels[lang].sz+' ('+name_sz+') - '; } if(lang=="en_hk"){ _html += '
'+self.labels[lang].upperlimit+': '+upperlimit/10+self.labels[lang].unit; }else{ _html += '
'+self.labels[lang].upperlimit+': '+upperlimit+self.labels[lang].unit; } return _html; }, }, rangeSelector : { inputEnabled:false, enabled: false }, xAxis:[ { type: 'datetime', gridLineWidth: 0, lineWidth: 0.5, tickWidth: 0, tickColor: '#ddd', lineColor: '#ddd', tickmarkPlacement: 'on', labels: { style: {color: "#000"}, rotation: 0, formatter : function() { //var value = Highcharts.dateFormat('%H:%M', this.value); var value = Highcharts.dateFormat('%H:%M', this.value); //console.log(value); if (self.halfday) { return value; } else { if (value.indexOf('12:00')>-1||value.indexOf('09:00')>-1||value.indexOf('17:00')>-1) { return ''; } else if (value.indexOf('13:00')>-1) { return '12/13'; } else { return value; } } } }, tickPositioner: function () { //tickPositioner for daily var positions = []; var msec = 60*60*1000; var lastday = 0; data.sh[data.sh.length-1][0]; for (i=0;i-1||value.indexOf('09:')>-1||value.indexOf('17:00')>-1)) { if (lastday != _today){ lastday = _today; positions.push(data.sh[i][0]); } } } return positions; }, } ], yAxis: [ { title: { useHTML: false, text: "", }, labels:{ align:'right', x: 40, //y: 15, y: 5, formatter: function () { //return (this.isFirst)?"":this.value+self.labels[lang].unit; return this.value+self.labels[lang].unit; }, style: {color: "#000"} }, // max: max, min: min, opposite: true, tickAmount : 5, showLastLabel: true, gridLineDashStyle: 'Solid', // plotLines: [{ // value: upperlimit, // width: 2, // color: this.colors["line3"], // dashStyle: 'Solid' // }] } ], navigator : { enabled : false, }, scrollbar : { enabled : false }, series : [ { data : sh, useHTML: true, color: this.colors["shLine"], lineWidth: 2 }, { data : sz, useHTML: true, color: this.colors["szLine"], lineWidth: 2 } ], exporting: { enabled: false } }; }, redraw: function(){ var chart = this.chart; var offsetx,offsety; var self = this; var offsetx = 10; var offsety = 10; // if (lang=='en_hk'){ // self.addLegendText(offsetx, offsety, self.labels[lang].sh, 'chart1_0', this.colors["shLine"]); // self.addLegendText(offsetx+180, offsety, self.labels[lang].sz, 'chart1_1', this.colors["szLine"]); // }else{ var name_sh = (self.type=="NB")?self.labels[lang].nb_sh:self.labels[lang].sb_sh; var name_sz = (self.type=="NB")?self.labels[lang].nb_sz:self.labels[lang].sb_sz; self.addLegendText(offsetx, offsety, self.labels[lang].sh+" ("+name_sh+")", 'chart1_0', this.colors["shLine"]); self.addLegendText(offsetx, offsety+20, self.labels[lang].sz+" ("+name_sz+")", 'chart1_1', this.colors["szLine"]); //} //self.addLegendText(offsetx+260, offsety, self.labels[lang].upperlimit, 'chart1_2', this.colors["line3"]); }, addLegendText: function(x,y,text,i, color){ var chart = this.chart; $("#drawLegendRect"+i).remove(); $("#drawLegendText"+i).remove(); chart.renderer.rect(x, y, 25,8, 0).attr({ fill: color, 'stroke-width': 0, id : 'drawLegendRect'+i, zIndex: 5, }).add(); chart.renderer.label(text, x+30, y-8, '', '' + '', '' + '') .css({ color: color, fontSize:'12px' }) .attr({ zIndex: 5, id: 'drawLegendText'+i, }) .add(); }, drawBackground: function(){ var chart = this.chart; var offsetx,offsety; var self = this; this.redraw(); }, labels : { zh_hk :{ sh: "使用額度", sz: "使用額度", upperlimit: "額度上限", unit: "億", inText: "流入", outText: "流出", sb_sh: "滬港通", sb_sz: "深港通", nb_sh: "滬股通", nb_sz: "深股通", }, zh_cn :{ sh: "使用额度", sz: "使用额度", upperlimit: "额度上限", unit: "亿", inText: "流入", outText: "流出", sb_sh: "沪港通", sb_sz: "深港通", nb_sh: "沪股通", nb_sz: "深股通", }, en_hk :{ sh: "Quota Usage", sz: "Quota Usage", upperlimit: "Quota Limit", unit: "B", inText: "Buy ", outText: "Sell ", sb_sh: "Shanghai Southbound", sb_sz: "Shenzhen Southbound", nb_sh: "Shanghai Northbound", nb_sz: "Shenzhen Northbound", }, } }