Chart.StyleBox=function(b,a,c){this.cId=+new Date();this.container=b;this.displayType=Chart.StyleBox.DisplayType.EquityStyle;this.dataSource=null;this.graph=null;this.graphCanvas=null;this.floatCanvas=null;this.canvasWidth=0;this.canvasHeight=0;if(a!=null&&parseInt(a)>=0){this.displayType=a}if(b){this._initialize(c)}return this};Chart.StyleBox.prototype=$.extend(new Chart.Common.Graphic.GraphElement(),{resizeComponents:function(b,a){this.canvasWidth=b;this.canvasHeight=a;this.graphCanvas.css({width:b,height:a});this.graph.resize(b,a)},refresh:function(){var a=this;this.dataSource.refresh(function(){a.dataSource.executeCommand(new Chart.Common.Command.CommandArgs(null,Chart.Common.Command.Commands.REFRESH_PRESENTATION,null))})},setData:function(a){this.dataSource.setData(a)},draw:function(){this.dataSource.executeCommand(new Chart.Common.Command.CommandArgs(null,Chart.Common.Command.Commands.REFRESH_PRESENTATION,null))},setCulture:function(a){var b=this;LocalizationManager.instance.setCurrentCulture(a,function(){b.dataSource.executeCommand(new Chart.Common.Command.CommandArgs(null,Chart.Common.Command.Commands.SET_CULTURE,null))})},_initialize:function(b){this.canvas=this.container.get(0);this.canvasWidth=this.container.width();this.canvasHeight=this.container.height();if(b&&typeof(b)=="function"){var a=this;LocalizationManager.instance.initialize("xml/","label.xml",function(c){a._createElements();a._createComponents();b()})}else{this._createElements();this._createComponents()}},_createComponents:function(){this.dataSource=new Chart.Component.StyleBoxData();this.graph=new Chart.Component.StyleBoxGraph(this.graphCanvas,this.displayType);this.graph.setDataSource(this.dataSource);this.graph.collectionChildren();this.dataSource.collectionChildren();this.dataSource.addChild(this.graph);this.dataSource.executeCommand(new Chart.Common.Command.CommandArgs(null,Chart.Common.Command.Commands.INITIALIZE,null))},_createElements:function(){this.container.attr({cid:this.cId});this.container.addClass("stylebox");this.graphCanvas=$($.Canvas.createDiv(this.container,"relative",0,0,this.canvasWidth,this.canvasHeight)).attr({cid:this.cId});this.floatCanvas=$($.Canvas.createDiv(this.container,"absolute",0,0,0,0)).attr({id:"phTip"+this.cId,cid:this.cId})}});Chart.StyleBox.DisplayType={EquityStyle:0,FixedIncome:1};Chart.StyleBox.GridRawData=function(){this.order=0;this.bgcolor="#000000";this.label=""};Chart.Interface.StyleBoxInterface=function(){};Chart.Interface.StyleBoxInterface.prototype={getGridRawData:function(){return null},getGridLabels:function(){return null}};Chart.Component.StyleBoxData=function(){var a=new Date();a=new Date(a.getFullYear(),a.getMonth(),a.getDate());this._rawData=[];this._gridLables=null;var b=this};Chart.Component.StyleBoxData.prototype=$.extend(new Chart.Common.Command.CommandHandler(),new Chart.Interface.StyleBoxInterface(),{setData:function(e){var f=+new Date();this.reset();var c=$.evalJSON(e);if(!c){return}if(c.Grids&&c.Grids.length>0){var h=c.Grids.length,j=null;for(var a=0;a<h;a++){j=c.Grids[a];if(j.Order&&parseInt(j.Order,10)){var g=new Chart.StyleBox.GridRawData();g.order=parseInt(j.Order,10);g.bgcolor=j.BColor?j.BColor:"#000000";g.fontcolor=j.FColor?j.FColor:null;g.label=j.Label?j.Label:"";this._rawData.push(g)}}}if(c.Labels&&c.Labels.VLabels&&c.Labels.HLabels){this._gridLables={h:c.Labels.HLabels.Names,v:c.Labels.VLabels.Names}}var b={chart:{option:{}}};if(c.BGColor){Chart.Setting.Presentation.BG.serialize(b,Chart.Setting.SettingItem.Chart,{color:c.BGColor})}if(c.Type!=null&&parseInt(c.Type,10)>=0){b.chart.option.displaystyle=c.Type}this.executeCommand(new Chart.Common.Command.CommandArgs(null,Chart.Common.Command.Commands.APPLY_CHART_SETTING,{setting:b}));ChartLogger.instance.write("[time-consuming] time consuming of set data interface: "+(new Date()-f))},refresh:function(a){if(a&&typeof(a)=="function"){a()}},reset:function(){this._rawData=[];this._gridLables=null},getHandler:function(a){switch(a.command){case Chart.Common.Command.Commands.ADD_INVESTMENT:case Chart.Common.Command.Commands.DELETE_ITEM:case Chart.Common.Command.Commands.REFRESH_PRESENTATION:case Chart.Common.Command.Commands.RESIZE:case Chart.Common.Command.Commands.INITIALIZE:case Chart.Common.Command.Commands.COMPONENT_STATUS_UPDATE:default:return this.defaultHandler}return this.defaultHandler},defaultHandler:function(a){},getGridRawData:function(){return this._rawData},getGridLabels:function(){return this._gridLables}});Chart.Component.StyleBoxGraph=function(b,a){this._displayType=a;this._placeHolder=b;this._placeHolder.css({position:"relative","background-color":"transparent",cursor:"default"});this._margin={left:0,top:0,right:0,bottom:0};this.LABEL_SPACE=20;this._datasource=null;this._initHLabels=function(){this._hLabels=[LocalizationManager.instance.getLabel("value","Value"),LocalizationManager.instance.getLabel("blend","Blend"),LocalizationManager.instance.getLabel("growth","Growth"),LocalizationManager.instance.getLabel("short","Short"),LocalizationManager.instance.getLabel("int","Int"),LocalizationManager.instance.getLabel("long","Long"),LocalizationManager.instance.getLabel("duration","Duration")]};this._initVLabels=function(){this._vLabels=[LocalizationManager.instance.getLabel("large","Large"),LocalizationManager.instance.getLabel("mid","Mid"),LocalizationManager.instance.getLabel("small","Small"),LocalizationManager.instance.getLabel("high","High"),LocalizationManager.instance.getLabel("med","Med"),LocalizationManager.instance.getLabel("low","Low"),LocalizationManager.instance.getLabel("quality","Quality")]};this._initHLabels();this._initVLabels();this._graphCanvas=null;this._coordinateCanvas=null;this._tooltipCanvas=null;this._messageCanvas=null;this.xAxisMapping=new Chart.Common.Coordinate.Double2DoubleLinearMapping();this.yAxisMapping=new Chart.Common.Coordinate.Double2DoubleLinearMapping();var d=this;this.Presentation=function(){};this.Presentation.GraphElement=function(){};this.Presentation.GraphElement.prototype=$.extend(new Chart.Common.Graphic.GraphElement(),{});this.Presentation.CoordinateArea=function(){this.canvas=d._coordinateCanvas;this.canvasRef=$(this.canvas);this.outerRect=null;this.innerRect=null;this.lineLayer=null;this.labelLayer=null;this.ctx=null;this._separateLineColor="#E5E5E5";this._gridLineColor="#000000";this.LABEL_OFFSET=4;var f=this;var e=function(){var g={width:f.getWidth()-d._margin.left-d._margin.right,height:f.getHeight()-d._margin.top-d._margin.bottom};f.outerRect=$.Canvas.createDiv(f.canvasRef,"relative",d._margin.left,d._margin.top,g.width,g.height);f.innerRect=$.Canvas.createDiv($(f.outerRect),"absolute",0,0,g.width,g.height);f.lineLayer=$.Canvas.create($(f.outerRect),"absolute",0,0,g.width,g.height);f.labelLayer=$.Canvas.createDiv(f.canvasRef,"absolute",0,0,f.getWidth(),f.getHeight());f.ctx=f.lineLayer.getContext("2d")};e()};this.Presentation.CoordinateArea.prototype=$.extend(new this.Presentation.GraphElement(),{getRange:function(e,f){e.first=0;e.second=300;f.first=0;f.second=300},resizeComponents:function(f,e){var g={width:f-d._margin.left-d._margin.right,height:e-d._margin.top-d._margin.bottom};this.labelLayer.width=f;this.labelLayer.height=e;this.outerRect.width=g.width;this.outerRect.height=g.height;this.lineLayer.width=g.width;this.lineLayer.height=g.height;$(this.labelLayer).css({width:f,height:e});$(this.outerRect).css({width:g.width,height:g.height});$(this.lineLayer).css({width:g.width,height:g.height})},refresh:function(){var e=+new Date();d._initHLabels();d._initVLabels();this._makeCoordinate();ChartLogger.instance.write("[time-consuming] time consuming of drawing ts coordinate: "+(new Date()-e))},reset:function(){this.ctx.clearRect(0,0,this.getWidth(),this.getHeight());$(this.labelLayer).html("")},_makeCoordinate:function(){this.reset();if(d._displayType==Chart.StyleBox.DisplayType.EquityStyle){this._makeEquityStyleCoordinate()}else{this._makeFixedIncomeCoordinate()}},_makeEquityStyleCoordinate:function(){var g=d.xAxisMapping.getCoordinateRange();var n=d.yAxisMapping.getCoordinateRange();var k={p1:this._floor(d.xAxisMapping.getCoordinate(0))+0.5,p2:this._floor(d.xAxisMapping.getCoordinate(100))+0.5,p3:this._floor(d.xAxisMapping.getCoordinate(200))+0.5,p4:this._floor(d.xAxisMapping.getCoordinate(300))+0.5};var l={p1:this._floor(d.yAxisMapping.getCoordinate(300))+0.5,p2:this._floor(d.yAxisMapping.getCoordinate(200))+0.5,p3:this._floor(d.yAxisMapping.getCoordinate(100))+0.5,p4:this._floor(d.yAxisMapping.getCoordinate(0))+0.5};this.innerRect.width=k.p4-k.p1;this.innerRect.height=l.p4-l.p1;$(this.innerRect).css({left:k.p1,top:l.p1,width:(k.p4-k.p1),height:(l.p4-l.p1)});var e=new $.Graphics(this.ctx);e.begin();e.setLineStyle(1,this._gridLineColor);e.drawLine(k.p1,l.p1,k.p4,l.p1);e.drawLine(k.p1,l.p2,k.p4,l.p2);e.drawLine(k.p1,l.p3,k.p4,l.p3);e.drawLine(k.p1,l.p4,k.p4,l.p4);e.drawLine(k.p1,l.p1,k.p1,l.p4);e.drawLine(k.p2,l.p1,k.p2,l.p4);e.drawLine(k.p3,l.p1,k.p3,l.p4);e.drawLine(k.p4,l.p1,k.p4,l.p4);e.end();var q=[d._hLabels[0],d._hLabels[1],d._hLabels[2]];var p=[d._vLabels[0],d._vLabels[1],d._vLabels[2]];var o=d._datasource.getGridLabels();if(o){q=(o.h&&o.h.length>2)?o.h:q;p=(o.v&&o.v.length>2)?o.v:p}var i=d._margin.left;var f=d._margin.top+Math.abs(n.second-n.first)+this.LABEL_OFFSET;var m=$([$.TextStudio.create(q[0],this.labelLayer,"absolute",i,f,null,null,"coordinate"),$.TextStudio.create(q[1],this.labelLayer,"absolute",k.p2+i,f,null,null,"coordinate"),$.TextStudio.create(q[2],this.labelLayer,"absolute",k.p3+i,f,null,null,"coordinate")]);i=d._margin.left+Math.abs(g.second-g.first)+this.LABEL_OFFSET;f=d._margin.top+(l.p2-l.p1-m.height())/2;var j=$([$.TextStudio.create(p[0],this.labelLayer,"absolute",i,f,null,null,"coordinate_v"),$.TextStudio.create(p[1],this.labelLayer,"absolute",i,l.p2+f,null,null,"coordinate_v"),$.TextStudio.create(p[2],this.labelLayer,"absolute",i,l.p3+f,null,null,"coordinate_v")])},_makeFixedIncomeCoordinate:function(){var i=d.xAxisMapping.getCoordinateRange();var o=d.yAxisMapping.getCoordinateRange();var l={p1:this._floor(d.xAxisMapping.getCoordinate(0))+0.5,p2:this._floor(d.xAxisMapping.getCoordinate(100))+0.5,p3:this._floor(d.xAxisMapping.getCoordinate(200))+0.5,p4:this._floor(d.xAxisMapping.getCoordinate(300))+0.5};var m={p1:this._floor(d.yAxisMapping.getCoordinate(300))+0.5,p2:this._floor(d.yAxisMapping.getCoordinate(200))+0.5,p3:this._floor(d.yAxisMapping.getCoordinate(100))+0.5,p4:this._floor(d.yAxisMapping.getCoordinate(0))+0.5};this.innerRect.width=l.p4-l.p1;this.innerRect.height=m.p4-m.p1;$(this.innerRect).css({left:l.p1,top:m.p1,width:(l.p4-l.p1),height:(m.p4-m.p1)});var f=new $.Graphics(this.ctx);f.begin();f.setLineStyle(1,this._gridLineColor);f.drawLine(l.p1,m.p1,l.p4,m.p1);f.drawLine(l.p1,m.p2,l.p4,m.p2);f.drawLine(l.p1,m.p3,l.p4,m.p3);f.drawLine(l.p1,m.p4,l.p4,m.p4);f.drawLine(l.p1,m.p1,l.p1,m.p4);f.drawLine(l.p2,m.p1,l.p2,m.p4);f.drawLine(l.p3,m.p1,l.p3,m.p4);f.drawLine(l.p4,m.p1,l.p4,m.p4);f.end();var r=[d._hLabels[3],d._hLabels[4],d._hLabels[5],d._hLabels[6]];var q=[d._vLabels[3],d._vLabels[4],d._vLabels[5],d._vLabels[6]];var p=d._datasource.getGridLabels();if(p){r=(p.h&&p.h.length>2)?p.h:r;q=(p.v&&p.v.length>2)?p.v:q}var j=d._margin.left;var g=d._margin.top+Math.abs(o.second-o.first)+this.LABEL_OFFSET;var n=$([$.TextStudio.create(r[0],this.labelLayer,"absolute",j,g,null,null,"coordinate"),$.TextStudio.create(r[1],this.labelLayer,"absolute",l.p2+j,g,null,null,"coordinate"),$.TextStudio.create(r[2],this.labelLayer,"absolute",l.p3+j,g,null,null,"coordinate")]);if(r.length>3){$.TextStudio.create(r[3],this.labelLayer,"absolute",j,g+d.LABEL_SPACE,null,null,"coordinate")}j=d._margin.left+Math.abs(i.second-i.first)+this.LABEL_OFFSET;g=d._margin.top+(m.p2-m.p1-n.height())/2;var k=$([$.TextStudio.create(q[0],this.labelLayer,"absolute",j,g,null,null,"coordinate_v"),$.TextStudio.create(q[1],this.labelLayer,"absolute",j,m.p2+g,null,null,"coordinate_v"),$.TextStudio.create(q[2],this.labelLayer,"absolute",j,m.p3+g,null,null,"coordinate_v")]);if(q.length>3){$.TextStudio.create(q[3],this.labelLayer,"absolute",j,d._margin.top,null,null,"coordinate")}var e=n.height()+this.LABEL_OFFSET;f.begin();f.setLineStyle(1,this._separateLineColor);f.drawLine(l.p1,m.p4+d.LABEL_SPACE,l.p4,m.p4+d.LABEL_SPACE);f.drawLine(l.p4+this.LABEL_OFFSET,m.p1+e,l.p4+d.LABEL_SPACE*2,m.p1+e);f.end()},_floor:function(e){return e>=0?Math.floor(e):Math.ceil(e)}});this.Presentation.GraphArea=function(){this.canvas=d._graphCanvas;this.canvasRef=$(this.canvas);this.lineLayer=null;this.labelLayer=null;this.labelRef=null;this.ctx=null;this._graphics=null;this._defaultColor="#000000";var f=this;var e=function(){f.lineLayer=$.Canvas.create(f.canvasRef,"absolute",0,0,f.getWidth(),f.getHeight());f.labelLayer=$.Canvas.createDiv(f.canvasRef,"absolute",0,0,f.getWidth(),f.getHeight());f.labelRef=$(f.labelLayer);f.ctx=f.lineLayer.getContext("2d");f._graphics=new $.Graphics(f.ctx)};e()};this.Presentation.GraphArea.prototype=$.extend(new this.Presentation.GraphElement(),{resizeComponents:function(f,e){this.labelLayer.width=f;this.labelLayer.height=e;this.lineLayer.width=f;this.lineLayer.height=f;$(this.labelLayer).css({width:f,height:e});$(this.lineLayer).css({width:f,height:f})},refresh:function(){var e=+new Date();this._drawAreaGraph();ChartLogger.instance.write("[time-consuming] time consuming of drawing ts graph area: "+(new Date()-e))},reset:function(){this.ctx.clearRect(0,0,this.getWidth(),this.getHeight());this.labelRef.html("")},_drawAreaGraph:function(){this.reset();var h=d._datasource.getGridRawData();if(!h||h.length<0){return}var l=[this._floor(d.xAxisMapping.getCoordinate(0)),this._floor(d.xAxisMapping.getCoordinate(100)),this._floor(d.xAxisMapping.getCoordinate(200)),this._floor(d.xAxisMapping.getCoordinate(300))];var p=[this._floor(d.yAxisMapping.getCoordinate(300)),this._floor(d.yAxisMapping.getCoordinate(200)),this._floor(d.yAxisMapping.getCoordinate(100)),this._floor(d.yAxisMapping.getCoordinate(0))];var f={x:l[1]-l[0],y:p[1]-p[0]};var g=h.length,k=0,n=0,j=0,o=null;for(var e=0;e<g;e++){o=h[e];if(o.order){k=o.order-1;if(k>=0&&k<9){n=k%3;j=Math.floor(k/3);this._graphics.setLineStyle(0);this._graphics.setNormalFill(o.bgcolor?o.bgcolor:this._defaultColor);this._graphics.begin();this._graphics.drawRectangle(l[n]+1,p[j]+1,l[n+1]-l[n]-1,p[j+1]-p[j]-1);this._graphics.end();if(o.label){var m=$($.TextStudio.create(o.label,this.labelRef,"absolute",0,0,null,null,"holdinglabel"));m.css({left:l[n]+(f.x-m.width())/2,top:l[j]+(f.y-m.height())/2});if(o.fontcolor){m.css({color:o.fontcolor})}}}}}},_floor:function(e){return e>=0?Math.floor(e):Math.ceil(e)}});this.Presentation.MessagePanel=function(){this.canvas=d._messageCanvas};this.Presentation.MessagePanel.prototype=$.extend(new this.Presentation.GraphElement(),{});this.Presentation.TooltipLayer=function(){this.MOUSE_SENSITIVE_RADIUS=5;this.MAX_TOOLTIP_FLOAT_WINDOW_COUNT=15;this.canvas=d._tooltipCanvas;this._controlContainer=d._tooltipCanvas};this.Presentation.TooltipLayer.prototype=$.extend(new this.Presentation.GraphElement(),{});this.Presentation.PresentationManager=function(){this._coordinate=null;this._graphArea=null;this._messagePanel=null;this._tooltipLayer=null;this.canvas=d._placeHolder.get(0);var f=this;var e=function(){var g={width:d._placeHolder.width(),height:d._placeHolder.height()};var h={width:g.width-d._margin.left-d._margin.right,height:g.height-d._margin.top-d._margin.bottom};d._coordinateCanvas=$.Canvas.createDiv(d._placeHolder,"absolute",0,0,g.width,g.height);d._graphCanvas=$.Canvas.createDiv(d._placeHolder,"absolute",d._margin.left,d._margin.top,h.width,h.height)};e()};this.Presentation.PresentationManager.prototype=$.extend(new Chart.Common.Command.CommandHandler(),new this.Presentation.GraphElement(),{initailizeCoordinateMapping:function(){var e={first:0,second:0};var g={first:0,second:0};var f=d.LABEL_SPACE;if(d._displayType==Chart.StyleBox.DisplayType.FixedIncome){f*=2}this._coordinate.getRange(e,g);d.xAxisMapping.setCoordinateRange({first:0,second:this._graphArea.getWidth()-f-1});d.xAxisMapping.setValueRange(e);d.yAxisMapping.setCoordinateRange({first:this._graphArea.getHeight()-f-1,second:0});d.yAxisMapping.setValueRange(g)},applySetting:function(f){if(f&&f.chart&&f.chart.option&&f.chart.option.displaystyle!=null){d._displayType=f.chart.option.displaystyle}var e={};if(Chart.Setting.Presentation.BG.tryDeSerialize(f,Chart.Setting.SettingItem.Chart,e)){d._placeHolder.css({"background-color":e.color})}this._coordinate.applySetting(f);this._graphArea.applySetting(f)},refresh:function(){var e=this;setTimeout(function(){e.initailizeCoordinateMapping();e._coordinate.refresh();e._graphArea.refresh()},10)},clearAll:function(){this._graphArea.reset()},resizeComponents:function(f,e){var g={width:f-d._margin.left-d._margin.right,height:f-d._margin.top-d._margin.bottom};this._coordinate.resize(f,e);this._graphArea.resize(g.width,g.height)},getHandler:function(e){switch(e.command){case Chart.Common.Command.Commands.APPLY_CHART_SETTING:return this._onApplyChartSetting;case Chart.Common.Command.Commands.REFRESH_PRESENTATION:return this._onRefreshPresentation;case Chart.Common.Command.Commands.RESIZE:return this._onResize;case Chart.Common.Command.Commands.INITIALIZE:return this._onInitialize;case Chart.Common.Command.Commands.COMPONENT_STATUS_UPDATE:return this._onComponentStatusUpdate;case Chart.Common.Command.Commands.SET_CULTURE:return this._onSetCulture;default:return null}},_onSetCulture:function(e){if(e){this.refresh()}},_onApplyChartSetting:function(e){if(e&&e.data&&e.data.setting){this.applySetting(e.data.setting)}},_onInitialize:function(e){this._coordinate=new d.Presentation.CoordinateArea();this._graphArea=new d.Presentation.GraphArea()},_onRefreshPresentation:function(e){this.refresh()},_onResize:function(e){if(e&&e.data&&e.data.width&&e.data.height){this.resize(e.data.width,e.data.height)}this.refresh()},_onComponentStatusUpdate:function(e){if(e&&e.data&&e.data.status){switch(e.data.status){case Chart.Common.Command.ComponentStatus.ClearAll:this.clearAll();break;default:break}}}});var c=function(){d._presentation=new d.Presentation.PresentationManager()};c()};Chart.Component.StyleBoxGraph.prototype=$.extend(new Chart.Common.Command.CommandHandler(),{defaultHandler:function(a){},getHandler:function(a){return this.defaultHandler},collectionChildren:function(){this.interactiveChildren=[this._presentation]},setDataSource:function(a){this._datasource=a},resize:function(b,a){this._presentation.resize(b,a);this._presentation.refresh()}});
