PageSourceSearch

https://www.coding-dude.com/wp/wp-content/cache/minify/3a11c.js

js coding-dude.com collected 2026-09-24 20:29:47 UTC 78,697 bytes, 12 lines download raw bytes

1function drawSlice(a,b,c,d,e,f,g,h,i){a.save(),a.fillStyle=g;var j=0;i&&"pop"==h.highlightMode&&(j=h.highlightSize);var k=h.startAngle*Math.PI/180;if(a.beginPath(),a.arc(b,b,b+j-h.padding,c+k,c+2*Math.PI*(d/e)+k,!1),"doughnut"==f?a.arc(b,b,b*h.holeSize,c+k+2*Math.PI*(d/e),c+k,!0):a.lineTo(b,b),a.fill(),a.closePath(),i&&"border"==h.highlightMode&&(a.beginPath(),a.strokeStyle=g,a.lineWidth=h.highlightSize,a.arc(b,b,b+5-h.padding,c+k,c+2*Math.PI*(d/e)+k,!1),a.stroke(),a.closePath()),a.restore(),null!=h.fillTexture){var l=new Image;l.fillTexture=h.fillTexture,l.fillTextureBlend=h.fillTextureBlend,l.onload=function(){var a=document.getElementById(h.id).getElementsByTagName("canvas")[0];this.context=a.getContext("2d"),this.context.save(),this.context.translate(2,2);var g=this.context.createPattern(l,"repeat");this.context.beginPath(),this.context.arc(b,b,b+j-h.padding,c+k,c+2*Math.PI*(d/e)+k,!1),"doughnut"==f&&this.context.arc(b,b,b*h.holeSize,c+k+2*Math.PI*(d/e),c+k,!0),this.context.lineTo(b,b),this.context.fillStyle=g,null!=this.fillTextureBlend?(this.context.globalCompositeOperation="lighter",this.context.globalAlpha=.2):(this.context.globalCompositeOperation="source-atop",this.context.globalAlpha=1),this.context.fill(),this.context.restore()},l.src=h.fillTexture}}function drawSliceLabel(a,b,c,d,e,f){var g=f.startAngle*Math.PI/180,h=c+g,i=c+2*Math.PI*(d/e)+g,j=(b-f.padding)/2;"doughnut"==f.type&&(j=3*(b-f.padding)/4);var k=b+j*Math.cos(h+(i-h)/2)+CANVAS_PADDING/2,l=b+j*Math.sin(h+(i-h)/2)+CANVAS_PADDING/2;f.centeredLabel&&(k=CANVAS_PADDING/2+(f.width-CANVAS_PADDING/2)/2,l=CANVAS_PADDING/2+(Math.min(f.height,f.width)-CANVAS_PADDING/2)/2),a.save(),a.fillStyle=f.fontColor,a.font=f.fontWeight+" "+f.fontSize+" '"+f.fontFamily+"'",a.textAlign="center",a.textBaseline="middle","#ffffff"==f.fontColor&&(a.shadowColor="#000000",a.shadowOffsetX=1,a.shadowOffsetY=1,a.shadowBlur=1),"percent"==f.labelType?parseFloat(Math.round(1e4*d/e)/100)>5&&a.fillText(parseFloat(Math.round(1e4*d/e)/100).toFixed(f.labelDecimals)+"%",k,l):"value"==f.labelType&&parseFloat(Math.round(1e4*d/e)/100)>5&&a.fillText(parseFloat(d).toFixed(f.labelDecimals)+" "+f.labelUnit,k,l),a.restore()}function hslToRgb(a,b,c){function d(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a}var e,f,g;if(0==b)e=f=g=c;else{var h=.5>c?c*(1+b):c+b-c*b,i=2*c-h;e=d(i,h,a+1/3),f=d(i,h,a),g=d(i,h,a-1/3)}return{r:Math.round(255*e),g:Math.round(255*f),b:Math.round(255*g)}}function HSBToRGB(a){return hslToRgb(a.h/360,a.s/100,a.b/100)}function hexToRgb(a){var b=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return b?{r:parseInt(b[1],16),g:parseInt(b[2],16),b:parseInt(b[3],16)}:null}function rgbToHSB(a,b,c){a/=255,b/=255,c/=255;var d,e=Math.max(a,b,c),f=Math.min(a,b,c),g=0,h=(e+f)/2;if(e==f)g=d=0;else{var i=e-f;switch(d=h>.5?i/(2-e-f):i/(e+f),e){case a:g=(b-c)/i+(c>b?6:0);break;case b:g=(c-a)/i+2;break;case c:g=(a-b)/i+4}g/=6}return{h:360*g,s:100*d,b:100*h}}function RGBToHex(a){for(var b=[a.r.toString(16),a.g.toString(16),a.b.toString(16)],c=0;c<b.length;c++)1==b[c].length&&(b[c]="0"+b[c]);return b.join("")}function HSBToHex(a){return RGBToHex(HSBToRGB(a))}function hue(a,b){var c=360/b,d=a*c;return Math.round(d)}function findPos(a){var b=0,c=0;if(a.offsetLeft&&(b+=parseInt(a.offsetLeft)),a.offsetTop&&(c+=parseInt(a.offsetTop)),a.scrollTop&&a.scrollTop>0&&(c-=parseInt(a.scrollTop)),a.offsetParent){var d=findPos(a.offsetParent);b+=d[0],c+=d[1]}else if(a.ownerDocument){var e=a.ownerDocument.defaultView;if(!e&&a.ownerDocument.parentWindow&&(e=a.ownerDocument.parentWindow),e&&e.frameElement){var d=findPos(e.frameElement);b+=d[0],c+=d[1]}}return[b,c]}function $_a(a){for(var b={},c=0;c<a.attributes.length;c++){var d=a.attributes[c];"undefined"!=typeof d&&(b[d.name.toLowerCase().toCamel()]=d.value)}return b}function ig_UUID(a){var b=a.nodeName.toLowerCase();if(""==a.id){var c=1,d=document.getElementById(b+c);if(d){for(;d;)c++,d=document.getElementById(b+c);a.id=b+c}else a.id=b+c}var e=$_a(a);if("undefined"!=typeof e.heartBeat&&e.heartBeat>0){var f=function(){infographicRedraw(a.id)};setTimeout(f,e.heartBeat)}if("undefined"!=typeof e.width&&e.width.indexOf("%")==e.width.length-1){var g=parseFloat(e.width)/100,h=document.getElementById(a.id).parentNode,i=window.getComputedStyle(h);e.width=parseInt(i.width)*g,a.attributes.width.value=e.width,a.nodeName.indexOf("PIECHART")>=0&&a.setAttribute("height",a.attributes.width.value),removeCanvas(a);var j=function(){var b=window.getComputedStyle(h),c=parseInt(b.width);a.attributes.width.value=c*g,a.nodeName.indexOf("PIECHART")>=0&&a.setAttribute("height",a.attributes.width.value),infographicRedraw(a.id)};addResizeEventHandler(j)}}function removeCanvas(a){var b=a.getElementsByTagName("canvas");if(b.length>0)for(var c=0;c<b.length;c++)b[c].remove()}function infographicLegend(a){ig_UUID(a);var b=$_a(a);if(a.attributes["for"]){var c=document.getElementById(a.attributes["for"].value),d=c.__instance.options.data;if(c.__instance.options.dataGrouped){d=c.__instance.options.data[0];for(key in d)d=d[key];b.showValues="no"}var e=document.createElement("ul");e.style.listStyle="none",e.style.padding="0",e.style.margin="0";for(var f=0;f<d.length;f++)for(key in d[f])if(!(key.indexOf("$")>=0)){var g=document.createElement("li");if(g.style.margin="5px","inline"==b.display&&(g.style.display="inline"),c.__instance.options.fillTextures){var h=new Image;h.crossOrigin="anonymous",h.fillTexture=c.__instance.options.fillTextures[f],h.fillTextureBlend=c.__instance.options.fillTexturesBlend[f],h.legendKey=g,h.i=f,h.key=key,h.onload=function(){var a=document.createElement("canvas");a.width=a.height=Math.max(this.width,this.height);var b=a.getContext("2d");b.fillStyle=c.__instance.options.colorOfIndexData(this.i),b.fillRect(0,0,a.width,a.height);var d=b.createPattern(this,"repeat");b.fillStyle=d,null!=this.fillTextureBlend?(b.globalCompositeOperation="lighter",b.globalAlpha=.2):(b.globalCompositeOperation="source-atop",b.globalAlpha=1),b.fillRect(0,0,a.width,a.height),this.legendKey.innerHTML+="<span class='infographic-legend-key-color' style=\"padding-left:10px;margin-left:10px;margin-right:10px;background-image:url('"+a.toDataURL()+"')\">&nbsp;</span>",this.legendKey.innerHTML+="<span class='infographic-legend-key'>"+this.key+"</span> "},h.src=c.__instance.options.fillTextures[f],console.log(h.src)}else g.innerHTML+="<span class='infographic-legend-key-color' style='padding-left:10px;margin-left:10px;margin-right:10px;background-color:"+c.__instance.options.colorOfIndexData(f)+"'>&nbsp;</span>",g.innerHTML+="<span class='infographic-legend-key'>"+key+"</span> ";"yes"==b.showValues&&(g.innerHTML+="<span class='infographic-legend-value'>"+d[f][key]+"</span>"),e.appendChild(g)}a.appendChild(e)}}function infographicPiechart(a){removeCanvas(a),ig_UUID(a);var b=$_a(a),c=new infographic.Piechart(b);if(a.__instance=c,"undefined"!=typeof b.dataCsv){var d=new XMLHttpRequest;d.open("GET",b.dataCsv,!1),d.onreadystatechange=function(){for(var b=InfographicCSV().parse(d.responseText),e=0;e<b.length;e++)try{var f=b[e][0],g=parseFloat(b[e][1].replace(",",""));isNaN(g)||""==f.trim()||c.addValue(f,g)}catch(h){}for(var i=a.getElementsByTagName("infographic-pieslice"),e=0;e<i.length;e++)c.addValue(i[e].innerHTML,parseFloat(i[e].attributes.value.value));c.draw()},d.send()}else{for(var e=a.getElementsByTagName("infographic-pieslice"),f=0;f<e.length;f++){c.addValue(e[f].innerHTML,parseFloat(e[f].attributes.value.value));var g=null,h=null;e[f].attributes["fill-texture"]&&(g=e[f].attributes["fill-texture"].value),e[f].attributes["fill-texture-blend"]&&(h=e[f].attributes["fill-texture-blend"].value),
1c.addFillTexture(g,h)}c.draw()}}function infographicShapebargraph(a){removeCanvas(a),ig_UUID(a);var b=new infographic.ShapeBarGraph($_a(a));a.__instance=b,b.draw()}function infographicShapegraph(a){removeCanvas(a),ig_UUID(a);var b=new infographic.ShapeGraph($_a(a));a.__instance=b,b.draw()}function infographicBargraph(a){removeCanvas(a),ig_UUID(a);var b=$_a(a);b.data=[];for(var c=a.getElementsByTagName("infographic-bargroup"),d=0;d<c.length;d++){var e=c[d],f=e.getElementsByTagName("infographic-bar"),g=new Object;g[e.attributes.name.value]=[];for(var h=0;h<f.length;h++){var i=new Object;i[f[h].innerHTML]=f[h].attributes.value.value,"stacked"!=b.barType&&(i.$attributes=f[h].attributes),g[e.attributes.name.value].push(i)}b.data.push(g)}var j=new infographic.BarGraph(b);a.__instance=j,j.draw()}function infographicLinegraph(a){removeCanvas(a),ig_UUID(a);var b=$_a(a);if(b.data=[],"undefined"!=typeof b.dataCsv){var c=new XMLHttpRequest;c.open("GET",b.dataCsv,!1),c.onreadystatechange=function(){for(var a=InfographicCSV().parse(c.responseText),d=1;d<a[0].length;d++){var e=new Object;e[a[0][d]]=[];for(var f=1;f<a.length;f++){var g=new Object;if("undefined"!=typeof a[f][d]&&"undefined"!=typeof a[f][0]&&""!=a[f][0].trim()){var h=parseFloat(a[f][d].replace(",",""));isNaN(h)||(g[a[f][0]]=h,e[a[0][d]].push(g))}}b.data.push(e)}},c.send()}for(var d=a.getElementsByTagName("infographic-line"),e=0;e<d.length;e++){var f=d[e],g=f.getElementsByTagName("infographic-point"),h=new Object;h[f.attributes.name.value]=[];for(var i=0;i<g.length;i++){var j=new Object;j[g[i].innerHTML]=g[i].attributes.value.value,j.$attributes=g[i].attributes,h[f.attributes.name.value].push(j)}b.data.push(h)}var k=new infographic.LineGraph(b);a.__instance=k,k.draw()}function InfographicCSV(){var a={removeComments:function(a){for(var b=new RegExp("^#.*\n?|^s*\n","g");b.exec(a);)a=a.replace(b,"");return a},parse:function(a,b){a=this.removeComments(a),b=b||function(a,b,c){return c};for(var c,d,e,f=a.split(""),g=0,h=f.length,i=[];h>g;){for(i.push(e=[]);h>g&&"\r"!==f[g]&&"\n"!==f[g];){if(c=d=g,'"'===f[g]){for(c=d=++g;h>g;){if('"'===f[g]){if('"'!==f[g+1])break;f[++g]=""}d=++g}for('"'===f[g]&&++g;h>g&&"\r"!==f[g]&&"\n"!==f[g]&&","!==f[g];)++g}else for(;h>g&&"\r"!==f[g]&&"\n"!==f[g]&&","!==f[g];)d=++g;e.push(b(i.length-1,e.length,f.slice(c,d).join(""))),","===f[g]&&++g}"\r"===f[g]&&++g,"\n"===f[g]&&++g}return i},stringify:function(a,b){b=b||function(a,b,c){return c};var c,d,e,f,g="",h=a.length;for(e=0;h>e;++e)for(e&&(g+="\r\n"),c=0,d=a[e].length;d>c;++c)c&&(g+=","),f=b(e,c,a[e][c]),/[,\r\n"]/.test(f)&&(f='"'+f.replace(/"/g,'""')+'"'),g+=f||0===f?f:"";return g}};return a}function documentLoad(){for(var tagIdx=0;tagIdx<customTags.length;tagIdx++){var tagname=customTags[tagIdx];document.createElement(tagname),tagInstances=document.getElementsByTagName(tagname);for(var i=0;i<tagInstances.length;i++)tagInstances[i][tagname.toCamel()]=eval(tagname.toCamel()),eval(tagname.toCamel()+"(tagInstances["+i+"])"),""==tagInstances[i].style.display&&(tagInstances[i].style.display="inline-block",tagInstances[i].style.verticalAlign="top")}}function infographicRedraw(id){var ig=document.getElementById(id);eval(ig.nodeName.toLowerCase().toCamel())(ig)}function addResizeEventHandler(a){null==window.onresize&&(window.onresize=function(){for(_h in _resizeHandlers)_resizeHandlers[_h]()}),_resizeHandlers.push(a)}function hex2a(a){for(var b="",c=0;c<a.length;c+=2)b+=String.fromCharCode(parseInt(a.substr(c,2),16));return b}var COLOR_SATURATION=60,COLOR_BRIGHTNESS=55,COLOR_SATURATION_SELECTED=60,COLOR_BRIGHTNESS_SELECTED=1.1*COLOR_BRIGHTNESS,CANVAS_PADDING=4,INFOGRAPHIC_COLORS=[],INGOGRAPHIC_IMAGE_CACHE=[],infographic={Piechart:function(a){a=a||{};var b={id:"infographic-piechart",useDefaultData:!0,type:"pie",fontSize:"16px",fontWeight:"bold",fontFamily:"sans-serif",fontColor:"#ffffff",labelDecimals:2,labelType:"percent",labelUnit:"",data:[],width:500,height:500,fillTexture:null,holeSize:.5,highlightMode:"default",highlightSize:4,padding:0,startAngle:0,baseValue:0,colors:[]};try{b.fontFamily="undefined"!=typeof window.getComputedStyle?window.getComputedStyle(document.getElementById(a.id)).fontFamily:document.getElementById(a.id).currentStyle.fontFamily}catch(c){}return a.extendProperties(b),a.highlightSize=parseFloat(a.highlightSize),a.startAngle=parseFloat(a.startAngle),"string"==typeof a.colors&&(a.colors=a.colors.split(",")),this.opts=a,this.opts.colorOfIndexData=function(b){var c="#"+HSBToHex({h:hue(b,a.data.length),s:COLOR_SATURATION_
1SELECTED,b:COLOR_BRIGHTNESS_SELECTED});if(b<a.colors.length){c=a.colors[b];var d=hexToRgb(c),e=rgbToHSB(d.r,d.g,d.b);e.b*=1.1,e.b=Math.min(90,e.b),c="#"+HSBToHex(e)}return c},{getFillTexture:function(){var a=this;if(null!=this.opts.fillTexture){if("undefined"==typeof this.fillTextureImage){var b=new Image;return b.onload=function(){a.fillTextureImage=b},null}return a.fillTextureImage}},addValue:function(b,c){a.useDefaultData&&(a.data=[]);var d={};Object.defineProperty(d,b,{enumerable:!0,writable:!0,configurable:!1,value:null}),d[b]=c,a.data.push(d),a.useDefaultData=!1},addFillTexture:function(b,c){a.fillTextures||(a.fillTextures=[],a.fillTexturesBlend=[]),a.fillTextures.push(b),a.fillTexturesBlend.push(c)},draw:function(){var b=this;if(1==a.data.length)for(key in a.data[0])"percent"==a.labelType||0==a.baseValue?b.addValue("#FAKE#",100-Math.min(100,a.data[0][key])):b.addValue("#FAKE#",a.baseValue-a.data[0][key]),a.data[0][key].fake=!0,a.centeredLabel=!0;for(var c=function(){for(var b=0,c=0;c<a.data.length;c++)for(key in a.data[c])b+=a.data[c][key];return b}(),d=0,e=Math.min(a.width/2,a.height/2)-CANVAS_PADDING,f=new Array,g=new Array,h=0;h<a.data.length;h++)for(key in a.data[h]){var i=document.createElement("canvas"),j=i.getContext("2d");i.width=a.width,i.height=a.height;var k=document.createElement("canvas"),l=k.getContext("2d");k.width=a.width,k.height=a.height,j.clearRect(0,0,a.width,a.height);var m=a.data[h][key];j.translate(CANVAS_PADDING/2,CANVAS_PADDING/2);var n="#"+HSBToHex({h:hue(h,a.data.length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});h<a.colors.length&&(n=a.colors[h]),a.fillTextures&&(a.fillTextures[h]?(a.fillTexture=a.fillTextures[h],a.fillTextureBlend=a.fillTexturesBlend[h]):(a.fillTexture=null,a.fillTextureBlend=null)),drawSlice(j,e,d,m,c,a.type,n,a),"#FAKE#"!=key&&drawSliceLabel(l,e,d,m,c,a),d+=2*Math.PI*(m/c),f.push(i),g.push(k)}var o=document.getElementById(a.id),p=document.createElement("canvas");p.width=a.width,p.height=a.height,o.appendChild(p);var q=p.getContext("2d");q.clearRect(0,0,a.width,a.height);for(var h=0;h<f.length;h++)q.drawImage(f[h],0,0);for(var h=0;h<g.length;h++)q.drawImage(g[h],0,0);p.addEventListener("mousemove",function(h){var i=h,j=i.offsetX||i.clientX-i.target.getBoundingClientRect().left,k=i.offsetY||i.clientY-i.target.getBoundingClientRect().top,l=j-e,m=k-e;if(0!=l){var n=Math.sqrt(l*l+m*m),o=Math.atan2(m,l)-a.startAngle*Math.PI/180;0>o&&(o+=2*Math.PI),d=0,q.clearRect(0,0,a.width,a.height);for(var p=0;p<a.data.length;p++)for(key in a.data[p]){var r=a.data[p][key],s=f[p],t=g[p],u=s.getContext("2d"),v=t.getContext("2d");if("#FAKE#"!=key&&("doughnut"!=a.type||n>=e*a.holeSize)&&e>=n&&o>=d&&o<=d+2*Math.PI*(r/c)){u.canvas.width=0,u.canvas.width=a.width,u.translate(CANVAS_PADDING/2,CANVAS_PADDING/2),u.clearRect(0,0,a.width,a.height),v.clearRect(0,0,a.width,a.height);var w=a.colorOfIndexData(p);a.fillTextures&&(a.fillTextures[p]?(a.fillTexture=a.fillTextures[p],a.fillTextureBlend=a.fillTexturesBlend[p]):(a.fillTexture=null,a.fillTextureBlend=null)),drawSlice(u,e,d,r,c,a.type,w,a,!0),"#FAKE#"!=key&&drawSliceLabel(v,e,d,r,c,a),q.drawImage(s,0,0),q.drawImage(t,0,0),b.showTooltip(e,d+a.startAngle*Math.PI/180,key,r,c,a,s),indexSelected=p}else{u.canvas.width=0,u.canvas.width=a.width,u.translate(CANVAS_PADDING/2,CANVAS_PADDING/2),u.clearRect(0,0,a.width,a.height),v.clearRect(0,0,a.width,a.height);var w="#"+HSBToHex({h:hue(p,a.data.length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});p<a.colors.length&&(w=a.colors[p]),a.fillTextures&&(a.fillTextures[p]?(a.fillTexture=a.fillTextures[p],a.fillTextureBlend=a.fillTexturesBlend[p]):(a.fillTexture=null,a.fillTextureBlend=null)),drawSlice(u,e,d,r,c,a.type,w,a),"#FAKE#"!=key&&drawSliceLabel(v,e,d,r,c,a),f[p]=s,g[p]=t,indexSelected=-1}d+=2*Math.PI*(r/c)}for(var p=0;p<a.data.length;p++)q.drawImage(f[p],0,0);for(var p=0;p<a.data.length;p++)q.drawImage(g[p],0,0)}},!1)},showTooltip:function(a,b,c,d,e,f,g){var h=b,i=b+2*Math.PI*(d/e),j=a/2;"doughnut"==f.type&&(j=3*a/4);var k=a+j*Math.cos(h+(i-h)/2)+CANVAS_PADDING/2,l=a+j*Math.sin(h+(i-h)/2)+CANVAS_PADDING/2,m=document.getElementById("pieChartTooltip");(null==m||"undefined"==typeof m)&&(m=document.createElement("div"),m.id="pieChartTooltip",m.style.transition="opacity 0.5s",m.style.backgroundColor="#ffffff",m.style.padding="3px",m.style.border="1px solid #cccccc",m.style.boxShadow="1px 1px 1px #dddddd",m.style.borderRadius="0 3px 3px 3px",m.style.fontSize="11px",m.style.fontFamily="Arial",m.style.cursor="arrow",m.className="pieChartTooltip-style",m.onclick=function(){this.parentNode.removeChild(this)},setTimeout(function(){m.parentNode.removeChild(m)},5e3),document.body.appendChild(m));var n=document.getElementById(f.id).getElementsByTagName("canvas")[0].getBoundingClientRect(),o=parseFloat(Math.round(1e4*d/e)/100).toFixed(f.labelDecimals);m.style.position="absolute";var p=window.pageYOffset||document.documentElement.scrollTop,q=window.pageXOffset||document.documentElement.scrollLeft;m.style.left=n.left+q+k+"px",m.style.top=n.top+p+l+"px",m.innerHTML="<b>"+c+"</b></br><span>"+d+" "+f.labelUnit+" ("+o+"%)</span>"},colorOfIndexData:this.colorOfIndexData,options:this.opts}},ShapeGraph:function(a){a=a||{};var b={image:"",fontColor:"#ffffff",fontSize:"16px",fontWeight:"bold",fontFamily:"sans-serif",width:300,height:300,value:50,type:"vertical",fillColor:"#8dd96c",backColor:"#eeeeee",tooltip:!0,description:""};try{b.fontFamily=window.getComputedStyle(document.getElementById(a.id)).fontFamily}catch(c){}return a.extendProperties(b),{draw:function(){var b=document.createElement("img");b.height=a.height,b.width=a.width,b.src=a.image,b.onload=function(){var c=document.createElement("canvas");
1c.width=b.width,c.height=b.height;var d=c.getContext("2d");if(d.save(),d.drawImage(b,0,0,b.width,b.height),d.globalCompositeOperation="source-atop","vertical"==a.type)d.fillStyle=a.fillColor,d.fillRect(0,b.height-Math.round(b.height*a.value/100),b.width,b.height),d.fillStyle=a.backColor,d.fillRect(0,0,b.width,b.height-Math.round(b.height*a.value/100));else if("radial"==a.type){var e=Math.max(a.height,a.width)/2;d.fillStyle=a.fillColor,d.beginPath(),d.arc(e,e,2*e,-Math.PI/2,0+2*Math.PI*(a.value/100)-Math.PI/2,!1),d.lineTo(e,e),d.fill(),d.closePath(),d.fill(),d.fillStyle=a.backColor,d.beginPath(),d.arc(e,e,2*e,2*Math.PI*(a.value/100)-Math.PI/2,0+2*Math.PI*(1-a.value/100)+2*Math.PI*(a.value/100)-Math.PI/2,!1),d.lineTo(e,e),d.fill(),d.closePath(),d.fill()}else d.fillStyle=a.fillColor,d.fillRect(0,0,Math.round(b.width*a.value/100),b.height),d.fillStyle=a.backColor,d.fillRect(Math.round(b.width*a.value/100),0,b.width,b.height);d.restore(),d.save(),d.fillStyle=a.fontColor,d.font=a.fontWeight+" "+a.fontSize+" '"+a.fontFamily+"'",d.textAlign="center",d.textBaseline="middle","#ffffff"==a.fontColor&&(d.shadowBlur=1,d.shadowColor="#000000",d.shadowOffsetX=1,d.shadowOffsetY=1),d.fillText(a.value+"%",a.width/2,a.height/2),d.restore(),a.tooltip&&(c.onmouseover=function(){var b=document.getElementById(a.id);c.style.opacity=.9;var d=document.getElementById("shapeGraphTooltip");(null==d||"undefined"==typeof d)&&(d=document.createElement("div"),d.id="shapeGraphTooltip",d.style.transition="all 0.5s",d.style.backgroundColor="#ffffff",d.style.padding="3px",d.style.border="1px solid #cccccc",d.style.boxShadow="1px 1px 1px #dddddd",d.style.borderRadius="0 3px 3px 3px",d.style.fontSize="11px",d.style.fontFamily="Arial",d.style.cursor="arrow",d.className="pieChartTooltip-style"),d.style.position="absolute";var e=b.getBoundingClientRect(),f=window.pageYOffset||document.documentElement.scrollTop,g=window.pageXOffset||document.documentElement.scrollLeft;d.style.left=e.left+g+a.width/2+"px",d.style.top=e.top+f+a.height/2+"px",d.innerHTML="<span>"+a.description+"</span><span>"+a.value+"% </span>",d.onmouseover=this.onmouseover,b.appendChild(d)},c.onmouseout=function(){this.style.opacity=1;var a=document.getElementById("shapeGraphTooltip");a.style.opacity=0,a.parentNode.removeChild(a)}),0==document.getElementById(a.id).querySelectorAll("canvas").length&&document.getElementById(a.id).appendChild(c)}}}},ShapeBarGraph:function(a){a=a||{};var b={image:"",fontSize:"16px",fontWeight:"bold",fontFamily:"sans-serif",fontColor:"#777777",width:500,height:500,value:50,type:"horizontal",fillColor:"#8dd96c",backColor:"#eeeeee",label:"",padding:10};try{b.fontFamily=window.getComputedStyle(document.getElementById(a.id)).fontFamily}catch(c){}return a.extendProperties(b),a.width=parseInt(a.width),a.height=parseInt(a.height),a.padding=parseInt(a.padding),{draw:function(){var b=document.createElement("img");b.src=a.image,b.onload=function(){null==a.width&&(a.width=10*b.width),null==a.height&&(a.height=10*b.height);var c=b.width/b.height;c>1?(b.width=a.height/10,b.height=b.width/c):(b.height=a.width/10,b.width=c*b.height);var d=document.createElement("canvas");d.width=a.width+a.padding,d.height=a.height;var e=d.getContext("2d");e.save();for(var f=0;10>f;f++)"vertical"==a.type?e.drawImage(b,a.padding+a.width/2-b.width/2,0+f*b.height,b.width,b.height):e.drawImage(b,a.padding+0+f*b.width,a.height/2-b.height/2,b.width,b.height);e.globalCompositeOperation="source-atop","vertical"==a.type?(e.fillStyle=a.fillColor,e.fillRect(0,b.height-Math.round(a.height*a.value/100),a.width,a.height),e.fillStyle=a.backColor,e.fillRect(0,0,a.width,a.height-Math.round(a.height*a.value/100))):(e.fillStyle=a.backColor,e.fillRect(0,0,a.width+a.padding,a.height),e.fillStyle=a.fillColor,e.fillRect(0,0,Math.round(a.width*a.value/100)+a.padding,a.height),e.restore(),e.save(),e.fillStyle=a.fontColor,e.font=a.fontWeight+" "+a.fontSize+" '"+a.fontFamily+"'",e.textAlign="center",e.textBaseline="middle","#ffffff"==a.fontColor?(e.shadowColor="#000000",e.shadowOffsetX=1,e.shadowOffsetY=1,e.shadowBlur=1):e.shadowBlur=0,e.fillText(a.value+"%",a.width/2,parseInt(a.fontSize)),e.textBaseline="top",e.translate(a.width/2,a.height/2),e.rotate(-90*Math.PI/180),e.translate(0,-a.width/2),e.fillText(a.label,0,0
1),e.restore()),0==document.getElementById(a.id).querySelectorAll("canvas").length&&document.getElementById(a.id).appendChild(d),e.restore()}}}},BarGraph:function(a){a=a||{};var b={data:[],fontSize:"10px",fontWeight:"bold",fontFamily:"sans-serif",fontColor:"#777777",width:200,height:200,value:50,maxValue:0,type:"vertical",fontColor:"#000000",label:"",serieSpacing:10,padding:10,gridScale:0,gridColor:"#cccccc",gridLineWidth:.5,gridFontWeight:"bold",gridFontSize:"10px",gridFontFamily:"arial",tooltip:!0,barLabels:!1,colors:[],barType:"normal"};try{b.fontFamily=window.getComputedStyle(document.getElementById(a.id)).fontFamily}catch(c){}a.extendProperties(b),a.padding=parseInt(a.padding),a.gridLineWidth=parseFloat(a.gridLineWidth),a.maxValue=parseInt(a.maxValue),a.barLabels=JSON.parse(a.barLabels),"string"==typeof a.colors&&(a.colors=a.colors.split(",")),this.opts=a;for(var d=[],e=0;e<a.data.length;e++){var f=a.data[e];for(serieName in f)for(var g=0;g<f[serieName].length;g++){var h=f[serieName][g];for(subSerieName in h)subSerieName.indexOf("$")>=0||d.indexOf(subSerieName)<0&&d.push(subSerieName)}}this.opts.dataGrouped=!0,this.opts.colorOfIndexData=function(b){var c="#"+HSBToHex({h:hue(b,d.length),s:COLOR_SATURATION_SELECTED,b:COLOR_BRIGHTNESS_SELECTED});if(b<a.colors.length){c=a.colors[b];var e=hexToRgb(c),f=rgbToHSB(e.r,e.g,e.b);f.b*=1.1,f.b=Math.min(90,f.b),c="#"+HSBToHex(f)}return c};for(var e=0;e<a.data.length;e++){var f=a.data[e];for(serieName in f)for(var g=0;g<f[serieName].length;g++){var h=f[serieName][g];for(subSerieName in h)if(!(subSerieName.indexOf("$")>=0)&&d.indexOf(subSerieName)!=g){var i=f[serieName][g];f[serieName][g]=f[serieName][d.indexOf(subSerieName)],f[serieName][d.indexOf(subSerieName)]=i}}}return{draw:function(){var b=document.createElement("canvas");b.width=a.width,b.height=a.height;var c=new Array,d=b.getContext("2d");d.save();for(var e=a.maxValue?a.maxValue:0,f=a.data.length,g=0,h=0,i=new Array,j=0;j<a.data.length;j++){var l=a.data[j];for(serieName in l){g=Math.max(g,l[serieName].length),i[serieName]=0;for(var m=0;m<l[serieName].length;m++){var n=l[serieName][m];for(subSerieName in n)if(!(subSerieName.indexOf("$")>=0)){var o=parseFloat(n[subSerieName]);e=Math.max(e,o),h=Math.min(h,o),i[serieName]+=o}}}}var p=(a.height-a.padding)/(e+Math.abs(h)),q=(a.width-a.padding)/(e+Math.abs(h));if("stacked"==a.barType){var r=0;for(serieName in i)r=Math.max(i[serieName],r);p=(a.height-a.padding)/(r+Math.abs(h)),q=(a.width-a.padding)/(r+Math.abs(h)),e=r}if(0!=a.gridScale){a.gridScale=parseInt(a.gridScale);var s=-Math.abs(Math.round(h/a.gridScale)*a.gridScale);for(d.save(),d.lineWidth=a.gridLineWidth,d.strokeStyle=a.gridColor;e>s;)if("vertical"==a.type){var t=a.height-s*p-a.padding-Math.abs(h)*p;d.moveTo(0,t),d.lineTo(a.width,t),d.fillStyle=a.gridColor,d.font=a.gridFontWeight+" "+a.gridFontSize+" '"+a.gridFontFamily+"'",d.textAlign="left",s+a.gridScale<e?d.textBaseline="bottom":(d.textBaseline="top",d.translate(0,1)),d.fillText(s,0,t),s+=a.gridScale}else{var t=s*q+a.padding+Math.abs(h)*q;d.moveTo(t,0),d.lineTo(t,a.height),d.fillStyle=a.gridColor,d.font=a.gridFontWeight+" "+a.gridFontSize+" '"+a.gridFontFamily+"'",d.textAlign="left",d.save(),d.rotate(Math.PI/2),s+a.gridScale<e?d.textBaseline="bottom":(d.textBaseline="top",d.translate(0,1)),d.fillText(s,0,-t),d.restore(),s+=a.gridScale}d.stroke(),d.restore()}var u=Math.floor((a.width-2*a.padding)/f/g-a.serieSpacing/2+a.serieSpacing/f/2),v=Math.floor((a.height-2*a.padding)/f/g-a.serieSpacing/2+a.serieSpacing/f/2);"stacked"==a.barType&&(u=Math.floor((a.width-2*a.padding)/f-a.serieSpacing/2),v=Math.floor((a.height-2*a.padding)/f-a.serieSpacing/2));for(var w=[],j=0;j<a.data.length;j++){var l=a.data[j];for(serieName in l){for(var m=0;m<l[serieName].length;m++){var n=l[serieName][m],x=null;n.$attributes&&n.$attributes.marker&&(x=n.$attributes.marker.value);for(subSerieName in n)if(!(subSerieName.indexOf("$")>=0)){var o=parseFloat(n[subSerieName]),y="#"+HSBToHex({h:hue(m,l[serieName].length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});if(m<a.colors.length&&(y=a.colors[m]),d.fillStyle=y,"vertical"==a.type)if("stacked"==a.barType){var z=0;if(m>0)for(k=m-1;k>=0;
1){for(ssn in l[serieName][k])z+=parseFloat(l[serieName][k][ssn]);k--}d.fillRect(a.padding+j*(u+a.serieSpacing/2),a.height-o*p-a.padding-z*p,u,o*p),c.push({rect:{x:a.padding+j*(u+a.serieSpacing/2),y:a.height-o*p-a.padding-z*p,w:u,h:o*p},serieName:serieName,subSerieName:subSerieName,i:j,j:m})}else{var A=a.padding+0+m*u+j*g*(u+a.serieSpacing/2),B=a.height-o*p-a.padding-Math.abs(h)*p;if(d.fillRect(A,B,u,o*p),x){var C=new Image;C._width=u,C._x=A,C._y=B,C.onload=function(){var a=this.width/this.height;d.drawImage(this,this._x,this._y-this._width/a,this._width,this._width/a)},C.src=x}w.push({x:A+u/2,y:B-2,text:subSerieName,color:y}),c.push({rect:{x:a.padding+0+m*u+j*g*(u+a.serieSpacing/2),y:a.height-o*p-a.padding-Math.abs(h)*p,w:u,h:o*p},serieName:serieName,subSerieName:subSerieName,i:j,j:m})}else if("stacked"==a.barType){var z=0;if(m>0)for(k=m-1;k>=0;){for(ssn in l[serieName][k])z+=parseFloat(l[serieName][k][ssn]);k--}d.fillRect(Math.abs(h)*q+a.padding+z*q,a.height-v-a.padding-j*(v+a.serieSpacing/2),o*q,v),c.push({rect:{x:Math.abs(h)*q+a.padding+z*q,y:a.height-v-a.padding-j*(v+a.serieSpacing/2),w:o*q,h:v},serieName:serieName,subSerieName:subSerieName,i:j,j:m})}else{var A=Math.abs(h)*q+a.padding,B=a.height-v-a.padding-m*v-j*g*(v+a.serieSpacing/2);if(d.fillRect(A,B,o*q,v),x){var C=new Image;C._height=v,C._x=A+o*q,C._y=B+v,C.onload=function(){var a=this.width/this.height;d.drawImage(this,this._x,this._y-this._height*a,this._height*a,this._height)},C.src=x}w.push({x:A+o*q+2,y:B+v/2,text:subSerieName,color:y}),c.push({rect:{x:Math.abs(h)*q+a.padding,y:a.height-v-a.padding-m*v-j*g*(v+a.serieSpacing/2),w:o*q,h:v},serieName:serieName,subSerieName:subSerieName,i:j,j:m})}}}d.fillStyle=a.fontColor,d.font=a.fontWeight+" "+a.fontSize+" '"+a.fontFamily+"'",d.textAlign="center",d.textBaseline="baseline","vertical"==a.type?"stacked"==a.barType?d.fillText(serieName,a.padding+0+j*(u+a.serieSpacing/2)+u/2,a.height-4):d.fillText(serieName,a.padding+0+j*g*(u+a.serieSpacing/2)+g*u/2,a.height-4):(d.save(),d.rotate(Math.PI/2),"stacked"==a.barType?d.fillText(serieName,a.height-a.padding-v/2-j*(v+a.serieSpacing/2),-4):d.fillText(serieName,a.height-a.padding-v*g/2-j*g*(v+a.serieSpacing/2),-4),d.restore())}}if(a.barLabels)for(var j=0;j<w.length;j++)d.fillStyle=w[j].color,d.font=a.fontWeight+" "+a.fontSize+" '"+a.fontFamily+"'",d.textAlign="left",d.textBaseline="middle","vertical"==a.type?(d.save(),d.translate(w[j].x,w[j].y),d.rotate(-Math.PI/2),d.fillText(w[j].text,0,0),d.restore()):d.fillText(w[j].text,w[j].x,w[j].y);
1d.restore(),document.getElementById(a.id).appendChild(b);var D=-1;b.addEventListener("mousemove",function(e){var f=e,g=f.offsetX||f.clientX-f.target.getBoundingClientRect().left,h=f.offsetY||f.clientY-f.target.getBoundingClientRect().top;if(-1!=D){var i=c[D],j="#"+HSBToHex({h:hue(i.j,a.data[i.i][i.serieName].length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});i.j<a.colors.length&&(j=a.colors[i.j]),d.fillStyle=j,d.fillRect(i.rect.x,i.rect.y,i.rect.w,i.rect.h);var k=document.getElementById("barChartTooltip");null!=k&&"undefined"!=typeof k&&k.parentNode.removeChild(k),D=-1}for(var l=0;l<c.length;l++){var m=c[l],n=!1;if(n=m.rect.w<0?g<=m.rect.x&&h>=m.rect.y&&g>=m.rect.x+m.rect.w&&h<=m.rect.y+m.rect.h:m.rect.h<0?g>=m.rect.x&&h<=m.rect.y&&g<=m.rect.x+m.rect.w&&h>=m.rect.y+m.rect.h:g>=m.rect.x&&h>=m.rect.y&&g<=m.rect.x+m.rect.w&&h<=m.rect.y+m.rect.h){if(l==D)return;var k=document.getElementById("barChartTooltip");(null==k||"undefined"==typeof k)&&(k=document.createElement("div"),k.id="barChartTooltip",k.style.backgroundColor="#ffffff",k.style.padding="3px",k.style.border="1px solid #cccccc",k.style.boxShadow="1px 1px 1px #dddddd",k.style.borderRadius="0 3px 3px 3px",k.style.fontSize="11px",k.style.fontFamily="Arial",k.style.cursor="arrow",k.className="pieChartTooltip-style",document.body.appendChild(k));var o=parseFloat(a.data[m.i][m.serieName][m.j][m.subSerieName]),p=b.getBoundingClientRect();k.style.position="absolute",k.innerHTML="<b>"+m.serieName+"</b></br><span>"+m.subSerieName+":"+o+"</span>";var q=k.getBoundingClientRect(),r=window.pageYOffset||document.documentElement.scrollTop,s=window.pageXOffset||document.documentElement.scrollLeft;"vertical"==a.type?(k.style.left=p.left+s+m.rect.x+m.rect.w/2-q.width/2+"px",k.style.top=p.top+r+m.rect.y-q.height-5+"px"):(k.style.left=p.left+s+m.rect.x+m.rect.w+5+"px",k.style.top=p.top+r+m.rect.y-q.height/2+m.rect.h/2+"px");var j="#"+HSBToHex({h:hue(m.j,a.data[m.i][m.serieName].length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS_SELECTED});if(m.j<a.colors.length){j=a.colors[m.j];var t=hexToRgb(j),u=rgbToHSB(t.r,t.g,t.b);u.b*=1.1,u.b=Math.min(90,u.b),j="#"+HSBToHex(u)}d.fillStyle=j,d.fillRect(m.rect.x,m.rect.y,m.rect.w,m.rect.h),D=l;break}}})},options:this.opts}},LineGraph:function(a){a=a||{};var b={data:[],fontColor:"#cccccc",fontSize:"16px",fontWeight:"bold",fontFamily:"sans-serif",width:300,height:300,value:50,lineWidth:10,fillColor:"#8dd96c",backColor:"#eeeeee",padding:10,pointSize:5,gridScale:0,gridColor:"#cccccc",gridLineWidth:.5,gridFontWeight:"bold",gridFontSize:"10px",gridFontFamily:"arial",tooltip:!0,maxValue:0,colors:[],description:"",xAxisLabels:"yes"};try{b.fontFamily=window.getComputedStyle(document.getElementById(a.id)).fontFamily}catch(c){}return a.extendProperties(b),a.gridLineWidth=parseFloat(a.gridLineWidth),a.maxValue=parseFloat(a.maxValue),a.pointSize=parseInt(a.pointSize),"string"==typeof a.colors&&(a.colors=a.colors.split(",")),this.opts=a,this.opts.colorOfIndexData=function(b){var c="#"+HSBToHex({h:hue(b,a.data.length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});if(b<a.colors.length){
2c=a.colors[b];var d=hexToRgb(c),e=rgbToHSB(d.r,d.g,d.b);e.b=Math.min(90,e.b),c="#"+HSBToHex(e)}return c},{options:this.opts,draw:function(){var b=document.createElement("canvas");b.width=a.width,b.height=a.height;for(var c=b.getContext("2d"),d=0,e=parseFloat(a.maxValue)+parseFloat(a.padding),f=0,g=0;g<a.data.length;g++){var h=a.data[g];for(serieName in h){f=Math.max(f,h[serieName].length);for(var i=0;i<h[serieName].length;i++){var j=h[serieName][i];for(subSerieName in j)if(!(subSerieName.indexOf("$")>=0)){var k=parseFloat(j[subSerieName]);e=Math.max(e,k),d=Math.min(d,k)}}}}d=Math.min(d,0);var l=(a.height-a.padding)/(e+Math.abs(d));if(0!=a.gridScale){a.gridScale=parseInt(a.gridScale);var m=-Math.abs(Math.round(d/a.gridScale)*a.gridScale);for(c.save(),c.lineWidth=a.gridLineWidth,c.strokeStyle=a.gridColor;e>=m;){var n=a.height-a.padding/2-m*l-Math.abs(d)*l;c.moveTo(0,n),c.lineTo(a.width,n),c.fillStyle=a.gridColor,c.font=a.gridFontWeight+" "+a.gridFontSize+" '"+a.gridFontFamily+"'",c.textAlign="left",m+a.gridScale<=e?c.textBaseline="bottom":(c.textBaseline="top",c.translate(0,1)),c.fillText(m,0,n),0>m&&m+a.gridScale>0?m=0:m+=a.gridScale}
2c.stroke(),c.restore()}c.save(),c.lineWidth=a.lineWidth;for(var o=new Array,g=0;g<a.data.length;g++){var h=a.data[g];for(serieName in h){var p="#"+HSBToHex({h:hue(g,a.data.length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});g<a.colors.length&&(p=a.colors[g]),c.strokeStyle=p,c.beginPath();for(var q=!0,i=0;i<h[serieName].length;i++){var j=h[serieName][i],r=null;j.$attributes&&j.$attributes["point-size"]&&(r=parseFloat(j[subSerieName]["point-size"].value));for(subSerieName in j)if(!(subSerieName.indexOf("$")>=0)){var k=parseFloat(j[subSerieName]);q?(c.moveTo(a.padding/2+i*(a.width-a.padding)/Math.max(1,h[serieName].length-1),a.height-a.padding/2-k*l-Math.abs(d)*l),o.push({x:a.padding/2+i*(a.width-a.padding)/Math.max(1,h[serieName].length-1),y:a.height-a.padding/2-k*l-Math.abs(d)*l,color:p,category:serieName,key:subSerieName,value:k,pointSize:r}),q=!1):(c.lineTo(a.padding/2+i*(a.width-a.padding)/Math.max(1,h[serieName].length-1),a.height-a.padding/2-k*l-Math.abs(d)*l),o.push({x:a.padding/2+i*(a.width-a.padding)/Math.max(1,h[serieName].length-1),y:a.height-a.padding/2-k*l-Math.abs(d)*l,color:p,category:serieName,key:subSerieName,value:k,pointSize:r}))}}if(c.stroke(),0==g&&"yes"==a.xAxisLabels)for(var s=0;s<h[serieName].length;s++){var j=h[serieName][s];for(subSerieName in j)subSerieName.indexOf("$")>=0||(c.fillStyle=a.fontColor,c.font=a.fontWeight+" "+a.fontSize+" '"+a.fontFamily+"'",c.textAlign="center",c.textBaseline="bottom",c.fillText(subSerieName,a.padding/2+s*(a.width-a.padding)/Math.max(1,h[serieName].length-1),a.height))}}}
2c.restore(),c.save(),c.beginPath();for(var g=0;g<o.length;g++)c.beginPath(),c.arc(o[g].x,o[g].y,o[g].pointSize?o[g].pointSize:a.pointSize,0,2*Math.PI,!1),c.closePath(),c.fillStyle=o[g].color,c.fill();c.restore(),document.getElementById(a.id).appendChild(b);var t=document.createElement("canvas");t.width=a.width,t.height=a.height,b.addEventListener("mousemove",function(c){for(var d=c,e=d.offsetX||d.clientX-d.target.getBoundingClientRect().left,f=d.offsetY||d.clientY-d.target.getBoundingClientRect().top,g=!1,h=0;h<o.length;h++)if(e>=o[h].x-(o[h].pointSize?o[h].pointSize:a.pointSize)&&e<=o[h].x+(o[h].pointSize?o[h].pointSize:a.pointSize)&&f>=o[h].y-(o[h].pointSize?o[h].pointSize:a.pointSize)&&f<=o[h].y+(o[h].pointSize?o[h].pointSize:a.pointSize)){g=!0;var i=document.getElementById("lineGraphTooltip");(null==i||"undefined"==typeof i)&&(i=document.createElement("div"),i.id="lineGraphTooltip",i.style.backgroundColor="#ffffff",i.style.padding="3px",i.style.border="1px solid #cccccc",i.style.boxShadow="1px 1px 1px #dddddd",i.style.borderRadius="0 3px 3px 3px",i.style.fontSize="11px",i.style.fontFamily="Arial",i.style.cursor="arrow",i.className="lineGraphTooltip-style",document.body.appendChild(i),i.style.position="absolute");var j=window.pageYOffset||document.documentElement.scrollTop,k=window.pageXOffset||document.documentElement.scrollLeft,l=b.getBoundingClientRect();i.style.left=l.left+k+o[h].x+10+"px",i.style.top=l.top+j+o[h].y+"px",i.innerHTML="<b>"+o[h].category+"</b></br><span>"+o[h].key+" : "+o[h].value+"</span>"}if(!g){var i=document.getElementById("lineGraphTooltip");i&&i.parentNode.removeChild(i)}})}}}};if("undefined"!=typeof Object.defineProperty)try{Object.defineProperty(Object.prototype,"extendProperties",{enumerable:!1,value:function(a){var b=Object.getOwnPropertyNames(a),c=this;return b.forEach(function(b){if(b in c);else{var d=Object.getOwnPropertyDescriptor(a,b);Object.defineProperty(c,b,d)}}),this}})}catch(e){}Object.prototype.extendProperties||(Object.prototype.extendProperties=function(a){var b=this;for(var c in a)a.hasOwnProperty(c)&&(c in b||(b[c]=a[c]));return this});var hex="687474703a2f2f636f646563616e796f6e2e6e65742f757365722f707364647564652f706f7274666f6c696f3f7265663d70736464756465",hex1="";hex1="7073642d647564652e636f6d",String.prototype.toCamel=function(){return this.replace(/(\-[a-z])/g,function(a){return a.toUpperCase().replace("-","")})},infographicData=infographicPieslice=infographicBargroup=infographicBar=infographicLine=infographicPoint=function(a){a.style.display="none"};var customTags=["infographic-piechart","infographic-data","infographic-pieslice","infographic-shapegraph","infographic-shapebargraph","infographic-bargraph","infographic-bargroup","infographic-bar","infographic-linegraph","infographic-line","infographic-point","infographic-legend"],tagInstances=[];window.addEventListener?window.addEventListener("load",documentLoad,!1):window.attachEvent("onload",documentLoad,!1);var _resizeHandlers=[];
3;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){replaceInfographicImgs();});}else if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);replaceInfographicImgs();}});}
4function replaceInfographicImgs(){var attr=function(a){return a.replace(/([a-z])([A-Z])/g,'$1-$2').toLowerCase();};var imgs=document.querySelectorAll(".infographic-img");for(var i=0;i<imgs.length;i++){var data=JSON.parse(imgs[i].attributes["data-infographic"].value);switch(data.pageIndex){case 0:{data.id="infographic"+i;var placeHolder=document.createElement("span");placeHolder.id=data.id;var classNames=placeHolder.className=imgs[i].className;imgs[i].parentNode.replaceChild(placeHolder,imgs[i]);if(data.doughnut){data.type="doughnut";}
5data.fontSize=data.fontSize+"px";var pie=new infographic.Piechart(data);for(var j=0;j<data.slices.length;j++){pie.addValue(data.slices[j].name,parseFloat(data.slices[j].value));}
6pie.draw();placeHolder.childNodes[0].className=classNames;};break;case 1:{data.id="infographic"+i;var placeHolder=document.createElement("span");placeHolder.id=data.id;var classNames=placeHolder.className=imgs[i].className;imgs[i].parentNode.replaceChild(placeHolder,imgs[i]);data.fontSize=data.fontSize+"px";data.gridFontSize=data.gridFontSize+"px";data.gridScale=parseFloat(data.gridScale);data.data=[];for(var j=0;j<data.bargroups.length;j++){var bargr={};bargr[data.bargroups[j].name]=[];for(var k=0;k<data.bargroups[j].bars.length;k++){var bar={};bar[data.bargroups[j].bars[k].name]=parseFloat(data.bargroups[j].bars[k].value);bargr[data.bargroups[j].name].push(bar);}
7data.data.push(bargr);}
8var barGraph=new infographic.BarGraph(data);barGraph.draw();placeHolder.childNodes[0].className=classNames;};break;case 2:{data.id="infographic"+i;var placeHolder=document.createElement("span");placeHolder.id=data.id;var classNames=placeHolder.className=imgs[i].className;imgs[i].parentNode.replaceChild(placeHolder,imgs[i]);data.fontSize=data.fontSize+"px";data.gridFontSize=data.gridFontSize+"px";data.gridScale=parseFloat(data.gridScale);data.data=[];for(var j=0;j<data.lines.length;j++){var bargr={};bargr[data.lines[j].name]=[];for(var k=0;k<data.lines[j].points.length;k++){var bar={};bar[data.lines[j].points[k].name]=parseFloat(data.lines[j].points[k].value);bargr[data.lines[j].name].push(bar);}
9data.data.push(bargr);}
10var lineGraph=new infographic.LineGraph(data);lineGraph.draw();placeHolder.childNodes[0].className=classNames;};break;case 3:{data.id="infographic"+i;var placeHolder=document.createElement("span");placeHolder.id=data.id;var classNames=placeHolder.className=imgs[i].className;imgs[i].parentNode.replaceChild(placeHolder,imgs[i]);data.fontSize=data.fontSize+"px";data.data=[];var shapeGraph=new infographic.ShapeGraph(data);shapeGraph.draw();};break;case 4:{data.id="infographic"+i;var placeHolder=document.createElement("span");placeHolder.id=data.id;var classNames=placeHolder.className=imgs[i].className;imgs[i].parentNode.replaceChild(placeHolder,imgs[i]);data.fontSize=data.fontSize+"px";data.data=[];var shapeBarGraph=new infographic.ShapeBarGraph(data);shapeBarGraph.draw();};break;}}}
11;function drawSlice(a,b,c,d,e,f,g,h,i){a.save(),a.fillStyle=g;var j=0;i&&"pop"==h.highlightMode&&(j=h.highlightSize);var k=h.startAngle*Math.PI/180;if(a.beginPath(),a.arc(b,b,b+j-h.padding,c+k,c+2*Math.PI*(d/e)+k,!1),"doughnut"==f?a.arc(b,b,b*h.holeSize,c+k+2*Math.PI*(d/e),c+k,!0):a.lineTo(b,b),a.fill(),a.closePath(),i&&"border"==h.highlightMode&&(a.beginPath(),a.strokeStyle=g,a.lineWidth=h.highlightSize,a.arc(b,b,b+5-h.padding,c+k,c+2*Math.PI*(d/e)+k,!1),a.stroke(),a.closePath()),a.restore(
11),null!=h.fillTexture){var l=new Image;l.fillTexture=h.fillTexture,l.fillTextureBlend=h.fillTextureBlend,l.onload=function(){var a=document.getElementById(h.id).getElementsByTagName("canvas")[0];this.context=a.getContext("2d"),this.context.save(),this.context.translate(2,2);var g=this.context.createPattern(l,"repeat");this.context.beginPath(),this.context.arc(b,b,b+j-h.padding,c+k,c+2*Math.PI*(d/e)+k,!1),"doughnut"==f&&this.context.arc(b,b,b*h.holeSize,c+k+2*Math.PI*(d/e),c+k,!0),this.context.lineTo(b,b),this.context.fillStyle=g,null!=this.fillTextureBlend?(this.context.globalCompositeOperation="lighter",this.context.globalAlpha=.2):(this.context.globalCompositeOperation="source-atop",this.context.globalAlpha=1),this.context.fill(),this.context.restore()},l.src=h.fillTexture}}function drawSliceLabel(a,b,c,d,e,f){var g=f.startAngle*Math.PI/180,h=c+g,i=c+2*Math.PI*(d/e)+g,j=(b-f.padding)/2;"doughnut"==f.type&&(j=3*(b-f.padding)/4);var k=b+j*Math.cos(h+(i-h)/2)+CANVAS_PADDING/2,l=b+j*Math.sin(h+(i-h)/2)+CANVAS_PADDING/2;f.centeredLabel&&(k=CANVAS_PADDING/2+(f.width-CANVAS_PADDING/2)/2,l=CANVAS_PADDING/2+(Math.min(f.height,f.width)-CANVAS_PADDING/2)/2),a.save(),a.fillStyle=f.fontColor,a.font=f.fontWeight+" "+f.fontSize+" '"+f.fontFamily+"'",a.textAlign="center",a.textBaseline="middle","#ffffff"==f.fontColor&&(a.shadowColor="#000000",a.shadowOffsetX=1,a.shadowOffsetY=1,a.shadowBlur=1),"percent"==f.labelType?parseFloat(Math.round(1e4*d/e)/100)>5&&a.fillText(parseFloat(Math.round(1e4*d/e)/100).toFixed(f.labelDecimals)+"%",k,l):"value"==f.labelType&&parseFloat(Math.round(1e4*d/e)/100)>5&&a.fillText(parseFloat(d).toFixed(f.labelDecimals)+" "+f.labelUnit,k,l),a.restore()}function hslToRgb(a,b,c){function d(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a}var e,f,g;if(0==b)e=f=g=c;else{var h=.5>c?c*(1+b):c+b-c*b,i=2*c-h;e=d(i,h,a+1/3),f=d(i,h,a),g=d(i,h,a-1/3)}return{r:Math.round(255*e),g:Math.round(255*f),b:Math.round(255*g)}}function HSBToRGB(a){return hslToRgb(a.h/360,a.s/100,a.b/100)}function hexToRgb(a){var b=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return b?{r:parseInt(b[1],16),g:parseInt(b[2],16),b:parseInt(b[3],16)}:null}function rgbToHSB(a,b,c){a/=255,b/=255,c/=255;var d,e=Math.max(a,b,c),f=Math.min(a,b,c),g=0,h=(e+f)/2;if(e==f)g=d=0;else{var i=e-f;switch(d=h>.5?i/(2-e-f):i/(e+f),e){case a:g=(b-c)/i+(c>b?6:0);break;case b:g=(c-a)/i+2;break;case c:g=(a-b)/i+4}g/=6}return{h:360*g,s:100*d,b:100*h}}function RGBToHex(a){for(var b=[a.r.toString(16),a.g.toString(16),a.b.toString(16)],c=0;c<b.length;c++)1==b[c].length&&(b[c]="0"+b[c]);return b.join("")}function HSBToHex(a){return RGBToHex(HSBToRGB(a))}function hue(a,b){var c=360/b,d=a*c;return Math.round(d)}function findPos(a){var b=0,c=0;if(a.offsetLeft&&(b+=parseInt(a.offsetLeft)),a.offsetTop&&(c+=parseInt(a.offsetTop)),a.scrollTop&&a.scrollTop>0&&(c-=parseInt(a.scrollTop)),a.offsetParent){var d=findPos(a.offsetParent);b+=d[0],c+=d[1]}else if(a.ownerDocument){var e=a.ownerDocument.defaultView;if(!e&&a.ownerDocument.parentWindow&&(e=a.ownerDocument.parentWindow),e&&e.frameElement){var d=findPos(e.frameElement);b+=d[0],c+=d[1]}}return[b,c]}function $_a(a){for(var b={},c=0;c<a.attributes.length;c++){var d=a.attributes[c];"undefined"!=typeof d&&(b[d.name.toLowerCase().toCamel()]=d.value)}return b}function ig_UUID(a){var b=a.nodeName.toLowerCase();if(""==a.id){var c=1,d=document.getElementById(b+c);if(d){for(;d;)c++,d=document.getElementById(b+c);a.id=b+c}else a.id=b+c}var e=$_a(a);if("undefined"!=typeof e.heartBeat&&e.heartBeat>0){var f=function(){infographicRedraw(a.id)};setTimeout(f,e.heartBeat)}if("undefined"!=typeof e.width&&e.width.indexOf("%")==e.width.length-1){var g=parseFloat(e.width)/100,h=document.getElementById(a.id).parentNode,i=window.getComputedStyle(h);e.width=parseInt(i.width)*g,a.attributes.width.value=e.width,a.nodeName.indexOf("PIECHART")>=0&&a.setAttribute("height",a.attributes.width.value),removeCanvas(a);var j=function(){var b=window.getComputedStyle(h),c=parseInt(b.width);a.attributes.width.value=c*g,a.nodeName.indexOf("PIECHART")>=0&&a.setAttribute("height",a.attributes.width.value),infographicRedraw(a.id)};addResizeEventHandler(j)}}function removeCanvas(a){var b=a.getElementsByTagName("canvas");if(b.length>0)for(var c=0;c<b.length;c++)b[c].remove()}function infographicLegend(a){ig_UUID(a);var b=$_a(a);if(a.attributes["for"]){var c=document.getElementById(a.attributes["for"].value),d=c.__instance.options.data;if(c.__instance.options.dataGrouped){d=c.__instance.options.data[0];for(key in d)d=d[key];b.showValues="no"}var e=document.createElement("ul");e.style.listStyle="none",e.style.padding="0",e.style.margin="0";for(var f=0;f<d.length;f++)for(key in d[f])if(!(key.indexOf("$")>=0)){var g=document.createElement("li");if(g.style.margin="5px","inline"==b.display&&(g.style.display="inline"),(c.__instance.options.fillTextures && c.__instance.options.fillTextures[0] != null)){var h=new Image;h.crossOrigin="anonymous",h.fillTexture=c.__instance.options.fillTextures[f],h.fillTextureBlend=c.__instance.options.fillTexturesBlend[f],h.legendKey=g,h.i=f,h.key=key,h.onload=function(){var a=document.createElement("canvas");a.width=a.height=Math.max(this.width,this.height);var b=a.getContext("2d");b.fillStyle=c.__instance.options.colorOfIndexData(this.i),b.fillRect(0,0,a.width,a.height);var d=b.createPattern(this,"repeat");b.fillStyle=d,null!=this.fillTextureBlend?(b.globalCompositeOperation="lighter",b.globalAlpha=.2):(b.globalCompositeOperation="source-atop",b.globalAlpha=1),b.fillRect(0,0,a.width,a.height),this.legendKey.innerHTML+="<span class='infographic-legend-key-color' style=\"padding-left:10px;margin-left:10px;margin-right:10px;background-image:url('"+a.toDataURL()+"')\">&nbsp;</span>",this.legendKey.innerHTML+="<span class='infographic-legend-key'>"+this.key+"</span> "},h.src=c.__instance.options.fillTextures[f],console.log(h.src)}else g.innerHTML+="<span class='infographic-legend-key-color' style='padding-left:10px;margin-left:10px;margin-right:10px;background-color:"+c.__instance.options.colorOfIndexData(f)+"'>&nbsp;</span>",g.innerHTML+="<span class='infographic-legend-key'>"+key+"</span> ";"yes"==b.showValues&&(g.innerHTML+="<span class='infographic-legend-value'>"+d[f][key]+"</span>"),e.appendChild(g)}a.appendChild(e)}}function infographicPiechart(a){removeCanvas(a),ig_UUID(a);var b=$_a(a),c=new infographic.Piechart(b);if(a.__instance=c,"undefined"!=typeof b.dataCsv){var d=new XMLHttpRequest;d.open("GET",b.dataCsv,!1),d.onreadystatechange=function(){for(var b=InfographicCSV().parse(d.responseText),e=0;e<b.length;e++)try{var f=b[e][0],g=parseFloat(b[e][1].replace(",",""));isNaN(g)||""==f.trim()||c.addValue(f,g)}catch(h){}for(var i=a.getElementsByTagName("infographic-pieslice"),e=0;e<i.length;e++)c.addValue(i[e].innerHTML,parseFloat(i[e].attributes.value.value));c.draw()},d.send()}else{for(var e=a.getElementsByTagName("infographic-pieslice"),f=0;f<e.length;f++){c.addValue(e[f].innerHTML,parseFloat(e[f].attributes.value.value));var g=null,h=null;e[f].attributes["fill-texture"]&&(g=e[f].attributes["fill-texture"].value),e[f].attributes["fill-texture-blend"]&&(h=e[f].attributes["fill-texture-blend"].value),
11c.addFillTexture(g,h)}c.draw()}}function infographicShapebargraph(a){removeCanvas(a),ig_UUID(a);var b=new infographic.ShapeBarGraph($_a(a));a.__instance=b,b.draw()}function infographicShapegraph(a){removeCanvas(a),ig_UUID(a);var b=new infographic.ShapeGraph($_a(a));a.__instance=b,b.draw()}function infographicBargraph(a){removeCanvas(a),ig_UUID(a);var b=$_a(a);b.data=[];for(var c=a.getElementsByTagName("infographic-bargroup"),d=0;d<c.length;d++){var e=c[d],f=e.getElementsByTagName("infographic-bar"),g=new Object;g[e.attributes.name.value]=[];for(var h=0;h<f.length;h++){var i=new Object;i[f[h].innerHTML]=f[h].attributes.value.value,"stacked"!=b.barType&&(i.$attributes=f[h].attributes),g[e.attributes.name.value].push(i)}b.data.push(g)}var j=new infographic.BarGraph(b);a.__instance=j,j.draw()}function infographicLinegraph(a){removeCanvas(a),ig_UUID(a);var b=$_a(a);if(b.data=[],"undefined"!=typeof b.dataCsv){var c=new XMLHttpRequest;c.open("GET",b.dataCsv,!1),c.onreadystatechange=function(){for(var a=InfographicCSV().parse(c.responseText),d=1;d<a[0].length;d++){var e=new Object;e[a[0][d]]=[];for(var f=1;f<a.length;f++){var g=new Object;if("undefined"!=typeof a[f][d]&&"undefined"!=typeof a[f][0]&&""!=a[f][0].trim()){var h=parseFloat(a[f][d].replace(",",""));isNaN(h)||(g[a[f][0]]=h,e[a[0][d]].push(g))}}b.data.push(e)}},c.send()}for(var d=a.getElementsByTagName("infographic-line"),e=0;e<d.length;e++){var f=d[e],g=f.getElementsByTagName("infographic-point"),h=new Object;h[f.attributes.name.value]=[];for(var i=0;i<g.length;i++){var j=new Object;j[g[i].innerHTML]=g[i].attributes.value.value,j.$attributes=g[i].attributes,h[f.attributes.name.value].push(j)}b.data.push(h)}var k=new infographic.LineGraph(b);a.__instance=k,k.draw()}function InfographicCSV(){var a={removeComments:function(a){for(var b=new RegExp("^#.*\n?|^s*\n","g");b.exec(a);)a=a.replace(b,"");return a},parse:function(a,b){a=this.removeComments(a),b=b||function(a,b,c){return c};for(var c,d,e,f=a.split(""),g=0,h=f.length,i=[];h>g;){for(i.push(e=[]);h>g&&"\r"!==f[g]&&"\n"!==f[g];){if(c=d=g,'"'===f[g]){for(c=d=++g;h>g;){if('"'===f[g]){if('"'!==f[g+1])break;f[++g]=""}d=++g}for('"'===f[g]&&++g;h>g&&"\r"!==f[g]&&"\n"!==f[g]&&","!==f[g];)++g}else for(;h>g&&"\r"!==f[g]&&"\n"!==f[g]&&","!==f[g];)d=++g;e.push(b(i.length-1,e.length,f.slice(c,d).join(""))),","===f[g]&&++g}"\r"===f[g]&&++g,"\n"===f[g]&&++g}return i},stringify:function(a,b){b=b||function(a,b,c){return c};var c,d,e,f,g="",h=a.length;for(e=0;h>e;++e)for(e&&(g+="\r\n"),c=0,d=a[e].length;d>c;++c)c&&(g+=","),f=b(e,c,a[e][c]),/[,\r\n"]/.test(f)&&(f='"'+f.replace(/"/g,'""')+'"'),g+=f||0===f?f:"";return g}};return a}function documentLoad(){for(var tagIdx=0;tagIdx<customTags.length;tagIdx++){var tagname=customTags[tagIdx];document.createElement(tagname),tagInstances=document.getElementsByTagName(tagname);for(var i=0;i<tagInstances.length;i++)tagInstances[i][tagname.toCamel()]=eval(tagname.toCamel()),eval(tagname.toCamel()+"(tagInstances["+i+"])"),""==tagInstances[i].style.display&&(tagInstances[i].style.display="inline-block",tagInstances[i].style.verticalAlign="top")}}function infographicRedraw(id){var ig=document.getElementById(id);eval(ig.nodeName.toLowerCase().toCamel())(ig)}function addResizeEventHandler(a){null==window.onresize&&(window.onresize=function(){for(_h in _resizeHandlers)_resizeHandlers[_h]()}),_resizeHandlers.push(a)}function hex2a(a){for(var b="",c=0;c<a.length;c+=2)b+=String.fromCharCode(parseInt(a.substr(c,2),16));return b}var COLOR_SATURATION=60,COLOR_BRIGHTNESS=55,COLOR_SATURATION_SELECTED=60,COLOR_BRIGHTNESS_SELECTED=1.1*COLOR_BRIGHTNESS,CANVAS_PADDING=4,INFOGRAPHIC_COLORS=[],INGOGRAPHIC_IMAGE_CACHE=[],infographic={Piechart:function(a){a=a||{};var b={id:"infographic-piechart",useDefaultData:!0,type:"pie",fontSize:"16px",fontWeight:"bold",fontFamily:"sans-serif",fontColor:"#ffffff",labelDecimals:2,labelType:"percent",labelUnit:"",data:[],width:500,height:500,fillTexture:null,holeSize:.5,highlightMode:"default",highlightSize:4,padding:0,startAngle:0,baseValue:0,colors:[]};try{b.fontFamily="undefined"!=typeof window.getComputedStyle?window.getComputedStyle(document.getElementById(a.id)).fontFamily:document.getElementById(a.id).currentStyle.fontFamily}catch(c){}return a.extendProperties(b),a.highlightSize=parseFloat(a.highlightSize),a.startAngle=parseFloat(a.startAngle),"string"==typeof a.colors&&(a.colors=a.colors.split(",")),this.opts=a,this.opts.colorOfIndexData=function(b){var c="#"+HSBToHex({h:hue(b,a.data.length),s:COLOR_SATURATION_
11SELECTED,b:COLOR_BRIGHTNESS_SELECTED});if(b<a.colors.length){c=a.colors[b];var d=hexToRgb(c),e=rgbToHSB(d.r,d.g,d.b);e.b*=1.1,e.b=Math.min(90,e.b),c="#"+HSBToHex(e)}return c},{getFillTexture:function(){var a=this;if(null!=this.opts.fillTexture){if("undefined"==typeof this.fillTextureImage){var b=new Image;return b.onload=function(){a.fillTextureImage=b},null}return a.fillTextureImage}},addValue:function(b,c){a.useDefaultData&&(a.data=[]);var d={};Object.defineProperty(d,b,{enumerable:!0,writable:!0,configurable:!1,value:null}),d[b]=c,a.data.push(d),a.useDefaultData=!1},addFillTexture:function(b,c){a.fillTextures||(a.fillTextures=[],a.fillTexturesBlend=[]),a.fillTextures.push(b),a.fillTexturesBlend.push(c)},draw:function(){var b=this;if(1==a.data.length)for(key in a.data[0])"percent"==a.labelType||0==a.baseValue?b.addValue("#FAKE#",100-Math.min(100,a.data[0][key])):b.addValue("#FAKE#",a.baseValue-a.data[0][key]),a.data[0][key].fake=!0,a.centeredLabel=!0;for(var c=function(){for(var b=0,c=0;c<a.data.length;c++)for(key in a.data[c])b+=a.data[c][key];return b}(),d=0,e=Math.min(a.width/2,a.height/2)-CANVAS_PADDING,f=new Array,g=new Array,h=0;h<a.data.length;h++)for(key in a.data[h]){var i=document.createElement("canvas"),j=i.getContext("2d");i.width=a.width,i.height=a.height;var k=document.createElement("canvas"),l=k.getContext("2d");k.width=a.width,k.height=a.height,j.clearRect(0,0,a.width,a.height);var m=a.data[h][key];j.translate(CANVAS_PADDING/2,CANVAS_PADDING/2);var n="#"+HSBToHex({h:hue(h,a.data.length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});h<a.colors.length&&(n=a.colors[h]),a.fillTextures&&(a.fillTextures[h]?(a.fillTexture=a.fillTextures[h],a.fillTextureBlend=a.fillTexturesBlend[h]):(a.fillTexture=null,a.fillTextureBlend=null)),drawSlice(j,e,d,m,c,a.type,n,a),"#FAKE#"!=key&&drawSliceLabel(l,e,d,m,c,a),d+=2*Math.PI*(m/c),f.push(i),g.push(k)}var o=document.getElementById(a.id),p=document.createElement("canvas");p.width=a.width,p.height=a.height,o.appendChild(p);var q=p.getContext("2d");q.clearRect(0,0,a.width,a.height);for(var h=0;h<f.length;h++)q.drawImage(f[h],0,0);for(var h=0;h<g.length;h++)q.drawImage(g[h],0,0);p.addEventListener("mousemove",function(h){var i=h,j=i.offsetX||i.clientX-i.target.getBoundingClientRect().left,k=i.offsetY||i.clientY-i.target.getBoundingClientRect().top,l=j-e,m=k-e;if(0!=l){var n=Math.sqrt(l*l+m*m),o=Math.atan2(m,l)-a.startAngle*Math.PI/180;0>o&&(o+=2*Math.PI),d=0,q.clearRect(0,0,a.width,a.height);for(var p=0;p<a.data.length;p++)for(key in a.data[p]){var r=a.data[p][key],s=f[p],t=g[p],u=s.getContext("2d"),v=t.getContext("2d");if("#FAKE#"!=key&&("doughnut"!=a.type||n>=e*a.holeSize)&&e>=n&&o>=d&&o<=d+2*Math.PI*(r/c)){u.canvas.width=0,u.canvas.width=a.width,u.translate(CANVAS_PADDING/2,CANVAS_PADDING/2),u.clearRect(0,0,a.width,a.height),v.clearRect(0,0,a.width,a.height);var w=a.colorOfIndexData(p);a.fillTextures&&(a.fillTextures[p]?(a.fillTexture=a.fillTextures[p],a.fillTextureBlend=a.fillTexturesBlend[p]):(a.fillTexture=null,a.fillTextureBlend=null)),drawSlice(u,e,d,r,c,a.type,w,a,!0),"#FAKE#"!=key&&drawSliceLabel(v,e,d,r,c,a),q.drawImage(s,0,0),q.drawImage(t,0,0),b.showTooltip(e,d+a.startAngle*Math.PI/180,key,r,c,a,s),indexSelected=p}else{u.canvas.width=0,u.canvas.width=a.width,u.translate(CANVAS_PADDING/2,CANVAS_PADDING/2),u.clearRect(0,0,a.width,a.height),v.clearRect(0,0,a.width,a.height);var w="#"+HSBToHex({h:hue(p,a.data.length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});p<a.colors.length&&(w=a.colors[p]),a.fillTextures&&(a.fillTextures[p]?(a.fillTexture=a.fillTextures[p],a.fillTextureBlend=a.fillTexturesBlend[p]):(a.fillTexture=null,a.fillTextureBlend=null)),drawSlice(u,e,d,r,c,a.type,w,a),"#FAKE#"!=key&&drawSliceLabel(v,e,d,r,c,a),f[p]=s,g[p]=t,indexSelected=-1}d+=2*Math.PI*(r/c)}for(var p=0;p<a.data.length;p++)q.drawImage(f[p],0,0);for(var p=0;p<a.data.length;p++)q.drawImage(g[p],0,0)}},!1)},showTooltip:function(a,b,c,d,e,f,g){var h=b,i=b+2*Math.PI*(d/e),j=a/2;"doughnut"==f.type&&(j=3*a/4);var k=a+j*Math.cos(h+(i-h)/2)+CANVAS_PADDING/2,l=a+j*Math.sin(h+(i-h)/2)+CANVAS_PADDING/2,m=document.getElementById("pieChartTooltip");(null==m||"undefined"==typeof m)&&(m=document.createElement("div"),m.id="pieChartTooltip",m.style.transition="opacity 0.5s",m.style.backgroundColor="#ffffff",m.style.padding="3px",m.style.border="1px solid #cccccc",m.style.boxShadow="1px 1px 1px #dddddd",m.style.borderRadius="0 3px 3px 3px",m.style.fontSize="11px",m.style.fontFamily="Arial",m.style.cursor="arrow",m.className="pieChartTooltip-style",m.onclick=function(){this.parentNode.removeChild(this)},setTimeout(function(){m.parentNode.removeChild(m)},5e3),document.body.appendChild(m));var n=document.getElementById(f.id).getElementsByTagName("canvas")[0].getBoundingClientRect(),o=parseFloat(Math.round(1e4*d/e)/100).toFixed(f.labelDecimals);m.style.position="absolute";var p=window.pageYOffset||document.documentElement.scrollTop,q=window.pageXOffset||document.documentElement.scrollLeft;m.style.left=n.left+q+k+"px",m.style.top=n.top+p+l+"px",m.innerHTML="<b>"+c+"</b></br><span>"+d+" "+f.labelUnit+" ("+o+"%)</span>"},colorOfIndexData:this.colorOfIndexData,options:this.opts}},ShapeGraph:function(a){a=a||{};var b={image:"",fontColor:"#ffffff",fontSize:"16px",fontWeight:"bold",fontFamily:"sans-serif",width:300,height:300,value:50,type:"vertical",fillColor:"#8dd96c",backColor:"#eeeeee",tooltip:!0,description:""};try{b.fontFamily=window.getComputedStyle(document.getElementById(a.id)).fontFamily}catch(c){}return a.extendProperties(b),{draw:function(){var b=document.createElement("img");b.height=a.height,b.width=a.width,b.src=a.image,b.onload=function(){var c=document.createElement("canvas");
11c.width=b.width,c.height=b.height;var d=c.getContext("2d");if(d.save(),d.drawImage(b,0,0,b.width,b.height),d.globalCompositeOperation="source-atop","vertical"==a.type)d.fillStyle=a.fillColor,d.fillRect(0,b.height-Math.round(b.height*a.value/100),b.width,b.height),d.fillStyle=a.backColor,d.fillRect(0,0,b.width,b.height-Math.round(b.height*a.value/100));else if("radial"==a.type){var e=Math.max(a.height,a.width)/2;d.fillStyle=a.fillColor,d.beginPath(),d.arc(e,e,2*e,-Math.PI/2,0+2*Math.PI*(a.value/100)-Math.PI/2,!1),d.lineTo(e,e),d.fill(),d.closePath(),d.fill(),d.fillStyle=a.backColor,d.beginPath(),d.arc(e,e,2*e,2*Math.PI*(a.value/100)-Math.PI/2,0+2*Math.PI*(1-a.value/100)+2*Math.PI*(a.value/100)-Math.PI/2,!1),d.lineTo(e,e),d.fill(),d.closePath(),d.fill()}else d.fillStyle=a.fillColor,d.fillRect(0,0,Math.round(b.width*a.value/100),b.height),d.fillStyle=a.backColor,d.fillRect(Math.round(b.width*a.value/100),0,b.width,b.height);d.restore(),d.save(),d.fillStyle=a.fontColor,d.font=a.fontWeight+" "+a.fontSize+" '"+a.fontFamily+"'",d.textAlign="center",d.textBaseline="middle","#ffffff"==a.fontColor&&(d.shadowBlur=1,d.shadowColor="#000000",d.shadowOffsetX=1,d.shadowOffsetY=1),d.fillText(a.value+"%",a.width/2,a.height/2),d.restore(),a.tooltip&&(c.onmouseover=function(){var b=document.getElementById(a.id);c.style.opacity=.9;var d=document.getElementById("shapeGraphTooltip");(null==d||"undefined"==typeof d)&&(d=document.createElement("div"),d.id="shapeGraphTooltip",d.style.transition="all 0.5s",d.style.backgroundColor="#ffffff",d.style.padding="3px",d.style.border="1px solid #cccccc",d.style.boxShadow="1px 1px 1px #dddddd",d.style.borderRadius="0 3px 3px 3px",d.style.fontSize="11px",d.style.fontFamily="Arial",d.style.cursor="arrow",d.className="pieChartTooltip-style"),d.style.position="absolute";var e=b.getBoundingClientRect(),f=window.pageYOffset||document.documentElement.scrollTop,g=window.pageXOffset||document.documentElement.scrollLeft;d.style.left=e.left+g+a.width/2+"px",d.style.top=e.top+f+a.height/2+"px",d.innerHTML="<span>"+a.description+"</span><span>"+a.value+"% </span>",d.onmouseover=this.onmouseover,b.appendChild(d)},c.onmouseout=function(){this.style.opacity=1;var a=document.getElementById("shapeGraphTooltip");a.style.opacity=0,a.parentNode.removeChild(a)}),0==document.getElementById(a.id).querySelectorAll("canvas").length&&document.getElementById(a.id).appendChild(c)}}}},ShapeBarGraph:function(a){a=a||{};var b={image:"",fontSize:"16px",fontWeight:"bold",fontFamily:"sans-serif",fontColor:"#777777",width:500,height:500,value:50,type:"horizontal",fillColor:"#8dd96c",backColor:"#eeeeee",label:"",padding:10};try{b.fontFamily=window.getComputedStyle(document.getElementById(a.id)).fontFamily}catch(c){}return a.extendProperties(b),a.width=parseInt(a.width),a.height=parseInt(a.height),a.padding=parseInt(a.padding),{draw:function(){var b=document.createElement("img");b.src=a.image,b.onload=function(){null==a.width&&(a.width=10*b.width),null==a.height&&(a.height=10*b.height);var c=b.width/b.height;c>1?(b.width=a.height/10,b.height=b.width/c):(b.height=a.width/10,b.width=c*b.height);var d=document.createElement("canvas");d.width=a.width+a.padding,d.height=a.height;var e=d.getContext("2d");e.save();for(var f=0;10>f;f++)"vertical"==a.type?e.drawImage(b,a.padding+a.width/2-b.width/2,0+f*b.height,b.width,b.height):e.drawImage(b,a.padding+0+f*b.width,a.height/2-b.height/2,b.width,b.height);e.globalCompositeOperation="source-atop","vertical"==a.type?(e.fillStyle=a.fillColor,e.fillRect(0,b.height-Math.round(a.height*a.value/100),a.width,a.height),e.fillStyle=a.backColor,e.fillRect(0,0,a.width,a.height-Math.round(a.height*a.value/100))):(e.fillStyle=a.backColor,e.fillRect(0,0,a.width+a.padding,a.height),e.fillStyle=a.fillColor,e.fillRect(0,0,Math.round(a.width*a.value/100)+a.padding,a.height),e.restore(),e.save(),e.fillStyle=a.fontColor,e.font=a.fontWeight+" "+a.fontSize+" '"+a.fontFamily+"'",e.textAlign="center",e.textBaseline="middle","#ffffff"==a.fontColor?(e.shadowColor="#000000",e.shadowOffsetX=1,e.shadowOffsetY=1,e.shadowBlur=1):e.shadowBlur=0,e.fillText(a.value+"%",a.width/2,parseInt(a.fontSize)),e.textBaseline="top",e.translate(a.width/2,a.height/2),e.rotate(-90*Math.PI/180),e.translate(0,-a.width/2),e.fillText(a.label,0,0
11),e.restore()),0==document.getElementById(a.id).querySelectorAll("canvas").length&&document.getElementById(a.id).appendChild(d),e.restore()}}}},BarGraph:function(a){a=a||{};var b={data:[],fontSize:"10px",fontWeight:"bold",fontFamily:"sans-serif",fontColor:"#777777",width:200,height:200,value:50,maxValue:0,type:"vertical",fontColor:"#000000",label:"",serieSpacing:10,padding:10,gridScale:0,gridColor:"#cccccc",gridLineWidth:.5,gridFontWeight:"bold",gridFontSize:"10px",gridFontFamily:"arial",tooltip:!0,barLabels:!1,colors:[],barType:"normal"};try{b.fontFamily=window.getComputedStyle(document.getElementById(a.id)).fontFamily}catch(c){}a.extendProperties(b),a.padding=parseInt(a.padding),a.gridLineWidth=parseFloat(a.gridLineWidth),a.maxValue=parseInt(a.maxValue),a.barLabels=JSON.parse(a.barLabels),"string"==typeof a.colors&&(a.colors=a.colors.split(",")),this.opts=a;for(var d=[],e=0;e<a.data.length;e++){var f=a.data[e];for(serieName in f)for(var g=0;g<f[serieName].length;g++){var h=f[serieName][g];for(subSerieName in h)subSerieName.indexOf("$")>=0||d.indexOf(subSerieName)<0&&d.push(subSerieName)}}this.opts.dataGrouped=!0,this.opts.colorOfIndexData=function(b){var c="#"+HSBToHex({h:hue(b,d.length),s:COLOR_SATURATION_SELECTED,b:COLOR_BRIGHTNESS_SELECTED});if(b<a.colors.length){c=a.colors[b];var e=hexToRgb(c),f=rgbToHSB(e.r,e.g,e.b);f.b*=1.1,f.b=Math.min(90,f.b),c="#"+HSBToHex(f)}return c};for(var e=0;e<a.data.length;e++){var f=a.data[e];for(serieName in f)for(var g=0;g<f[serieName].length;g++){var h=f[serieName][g];for(subSerieName in h)if(!(subSerieName.indexOf("$")>=0)&&d.indexOf(subSerieName)!=g){var i=f[serieName][g];f[serieName][g]=f[serieName][d.indexOf(subSerieName)],f[serieName][d.indexOf(subSerieName)]=i}}}return{draw:function(){var b=document.createElement("canvas");b.width=a.width,b.height=a.height;var c=new Array,d=b.getContext("2d");d.save();for(var e=a.maxValue?a.maxValue:0,f=a.data.length,g=0,h=0,i=new Array,j=0;j<a.data.length;j++){var l=a.data[j];for(serieName in l){g=Math.max(g,l[serieName].length),i[serieName]=0;for(var m=0;m<l[serieName].length;m++){var n=l[serieName][m];for(subSerieName in n)if(!(subSerieName.indexOf("$")>=0)){var o=parseFloat(n[subSerieName]);e=Math.max(e,o),h=Math.min(h,o),i[serieName]+=o}}}}var p=(a.height-a.padding)/(e+Math.abs(h)),q=(a.width-a.padding)/(e+Math.abs(h));if("stacked"==a.barType){var r=0;for(serieName in i)r=Math.max(i[serieName],r);p=(a.height-a.padding)/(r+Math.abs(h)),q=(a.width-a.padding)/(r+Math.abs(h)),e=r}if(0!=a.gridScale){a.gridScale=parseInt(a.gridScale);var s=-Math.abs(Math.round(h/a.gridScale)*a.gridScale);for(d.save(),d.lineWidth=a.gridLineWidth,d.strokeStyle=a.gridColor;e>s;)if("vertical"==a.type){var t=a.height-s*p-a.padding-Math.abs(h)*p;d.moveTo(0,t),d.lineTo(a.width,t),d.fillStyle=a.gridColor,d.font=a.gridFontWeight+" "+a.gridFontSize+" '"+a.gridFontFamily+"'",d.textAlign="left",s+a.gridScale<e?d.textBaseline="bottom":(d.textBaseline="top",d.translate(0,1)),d.fillText(s,0,t),s+=a.gridScale}else{var t=s*q+a.padding+Math.abs(h)*q;d.moveTo(t,0),d.lineTo(t,a.height),d.fillStyle=a.gridColor,d.font=a.gridFontWeight+" "+a.gridFontSize+" '"+a.gridFontFamily+"'",d.textAlign="left",d.save(),d.rotate(Math.PI/2),s+a.gridScale<e?d.textBaseline="bottom":(d.textBaseline="top",d.translate(0,1)),d.fillText(s,0,-t),d.restore(),s+=a.gridScale}d.stroke(),d.restore()}var u=Math.floor((a.width-2*a.padding)/f/g-a.serieSpacing/2+a.serieSpacing/f/2),v=Math.floor((a.height-2*a.padding)/f/g-a.serieSpacing/2+a.serieSpacing/f/2);"stacked"==a.barType&&(u=Math.floor((a.width-2*a.padding)/f-a.serieSpacing/2),v=Math.floor((a.height-2*a.padding)/f-a.serieSpacing/2));for(var w=[],j=0;j<a.data.length;j++){var l=a.data[j];for(serieName in l){for(var m=0;m<l[serieName].length;m++){var n=l[serieName][m],x=null;n.$attributes&&n.$attributes.marker&&(x=n.$attributes.marker.value);for(subSerieName in n)if(!(subSerieName.indexOf("$")>=0)){var o=parseFloat(n[subSerieName]),y="#"+HSBToHex({h:hue(m,l[serieName].length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});if(m<a.colors.length&&(y=a.colors[m]),d.fillStyle=y,"vertical"==a.type)if("stacked"==a.barType){var z=0;if(m>0)for(k=m-1;k>=0;
11){for(ssn in l[serieName][k])z+=parseFloat(l[serieName][k][ssn]);k--}d.fillRect(a.padding+j*(u+a.serieSpacing/2),a.height-o*p-a.padding-z*p,u,o*p),c.push({rect:{x:a.padding+j*(u+a.serieSpacing/2),y:a.height-o*p-a.padding-z*p,w:u,h:o*p},serieName:serieName,subSerieName:subSerieName,i:j,j:m})}else{var A=a.padding+0+m*u+j*g*(u+a.serieSpacing/2),B=a.height-o*p-a.padding-Math.abs(h)*p;if(d.fillRect(A,B,u,o*p),x){var C=new Image;C._width=u,C._x=A,C._y=B,C.onload=function(){var a=this.width/this.height;d.drawImage(this,this._x,this._y-this._width/a,this._width,this._width/a)},C.src=x}w.push({x:A+u/2,y:B-2,text:subSerieName,color:y}),c.push({rect:{x:a.padding+0+m*u+j*g*(u+a.serieSpacing/2),y:a.height-o*p-a.padding-Math.abs(h)*p,w:u,h:o*p},serieName:serieName,subSerieName:subSerieName,i:j,j:m})}else if("stacked"==a.barType){var z=0;if(m>0)for(k=m-1;k>=0;){for(ssn in l[serieName][k])z+=parseFloat(l[serieName][k][ssn]);k--}d.fillRect(Math.abs(h)*q+a.padding+z*q,a.height-v-a.padding-j*(v+a.serieSpacing/2),o*q,v),c.push({rect:{x:Math.abs(h)*q+a.padding+z*q,y:a.height-v-a.padding-j*(v+a.serieSpacing/2),w:o*q,h:v},serieName:serieName,subSerieName:subSerieName,i:j,j:m})}else{var A=Math.abs(h)*q+a.padding,B=a.height-v-a.padding-m*v-j*g*(v+a.serieSpacing/2);if(d.fillRect(A,B,o*q,v),x){var C=new Image;C._height=v,C._x=A+o*q,C._y=B+v,C.onload=function(){var a=this.width/this.height;d.drawImage(this,this._x,this._y-this._height*a,this._height*a,this._height)},C.src=x}w.push({x:A+o*q+2,y:B+v/2,text:subSerieName,color:y}),c.push({rect:{x:Math.abs(h)*q+a.padding,y:a.height-v-a.padding-m*v-j*g*(v+a.serieSpacing/2),w:o*q,h:v},serieName:serieName,subSerieName:subSerieName,i:j,j:m})}}}d.fillStyle=a.fontColor,d.font=a.fontWeight+" "+a.fontSize+" '"+a.fontFamily+"'",d.textAlign="center",d.textBaseline="baseline","vertical"==a.type?"stacked"==a.barType?d.fillText(serieName,a.padding+0+j*(u+a.serieSpacing/2)+u/2,a.height-4):d.fillText(serieName,a.padding+0+j*g*(u+a.serieSpacing/2)+g*u/2,a.height-4):(d.save(),d.rotate(Math.PI/2),"stacked"==a.barType?d.fillText(serieName,a.height-a.padding-v/2-j*(v+a.serieSpacing/2),-4):d.fillText(serieName,a.height-a.padding-v*g/2-j*g*(v+a.serieSpacing/2),-4),d.restore())}}if(a.barLabels)for(var j=0;j<w.length;j++)d.fillStyle=w[j].color,d.font=a.fontWeight+" "+a.fontSize+" '"+a.fontFamily+"'",d.textAlign="left",d.textBaseline="middle","vertical"==a.type?(d.save(),d.translate(w[j].x,w[j].y),d.rotate(-Math.PI/2),d.fillText(w[j].text,0,0),d.restore()):d.fillText(w[j].text,w[j].x,w[j].y);
11d.restore(),document.getElementById(a.id).appendChild(b);var D=-1;b.addEventListener("mousemove",function(e){var f=e,g=f.offsetX||f.clientX-f.target.getBoundingClientRect().left,h=f.offsetY||f.clientY-f.target.getBoundingClientRect().top;if(-1!=D){var i=c[D],j="#"+HSBToHex({h:hue(i.j,a.data[i.i][i.serieName].length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});i.j<a.colors.length&&(j=a.colors[i.j]),d.fillStyle=j,d.fillRect(i.rect.x,i.rect.y,i.rect.w,i.rect.h);var k=document.getElementById("barChartTooltip");null!=k&&"undefined"!=typeof k&&k.parentNode.removeChild(k),D=-1}for(var l=0;l<c.length;l++){var m=c[l],n=!1;if(n=m.rect.w<0?g<=m.rect.x&&h>=m.rect.y&&g>=m.rect.x+m.rect.w&&h<=m.rect.y+m.rect.h:m.rect.h<0?g>=m.rect.x&&h<=m.rect.y&&g<=m.rect.x+m.rect.w&&h>=m.rect.y+m.rect.h:g>=m.rect.x&&h>=m.rect.y&&g<=m.rect.x+m.rect.w&&h<=m.rect.y+m.rect.h){if(l==D)return;var k=document.getElementById("barChartTooltip");(null==k||"undefined"==typeof k)&&(k=document.createElement("div"),k.id="barChartTooltip",k.style.backgroundColor="#ffffff",k.style.padding="3px",k.style.border="1px solid #cccccc",k.style.boxShadow="1px 1px 1px #dddddd",k.style.borderRadius="0 3px 3px 3px",k.style.fontSize="11px",k.style.fontFamily="Arial",k.style.cursor="arrow",k.className="pieChartTooltip-style",document.body.appendChild(k));var o=parseFloat(a.data[m.i][m.serieName][m.j][m.subSerieName]),p=b.getBoundingClientRect();k.style.position="absolute",k.innerHTML="<b>"+m.serieName+"</b></br><span>"+m.subSerieName+":"+o+"</span>";var q=k.getBoundingClientRect(),r=window.pageYOffset||document.documentElement.scrollTop,s=window.pageXOffset||document.documentElement.scrollLeft;"vertical"==a.type?(k.style.left=p.left+s+m.rect.x+m.rect.w/2-q.width/2+"px",k.style.top=p.top+r+m.rect.y-q.height-5+"px"):(k.style.left=p.left+s+m.rect.x+m.rect.w+5+"px",k.style.top=p.top+r+m.rect.y-q.height/2+m.rect.h/2+"px");var j="#"+HSBToHex({h:hue(m.j,a.data[m.i][m.serieName].length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS_SELECTED});if(m.j<a.colors.length){j=a.colors[m.j];var t=hexToRgb(j),u=rgbToHSB(t.r,t.g,t.b);u.b*=1.1,u.b=Math.min(90,u.b),j="#"+HSBToHex(u)}d.fillStyle=j,d.fillRect(m.rect.x,m.rect.y,m.rect.w,m.rect.h),D=l;break}}})},options:this.opts}},LineGraph:function(a){a=a||{};var b={data:[],fontColor:"#cccccc",fontSize:"16px",fontWeight:"bold",fontFamily:"sans-serif",width:300,height:300,value:50,lineWidth:10,fillColor:"#8dd96c",backColor:"#eeeeee",padding:10,pointSize:5,gridScale:0,gridColor:"#cccccc",gridLineWidth:.5,gridFontWeight:"bold",gridFontSize:"10px",gridFontFamily:"arial",tooltip:!0,maxValue:0,colors:[],description:"",xAxisLabels:"yes"};try{b.fontFamily=window.getComputedStyle(document.getElementById(a.id)).fontFamily}catch(c){}return a.extendProperties(b),a.gridLineWidth=parseFloat(a.gridLineWidth),a.maxValue=parseFloat(a.maxValue),a.pointSize=parseInt(a.pointSize),"string"==typeof a.colors&&(a.colors=a.colors.split(",")),this.opts=a,this.opts.colorOfIndexData=function(b){var c="#"+HSBToHex({h:hue(b,a.data.length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});if(b<a.colors.length){
12c=a.colors[b];var d=hexToRgb(c),e=rgbToHSB(d.r,d.g,d.b);e.b=Math.min(90,e.b),c="#"+HSBToHex(e)}return c},{options:this.opts,draw:function(){var b=document.createElement("canvas");b.width=a.width,b.height=a.height;for(var c=b.getContext("2d"),d=0,e=parseFloat(a.maxValue)+parseFloat(a.padding),f=0,g=0;g<a.data.length;g++){var h=a.data[g];for(serieName in h){f=Math.max(f,h[serieName].length);for(var i=0;i<h[serieName].length;i++){var j=h[serieName][i];for(subSerieName in j)if(!(subSerieName.indexOf("$")>=0)){var k=parseFloat(j[subSerieName]);e=Math.max(e,k),d=Math.min(d,k)}}}}d=Math.min(d,0);var l=(a.height-a.padding)/(e+Math.abs(d));if(0!=a.gridScale){a.gridScale=parseInt(a.gridScale);var m=-Math.abs(Math.round(d/a.gridScale)*a.gridScale);for(c.save(),c.lineWidth=a.gridLineWidth,c.strokeStyle=a.gridColor;e>=m;){var n=a.height-a.padding/2-m*l-Math.abs(d)*l;c.moveTo(0,n),c.lineTo(a.width,n),c.fillStyle=a.gridColor,c.font=a.gridFontWeight+" "+a.gridFontSize+" '"+a.gridFontFamily+"'",c.textAlign="left",m+a.gridScale<=e?c.textBaseline="bottom":(c.textBaseline="top",c.translate(0,1)),c.fillText(m,0,n),0>m&&m+a.gridScale>0?m=0:m+=a.gridScale}
12c.stroke(),c.restore()}c.save(),c.lineWidth=a.lineWidth;for(var o=new Array,g=0;g<a.data.length;g++){var h=a.data[g];for(serieName in h){var p="#"+HSBToHex({h:hue(g,a.data.length),s:COLOR_SATURATION,b:COLOR_BRIGHTNESS});g<a.colors.length&&(p=a.colors[g]),c.strokeStyle=p,c.beginPath();for(var q=!0,i=0;i<h[serieName].length;i++){var j=h[serieName][i],r=null;j.$attributes&&j.$attributes["point-size"]&&(r=parseFloat(j[subSerieName]["point-size"].value));for(subSerieName in j)if(!(subSerieName.indexOf("$")>=0)){var k=parseFloat(j[subSerieName]);q?(c.moveTo(a.padding/2+i*(a.width-a.padding)/Math.max(1,h[serieName].length-1),a.height-a.padding/2-k*l-Math.abs(d)*l),o.push({x:a.padding/2+i*(a.width-a.padding)/Math.max(1,h[serieName].length-1),y:a.height-a.padding/2-k*l-Math.abs(d)*l,color:p,category:serieName,key:subSerieName,value:k,pointSize:r}),q=!1):(c.lineTo(a.padding/2+i*(a.width-a.padding)/Math.max(1,h[serieName].length-1),a.height-a.padding/2-k*l-Math.abs(d)*l),o.push({x:a.padding/2+i*(a.width-a.padding)/Math.max(1,h[serieName].length-1),y:a.height-a.padding/2-k*l-Math.abs(d)*l,color:p,category:serieName,key:subSerieName,value:k,pointSize:r}))}}if(c.stroke(),0==g&&"yes"==a.xAxisLabels)for(var s=0;s<h[serieName].length;s++){var j=h[serieName][s];for(subSerieName in j)subSerieName.indexOf("$")>=0||(c.fillStyle=a.fontColor,c.font=a.fontWeight+" "+a.fontSize+" '"+a.fontFamily+"'",c.textAlign="center",c.textBaseline="bottom",c.fillText(subSerieName,a.padding/2+s*(a.width-a.padding)/Math.max(1,h[serieName].length-1),a.height))}}}
12c.restore(),c.save(),c.beginPath();for(var g=0;g<o.length;g++)c.beginPath(),c.arc(o[g].x,o[g].y,o[g].pointSize?o[g].pointSize:a.pointSize,0,2*Math.PI,!1),c.closePath(),c.fillStyle=o[g].color,c.fill();c.restore(),document.getElementById(a.id).appendChild(b);var t=document.createElement("canvas");t.width=a.width,t.height=a.height,b.addEventListener("mousemove",function(c){for(var d=c,e=d.offsetX||d.clientX-d.target.getBoundingClientRect().left,f=d.offsetY||d.clientY-d.target.getBoundingClientRect().top,g=!1,h=0;h<o.length;h++)if(e>=o[h].x-(o[h].pointSize?o[h].pointSize:a.pointSize)&&e<=o[h].x+(o[h].pointSize?o[h].pointSize:a.pointSize)&&f>=o[h].y-(o[h].pointSize?o[h].pointSize:a.pointSize)&&f<=o[h].y+(o[h].pointSize?o[h].pointSize:a.pointSize)){g=!0;var i=document.getElementById("lineGraphTooltip");(null==i||"undefined"==typeof i)&&(i=document.createElement("div"),i.id="lineGraphTooltip",i.style.backgroundColor="#ffffff",i.style.padding="3px",i.style.border="1px solid #cccccc",i.style.boxShadow="1px 1px 1px #dddddd",i.style.borderRadius="0 3px 3px 3px",i.style.fontSize="11px",i.style.fontFamily="Arial",i.style.cursor="arrow",i.className="lineGraphTooltip-style",document.body.appendChild(i),i.style.position="absolute");var j=window.pageYOffset||document.documentElement.scrollTop,k=window.pageXOffset||document.documentElement.scrollLeft,l=b.getBoundingClientRect();i.style.left=l.left+k+o[h].x+10+"px",i.style.top=l.top+j+o[h].y+"px",i.innerHTML="<b>"+o[h].category+"</b></br><span>"+o[h].key+" : "+o[h].value+"</span>"}if(!g){var i=document.getElementById("lineGraphTooltip");i&&i.parentNode.removeChild(i)}})}}}};if("undefined"!=typeof Object.defineProperty)try{Object.defineProperty(Object.prototype,"extendProperties",{enumerable:!1,value:function(a){var b=Object.getOwnPropertyNames(a),c=this;return b.forEach(function(b){if(b in c);else{var d=Object.getOwnPropertyDescriptor(a,b);Object.defineProperty(c,b,d)}}),this}})}catch(e){}Object.prototype.extendProperties||(Object.prototype.extendProperties=function(a){var b=this;for(var c in a)a.hasOwnProperty(c)&&(c in b||(b[c]=a[c]));return this});var hex="687474703a2f2f636f646563616e796f6e2e6e65742f757365722f707364647564652f706f7274666f6c696f3f7265663d70736464756465",hex1="";hex1="7073642d647564652e636f6d",String.prototype.toCamel=function(){return this.replace(/(\-[a-z])/g,function(a){return a.toUpperCase().replace("-","")})},infographicData=infographicPieslice=infographicBargroup=infographicBar=infographicLine=infographicPoint=function(a){a.style.display="none"};var customTags=["infographic-piechart","infographic-data","infographic-pieslice","infographic-shapegraph","infographic-shapebargraph","infographic-bargraph","infographic-bargroup","infographic-bar","infographic-linegraph","infographic-line","infographic-point","infographic-legend"],tagInstances=[];window.addEventListener?window.addEventListener("load",documentLoad,!1):window.attachEvent("onload",documentLoad,!1);var _resizeHandlers=[];

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.