var _sF={NullValue:"N/A",ZeroValue:"0",ThousandSeparator:!0},dataObject=function(){},stockFXData,_FXStreamingUtility,FXUtility;dataObject.prototype._parseRawData=function(n,t){for(var i=0;i0?"+":"=";return{value:(r=="+"?"+":"")+AAUtility.FormatPrice(i,2,_sF.ZeroValue,_sF.NullValue,_sF.ThousandSeparator,"%"),sign:r}}var n=this,t;!AAUtility.isNumber(n._LastValue)||!AAUtility.isNumber(n._Close1YearValue)||parseFloat(n._Close1YearValue)<=0?(n.PctChange1Year=_sF.NullValue,n.PctChange1YearChangeSign=""):(t=i(n._LastValue,n._Close1YearValue),n.PctChange1Year=t.value,n.PctChange1YearChangeSign=t.sign);!AAUtility.isNumber(n._LastValue)||!AAUtility.isNumber(n._Close3MonthValue)||parseFloat(n._Close3MonthValue)<=0?(n.PctChange3Month=_sF.NullValue,n.PctChange3MonthChangeSign=""):(t=i(n._LastValue,n._Close3MonthValue),n.PctChange3Month=t.value,n.PctChange3MonthChangeSign=t.sign);!AAUtility.isNumber(n._LastValue)||!AAUtility.isNumber(n._Close2MonthValue)||parseFloat(n._Close2MonthValue)<=0?(n.PctChange2Month=_sF.NullValue,n.PctChange2MonthChangeSign=""):(t=i(n._LastValue,n._Close2MonthValue),n.PctChange2Month=t.value,n.PctChange2MonthChangeSign=t.sign);!AAUtility.isNumber(n._LastValue)||!AAUtility.isNumber(n._Close1MonthValue)||parseFloat(n._Close1MonthValue)<=0?(n.PctChange1Month=_sF.NullValue,n.PctChange1MonthChangeSign=""):(t=i(n._LastValue,n._Close1MonthValue),n.PctChange1Month=t.value,n.PctChange1MonthChangeSign=t.sign);!AAUtility.isNumber(n._LastValue)||!AAUtility.isNumber(n._Close1WeekValue)||parseFloat(n._Close1WeekValue)<=0?(n.PctChange1Week=_sF.NullValue,n.PctChange1WeekChangeSign=""):(t=i(n._LastValue,n._Close1WeekValue),n.PctChange1Week=t.value,n.PctChange1WeekChangeSign=t.sign)};stockFXData.prototype.CalcStatistic=function(){function i(n,t){n=AAUtility.GetNumber(n);t=AAUtility.GetNumber(t);var i=(n-t)/t*100,r=i<0?"-":i>0?"+":"=";return{value:(r=="+"?"+":"")+AAUtility.FormatPrice(i,3,_sF.ZeroValue,_sF.NullValue,_sF.ThousandSeparator,"%"),sign:r}}var n=this,t;AAUtility.isNumber(n._LastValue)&&AAUtility.isNumber(n._SMA10Value)?(t=i(n._SMA10Value,n._LastValue),n.SMA10Premium=t.value,n.SMA10PremiumChangeSign=t.sign):(n.SMA10Premium=_sF.NullValue,n.SMA10PremiumChangeSign="");AAUtility.isNumber(n._LastValue)&&AAUtility.isNumber(n._SMA50Value)?(t=i(n._SMA50Value,n._LastValue),n.SMA50Premium=t.value,n.SMA50PremiumChangeSign=t.sign):(n.SMA50Premium=_sF.NullValue,n.SMA50PremiumChangeSign="");AAUtility.isNumber(n._LastValue)&&AAUtility.isNumber(n._SMA100Value)?(t=i(n._SMA100Value,n._LastValue),n.SMA100Premium=t.value,n.SMA100PremiumChangeSign=t.sign):(n.SMA100Premium=_sF.NullValue,n.SMA100PremiumChangeSign="");AAUtility.isNumber(n._LastValue)&&AAUtility.isNumber(n._SMA250Value)?(t=i(n._SMA250Value,n._LastValue),n.SMA250Premium=t.value,n.SMA250PremiumChangeSign=t.sign):(n.SMA250Premium=_sF.NullValue,n.SMA250PremiumChangeSign="")};stockFXData.prototype.CalcStaticData=function(){this.CalcPerformance();this.CalcStatistic()};stockFXData.prototype.CalcFlashingSign=function(){function t(n,t){n=AAUtility.FormatPrice(n,FXUtility.GetDP(n),_sF.ZeroValue,_sF.NullValue,!1,"");t=AAUtility.FormatPrice(t,FXUtility.GetDP(t),_sF.ZeroValue,_sF.NullValue,!1,"");var i=parseFloat(n),r=parseFloat(t);return i>r?"+":i=0&&t<=23||t==24&&i==0)&&i>=0&&i<=59)?{valid:!0,hour:t,minute:i}:{valid:!1,hour:0,minute:0}}function g(t){$.ajax({url:n.API.Url,data:{PageURL:n.API.PageURL,HKT:"Y"},async:!0,dataType:"json",success:function(i){i!=""&&(n.API.Token=i.token);h=!1;typeof t=="function"&&t.apply(this)},error:function(){h=!1}})}function y(t){$.ajax({url:n.CE.Url,type:"GET",contentType:"application/json",headers:{Auth:"Bearer "+n.API.Token},success:function(i){n.CE.Token=i;c=!1;typeof t=="function"&&t.apply(this)},error:function(){c=!1}})}function p(t){var e=new Date(n.HKServerTime.getTime()+((new Date).getTime()-n.InitialDate.getTime())),u=[],f=-1,o,r,i;for(t&&(u=u.concat(n.PageReload.DB.split(";"))),u.sort(),o=0;o0))break;f<=0&&(r=v(u[0]),r.valid&&(i=new Date(e.getTime()),i.setDate(i.getDate()+1),i.setHours(r.hour),i.setMinutes(r.minute),i.setSeconds(0),f=Math.ceil((i-e)/1e3)));setTimeout(function(){window.location.reload()},f*1e3)}function w(t,i){function l(){var r=o.shift();$.ajax({url:n.GetData_URL+"/g2ce/Quote/getQuote?format=text"+n.CE.Token,data:r.d,async:!0,dataType:"text",error:function(n,t){typeof i=="function"&&i({status:"E",msg:t})},success:function(n){if(typeof i=="function")if(n&&n.length!=0)if(b(n,[t[0].group]),o.length==0){var u=[],r=[];r=r.concat(a(t[0].symbol,t[0].group));u.push(r);i({status:"S",data:u})}else l();else i({status:"N"})}})}var r,u,f,c;if(t!=null&&typeof t=="object"&&!(typeof t.length<=0)){var s={},o=[],v=!1,h=!1;for(r=0;re){for(v=!0,u=parseInt(t[r].symbol.length/e),u=u*e0?o.push(t):f.push(t)}f.length>0&&(y.grp0=f.join(",")+"|"+r.group0+(r.feedAutoSwitch!==!1?"|F=Y":""),p.push(r.group0));o.length>0&&(y.grp1=o.join(",")+"|"+r.group1+(r.feedAutoSwitch!==!1?"|F=Y":""),p.push(r.group1));$.ajax({url:n.GetData_URL+"/g2ce/Quote/getQuote?format=text"+n.CE.Token,data:y,async:!0,dataType:"text",error:function(n,t){typeof u=="function"&&u({status:"E",msg:t})},success:function(n){if(typeof u=="function")if(n&&n.length!=0)if(b(n,p),h.length==0){var f=[],t=[];c.length>0&&(t=t.concat(a(c,r.group0)));l.length>0&&(t=t.concat(a(l,r.group1)));f.push(t);u({status:"S",data:f});s(i)}else v();else u({status:"N"}),s(i)}})}var h,f,c,l,o;if(r!=null&&typeof r=="object"){if(!t[i].Enable){s(i);return}for(h=[],f=it(i,r.symbol||n.Stream[i].StreamingSymbol),f=f.sort(),c=[],l=[],o=0;o0?l.push(f[o]):c.push(f[o]);f.length>0?(h=f.slice(0),v()):s(i)}}function s(i){(typeof t[i]._tData!="undefined"&&clearTimeout(t[i]._tData),n.Enable)&&(t[i].Option.symbol=n.Stream[i].StreamingSymbol,t[i].Interval=n.Stream[i].RefreshInterval,t[i]._tData=setTimeout(function(){t[i].Enable&&!f.isScrolling?l(i,t[i].Option,t[i].Callback):s(i)},t[i].Interval))}function nt(t){$.ajax({url:n.Timer.Url,async:!0,dataType:"json",success:function(i){i!=""&&(n.HKTimeVal=i.hkt.split(/,/),n.HKServerTime=new Date(n.HKTimeVal[0],n.HKTimeVal[1],n.HKTimeVal[2],n.HKTimeVal[3],n.HKTimeVal[4],n.HKTimeVal[5]),n.InitialDate=new Date);typeof t=="function"&&t.apply(this)},error:function(){}})}function tt(){f._t!=null&&clearTimeout(f._t);f.isScrolling=!0;f._t=setTimeout(function(){f.isScrolling=!1;t.Mode1.Option!=null&&(t.Mode1.Option.symbol=n.Stream.Mode1.StreamingSymbol,r.GetStreamingData("Mode1",t.Mode1.Option,t.Mode1.Callback));t.Mode2.Option!=null&&(t.Mode2.Option.symbol=n.Stream.Mode2.StreamingSymbol,r.GetStreamingData("Mode2",t.Mode2.Option,t.Mode2.Callback))},f.int)}function b(n,t){var e,r,o,f,h,i,s;for(n=$("
<\/div>").html(n).text(),e=n.split(String.fromCharCode(28)),r=0;r=2)f=t[1],f.indexOf(".FX")<0&&(f=f+".CT"),e=$.grep(u,function(n){return n.key==f}),e!=null&&e.length>0&&(r=e[0].data);else return new stockFXData;return r==null&&(r=new stockFXData),r.MarketData=!0,i==n.StockGroup.FXBasic?r.parseFXBasic(t,n.lang):i==n.StockGroup.CTBasic&&r.parseCTBasic(t,n.lang),r}function a(n,t){var i=[];return $.each(n,function(n,r){var f=$.grep(u,function(n){return n.key==r});f=f==null||f.length==0?{key:r,data:k([],t)}:f[0];i.push(f)}),i}function it(n,t){var i=[],r=$(window).scrollTop(),u=r+$(window).height();return $.each(t,function(t,f){$.each($("."+n+' ._fxstream[data-symbol="'+f+'"]'),function(n,t){if($(t).is(":visible")){var e=$(t).offset().top,o=e+$(t).outerHeight();o>=r&&e=r&&e=0&&i.indexOf(u)<0&&i.push(u)})}}),i}function rt(){o._t!=null&&(clearTimeout(o._t),o._t=null);document.visibilityState=="visible"?(r.StopStreaming("Mode1",!1),r.StopStreaming("Mode2",!1)):o._t=setTimeout(function(){r.StopStreaming("Mode1",!0);r.StopStreaming("Mode2",!0)},o.int)}var n={Enable:!1,HKTimeVal:[1990,1,1,0,0,0],HKServerTime:new Date(0),InitialDate:new Date(0),Stream:{Mode1:{RefreshInterval:5e3,StreamingSymbol:[]},Mode2:{RefreshInterval:3e4,StreamingSymbol:[]}},Chart:{RefreshInterval:6e4,StreamingSymbol:[]},API:{Url:"",PageURL:"",Token:""},CE:{Interval:3e5,Url:"",Token:"",_tToken:null,_tData:null},PageReload:{DB:"00:00"},Timer:{Url:""},lang:"chi",GetData_URL:"",StockGroup:{basic:""}},r=this,e=100,t={Mode1:{Enable:!0,Interval:1e3,Option:null,Callback:null,_tData:null},Mode2:{Enable:!0,Interval:1e3,Option:null,Callback:null,_tData:null}},d={Enable:!0,Interval:1e3,Callback:null,_tData:null},f={isScrolling:!1,int:500,_t:null},o={int:2e3,_t:null},u=[],h=!1,c=!1;this.init=function(t){n=$.extend(!0,{},n,t);n.CE._tToken=setInterval(function(){r.GetCEToken()},n.CE.Interval);$(window).scroll(tt);document.addEventListener("visibilitychange",rt)};this.Debug=function(){return{opt:n,stockHist:u,_Streaming:t,_Chart:d,_Scrolling:f}};this.IsStreamingEnable=function(n){return t[n].Enable};this.GetTimeInfo=function(){return{HKServerTime:n.HKServerTime,InitialDate:n.InitialDate}};this.AutoReloadPage=function(t){if(n.HKTimeVal[0]==1990){nt(function(){p(t)});return}p(t)};this.GetAPIToken=function(t){if(h)var i=setInterval(function(){n.API.Token!=""&&(clearInterval(i),t())},500);else h=!0,g(t)};this.InitAutoRefreshCEToken=function(t){typeof n.CE._tToken!="undefined"&&clearInterval(n.CE._tToken);r.GetCEToken(t);n.CE._tToken=setInterval(function(){r.GetCEToken()},n.CE.Interval)};this.GetCEToken=function(t){if(c)var i=setInterval(function(){n.CE.Token!=""&&(clearInterval(i),t())},500);else{if(c=!0,n.API.Token==""){r.GetAPIToken(function(){y(t)});return}y(t)}};this.GetData=function(t,i){if(n.CE.Token==""){r.InitAutoRefreshCEToken(function(){w(t,i)});return}w(t,i)};this.SetStreamingSettings=function(n,i,r){t[n].Option=i;t[n].Callback=r};this.GetStreamingData=function(i,u,f){if(t[i].Option=u,t[i].Callback=f,n.CE.Token==""){r.InitAutoRefreshCEToken(function(){l(i,t[i].Option,t[i].Callback)});return}l(i,t[i].Option,t[i].Callback)};this.StopStreaming=function(i,u){u?t[i].Enable=!1:(t[i].Enable=!0,t[i].Option!=null&&(t[i].Option.symbol=n.Stream[i].StreamingSymbol,r.GetStreamingData(i,t[i].Option,t[i].Callback)))};this.AddStreamingSymbol=function(t,r){var u=n.Stream[r].StreamingSymbol;if(typeof t=="object")for(i=0;i=0&&f.splice(u,1);else u=f.indexOf(t),u>=0&&f.splice(u,1)};this.ClearStreamingSymbol=function(i){n.Stream[i].StreamingSymbol=[];t[i].Option!=null&&(t[i].Option.symbol=null)};this.BindStaticData=function(n,t){typeof n=="object"&&$.each(n,function(n,i){if(typeof i.S=="undefined"||i.S=="")return!0;var r=new stockFXData,f=$.grep(u,function(n){return n.key==i.S});f!=null&&f.length>0?r=f[0].data:u.push({key:i.S,data:r});r.BindStaticData(i,t)})};this.GetStockDataList=function(n){if(typeof n=="undefined"||n=="")return u;var t=[];return typeof n!="object"?t.push(n):t=n,$.grep(u,function(n){return t.indexOf(n.key)>=0})};this.GetNoHistSymbol=function(n){return $.grep(n,function(n){var t=$.grep(u,function(t){return t.key==n});return t.length==0})};this.ChangeScrollingInt=function(n){!isNaN(n)&&n>500&&(f.int=n)}};FXUtility={MergeSymbolList:function(){for(var i=[],t,n=0;n=t&&i=10){var r=n.substr(0,4),u=n.substr(5,2),f=n.substr(8,2),t="00",i="00",e="00";return n.length>=19&&(t=n.substr(11,2),i=n.substr(14,2),e=n.substr(17,2)),r+"/"+u+"/"+f+" "+t+":"+i}}catch(o){}return""},GetFXTimeShort:function(n,t){try{if(n.length>=10){var e=n.substr(0,4),i=n.substr(5,2),r=n.substr(8,2),u="00",f="00",o="00";return n.length>=19&&(u=n.substr(11,2),f=n.substr(14,2),o=n.substr(17,2)),parseInt(r)!=t.getDate()||parseInt(i)!=t.getMonth()+1||parseInt(e)!=t.getFullYear()?r+"/"+i:u+":"+f}}catch(s){}return""},GetChangeDisplay:function(n,t){return n=="+"?""+t+"<\/span>":n=="-"?""+t+"<\/span>":""+t+"<\/span>"},GetChangeDisplayDiv:function(n,t){return n=="+"?"▲<\/span>"+t+"<\/span>":n=="-"?"▼<\/span>"+t+"<\/span>":""+t+"<\/span>"},GetChangeDisplayDiv2:function(n,t){return n=="+"?" <\/span> "+t+"<\/span>":n=="-"?" <\/span> "+t+"<\/span>":""+t+"<\/span>"},GetSymbolNoEx:function(n){return n.lastIndexOf(".")>-1?n.substring(0,n.lastIndexOf(".")):n},SetStreamData:function(n,t,i,r,u){var f=t,e=f.Timestamp;return n.find(".fxsq_last").html(f.Last),n.find(".fxsq_chg").html(FXUtility.GetChangeDisplay(f.ChangeSign,f.Change)),r?n.find(".fxsq_pctchg").html(FXUtility.GetChangeDisplay(f.ChangeSign,"("+f.ChangePercent+")")):n.find(".fxsq_pctchg").html(FXUtility.GetChangeDisplay(f.ChangeSign,f.ChangePercent)),u&&FXUtility.SetFlashingEffect(n.find(".stream-flashing.stream-last"),f.LastFlashingSign),FXUtility.CalcMaxDate(i,e)},SetFlashingEffect:function(n,t){if(t!="="){var i="stream-pos",r="stream-neg";$(n).hasClass("stream-pos")&&t=="+"?i+="-alt":$(n).hasClass("stream-neg")&&t=="-"&&(r+="-alt");$(n).removeClass("stream-pos stream-neg stream-pos-alt stream-neg-alt");$(n).addClass(t=="+"?i:t=="-"?r:"")}},CalcMaxDate:function(n,t){return(n==null||n=="")&&(t==null||t=="")?null:n==null||n==""?t:t==null||t==""?n:n>t?n:t},GetDP:function(n){var t=4;return AAUtility.isNumber(n)&&parseFloat(n)<.1&&(t=7),t},GetCRDP:function(n){var t=4;return AAUtility.isNumber(n)&&parseFloat(n)>10&&(t=3),t},GetCTDP:function(n){var t=2;return AAUtility.isNumber(n)&&parseFloat(n)<10&&(t=4),t}}