Module.createNamespace('com.wjstc.PieChart');Module.require('com.wjstc.Common',1.1);Module.require('com.wjstc.Util',1.1);com.wjstc.PieChart.NAME='com.wjstc.PieChart';com.wjstc.PieChart.VERSION=1.1;com.wjstc.PieChart.pc=null;com.wjstc.PieChart.PieChart=function(){this.g=[];this.C=[];this.ac=["#00AEEF","#00A651","#FF6666","#A67C52","#FFCC00","#662D91","#8DC63F","#92278F","#F7941D","#0054A6","#CCCCCC",'#20E8DD','#13BD64','#F532C7','#FFE02B','#0000FF','#339900','#FF6347','#B03060','#8FBC8F','#284A94','#00AC36','#F5DEB3','#DDA0DD','#336666','#993399','#CCCC33','#A8A8A8','#666699','#003300','#660000','#339999','#666633','#999999','#6666CC','#669966','#330000','#660066','#999933','#777777','#3333CC','#66CC66','#996666','#330033','#006666','#666666','#333366','#33CC33','#CC6666','#996699','#003333','#666600','#333399','#336633','#CC3333','#CC66CC','#669999','#333300','#333333','#339933','#663333','#CC33CC','#66CCCC','#999966','#000000','#000066','#993333','#663366','#33CCCC','#CCCC66','#CCCCCC','#000033','#006600'];this.v=[];this.H=[];this.d=null;this.m=2;this.r=15;this.D=0;this.G=0;};com.wjstc.PieChart.mainPieChartPanel=null;com.wjstc.PieChart.oPieChartConf={bodyStyle:"border:0px solid #000000;background-color:#ffffff;padding:1px;font-family:Arial,Verdana,Helvetica,sans-serif;vertical-align:top;text-align:right;",containerStyle:"border:1px solid #6f9dd9;background-color:#FAF7E6;padding:0px;text-align:right;",containerWidth:"none",titleStyle:"font-size:small;font-weight:bold;font-family:Arial,Verdana,Helvetica,sans-serif;border:1px solid white;"+"border-bottom-color:#6f9dd9;padding:2px;background-color:#bbd8fc;text-align:left;vertical-align:middle;cursor:default;",titleText:'Pie Chart',subTitleText:'',containerPosition:'XY',containerX:'1em',containerY:'5em',modal:'N',bodyWidth:"none",bodyHeight:"none",containerWidth:'none',containerBottomTitle:'N',resizable:'N',statusStyle:"font-size:x-small;font-weight:normal;font-family:Arial,Verdana,Helvetica,sans-serif;border:1px solid white;"+"border-top-color:#6f9dd9;padding: 1px 2px;background-color:#bbd8fc;text-align:left;vertical-align:middle;cursor:default;"};com.wjstc.PieChart.mainReportDiagramPanelId='wjstc_main_report_diagram_panel_id';com.wjstc.PieChart.rollDelta=0;com.wjstc.PieChart.deltaTimeOut=null;com.wjstc.PieChart.roll=function(){if(typeof(com)!='undefined'&&com){if(com.wjstc.PieChart.pc&&com.wjstc.PieChart.rollDelta){com.wjstc.PieChart.pc.rotate(com.wjstc.PieChart.rollDelta);com.wjstc.PieChart.deltaTimeOut=setTimeout(com.wjstc.PieChart.roll,25);}else{if(com.wjstc.PieChart.deltaTimeOut){clearTimeout(com.wjstc.PieChart.deltaTimeOut);com.wjstc.PieChart.deltaTimeOut=null;}}}};com.wjstc.PieChart.refreshPieChart=function(){if(typeof(com)!='undefined'&&com){if(com.wjstc.PieChart.pc){com.wjstc.PieChart.pc.redraw();}}};com.wjstc.PieChart.showPieChart=function(ag,R,af){com.wjstc.PieChart.oPieChartConf.titleText=R;com.wjstc.PieChart.oPieChartConf.subTitleText=af;com.wjstc.PieChart.oPieChartConf.zIndexValue=(com.wjstc.TableReports.oGroupedTotReportConf.zIndexValue-0)+6;if(com.wjstc.PieChart.mainPieChartPanel==null){com.wjstc.PieChart.mainPieChartPanel=new com.wjstc.WidgetMoveablePanel.MoveablePanel(com.wjstc.PieChart.oPieChartConf);}else{com.wjstc.PieChart.mainPieChartPanel.show();}com.wjstc.Common.getObjById(com.wjstc.PieChart.mainPieChartPanel.getBodyId()).innerHTML=ag;com.wjstc.Common.getObjById(com.wjstc.PieChart.mainPieChartPanel.getTitleId()).innerHTML=R;};com.wjstc.PieChart.PieChart.prototype.setData=function(g,C,v,ae){this.g=[];this.C=[];this.v=[];var ah=g.length;for(var c=0;c<ah;++c){if(ae.indexOf(','+c+',')>=0&&(g[c]-0)>0){this.g.push(g[c]-0);this.C.push(C[c]);this.v.push(v[c]);}}};com.wjstc.PieChart.PieChart.prototype.showIn=function(ai){this.d=document.getElementById(ai);if(!this.d){return false;}this.d.style.position='relative';this.d.style.margin='0 auto';this.d.style.width='70em';this.d.style.height='54em';this.d.style.overflow='hidden';this.d.style.fontSize='10px';var ab=document.createElement("span");ab.innerHTML="<img src='' alt='' id='wjst_pie_mask' "+"style='position:absolute;left:20em;top:12em;width:30em;height:30em;z-index:9999;' \/>";this.d.appendChild(ab);this.build(this.D);document.images['wjst_pie_mask'].src=com.wjstc.Util.pre_images['pie_pm'].src;return false;};com.wjstc.PieChart.PieChart.prototype.redraw=function(k){if(typeof(k)=='undefined'){k= -1;}if(this.d){var U=this.d.getElementsByTagName("div");while(U.length){this.d.removeChild(U[0]);}this.build(this.D,k);}};com.wjstc.PieChart.PieChart.prototype.rotate=function(t){this.D=(this.D+t+360)%360;this.redraw();};com.wjstc.PieChart.PieChart.prototype.setTitleType=function(newtitle){var c;this.m=newtitle%3;if(!this.v.length){this.m&=1;}var O=' ('+((com.wjstc.TableReports.pieChartTitles)?com.wjstc.TableReports.pieChartTitles['pValue']:'value')+')';if(this.m==2){O=' ('+((com.wjstc.TableReports.pieChartTitles)?com.wjstc.TableReports.pieChartTitles['pName']:'name')+')';}else if(this.m==1){O=' ('+((com.wjstc.TableReports.pieChartTitles)?com.wjstc.TableReports.pieChartTitles['pPercent']:'percent')+')';}com.wjstc.Common.getObjById('wjstc_pie_chart_title_td').innerHTML=com.wjstc.PieChart.oPieChartConf.subTitleText+O;var Q=this.G/1000;var il=this.g.length;for(c=0;c<il;++c){if(this.m==2){this.H[c].nodeValue=this.v[c];}else if(this.m==1){this.H[c].nodeValue=Math.round(this.g[c]/Q)/10+"%";}else{this.H[c].nodeValue=this.C[c];}}};com.wjstc.PieChart.PieChart.prototype.setNextTitleType=function(){this.setTitleType(this.m+1);};com.wjstc.PieChart.PieChart.prototype.showSector=function(k){this.build(k);};com.wjstc.PieChart.PieChart.prototype.build=function(D,k){var z=com.wjstc.Common.ZoomSensor.getZoom();var M;var o;if(typeof(k)=='undefined'){k= -1;}var I=Math.PI/2;if(!this.d){return;}this.G=0;for(var c=0;c<this.g.length;c++){this.G+=this.g[c];}var Q=this.G/1000;var ad;var _alpha=2*Math.PI/this.G;var f=0;var t=0;var L=D*Math.PI/180;var V=0.01;var J=10;var c=0;var aj=0;var A='#ffffff';for(c=0;c<this.g.length;c++){A=this.ac[c%this.ac.length];A=(k<0||c!=k)?A:com.wjstc.Util.HexAjust(A,50);var l=document.createElement("div");var B=document.createElement("span");var P=this.C[c];ad=Math.round(this.g[c]/Q)/10;if(this.m==2){P=this.v[c];}else if(this.m==1){P=ad+"%";}this.H[c]=document.createTextNode(P);B.appendChild(this.H[c]);l.appendChild(B);l.style.position='absolute';l.style.width='20em';l.style.textAlign='center';l.style.margin=((c==k)?25.4/z+'em 0 0 '+25/z+'em':26/z+'em 0 0 '+25/z+'em');l.style.zIndex='100000';l.style.color=((c==k)?'#FFFF00':'#FFFFFF');;l.id='pie_label_'+c;B.style.fontSize=((c==k)?'1.6em':'1.0em');B.style.fontWeight=((c==k)?'bold':'normal');B.style.fontFamily='Verdana,Helvetica,Arial,sans-serif';B.style.textShadow='#fff 0 2px 5px';var labelangle=(L+_alpha*this.g[c]/2)%(Math.PI*2);var aa=0-this.r*((c&1)?1.55:1.65)*Math.sin(labelangle);l.style.top=((Math.abs(aa)<0.001)?0:aa)+"em";var T=this.r*((c&1)?1.55:1.65)*Math.cos(labelangle);l.style.left=((Math.abs(T)<0.001)?0:T)+"em";this.d.appendChild(l);var j=document.createElement("div");L+=_alpha*this.g[c];t=L-I*f;while(t>I+V){o=document.createElement("div");o.style.position='absolute';o.style.width='15em';o.style.height='15em';o.style[['bottom','top'][(f>>1)&1]]='27em';o.style[['left','right'][(f&1)^((f>>1)&1)]]='35em';o.style.backgroundColor=A;o.style.zIndex=J--;this.d.appendChild(o);f++;J=10*(f+1);t=L-I*f;}j.style.position='absolute';j.style[['bottom','top'][(f>>1)&1]]='27em';j.style[['left','right'][(f&1)^((f>>1)&1)]]='35em';j.style.zIndex=J--;if(Math.abs(I-t)<=V){j.style.width='15em';j.style.height='15em';j.style.backgroundColor=A;this.d.appendChild(j);f++;J=10*(f+1);}else{j.style.width='0';j.style.height='0';var F=Math.abs(this.r*Math.tan(t));var K=this.r;if(F>0){if(F>this.r){K=this.r/Math.tan(t);F=this.r;M=(this.r-K);j.style[["width","height","width","height"][(f&3)]]=((Math.abs(M)<0.0001)?0:M)+"em";}j.style["border"+["Left","Bottom","Right","Top"][f&3]]="solid "+((Math.abs(K)<0.0001)?0:K)+"em transparent";j.style["border"+["Bottom","Right","Top","Left"][f&3]]="solid "+((Math.abs(F)<0.0001)?0:F)+"em "+A;this.d.appendChild(j);}}}};com.wjstc.PieChart.pc=new com.wjstc.PieChart.PieChart();