Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.LineChart=function(n){Sys.Extended.UI.LineChart.initializeBase(this,[n]);var t=this.get_id();t=t.replace("_ctl00","");this._parentDiv=document.getElementById(t).children[0];this._displayValues=!0;this._chartWidth="300";this._chartHeight="300";this._chartTitle="";this._categoriesAxis="";this._series=null;this._chartType=Sys.Extended.UI.LineChartType.Basic;this._theme="LineChart";this._valueAxisLines=9;this._chartTitleColor="";this._valueAxisLineColor="";this._categoryAxisLineColor="";this._baseLineColor="";this._tooltipBackgroundColor="#ffffff";this._tooltipFontColor="#0E426C";this._tooltipBorderColor="#B85B3E";this._areaDataLabel="";this.yMax=0;this.yMin=0;this.roundedTickRange=0;this.startX=0;this.startY=0;this.endX=0;this.endY=0;this.xInterval=0;this.yInterval=0;this.arrXAxis;this.arrXAxisLength=0;this.charLength=3.5;this.arrCombinedData=null;this._toolTipDiv};Sys.Extended.UI.LineChart.prototype={initialize:function(){if(Sys.Extended.UI.LineChart.callBaseMethod(this,"initialize"),!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1"))throw"Browser does not support SVG.";this._valueAxisLines==0&&(this._valueAxisLines=9);this.generateTooltipDiv();this.generateLineChart()},dispose:function(){Sys.Extended.UI.LineChart.callBaseMethod(this,"dispose")},generateTooltipDiv:function(){this._divTooltip=$common.createElementFromTemplate({nodeName:"div",properties:{id:this.get_id()+"_tooltipDiv",style:{position:"absolute",backgroundColor:this._tooltipBackgroundColor,borderStyle:"solid",borderWidth:"5px",borderColor:this._tooltipBorderColor,left:"0px",top:"0px",color:this._tooltipFontColor,visibility:"hidden",zIndex:Sys.Extended.UI.zIndex.LineChartTooltip,padding:"10px"}}},this._parentDiv)},generateLineChart:function(){this.arrXAxis=this._categoriesAxis.split(",");this.arrXAxisLength=this.arrXAxis.length;this.calculateMinMaxValues();this.calculateInterval();this.calculateValueAxis();var n=this.initializeSVG();n=n+String.format('{2}<\/text>',parseInt(this._chartWidth)/2-this._chartTitle.length*this.charLength,parseInt(this._chartHeight)/20,this._chartTitle,this._chartTitleColor);n=n+this.drawBackgroundHorizontalLines();n=n+this.drawBackgroundVerticalLines();n=n+this.drawBaseLines();n=n+this.drawLegendArea();n=n+this.drawAxisValues();this._parentDiv.innerHTML=this._parentDiv.innerHTML+n;this.drawLines()},calculateInterval:function(){this.startX=this._chartWidth/10+.5;this.endX=parseInt(this._chartWidth)-4.5;this.startY=this.yMin>=0?Math.round(parseInt(this._chartHeight)-parseInt(this._chartHeight)*24/100)+.5:Math.round(parseInt(this._chartHeight)-parseInt(this._chartHeight)*12/100)/2+.5;this.yInterval=this.startY/(this._valueAxisLines+1)},calculateMinMaxValues:function(){var u,i,r,t,n;if(this._chartType==Sys.Extended.UI.LineChartType.Basic)for(n=0;nthis.yMax&&(this.yMax=u),i=0?this.yMax:this.yMax>Math.abs(this.yMin)?this.yMax:Math.abs(this.yMin);n=i/(this._valueAxisLines-1);n<1?this.roundedTickRange=n.toFixed(1):(r=Math.ceil(Math.log(n)/Math.log(10)-1),t=Math.pow(10,r),this.roundedTickRange=Math.ceil(n/t)*t);this.startX=this.startX+(this.roundedTickRange*10*this._valueAxisLines/10).toString().length*this.charLength},drawBackgroundHorizontalLines:function(){for(var t="",n=1;n<=this._valueAxisLines;n++)t=t+String.format('<\/path>',this.startX,this.endX,this.startY-this.yInterval*n,this._categoryAxisLineColor);if(this.yMin<0)for(n=1;n<=this._valueAxisLines;n++)t=t+String.format('<\/path>',this.startX,this.endX,this.startY+this.yInterval*n,this._categoryAxisLineColor);return t},drawBackgroundVerticalLines:function(){var t="",n;for(this.xInterval=Math.round((parseInt(this._chartWidth)-this.startX)/this.arrXAxisLength),n=0;n<\/path>',parseInt(this._chartWidth)-5-this.xInterval*n,this.startY-this.yInterval*this._valueAxisLines,this.startY,this._valueAxisLineColor);if(this.yMin<0)for(n=0;n<\/path>',parseInt(this._chartWidth)-5-this.xInterval*n,this.startY+this.yInterval*this._valueAxisLines,this.startY,this._valueAxisLineColor);return t},drawBaseLines:function(){var n="",t;for(n=n+String.format('<\/path>',this.startX,this.startY,this.endX,this._baseLineColor),n=n+String.format('<\/path>',this.startX,this.startY-this.yInterval*this._valueAxisLines,this.startY,this._baseLineColor),n=n+String.format('<\/path>',this.startX,this.startY,this.startY+4,this._baseLineColor),t=0;t<\/path>',parseInt(this._chartWidth)-5-this.xInterval*t,this.startY,this.startY+4,this._baseLineColor);for(t=0;t<=this._valueAxisLines;t++)n=n+String.format('<\/path>',this.startX-4,this.startX,this.startY-this.yInterval*t,this._baseLineColor);if(this.yMin<0)for(n=n+String.format('<\/path>',this.startX,this.startY+this.yInterval*this._valueAxisLines,this.startY,this._baseLineColor),t=1;t<=this._valueAxisLines;t++)n=n+String.format('<\/path>',this.startX-4,this.startX,this.startY+this.yInterval*t,this._baseLineColor);return n},drawLegendArea:function(){for(var r,l,t="",o=parseInt(this._chartHeight)*82/100+5,i=7.5,u=5,c=0,n=0;nparseInt(this._chartWidth)/2&&(r=r/2,l=!0);t=t+"";t=t+String.format('<\/path>',parseInt(this._chartWidth)/2-r/2,o,Math.round(parseInt(this._chartWidth)/2+c*5)+Math.round((i+u*2)*this._series.length),Math.round(parseInt(this._chartHeight)*97.5/100));var e=parseInt(this._chartWidth)/2-r/2+5+i+u,s=e,f=parseInt(this._chartWidth)/2-r/2+5,h=f;for(n=0;n<\/path>',f,o+7.5,f+i,o+15,n+1,this._series[n].LineColor),t=t+String.format('{2}<\/text>',e,o+15,this._series[n].Name),this._series[n].Name.length>10?(h=f+this._series[n].Name.length*5+i+u*2,s=e+this._series[n].Name.length*5+i+u*2):(h=h+this._series[n].Name.length*6+i+u*2,s=s+this._series[n].Name.length*6+i+u*2);return t+"<\/g>"},drawAxisValues:function(){for(var t="",i=0,n=0;n{2}<\/text>',Math.round(this.startX+this.xInterval*n+this.xInterval/2-i),this.startY+Math.round(this.yInterval*65/100),this.arrXAxis[n]);for(n=0;n<=this._valueAxisLines;n++)t=t+String.format('{2}<\/text>',this.startX-(this.roundedTickRange*10*n/10).toString().length*5.5-10,this.startY-this.yInterval*n+3.5,this.roundedTickRange*10*n/10);if(this.yMin<0)for(n=1;n<=this._valueAxisLines;n++)t=t+String.format('-{2}<\/text>',this.startX-(this.roundedTickRange*10*n/10).toString().length*5.5-15,this.startY+this.yInterval*n,this.roundedTickRange*10*n/10);return t},initializeSVG:function(){var n=String.format('',this._theme);return n=n+String.format('',this._chartWidth,this._chartHeight),n=n+"",n=n+'',n=n+'<\/stop>',n=n+'<\/stop>',n=n+'<\/stop><\/linearGradient>',n=n+"<\/defs>",n=n+String.format('',parseInt(this._chartHeight)/10+5,parseInt(this._chartWidth)-5,parseInt(this._chartHeight)-parseInt(this._chartHeight)/10),n=n+String.format('',this._chartWidth,this._chartHeight),n+String.format('',parseInt(this._chartHeight)/10+5,parseInt(this._chartWidth)-5,parseInt(this._chartHeight)-parseInt(this._chartHeight)/10)},drawLines:function(){var t,i,n;for(t=[],i=[],n=0;n0?u>0?n._parentDiv.innerHTML.replace("<\/svg>","")+String.format('<\/circle>',n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor,r,n._areaDataLabel)+String.format('<\/path>',t[f],i[f],n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor)+String.format('{2}<\/text>',n.startX+n.xInterval*u+n.xInterval/5,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange))-7.5,e?r:""):n._parentDiv.innerHTML.replace("<\/svg>","")+String.format('<\/circle>',n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor,r,n._areaDataLabel)+String.format('{2}<\/text>',n.startX+n.xInterval*u+n.xInterval/5,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange))-7.5,e?r:""):u>0?n._parentDiv.innerHTML.replace("<\/svg>","")+String.format('<\/circle>',n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor,r,n._areaDataLabel)+String.format('<\/path>',t[f],i[f],n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor)+String.format('{2}<\/text>',n.startX+n.xInterval*u+n.xInterval/5,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange))+7.5,e?r:""):n._parentDiv.innerHTML.replace("<\/svg>","")+String.format('<\/circle>',n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor,r,n._areaDataLabel)+String.format('{2}<\/text>',n.startX+n.xInterval*u+n.xInterval/5,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange))+7.5,e?r:""):r>0?u>0?n._parentDiv.innerHTML.replace("<\/svg>","")+String.format('<\/circle>',n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor,r,n._areaDataLabel)+String.format('<\/path>',t[f],i[f],n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor)+String.format('{2}<\/text><\/svg>',n.startX+n.xInterval*u+n.xInterval/5,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange))-7.5,e?r:""):n._parentDiv.innerHTML.replace("<\/svg>","")+String.format('<\/circle>',n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor,r,n._areaDataLabel)+String.format('{2}<\/text><\/svg>',n.startX+n.xInterval*u+n.xInterval/5,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange))-7.5,e?r:""):u>0?n._parentDiv.innerHTML.replace("<\/svg>","")+String.format('<\/circle>',n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor,r,n._areaDataLabel)+String.format('<\/path><\/svg>',t[f],i[f],n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor)+String.format('{2}<\/text><\/svg>',n.startX+n.xInterval*u+n.xInterval/5,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange))+7.5,e?r:""):n._parentDiv.innerHTML.replace("<\/svg>","")+String.format('<\/circle>',n.startX+n.xInterval*u+n.xInterval/2,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange)),f+1,n._series[f].LineColor,r,n._areaDataLabel)+String.format('{2}<\/text><\/svg>',n.startX+n.xInterval*u+n.xInterval/5,n.startY-Math.round(r*(n.yInterval/n.roundedTickRange))+7.5,e?r:"");t[f]=n.startX+n.xInterval*u+n.xInterval/2+3;i[f]=n.startY-Math.round(r*(n.yInterval/n.roundedTickRange))}u++;u