function exportToCsv(n,t){if(usageRequestUrl!==undefined&&usageRequestUrl!==null&&usageRequestUrl.indexOf("?")>-1){var i=usageRequestUrl.substring(usageRequestUrl.indexOf("?"),usageRequestUrl.length),r=n+i;$("#"+t).attr("href",r)}}function showUsageChartForSelectedPeriod(n,t){n.toLocaleLowerCase()==="custom"||$("#custom-range-form-container").hasClass("custom-range-form-container-hide")||$("#custom-range-form-container").addClass("custom-range-form-container-hide");n.toLocaleLowerCase()!=="custom"?plotNewUsageChart(n,null,null,null,t):$("#custom-range-form-container").hasClass("custom-range-form-container-hide")&&$("#custom-range-form-container").removeClass("custom-range-form-container-hide")}function plotNewUsageChart(n,t,i,r,u){$("#usage-category-showall").prop("checked",!1);$("#usage-showall").prop("checked",!1);removeElementContentById("usage-pagination");removeElementContentById("category-pagination");removeElementContentById("overallUsageChart");removeElementContentById("categoryUsage");removeElementContentById("usageSummaryTable");removeElementContentById("categoryUsageTable");removeElementContentById("usage-current-page");removeElementContentById("category-current-page");plotUsageChart(n,t,i,r,u)}function plotUsageChart(n,t,i,r,u){$("#usage-showall-container").hasClass("hideContent")||$("#usage-showall-container").addClass("hideContent");$("#usage-category-showall-container").hasClass("hideContent")||$("#usage-category-showall-container").addClass("hideContent");$("#report-spinner").css("display","block");showUsageInterval(n,t,i,r,"usageSelectedPeriod");usageRequestUrl=contructRequestUrl(u,n,t,i,r);$.when(drawDashdoard(usageRequestUrl,u)).then(function(n){n===!0&&($("#usage-showall-container").removeClass("hideContent"),$("#usage-category-showall-container").removeClass("hideContent"));$("#stats-area").removeClass("hideContent")})}function drawDashdoard(n,t){var i=$.Deferred();return d3.json(n,function(n,r){var u,f;if(n){showMessageOnUsageChartArea("overallUsageChartContainer","overallUsageChart",n.responseText);$("#report-spinner").fadeOut();i.resolve(!1);return}if(u=r.apiTransactionAggregates,r.appStatsByBillingTypes!=undefined&&generateAppStatsByBillingTypes(r.appStatsByBillingTypes,"total-transaction-per-app"),u.length===0){f="No data found for this period.";showMessageOnUsageChartArea("overallUsageChartContainer","overallUsageChart",f,!1);showMessageOnUsageChartArea("categoryUsageContainer","categoryUsage",f,!0);$("#report-spinner").fadeOut();i.resolve(!1);return}var e=u[0].transactionType,o=getDateDatapoints(u),h=buildDataSeriesArray(u,o,e),s=buildApiUsageByCategoryArray(u),c=getUsageByCategoryTableData(s),l=getTableUsageStat(u);buildUsageTable(l,e,"usageSummaryTable");createPagination("usageTableBody","usage-current-page","usage-show-per-page","usage-pagination",10,10);buildUsageByCategoryTable(c,"categoryUsageTable");createPagination("categoryTableBody","category-current-page","category-show-per-page","category-pagination",10,10);buildUsageChart(t,h,e,o.length,"overallUsageChartContainer","overallUsageChart",plotNewUsageChart);buildUsageByCategoryDonutChart(s,"categoryUsage");$("#report-spinner").fadeOut();i.resolve(!0)}),i.promise()}function isIE(){var n=window.navigator.userAgent;return n.indexOf("MSIE ")>=0||!!n.match(/Trident.*rv\:11\./)?!0:!1}function changeOpacity(n,t,i){var r=$(document.getElementById(n)),u=$("."+t).not(r);d3.selectAll(u).style("opacity",i)}function formatTimestamp(n,t){var i="",r=getDate(n),u;switch(t){case 0:i=toLocaleLongDateString(r,"hourly");break;case 1:i=r.toLocaleDateString();break;case 2:u=getMonthName(r);i=r.getFullYear()+" - "+u}return i}function getFormattedStandardDateTime(n){var t=d3.time.format("%Y-%m-%dT%H:%M:%S");return t(n)}function hextToRgb(n){return"rgba("+parseInt(n.slice(1,3),16)+","+parseInt(n.slice(3,5),16)+","+parseInt(n.slice(5,7),16)+",0.5)"}function getDate(n){return new Date(Date.parse(n))}function toLocaleLongDateString(n,t){return t!=="hourly"?n.toLocaleDateString():n.toLocaleDateString()+" "+n.toLocaleTimeString()}function toServerAcceptedDateString(n,t){var i=prependZero(n.getMonth()+1)+"/"+prependZero(n.getDate())+"/"+n.getFullYear(),r;return t!=="hourly"?i:(r=prependZero(n.getHours())+":"+prependZero(n.getMinutes())+":"+prependZero(n.getSeconds()),i+" "+r)}function prependZero(n){return n<10?"0"+n:""+n}function getMonthName(n){return["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"][n.getMonth()]}function removeElementContentById(n){d3.select("#"+n).selectAll("*").remove()}function getTimeFormat(n){switch(n){case 0:return"%m/%d/%y %I %p";case 1:return"%x";case 2:return"%b-%Y";default:return"%x"}}function getTextSize(n,t){return typeof n=="string"?n.length*t:n.toString().length*t}function isInLowerHalfOfCircle(n,t){var i=Math.PI,r=n,u=t,f,e;return r>=i/2&&r<=3*i/2&&u>=i/2&&u<=3*i/2||u-r>=i?!0:r>=i/2&&r<=3*i/2&&(f=3*i/2-r,e=u-3*i/2,f/(f+e)>=.6)?!0:u>=i/2&&u<=3*i/2&&(f=u-i/2,e=i/2-r,f/(f+e)>=.6)?!0:!1}function rebuildPaginationContent(n,t,i,r,u,f,e,o){removeElementContentById(t);$(n).is(":checked")?createPagination(i,r,u,f,e,1):createPagination(i,r,u,f,e,o)}function contructRequestUrl(n,t,i,r,u){var f="/api/report/transactionsummary?statisticPeriod={0}&key={1}";return t.toLocaleLowerCase()==="custom"||t.toLocaleLowerCase()==="last24hours"?(f+="&aggregateUnit={2}&startTime={3}&endTime={4}",t.toLocaleLowerCase()==="last24hours"&&i==undefined&&(i="hourly"),$.validator.format(f,t,n,i,r,u)):$.validator.format(f,t,n)}function getDateDatapoints(n){var t=[],i={};return n.forEach(function(n){i[n.transactionTime]||(i[n.transactionTime]=!0,t.push(n.transactionTime))}),t}function shouldShowTextInsideArc(n,t,i,r,u){var f=n.endAngle-n.startAngle,h=2*Math.PI/3,c=getTextSize(r,u),e,o,s;return(f>h?e=2*Math.sqrt(i*i-Math.pow((i+t)/2,2)):(o=Math.sqrt(2*i*i*(1-Math.cos(f))),s=2*t*Math.tan(f/2),e=(o+s)/2),e>c)?!0:!1}function angle(n){return(n.startAngle+n.endAngle)*90/Math.PI}function showMessageOnUsageChartArea(n,t,i,r){var u=$("#"+n).width();d3.select("#"+t).attr({width:u,height:450}).append("text").text(i).attr({x:50,y:20,fill:"red"}).style("margin-left",function(){return r?"50px":"0px"}).style("color","red")}function createPagination(n,t,i,r,u,f){var h=$("#"+n).children().size(),o=Math.ceil(h/u),s,e;if(o>f&&(o=f,u=Math.ceil(h/o)),$("#"+t).val(0),$("#"+i).val(u),o>1){for(s=[],s.push("<a class='previousLink' href=\"javascript:gotoPreviousPage("+u+", '"+n+"', '"+t+"', '"+r+"');\">Prev<\/a>"),e=1;e<=o;e++)s.push('<a href="javascript:gotoPage('+e+", "+u+", '"+n+"', '"+t+"', '"+r+"');\" data-pageindex="+e+">"+e+"<\/a>");s.push("<a class='nextLink' href=\"javascript:gotoNextPage("+u+", '"+n+"', '"+t+"', '"+r+"');\">Next<\/a>");$("#"+r).html(s.join(" "))}gotoPage(1,u,n,t,r)}function gotoPreviousPage(n,t,i,r){var u=parseInt($("#"+i).val())-1;u>=1&&gotoPage(u,n,t,i,r)}function gotoNextPage(n,t,i,r){var u=parseInt($("#"+i).val())+1,f=$("#"+t).children().size(),e=Math.ceil(f/n);u<=e&&gotoPage(u,n,t,i,r)}function gotoPage(n,t,i,r,u){var s=parseInt($("#"+r).val()),e,f,o;s!==n&&((e=$("#"+i).children().size(),f=(n-1)*t,f>=e||f<0)||(o=f+t>e?e:f+t,$("#"+r).val(n),$("#"+i).children().css("display","none"),$("#"+i).children().slice(f,o).removeAttr("style"),$("#"+u).children().removeClass("active-page"),$("#"+u).find("[data-pageindex="+n+"]").addClass("active-page")))}function showStatTooltip(n){$(this).popover({title:n.name,placement:"auto right",container:"body",trigger:"manual",html:!0,content:function(){var t=getDate(n.transactionTime),i="";switch(n.transactionType){case 2:i="<b>Month:<\/b> "+getMonthName(t)+"-"+t.getFullYear();break;case 1:i="<b>Date:<\/b> "+t.toLocaleDateString();break;case 0:i="<b>Time:<\/b> "+toLocaleLongDateString(t,"hourly")}return i+"<br/><b>API Calls:<\/b> "+d3.format(",")(n.transactionCount)}});$(this).popover("show")}function showSectorTip(n){$(this).popover({placement:"auto center",container:"body",trigger:"manual",html:!0,content:function(){return"<b>API Name: <\/b>"+n.data.apiName+"<br/><b>API Calls: <\/b>"+d3.format(",")(n.data.transactionCount)}});$(this).popover("show")}function removeTooltip(){$(".popover").each(function(){$(this).remove()})}function getXAxisLabelLength(n,t){var i=11*t;switch(n){case 0:return i;case 1:return 10*t;case 2:return 8*t;default:return i}}function utcTimeToLocal(n){return new Date(n+".000Z")}function showUsageInterval(n,t,i,r,u){var f;switch(n.toLocaleLowerCase()){case"last12months":f="Usage Period: Last 12 Months (UTC). Aggregated Daily";break;case"lastmonth":f="Usage Period: Last Month (UTC). Aggregated Daily";break;case"last24hours":f="Usage Period: Last 24 Hours (UTC). Aggregated Hourly";break;case"custom":f="Usage Period: "+i+" - "+r+" (UTC). Aggregated "+t;break;case"monthtodate":f="Usage Period: Current Month (UTC). Aggregated Daily";break;case"last30days":default:f="Usage Period: Within 30 Days (UTC). Aggregated Daily"}$("#"+u).html(f)}function getUsageByCategoryTableData(n){var t,i;return n==undefined?[]:(t=0,n.forEach(function(n){n.values.forEach(function(n){t+=n.transactionCount})}),i=[],n.forEach(function(n){n.values.forEach(function(r){i.push({ApiName:r.apiName,Billable:n.key==="Billable",UsageCount:r.transactionCount,UsagePercentage:parseFloat(r.transactionCount/t*100).toFixed(2)+"%"})})}),i.sort(function(n,t){return t.UsageCount-n.UsageCount}))}function buildUsageTable(n,t,i){var l=["Date"],e=["Billable","Non-Billable"],a={Billable:0,"Non-Billable":0},r,o,s,u,h,f,c;e.forEach(function(n){l.push(n)});r=document.createElement("table");r.className="table usage-table";o=document.createElement("thead");s=document.createElement("tr");o.appendChild(s);r.appendChild(o);l.forEach(function(n){var t=document.createElement("th");t.appendChild(document.createTextNode(n));s.appendChild(t)});u=document.createElement("tbody");u.setAttribute("id","usageTableBody");r.appendChild(u);n.forEach(function(n){var i=document.createElement("tr"),r=document.createElement("td");r.appendChild(document.createTextNode(formatTimestamp(n.Date,t)));i.appendChild(r);e.forEach(function(t){var r=document.createElement("td");r.style.textAlign="left";r.appendChild(document.createTextNode(d3.format(",")(n[t])));i.appendChild(r);a[t]+=n[t]});u.appendChild(i)});h=document.createElement("tfoot");f=document.createElement("tr");r.appendChild(h);h.appendChild(f);c=document.createElement("td");c.appendChild(document.createTextNode("Selected Period Total"));f.appendChild(c);e.forEach(function(n){var t=document.createElement("td");t.appendChild(document.createTextNode(d3.format(",")(a[n])));f.appendChild(t)});$("#"+i).append(r)}function buildUsageByCategoryTable(n,t){var s="max-width: 300px; word-wrap: break-word;",h=["API Name","Billable?","Usage","% Usage"],i=document.createElement("table"),u,f,r,e,o;i.className="table usage-table";i.setAttribute("id","groupByCategory");u=document.createElement("thead");f=document.createElement("tr");u.appendChild(f);i.appendChild(u);h.forEach(function(n){var t=document.createElement("th");n==="API Name"&&t.setAttribute("style",s);t.appendChild(document.createTextNode(n));f.appendChild(t)});r=document.createElement("tbody");r.setAttribute("id","categoryTableBody");i.appendChild(r);n.forEach(function(n){var t=document.createElement("tr"),o=document.createElement("td"),i,u,h,f,e;o.setAttribute("style",s);o.appendChild(document.createTextNode(n.ApiName));t.appendChild(o);i=document.createElement("td");i.style.textAlign="center";n.Billable&&(u=document.createElement("span"),u.className="glyphicon glyphicon-ok",u.style.color="#0277bd",i.appendChild(u));t.appendChild(i);h=n.UsageCount;f=document.createElement("td");f.style.textAlign="right";f.appendChild(document.createTextNode(d3.format(",")(h)));t.appendChild(f);e=document.createElement("td");e.style.textAlign="right";e.appendChild(document.createTextNode(n.UsagePercentage));t.appendChild(e);r.appendChild(t)});e=document.createElement("tfoot");o=document.createElement("tr");i.appendChild(e);e.appendChild(o);h.forEach(function(){var n=document.createElement("td");n.innerHTML="&nbsp;";o.appendChild(n)});$("#"+t).append(i)}function getTableUsageStat(n){var t={},i;return n.forEach(function(n){t[n.transactionTime]!=undefined?(t[n.transactionTime].Billable+=n.billable,t[n.transactionTime]["Non-Billable"]+=n.nonBillable):(t[n.transactionTime]={},t[n.transactionTime].Billable=n.billable,t[n.transactionTime]["Non-Billable"]=n.nonBillable)}),i=[],Object.keys(t).map(function(n){i.push({Date:n,Billable:t[n].Billable,"Non-Billable":t[n]["Non-Billable"]})}),i.sort(function(n,t){return getDate(n.Date)-getDate(t.Date)}),i}function buildDataSeriesArray(n,t,i){var r=[],u=[];return["Billable","Non-Billable"].forEach(function(n){u[n]={name:n,values:{}};t.forEach(function(t){u[n].values[t]=0});r.push(u[n])}),n.forEach(function(n){u.Billable.values[n.transactionTime]+=n.billable;u["Non-Billable"].values[n.transactionTime]+=n.nonBillable}),r.forEach(function(n){var t=Object.keys(n.values).map(function(t){return{name:n.name,transactionTime:t,transactionCount:n.values[t],transactionType:i}});n.values=t}),r.sort(function(n,t){return n.name>t.name}),r.forEach(function(n){n.values.sort(function(n,t){return getDate(n.transactionTime)-getDate(t.transactionTime)})}),r}function buildApiUsageByCategoryArray(n){var r=filterEmptyData(n),t={Billable:{},"Non-Billable":{}},i;return r.forEach(function(n){n.billable>0&&(t.Billable[n.apiName]!==undefined?t.Billable[n.apiName]+=n.billable:t.Billable[n.apiName]=n.billable);n.nonBillable>0&&(t["Non-Billable"][n.apiName]!==undefined?t["Non-Billable"][n.apiName]+=n.nonBillable:t["Non-Billable"][n.apiName]=n.nonBillable)}),i=Object.keys(t).map(function(n){var i=Object.keys(t[n]).map(function(i){return{category:n,apiName:i,transactionCount:t[n][i]}});return{key:n,values:i}}),i.sort(function(n,t){return n.key>t.key}),i.filter(function(n){return n.values.length>0})}function filterEmptyData(n){if(n==undefined)return[];return n.filter(function(n){return n.apiName!==""})}function buildArcLabelPath(n,t,i,r){var u={};return Object.keys(n).forEach(function(f){var e=n[f];Object.keys(e).forEach(function(n){var s=e[n],c,b,o,l;s.sort(function(n,t){return n.acy-t.acy});var h=[],v=15,y,w=t+v;for(c=0;c<s.length;c++)y=s[c].acx>=0?1:-1,c!==0&&(b=Math.abs(s[c].acy-s[c-1].acy),b<12&&h.push(c-1)),setArcLabelPath(s[c],v,w,t,y);var k=0,p=0,a=[];for(o=0;o<h.length;o++)if(o===h.length-1?p=o+1:o>0&&h[o]-h[o-1]>1&&(p=o),o===h.length-1||o>0&&h[o]-h[o-1]>1){for(a=h.slice(k,p),l=0;l<a.length;l++)w=t+v+10*(a.length-l),y=s[a[l]].acx>=0?1:-1,setArcLabelPath(s[a[l]],v,w,t,y);k=p}u[f]===undefined&&(u[f]={});u[f][n]===undefined&&(u[f][n]={});s.forEach(function(t){u[f][n][t.apiName]={apiName:t.apiName,acx:t.acx,acy:t.acy,p1x:t.p1x,p1y:t.p1y,p2x:t.p2x,p2y:t.p2y,maxChars:Math.ceil((i/2-Math.abs(t.p2x))/r)}})})}),u}function setArcLabelPath(n,t,i,r,u){n.p1x=n.acx*i/r;n.p1y=n.acy*i/r;n.p2x=n.p1x+u*t;n.p2y=n.p1y}function findPath(n,t,i){return n[t].Left!==undefined&&i in n[t].Left?n[t].Left[i]:n[t].Right[i]}function buildUsageChart(n,t,i,r,u,f,e){var p=["Billable","Non-Billable"],w=d3.scale.ordinal().range(["#29B6F6","#0D47A1"]),l,a,v,s,ft,at,tt;w.domain(p);var et=d3.min(t,function(n){return d3.min(n.values,function(n){return getDate(n.transactionTime)})}),ot=d3.max(t,function(n){return d3.max(n.values,function(n){return getDate(n.transactionTime)})}),c=0;for(l=0;l<t[0].values.length;l++){for(a=0,v=0;v<t.length;v++)a+=t[v].values[l].transactionCount;c<a&&(c=a)}var b=8.5,it="API Calls",o={top:20+p.length*10,right:40,bottom:20,left:Math.max(getTextSize(c,b),getTextSize(it,b))+10},rt=$("#"+u).width(),k=450,ut=getXAxisLabelLength(i,b),d=o.left,st=k-o.bottom-ut,g=10,y=d3.time.scale().domain([et,ot]).range([o.left+5,rt-o.right]),h=d3.scale.linear().range([k-o.bottom-ut,o.top]),nt=d3.svg.axis().scale(y).orient("bottom").ticks(r>=7?7:r).tickFormat(d3.time.format(getTimeFormat(i))),ht=d3.svg.axis().scale(h).orient("left").ticks(5),ct=d3.layout.stack().offset("zero").values(function(n){return n.values}).x(function(n){return y(getDate(n.transactionTime))}).y(function(n){return n.transactionCount}),lt=d3.svg.area().interpolate("linear").x(function(n){return y(getDate(n.transactionTime))}).y0(function(n){return h(n.y0)}).y1(function(n){return h(n.y0+n.y)});ct(t);h.domain([0,c]);s=d3.select("#"+f).attr({width:rt,height:k});s.append("g").call(nt).attr({"class":"x-axis",transform:"translate(0, "+st+")"}).selectAll("text").style("text-anchor","end").attr({dx:"-0.8em",dy:"0.15em",transform:"rotate(-35)"});s.append("g").attr("class","y-axis").call(ht).attr("transform","translate("+d+", 0)").append("text").attr({y:20,x:0,dy:"0.3em"}).style("text-anchor","end").text(it);ft=s.selectAll(".series").data(t).enter().append("g").attr({"class":"series",id:function(n){return"series-"+n.name}});ft.append("path").attr({"class":function(n){return"streamPath-"+n.name},d:function(n){return lt(n.values)},fill:function(n){return w(n.name)},stroke:"#212121","stroke-width":1.5});at=s.selectAll(".seriesPoints").data(t).enter().append("g").attr({"class":"seriesPoints",id:function(n){return"seriesPoints-"+n.name}}).selectAll("circle").data(function(n){return n.values}).enter().append("circle").filter(function(n){return n.transactionCount>0}).attr({r:"3",cx:function(n){return y(getDate(n.transactionTime))},cy:function(n){return h(n.y0+n.y)},fill:"white",stroke:"#01579b","stroke-width":1}).on("mouseover",function(n){var t=d3.select(this);t.attr("r","6");n.transactionType!==0&&t.style("cursor","pointer");changeOpacity("series-"+n.name,"series",.2);changeOpacity("legend-"+n.name,"legend",.2);changeOpacity("seriesPoints-"+n.name,"seriesPoints",.2);showStatTooltip.call(this,n)}).on("mouseout",function(n){d3.select(this).attr("r","3");changeOpacity("series-"+n.name,"series",1);changeOpacity("legend-"+n.name,"legend",1);changeOpacity("seriesPoints-"+n.name,"seriesPoints",1);removeTooltip()}).on("click",function(t){plotSelection(n,t.transactionTime,t.transactionType,e)});tt=s.selectAll(".legend").data(p).enter().append("g").attr({id:function(n){return"legend-"+n},"class":"legend",transform:function(n,t){return"translate(90,"+t*20+")"}});tt.append("rect").attr({x:nt.scale().range()[1]-d-g-5,width:g,height:10,fill:w,stroke:"#212121"});tt.append("text").attr({x:nt.scale().range()[1]-d-g-10,y:6,dy:".35em","text-anchor":"end"}).text(function(n){return n})}function buildUsageByCategoryDonutChart(n,t){var h=10,f=$("#"+t).width(),i=f/4,v=d3.scale.category20c(),e=i/2,o=8,l=.1,y=d3.layout.pie().value(function(n){return n.transactionCount}).sort(function(n,t){return n.transactionCount-t.transactionCount}),c=d3.svg.arc().innerRadius(e).outerRadius(i),a=d3.select("#"+t).selectAll("div").data(n).enter().append("div").attr({display:"inline-block",width:f+"px"}).append("svg").attr({"class":"svgCenter",width:f,height:(i+h)*2+60}).append("g").attr("transform",function(){return"translate("+(i+h+f/4)+","+(i+h+50)+")"}),s,r,u;a.append("text").attr({dy:".35em","text-anchor":"middle","font-weight":"bold","font-size":"0.9em"}).text(function(n){return n.key});s=a.selectAll("g").data(function(n){return y(n.values)}).enter().append("g").attr({id:function(n){return"sector-"+n.data.category+"-"+n.data.apiName},"class":function(n){return"arc-element-"+n.data.category}});s.append("path").attr({d:c,fill:function(n){return v(n.data.apiName)}}).on("mouseover",function(n){changeOpacity("sector-"+n.data.category+"-"+n.data.apiName,"arc-element-"+n.data.category,.2);showSectorTip.call(this,n)}).on("mouseout",function(n){changeOpacity("sector-"+n.data.category+"-"+n.data.apiName,"arc-element-"+n.data.category,1);removeTooltip()});r={};s.each(function(n){var f=c.centroid(n),t=[f[0],f[1]],e=Math.sqrt(t[0]*t[0]+t[1]*t[1]),u=[t[0]/e*i,t[1]/e*i];r[n.data.category]===undefined&&(r[n.data.category]={});u[0]>=0?(r[n.data.category].Right===undefined&&(r[n.data.category].Right=[]),r[n.data.category].Right.push({acx:u[0],acy:u[1],apiName:n.data.apiName})):(r[n.data.category].Left===undefined&&(r[n.data.category].Left=[]),r[n.data.category].Left.push({acx:u[0],acy:u[1],apiName:n.data.apiName}))});u=buildArcLabelPath(r,i,f,o);s.filter(function(n){return n.endAngle-n.startAngle>l}).append("text").attr({dy:"0.35em","text-anchor":function(n){var t="start";return shouldShowTextInsideArc(n,e,i,n.data.apiName,o-1.3)?t="middle":u[n.data.category].Left!==undefined&&n.data.apiName in u[n.data.category].Left&&(t="end"),t},"font-size":"0.85em",transform:function(n){var r,t;return shouldShowTextInsideArc(n,e,i,n.data.apiName,o-1.3)?(r=isInLowerHalfOfCircle(n.startAngle,n.endAngle)?angle(n)+180:angle(n),"translate("+c.centroid(n)+")rotate("+r+")"):(t=findPath(u,n.data.category,n.data.apiName),"translate("+t.p2x+", "+t.p2y+")")}}).text(function(n){if(shouldShowTextInsideArc(n,e,i,n.data.apiName,o-1.3))return n.data.apiName;var t=findPath(u,n.data.category,n.data.apiName);return t.maxChars>=n.data.apiName.length?n.data.apiName:n.data.apiName.substring(0,t.maxChars-2)+"..."});s.filter(function(n){return n.endAngle-n.startAngle>l&&!shouldShowTextInsideArc(n,e,i,n.data.apiName,o-1.3)}).append("path").attr({d:function(n){var t=findPath(u,n.data.category,n.data.apiName);return"M"+t.acx+","+t.acy+"L"+t.p1x+","+t.p1y+" "+t.p2x+","+t.p2y}}).style("fill","none").style("stroke","black")}function plotSelection(n,t,i,r){var u=getDate(t),f,e,o;switch(i){case 1:f="hourly";r.call(this,"custom",f,t,t,n);removeTooltip();break;case 2:f="daily";e=getFormattedStandardDateTime(new Date(u.getFullYear(),u.getMonth(),1));o=getFormattedStandardDateTime(new Date(u.getFullYear(),u.getMonth()+1,0));r.call(this,"custom",f,e,o,n);removeTooltip()}}function generateAppStatsByBillingTypes(n,t){$("#"+t).jsGrid({width:"100%",sorting:!0,autoload:!0,pageSize:10,data:n,fields:[{name:"appName",type:"text",title:"Application Name",width:200},{name:"billable",type:"text",title:"Billable",width:100,itemTemplate:function(n){return n.toLocaleString()}},{name:"nonBillable",type:"text",title:"Non-Billable",width:120,itemTemplate:function(n){return n.toLocaleString()}},{name:"keyType",type:"text",title:"Key Type",width:100},{name:"bingMapsKey",type:"text",title:"Application Key",width:function(){return $("#chartArea").width()-520},css:"wraptext"}]})}