try{document.execCommand("BackgroundImageCache",false,true)}catch(err){}if(!MB){var MB=function(){return{lang:{},constant:{},util:{},home:{},form:{},resource:{}}}()}MB.lang=function(){var A={};return{setLanguage:function(B,C){A[B]=C},get:function(C,B){if(typeof A[C]=="undefined"||typeof A[C][B]=="undefined"){return B}return A[C][B]}}}();function _(B,A){if(typeof A=="undefined"){A="general"}return MB.lang.get(A,B)}MB.resource=function(){function A(C){C=C.replace(/^\s|\s$/g,"");var B=C.lastIndexOf(".");if(B==-1){return{name:C,ext:""}}else{return{name:C.substring(0,B),ext:C.substring(B)}}}return{get:function(C,B){if(B==="0"){return C}else{var D=A(C);return D.name+".v"+B+D.ext}}}}();function confirmDelete(B,A){if(confirm(B)){window.location=A}else{return false}}function checkAll(B,C){if(C.checked){checked=true}else{checked=false}for(var A=0;A<B.elements.length;A++){if(B.elements[A].type=="checkbox"){B.elements[A].checked=checked}}}MB.util={formatPercentage:function(A){return(A==="")?"-":MB.util.formatNumber(A,{round:2,precision:2})+"%"},formatCurrency:function(A){return(A===""||A==0)?"-":"$"+MB.util.formatNumber(A,{round:2,precision:2})},formatInt2:function(A){return(A===""||A==0)?"-":MB.util.formatNumber(A,{round:0,precision:0})},formatInt:function(A){return MB.util.formatNumber(A,{round:0,precision:0})},formatFloat:function(A){return(A==="")?"-":MB.util.formatNumber(A,{round:2,precision:2})},formatDay:function(A){return A.format("Y-m-d")},formatHour:function(A){return A.format("Y-m-d H:i")},formatSeconds:function(D){if(D===""){return"-"}var A=Math.floor(D/3600);var C=Math.floor((D-A*3600)/60);var B=Math.round(D-A*3600-C*60);A=A<10?("0"+A):A;C=C<10?("0"+C):C;B=B<10?("0"+B):B;return A+":"+C+":"+B},formatHyperLink:function(A){var B=window.location.pathname;return"<a href='"+B+"_detail?name="+escape(A)+"'>"+A+"</a>"},formatExportLink:function(){var A=document.location.href;var B=/\?(.*)/.exec(document.location);if(B){A=A.substring(0,A.length-B[0].length)}B=B?Ext.urlDecode(B[1]):[];B["export"]=A.substring(A.indexOf("/reports/")+9,A.length).replace(/\//g,"_");return A+"?"+Ext.urlEncode(B)},toHours:function(A){return A/3600},toMinutes:function(A){return A/60},truncate:function(A){return MB.util.truncateAtN(A,25)},truncateAtN:function(B,A){if(A<3){A+=3}if(B.length>A){return B.substring(0,A-3)+"..."}else{return B}},inArray:function(C,D){var B=false;for(var E=0,A=C.length;E<A;E++){if(C[E]==D){B=true;break}}return B},formatNumber:function(D,A){A=A||{};num_grp_sep=A.grp_sep||",";dec_sep=A.dec_sep||".";round=(typeof A.round=="undefined")?2:A.round;precision=(typeof A.precision=="undefined")?2:A.precision;D=D.toString();if(D.split){D=D.split(".")}else{return D}if(D.length>2){return D.join(".")}if(round>0&&D.length>1){D[1]=parseFloat("0."+D[1]);D[1]=Math.round(D[1]*Math.pow(10,round))/Math.pow(10,round);D[1]=D[1].toString().split(".")[1]}if(round<=0){D[0]=Math.round(parseInt(D[0])*Math.pow(10,round))/Math.pow(10,round);D[1]=""}if(precision>=0){if(D.length>1&&typeof D[1]!="undefined"){D[1]=D[1].substring(0,precision)}else{D[1]=""}if(D[1].length<precision){for(var B=D[1].length;B<precision;B++){D[1]+="0"}}}var C=/(\d+)(\d{3})/;while(C.test(D[0])){D[0]=D[0].toString().replace(C,"$1"+num_grp_sep+"$2")}return D[0]+(D.length>1&&D[1]!=""?dec_sep+D[1]:"")},htmlspecial:function(C){var A="";for(var B=0;B<C.length;B++){var D=C.charAt(B);if(D<" "||D>"~"||D=="'"){D="&#"+D.charCodeAt()+";"}A+=D}return A},htmlencode:function(B){if(typeof (B)=="string"){var A=B.replace(/\"/g,"&quot;");A=A.replace(/\&/g,"&amp;");A=A.replace(/\</g,"&lt;");A=A.replace(/\>/g,"&gt;");A=MB.util.htmlspecial(A);return A}else{return B}}};var helpTipDialog;var htClick=function(A){if(!A.within(helpTipDialog.el.dom)){helpTipDialog.hide()}};var helpTip=function(C,B,A){A=A||300;if(!helpTipDialog){Ext.get(document.body).insertHtml("beforeEnd",'<div id="help-tip" style="visibility:hidden;position:absolute;top:0px;"><div class="x-dlg-hd">Help</div><div class="x-dlg-bd"></div></div><div id="help-tip-helper" style="visibility:hidden;position:absolute;top:0px;"></div>');helpTipDialog=new Ext.BasicDialog("help-tip",{resizable:false,draggable:false,autoTabs:false,title:_("Help"),collapsible:false,shadow:false});Ext.get("help-tip-helper").setOpacity(0).show();helpTipDialog.body.set({overflow:"hidden"});helpTipDialog.addKeyListener(27,helpTipDialog.hide,helpTipDialog);helpTipDialog.on("beforeHide",function(){Ext.get(document).un("click",htClick)})}else{helpTipDialog.hide()}Ext.get("help-tip-helper").setWidth(A).dom.innerHTML=B;helpTipDialog.setContentSize(A,Ext.get("help-tip-helper").getHeight()+13);Ext.get("help-tip-helper").hide();helpTipDialog.body.update(B);helpTipDialog.anchorTo(C,"bl");helpTipDialog.show();window.setTimeout(function(){Ext.get(document).on("click",htClick)},500)};function createCookie(C,D,E){if(E){var B=new Date();B.setTime(B.getTime()+(E*24*60*60*1000));var A="; expires="+B.toGMTString()}else{var A=""}document.cookie=C+"="+D+A+"; path=/"}function readCookie(B){var D=B+"=";var A=document.cookie.split(";");for(var C=0;C<A.length;C++){var E=A[C];while(E.charAt(0)==" "){E=E.substring(1,E.length)}if(E.indexOf(D)==0){return E.substring(D.length,E.length)}}return null}function eraseCookie(A){createCookie(A,"",-1)}var form_submit_lock=false;MB.form=function(){var A="";return{page_forms:{},create:function(E,B){var D=function(F){if(form_submit_lock){return }form_submit_lock=true;var G=MB.form.page_forms[E].initialConfig.MBBaseParamsCallback();if(typeof G!="object"){G={}}MB.form.page_forms[E].getForm().submit({url:MB.constant.base_control+B.submitUrl,params:G,clientValidation:false,success:function(J,H){if(B.beforeSubmitSuccess){B.beforeSubmitSuccess(J,H)}if(H.result.redirect){document.location=H.result.redirect}else{MB.form.page_forms[E].buttons[0].setText(MB.form.submit_button_text);if(B.confirmBox){var I=Ext.get(B.confirmBox+"_confirm_span");if(!I){var K=Ext.get(Ext.get(B.confirmBox).select("div[class=mm]").elements[0]);I=Ext.get(Ext.DomHelper.insertAfter(K.first(),{tag:"span",html:"error",id:B.confirmBox+"_confirm_span"}))}I.update(" "+H.result.confirmText);Ext.get(B.confirmBox).slideIn(null,{useDisplay:true})}}if(B.afterSubmitSuccess){B.afterSubmitSuccess(J,H)}form_submit_lock=false},failure:function(K,H){var I=true;if(B.beforeSubmitFail){I=B.beforeSubmitFail(K,H)}MB.form.page_forms[E].buttons[0].setText(MB.form.submit_button_text);if(I&&H.result){var J=Ext.get(B.errorBox+"_error_span");if(!J){var M=Ext.get(Ext.get(B.errorBox).select("div[class=mm]").elements[0]);J=Ext.get(Ext.DomHelper.insertAfter(M.first(),{tag:"span",style:"font-size: 10px",html:"error",id:B.errorBox+"_error_span"}))}var N={};Ext.each(MB.form.page_forms[E].initialConfig.items,function(Q,O,P){N[Q.name]=Q.fieldLabel});var L=new Ext.Template(H.result.errorText);J.update(" "+L.apply(N));Ext.get(B.errorBox).slideIn(null,{useDisplay:true})}if(B.afterSubmitFail){B.afterSubmitFail(K,H)}form_submit_lock=false}})};this.submit_button_text=B.submitText||"Submit";var C=[{text:this.submit_button_text,type:"Submit",hidden:B.hideSubmit||false,handler:function(H,G){if(B.beforeSubmit){B.beforeSubmit(MB.form.page_forms[E])}var F='&nbsp;<img align="absmiddle" src="'+MB.constant.base_url+'img/spinner-anim.gif"> '+(B.submitProgressText||"Submitting")+"&nbsp;";MB.form.page_forms[E].buttons[0].setText(F);if(Ext.get(B.errorBox)&&Ext.get(B.errorBox).isDisplayed()){Ext.get(B.errorBox).slideOut(null,{useDisplay:true,callback:D})}else{if(B.confirmBox&&Ext.get(B.confirmBox).isDisplayed()){Ext.get(B.confirmBox).slideOut(null,{useDisplay:true,callback:D})}else{D(G)}}}}];if(B.buttons){C=C.concat(B.buttons)}if(!Ext.QuickTips.isEnabled()){Ext.QuickTips.init()}this.page_forms[E]=new Ext.FormPanel({labelWidth:B.labelWidth||120,bodyStyle:"padding:5px 5px 0;"+(B.bodyStyle||""),width:B.width||450,defaultType:"textfield",defaults:{width:230},border:false,itemCls:"formLabel",items:B.items,labelAlign:B.labelAlign||"left",buttons:C,keys:[{key:[10,13],fn:C[0].handler}],MBBaseParamsCallback:B.baseParamsCallback||Ext.emptyFn});this.page_forms[E].render(E);return this.page_forms[E]},create_check_all:function(C,B){Ext.get(C).on("click",function(G,F){var D=Ext.get(B).select("input[type=checkbox]").elements;for(var E=0;E<D.length;E++){D[E].checked=F.checked}})}}}();MB.grid=function(){var A=new Object();A["Avg. Time Spent"]=A["Time Spent"]="Time spent measures the total time a visitor spends on your site by counting the time between page views. Single page visits are not used in the calculation.";A["Bounce Rate"]="Single page view visits divided by the total number of visits.";A.Pageviews="The number of times your site pages were viewed by all visitors during the specified reporting period.";A["PVs/Visit"]="AdMob Mobile Analytics divides the total daily inferred page views by the total daily visits to derive the page views per visit.";A["Unique Visitors"]="The number of inferred users (filtered for spiders and robots), within a designated reporting timeframe, with activity consisting of one or more visits to your site. Each user is counted only once in the unique visitor total for the day or calendar month (running monthly total).";A.Visits="A visit is an interaction with your website consisting of one or more page views. If a visitor has no action on the site within a specified time period, the session ends.  AdMob Mobile Analytics uses 30 min sessions.";A.Visitors="Unique visitors.";A["New for Month"]="The number of unique visitors with first-time activity on your site during the calendar month.";A["Returning for Month"]="The number of unique visitors who have previously visited your site during the same calendar month. This is a good metric to measure retention and churn reduction efforts.";A["% New"]="The percentage of unique visitors who had not previoulsy visited your site at any time during the calendar month.";A["Monthly Running Total"]="The total cumulative unique visitors through the specific day in a calendar month.  Repeat unique visitors are removed (de-duped) from the running total.";A["% Exit"]="Number of exits from page divided by total number of page views of that same page.";A.Exits="The number of times the specified page was the last page view for a visitor.";A["% Pageviews"]="The percent of total page views for the reporting period that are attributed to the selected page.";A.Entrances="The first page that a visitor landed on.  This indicates where traffic is entering your mobile site.";A["% Entrance"]="The percent of page views where the page or URL was the entrance to your mobile site.";A["Event Occurrences"]="Any page view that has been configured to measure a specific event (action) using AdMob Mobile Analytics. See &quot;Manage Events&quot; for more information on how to configure.";A["Events/Visitor"]="The total events divided by the total unique visitors for the selected reporting period.";A["% of Total Visitors"]="The % of your total unique visitors that viewed a page configured to measure an event.";return{create:function(C,L,N){var J=new MB.data.PagedStore({primaryStore:N});var M=L.pageSize?L.pageSize:(L.inComparisonMode?10:15);var G=L.inComparisonMode?452:368;if(typeof L.columns!="undefined"){for(var H=0,K=L.columns.length;H<K;H++){var D=L.columns[H].header;if(!L.columns[H].tooltip&&(typeof A[D]!="undefined")){L.columns[H].tooltip=A[D]}}}var B=new Ext.grid.GridPanel({store:J,title:L.title,columns:L.columns,stripeRows:true,autoExpandColumn:L.autoExpandColumn,width:L.width||765,height:L.height||G,enableHdMenu:false,sm:new Ext.grid.RowSelectionModel({singleSelect:L.singleSelect||false}),bbar:new Ext.PagingToolbar({pageSize:M,store:J,displayInfo:true}),plugins:L.plugins?L.plugins:(L.inComparisonMode?new Ext.grid.TandemRowPlugin(J):null)});J.load({params:{start:0,limit:M}});if(typeof L.dateBasedGrid!="undefined"){B.mbDateGrid=L.dateBasedGrid}else{B.mbDateGrid=true}if(B.mbDateGrid){B.mbDateGridConf=[];B.mbDateGridConf.field=L.dateConf&&L.dateConf.field?L.dateConf.field:"day_hour_bucket",B.mbDateGridConf.sortDir=L.dateConf&&L.dateConf.sortDir?L.dateConf.sortDir:"ASC"}B.chartId=L.chartId||"chartId";B.chartConf=L.chartConf||{};B.topN=L.topN||false;B.chartXMLFunc=L.chartXMLFunc||MB.chart.getLineChartXML;B.lastSortColumn=B.getColumnModel().getColumnId(L.initColumnSelected||1);B.lastSelectedColumn=L.initColumnSelected||1;var I=function I(S){var R=Ext.get(B.chartConf.chartTitleId||"chartTitle");if(R){R.update(S)}};I(B.chartConf.chartTitle||"");var F=function(V,U){var X=U||V.lastSortColumn;var R=V.getStore();var T;var S;if(V.mbDateGrid){R.sort(V.mbDateGridConf.field,V.mbDateGridConf.sortDir);T=V.mbDateGridConf.field;S=X}else{R.sort(X,R.getSortState().direction);T=X;S=V.getColumnModel().getColumnId(0)}var W=V.getColumnModel().getColumnById(X).header;E(V,W,T,S,R)};var E=function(W,X,V,T,R){var U=W.chartConf;U.chartTitle=(U.chartTitlePrefix?U.chartTitlePrefix:"")+X;I(U.chartTitle);var S=getChartFromId(W.chartId);if(S){S.setDataXML(W.chartXMLFunc(V,T,U,R.getPrimaryStore()))}};B.on("sortchange",function(S,R){if(!S.chartId||S.getColumnModel().getIndexById(R.field)==0||S.lastSortColumn==R.field){return }S.lastSortColumn=R.field;createCookie("c",S.lastSortColumn,0);S.getStore().suspendEvents();F(S);S.getStore().resumeEvents()});var P=function(S,R){var T=S.view.getHeaderCell(S.lastSelectedColumn);Ext.fly(T).removeClass("selectedColumn")};var Q=function(S,R){var T=S.view.getHeaderCell(R);Ext.fly(T).addClass("selectedColumn")};var O=function(S,R){var T=S.view.getHeaderCell(R);Ext.fly(T).removeClass("sort-asc");Ext.fly(T).removeClass("sort-desc")};B.on("headerclick",function(V,T,U){if(V.lastSelectedColumn!=T){var S=V.getColumnModel();var W=S.getColumnId(T);var R=S.getColumnById(W);if(R.selectable){P(V,V.lastSelectedColumn);V.lastSelectedColumn=T;createCookie("c",R.dataIndex,0);Q(V,V.lastSelectedColumn);E(V,R.header,V.mbDateGridConf.field,W,V.getStore())}}});B.render(C);if(B.mbDateGrid){O(B,0);Q(B,B.lastSelectedColumn)}return B}}}();MB.chart=function(){var D="formatNumberScale='0' decimalPrecision='2' numberSuffix=' hr'";var A="formatNumberScale='0' decimalPrecision='2' numberSuffix=' min'";var F=90;var E=8;var B,C;return{getBarChartXML:function(H,L,Q,O){var W=new Ext.Template("<chart {displayFormat} xAxisName='{xAxisName}' yAxisName='{yAxisName}' chartTopMargin='20' chartBottomMargin='0' bgColor='FFFFFF,EFEFEF' bgRatio='40,60' bgAngle='270' showBorder='0' canvasBorderColor='c4c4c4' canvasBorderThickness='1' showPlotBorder='0' plotFillRatio='0' plotGradientColor='' numDivLines='0' canvasBgAlpha='0' chartRightMargin='20'>","{rows}","</chart>");var P=O.inComparisonMode?true:false;var R=new Ext.Template("<set label='{label}' toolText='{toolText}' value='{value}' color='"+MB.constant.chart_color+"'/>");var K=new Ext.Template("<set toolText='{toolText}' value='{value}' showValue='{showValue}' color='"+MB.constant.chart_color2+"'/>");var a=Q&&Q.topN?Math.min(Q.topN,O.getCount()):O.getCount();var M=0,N=0;var G=0,T=0;if(Q&&Q.topN&&O.getCount()>Q.topN){for(Y=Q.topN;Y<O.getCount();Y++){var S=O.getAt(Y);if(S.isFiller){G++}else{M+=S.get(H)}if(P){S=S.sibling;if(S.isFiller){T++}else{N+=S.get(H)}}}if(O.fields.get(H).otherAsAvg){M=M/(O.getCount()-Q.topN-G);if(P){N=N/(O.getCount()-Q.topN-T)}}}if(!O.fields.get(H).otherAsAvg){for(Y=0;Y<Q.topN&&Y<O.getCount();Y++){var S=O.getAt(Y);M+=S.get(H);if(P){S=S.sibling;N+=S.get(H)}}}var d=Q.display[H]&&Q.display[H].isTimeValue?Q.display[H].isTimeValue:false;if(d){var f=Math.max(M,N);for(Y=0;f<3600&&Y<a;Y++){var S=O.getAt(Y);f=Math.max(f,S.get(H));if(P){f=Math.max(f,S.sibling.get(H))}}if(f>3600){Q.display[H].displayFormat=D;Q.display[H].dataFormat=MB.util.toHours}else{Q.display[H].displayFormat=A;Q.display[H].dataFormat=MB.util.toMinutes}}var J="";for(var Y=0;Y<a;Y++){var I=O.getAt(Y);var V=I.get(H);if(Q&&Q.display&&Q.display[H]){var U=Q.display[H].dataFormat;if(U){V=U(V)}}var c=I.get(L);if(Q&&Q.display&&Q.display[L]){var U=Q.display[L].dataFormat;if(U){c=U(c)}}var b=I.get(H);if(Q&&Q.display&&Q.display[H]&&Q.display[H].renderer){b=Q.display[H].renderer(b)}var Z=I.get(L)+" "+b;if(Q&&Q.topN&&!O.fields.get(H).otherAsAvg){Z+=" ("+MB.util.formatPercentage(V/M*100)+")"}J+=R.apply({label:MB.util.htmlencode(c),toolText:MB.util.htmlencode(Z),value:V});if(P){I=I.sibling;var V=I.get(H);if(Q&&Q.display&&Q.display[H]){var U=Q.display[H].dataFormat;if(U){V=U(V)}}var b=I.get(H);if(Q&&Q.display&&Q.display[H]&&Q.display[H].renderer){b=Q.display[H].renderer(b)}var Z=c+" "+b;if(Q&&Q.topN&&!O.fields.get(H).otherAsAvg){Z+=" ("+MB.util.formatPercentage(V/N*100)+")"}J+=K.apply({toolText:MB.util.htmlencode(Z),value:V})}}if(Q&&Q.topN&&O.getCount()>Q.topN&&O.fields.get(H).otherAsAvg){var V=M;if(Q&&Q.display&&Q.display[H]){var U=Q.display[H].dataFormat;if(U){V=U(V)}}var b=M;if(Q&&Q.display&&Q.display[H]&&Q.display[H].renderer){b=Q.display[H].renderer(b)}var Z="Other "+b;J+=R.apply({label:"Other",toolText:MB.util.htmlencode(Z),value:V});if(P){V=N;if(Q&&Q.display&&Q.display[H]){var U=Q.display[H].dataFormat;if(U){V=U(V)}}var b=N;if(Q&&Q.display&&Q.display[H]&&Q.display[H].renderer){b=Q.display[H].renderer(b)}var Z="Other "+b;J+=K.apply({toolText:MB.util.htmlencode(Z),value:V})}}var X="";if(Q&&Q.display[H]&&Q.display[H].displayFormat){X=Q.display[H].displayFormat}var e=W.apply({xAxisName:(Q&&Q.xAxisName?MB.util.htmlencode(Q.xAxisName):""),yAxisName:(Q&&Q.yAxisName?MB.util.htmlencode(Q.yAxisName):""),rows:J,displayFormat:X});return e},updateLineChartXML:function(H,G){return MB.chart.getLineChartXML(B,C,H,G)},drawLine:function(J,Q,V,R,c,M,H,a,G,n,g){var K=G?G:"";var T=R.inComparisonMode?true:false;var Z=new Ext.Template("<set toolText='{toolText}' value='{y}' {intraDayStyle}/>");var W=new Ext.Template("<category label='{x}' />");var X=new Ext.Template("<dataset seriesName='{legend}' {color}>{data}</dataset>");var N="";var O="";var Y="";var S=R.getCount();var U=(R.getCount()>0&&R.getAt(0).get(J).format("Y-m-d")==MB.date.today());for(var e=S-1;e>=0;e--){if(M!=1&&e%M!=0){continue}var L=R.getAt(e);var d=L.get(J);if(V&&V.display&&V.display[J]){var b=V.display[J].dataFormat;if(b){d=b(d)}}if(c<E||e%H==0){Y+=W.apply({x:MB.util.htmlencode(d)})}else{Y+=W.apply({x:""})}if(L.isFiller){continue}var m=L.get(Q);if(V&&V.display&&V.display[Q]){var b=V.display[Q].dataFormat;if(b){m=b(m)}}var l=L.get(Q);if(V&&V.display&&V.display[Q]&&V.display[Q].renderer){l=V.display[Q].renderer(l)}var f=d+" "+l;var I="";if(U&&e==1){I="color='"+MB.constant.chart_color_intraday+"' alpha='50' dashed='1'"}else{if(U&&e==0){I="anchorBgColor='efefef' anchorBorderColor='dddddd' dashed='1'";if(V.last_processed_at){f=V.last_processed_at+" "+l}}}N+=Z.apply({toolText:MB.util.htmlencode(f),y:m||0,intraDayStyle:I})}if(T){for(var e=S-1;e>=0;e--){if(M!=1&&e%M!=0){continue}var L=R.getAt(e).sibling;if(!L){continue}var d=L.get(J);if(V&&V.display&&V.display[J]){var b=V.display[J].dataFormat;if(b){d=b(d)}}if(L.isFiller){continue}var m=L.get(Q);if(V&&V.display&&V.display[Q]){var b=V.display[Q].dataFormat;if(b){m=b(m)}}var l=L.get(Q);if(V&&V.display&&V.display[Q]&&V.display[Q].renderer){l=V.display[Q].renderer(l)}var f=d+" "+l;O+=Z.apply({toolText:MB.util.htmlencode(f),y:m})}}var P=n?"color='"+n+"'":"";var o=g?"color='"+g+"'":"";return{category:Y,row1:X.apply({legend:MB.util.htmlencode(K),color:P,data:N}),row2:X.apply({legend:"",color:o,data:O})}},getLineChartXML:function(J,N,S,P){B=J;C=N;var c=new Ext.Template("<chart xAxisName='{xAxisName}' yAxisName='{yAxisName}' labelStep='{labelStep}' numVisiblePlot='{visiblePlot}' bgColor='FFFFFF,EFEFEF' bgRatio='40,60' bgAngle='270' showBorder='0' canvasBorderColor='c4c4c4' canvasBorderThickness='1' showPlotBorder='0' plotFillRatio='0'  numDivLines='1' divLineColor='ffffff' canvasBgAlpha='0' chartTopMargin='20' chartBottomMargin='5' chartRightMargin='20' {anchorStyle} lineThickness='5' numVDivLines='{divider}' vDivLineColor='999999' vDivLineIsDashed='1' vDivLineDashLen='2' vDivLineDashGap='2' showValues='0' showLegend='1' {displayFormat} setAdaptiveYMin='1' lineDashed='0' lineDashLen='10' lineDashGap='8' canvasPadding='40'>","<categories>{categories}</categories>","{line1}","{line2}","</chart>");var R=P.inComparisonMode?true:false;var g=S.display&&S.display[N]&&S.display[N].isTimeValue?S.display[N].isTimeValue:false;if(g){var m=0;for(e=0;m<3600&&e<P.getCount();e++){var X=P.getAt(e);m=Math.max(m,X.get(N));if(R){m=Math.max(m,X.sibling.get(N))}}if(m>3600){S.display[N].displayFormat=D;S.display[N].dataFormat=MB.util.toHours}else{S.display[N].displayFormat=A;S.display[N].dataFormat=MB.util.toMinutes}}var Q=P.getCount();if(S.multiline){var G=P.collect(S.multilineDifferentiator);Q/=G.length}var b=S&&S.visiblePlot?S.visiblePlot:F;var V;if(b==7&&Q==7){V=1}else{if(b==7&&Q>7){V=7}else{if(b==30&&Q==30){V=7}else{if(b==30&&Q>30){V=30}else{if(b>365){V=365}else{V=30}}}}}var M=1;if(b>F&&Q>=b){var U=true;var Z=MB.zoomer.getZoomDays();for(var e=0,f=Z.length;e<f;e++){if(Z[e].day==b){U=false;break}}M=U?Math.ceil(b/F):Math.floor(b/F);b=F}var Y=Math.ceil(Q/V)+1;if(Y<3){Y=0}var I=S&&S.labelStep?S.labelStep:Math.ceil(b/E*M);var W="";var a="";var O="";var L="anchorRadius='5' anchorBorderColor='666666'";if(S.multiline){if(!R){L="anchorRadius='3' anchorBorderColor='666666'"}var G=S.multilineFilter?S.multilineFilter:P.collect(S.multilineDifferentiator);for(var e=0;e<G.length;e++){P.filterBy(function(o){return o.get(S.multilineDifferentiator)===G[e]});var n=S.display&&S.display[N]&&S.display[N].legendSuffix?S.display[N].legendSuffix:null;var K=n!=null&&P.getCount()>0?P.getAt(0).get(n):null;var H=K?G[e]+"("+K+")":G[e];var T=R?MB.chart.drawLine(J,N,S,P,b,M,I,Y,H,MB.constant.chart_color,MB.constant.chart_color2):MB.chart.drawLine(J,N,S,P,b,M,I,Y,H);W=T.category;a+=T.row1;O+=T.row2}P.clearFilter(true)}else{var T=MB.chart.drawLine(J,N,S,P,b,M,I,Y,"",MB.constant.chart_color,MB.constant.chart_color2);W=T.category;a=T.row1;O=T.row2}var d="";if(S&&S.display&&S.display[N]){d=S.display[N].displayFormat}var l=c.apply({chartTitle:MB.util.htmlencode(S.chartTitle)||"",labelStep:S.labelStep||1,xAxisName:MB.util.htmlencode(S.xAxisName)||"",yAxisName:MB.util.htmlencode(S.yAxisName)||"",visiblePlot:b,anchorStyle:L,divider:Y,line1:a,line2:O,categories:W,displayFormat:d});return l},getPieChartXML:function(H,R,O,U){var N=new Ext.Template("<chart caption='{caption}' {displayFormat} showNames='1' showPercentageValues='1' showValues='{showValue}' bgColor='FFFFFF' pieBorderAlpha='100'>{slices}</chart>");var L=new Ext.Template("<set value='{value}' name='{labelText}' toolText='{toolText}' {attrs} />");var M="";for(i=0,len=U.getCount();i<len;i++){var K=U.getAt(i);var I=K.get(H);if(O&&O.display&&O.display[H]){var Q=O.display[H].dataFormat;if(Q){I=Q(I)}}var S=K.get(R);if(O&&O.display&&O.display[R]){var Q=O.display[R].dataFormat;if(Q){S=Q(S)}}var J=O&&O.renderer&&O.renderer[H]?O.renderer[H](I):I;var G=S+" "+J;var V="";V+=O&&O.colors&&O.colors[S]?"color='"+O.colors[S]+"'":"";V+=O&&O.links&&O.links[S]?" link='"+O.links[S]+"'":"";M+=L.apply({labelText:MB.util.htmlencode(S),value:I||0,attrs:V,toolText:MB.util.htmlencode(G)})}var P="";if(O&&O.display&&O.display[R]){P=O.display[R].displayFormat}var T=N.apply({showValue:O&&O.display&&O.display[H]&&typeof (O.display[H].showValue)!="undefined"?O.display[H].showValue:"1",slices:M,displayFormat:P,caption:MB.util.htmlencode(O.chartTitle)||""});return T},encodeXML:function(G){if(typeof (G)=="string"){G=G.replace(/%/g,"%25");G=G.replace(/&/g,"%26");G=G.replace(/</g,"%3C");G=G.replace(/>/g,"%3E");G=G.replace(/'/g,"%27");G=G.replace(/\+/g,"%2b");G=G.replace(/\"/g,"%22")}return G}}}();MB.data=function(){return{create:function(C,A,B){return new Ext.data.JsonStore({data:C,root:"rows",fields:A,sortInfo:B})},prepareComparisonData:function(H,E,O,N,D,P,F,Q,L,M){var K=typeof (L)!="undefined"?L:0;var I=typeof (M)!="undefined"?M:true;if(H[K].type=="string"||H[K].type=="int"){O.sort(H[K].name,"ASC");N.sort(H[K].name,"ASC");this.addMissingRecords(K,H,E,O,N,I)}else{if(H[K].type=="date"){O.sort(E.field,E.direction);N.sort(E.field,E.direction);var C=O.getCount();var B=N.getCount();if(B>C){this.addMissingDates(O,K,H,D,D.add(Date.DAY,B-1));O.sort(E.field,E.direction)}else{if(C>B){this.addMissingDates(N,K,H,F,F.add(Date.DAY,C-1));N.sort(E.field,E.direction)}}for(var G=0,J=O.getCount();I&&G<J;G++){record=O.getAt(G);var A=N.getAt(G);record.sibling=A;A.compare=true}}}O.inComparisonMode=true},addMissingDates:function(J,H,E,C,L){var I=[];var K=MB.date.getElapsedDays(C,L);if(J.getCount()<K){var F,D;for(D=0,F=0;F<J.getCount()&&D<K;D++){var B=L.add(Date.DAY,-1*D);var A=J.getAt(F).get(E[H].name);if(B.getTime()==A.getTime()){F++}else{if(B.getTime()>A.getTime()){var G=MB.date.getElapsedDays(B,A)-1;for(k=0;k<G;k++){J.add(this.newRecord(B.add(Date.DAY,-1*k),E,0,H))}D+=G}}}if(D<K&&F==J.getCount()){var G=K-D;for(k=0;k<G;k++){J.add(this.newRecord(C.add(Date.DAY,D+k),E,0,H))}}}},addMissingRecords:function(L,I,G,P,N,J){var B=[],E=[];var H=0,F=0;var O=I[L].name;while(true){if(H==P.getCount()){for(F=F;F<N.getCount();F++){var D=N.getAt(F);var K=D.get(O);var M=this.newRecord(K,I,0,L);if(J){M.sibling=D;D.compare=true}B.push(M)}break}if(F==N.getCount()){for(H=H;H<P.getCount();H++){var A=P.getAt(H);var C=A.get(O);var M=this.newRecord(C,I,1,L);if(J){A.sibling=M;M.compare=true}E.push(M)}break}var A=P.getAt(H);var D=N.getAt(F);var C=A.get(O);var K=D.get(O);if(C<K){var M=this.newRecord(C,I,1,L);E.push(M);if(J){A.sibling=M;M.compare=true}H++}else{if(C>K){var M=this.newRecord(K,I,0,L);B.push(M);if(J){M.sibling=D;D.compare=true}F++}else{if(J){A.sibling=D;D.compare=true}H++;F++}}}P.add(B);N.add(E);if(G){P.sort(G.field,G.direction)}},convertToRange:function(B,E){for(i=0,len=B.getCount();i<len;i++){var A=B.getAt(i);var D=A.get(E);if(i+1<len){var C=parseInt(B.getAt(i+1).get(E))-1;if(D<C){A.set(E,MB.util.formatInt(D)+" - "+MB.util.formatInt(C))}}else{A.set(E,MB.util.formatInt(D)+"+")}}},newRecord:function(B,F,C,A){var E=[];E[F[A].name]=B;for(j=0;j<F.length;j++){if(j==A){continue}if(F[j].defaultValue&&F[j].defaultValue[C]){E[F[j].name]=F[j].defaultValue[C]}else{switch(F[j].type){case"int":E[F[j].name]=0;break;case"float":E[F[j].name]="0.0";break;case"string":E[F[j].name]="";break;case"date":E[F[j].name]=new Date();break}}}var D=new Ext.data.Record(E);D.isFiller=true;return D}}}();MB.date=function(){return{today:function(){var B=new Date();var C=B.getUTCMonth()+1;var A=B.getUTCDate();B=B.getUTCFullYear()+"-"+(C<10?"0"+C:C)+"-"+(A<10?"0"+A:A);return B},getElapsedDays:function(B,A){var C=new Date();C.setTime(Math.abs(A.getTime()-B.getTime()));return days=Math.ceil(C.getTime()/(1000*60*60*24))+1},maxDate:function(C,B){var D=C||"";var A=B||"";return D>=A?D:A}}}();MB.date_range=function(){var G=false;var J=null;var B=null;var N=null;var C=null;var P=null;var H=null;var L=null;var K=null;var E=null;var F=new Date();var A=null;var I=null;var O=null;var M=null;var D=function(b,W,T){var Z=new Date();var e=Z.getTime()+(Z.getTimezoneOffset()*60000);if(!T){e-=24*60*60*1000}Z=new Date(e);var U=Z.format("Y-m-d");var S=Date.parseDate(W,"Y-m-d");var Q=(Z.add(Date.DAY,-6)>S)?Z.add(Date.DAY,-6):S;var X=(Z.add(Date.DAY,-29)>S)?Z.add(Date.DAY,-29):S;var V=(Z.add(Date.DAY,-89)>S)?Z.add(Date.DAY,-89):S;A=[{id:"previous_week",name:"Last 7 Days",s:Q.format("Y-m-d"),e:U},{id:"previous_month",name:"Last 30 Days",s:X.format("Y-m-d"),e:U},{id:"previous_3",name:"Last 90 Days",s:V.format("Y-m-d"),e:U}];if(!b){var g=(Z.add(Date.DAY,-13)>S)?Z.add(Date.DAY,-13):S;var a=(Z.add(Date.DAY,-7)>S)?Z.add(Date.DAY,-7):S;var R=(Z.add(Date.DAY,-59)>S)?Z.add(Date.DAY,-59):S;var c=(Z.add(Date.DAY,-30)>S)?Z.add(Date.DAY,-30):S;var f=(Z.add(Date.DAY,-179)>S)?Z.add(Date.DAY,-179):S;var Y=(Z.add(Date.DAY,-90)>S)?Z.add(Date.DAY,-90):S;A.push({id:"w_over_w",name:"Previous Week Over Week",s:Q.format("Y-m-d"),e:U,s2:g.format("Y-m-d"),e2:a.format("Y-m-d")},{id:"m_over_m",name:"Previous Month Over Month",s:X.format("Y-m-d"),e:U,s2:R.format("Y-m-d"),e2:c.format("Y-m-d")},{id:"3m_over_3m",name:"Previous 3 Months Over 3 Months",s:V.format("Y-m-d"),e:U,s2:f.format("Y-m-d"),e2:Y.format("Y-m-d")})}A.push({id:"custom",name:"Custom Range"})};return{getValues:function(){var T=J.getValue();if(T==="custom"){var S={date_start1:B.getValue().format("Y-m-d"),date_end1:N.getValue().format("Y-m-d")};if(H&&H.getValue()){S.date_start2=C.getValue().format("Y-m-d");S.date_end2=P.getValue().format("Y-m-d")}else{S.date_start2=S.date_end2=""}S.date_selection="custom";return S}else{var R=I.find("id",T);var Q=I.getAt(R).data;return{date_start1:Q.s,date_end1:Q.e,date_start2:Q.s2,date_end2:Q.e2,date_selection:Q.id}}},create:function(U,R){D(R.disable_compare,R.date_site_created,R.is_today_included);M=Date.parseDate(R.date_site_created,"Y-m-d");var Q=R.endDateLimit?R.endDateLimit:new Date();I=new Ext.data.JsonStore({fields:["id","name","s","e","s2","e2"],data:A});var T=R.date_selection;if(R.disable_compare&&T){if(T=="w_over_w"){T="previous_week"}else{if(T=="m_over_m"){T="previous_month"}else{if(T=="3m_over_3m"){T="previous_3"}}}}J=new Ext.form.ComboBox({editable:false,store:I,displayField:"name",valueField:"id",mode:"local",triggerAction:"all",selectOnFocus:true,width:335,forceSelection:true,value:T||"previous_month",listeners:{beforeselect:function(W,a,Y){var c=W.getValue();if(a.data.id=="custom"){var Z=W.getBox();var V=Ext.get("custom_dates").show().setStyle({position:"absolute"});if(G===false){G=true;this.create_custom("custom_dates",R);V.createShim()}V.alignTo(W.getEl(),"tl");J.hide();J.collapse();O.hide();if(c&&c!="custom"){var X=I.find("id",c);if(X!=-1){var b=I.getAt(X).data;B.setValue(b.s);N.setValue(b.e);if(H){if(b.s2){H.setValue(true);C.enable().setValue(b.s2);P.enable().setValue(b.e2)}else{H.setValue(false);C.disable();P.disable()}}}}return false}else{return true}},scope:this}});O=new Ext.Button({text:"Update",enableToggle:true,handler:function(Y,Z){if(Y.pressed){var W=document.location.href;var a=/\?(.*)/.exec(document.location);if(a){W=W.substring(0,W.length-a[0].length)}a=a?Ext.urlDecode(a[1]):[];var V=MB.date_range.getValues();for(var X in V){if(typeof V[X]!="undefined"){a[X]=V[X]}}document.location=W+"?"+Ext.urlEncode(a)}}});O.render("dates_update_button");var S=new Ext.Template('<div id="date_compare"></div>','<div class="hint" style="width: 380px">Range: <b><span id="dates_text"></span></b></div>','<div id="custom_dates" style="width: 350px; display: none; background: #ccc; border: 1px #888 solid; padding: 5px">',"</div>");Ext.get(U).update(S.apply({}));J.render("date_compare");if(R.date_selection&&R.date_selection=="custom"){this.create_custom("custom_dates",R);this.updateDateTextWithCustom(false)}else{this.updateDateText(null,I.getAt(I.find("id",J.getValue())),false)}},create_custom:function(W,S){var R=S.endDateLimit?S.endDateLimit:new Date();var U=['<div style="float: left;">','<div id="custom_date_error" class="boldError"></div>','<div class="bold">Custom Range</div>',"<div>",'<div style="float: left; width: 20px">&nbsp;</div>','<div style="float: left" id="date_start_id"></div>','<div style="float: left; padding: 0 5px; font-weight: bold;"> - </div>','<div style="float: left" id="date_end_id"></div>'];if(S.disable_compare){U.push("</div>",'<div class="x-clear"></div>','<div style="float: right" id="cancel_button_id"></div>','<div style="float: right; padding-right: 5px" id="ok_button_id"></div>',"</div>")}else{U.push('<div style="float: left; padding-left: 5px;" id="ok_button_id"></div>',"</div>",'<div class="x-clear"></div>','<div id="date_series2_div">','<div class="bold" style="color: #cf5400">Compare with ... </div>',"<div>",'<div style="float: left; width: 20px;" id="date_series2_cb_id"></div>','<div style="float: left" id="date_start2_id"></div>','<div style="float: left; padding: 0 5px; font-weight: bold;"> - </div>','<div style="float: left" id="date_end2_id"></div>',"</div>","</div>",'<div style="float: left; padding-left: 5px" id="cancel_button_id"></div>',"</div>")}U.push('<div class="x-clear"></div>');Ext.get(W).update(U.join(""));var T=Date.parseDate(S.date_site_created,"Y-m-d");B=new Ext.form.DateField({width:120,value:S.date_start,name:S.start_name||"date_start",format:"Y-m-d",minValue:T,maxValue:S.date_end||R});B.render("date_start_id");var V=S.date_end?Date.parseDate(S.date_end,"Y-m-d"):null||R;N=new Ext.form.DateField({width:120,value:S.date_end||"",name:S.end_name||"date_end",format:"Y-m-d",minValue:T,maxValue:V});N.render("date_end_id");if(!S.disable_compare){C=new Ext.form.DateField({width:120,value:S.date_start2||"",name:S.start_name2||"date_start2",format:"Y-m-d",minValue:S.date_site_created,maxValue:S.date_end2||R,style:"color: #cf5400;"});C.render("date_start2_id");P=new Ext.form.DateField({width:120,value:S.date_end2||"",name:S.end_name2||"date_end2",format:"Y-m-d",minValue:S.date_site_created,maxValue:S.date_end2||R,style:"color: #cf5400;"});P.render("date_end2_id");var Q=S.date_start2&&S.date_end2?true:false;H=new Ext.form.Checkbox({name:"date_series2_cb",checked:Q,listeners:{check:function(X,Y){if(Y){C.enable();P.enable()}else{C.disable();P.disable()}},scope:this}});H.render("date_series2_cb_id");if(!Q){C.disable();P.disable()}}L=new Ext.Button({text:"OK",handler:function(){if(!this.validateCustom()){return false}Ext.get("custom_dates").hide();O.show();J.show();J.setValue("custom")},scope:this});L.render("ok_button_id");K=new Ext.Button({text:"Cancel",handler:function(){Ext.get(W).setDisplayed("none");O.show();J.show()}});K.render("cancel_button_id")},updateDateText:function(Q,T,R){if(typeof R=="undefined"){h=true}else{h=R}var U=[T.data.s," - ",T.data.e];if(T.data.s2){U.push(" <=> ",T.data.s2," - ",T.data.e2)}var S=Ext.get("dates_text").update(U.join(""));if(h){S.highlight("ffcc00",{endColor:"ffffcc"})}},updateDateTextWithCustom:function(Q){var R={s:B.getValue().format("Y-m-d"),e:N.getValue().format("Y-m-d")};if(H&&H.getValue()&&C.getValue()&&P.getValue()){R.s2=C.getValue().format("Y-m-d");R.e2=P.getValue().format("Y-m-d")}this.updateDateText(null,{data:R},Q)},validateCustom:function(){var R=true;var Q="";if(B.getValue()>N.getValue()){R=false;Q=_("Start date must be before end date.");B.markInvalid();N.markInvalid()}else{if(B.getValue()<M){R=false;Q=_("Start date must be after ")+M.format("Y-m-d");B.markInvalid()}else{if(N.getValue()<M){R=false;Q=_("End date must be after ")+M.format("Y-m-d");N.markInvalid()}else{if(H&&H.getValue()){if(C.getValue()>P.getValue()){R=false;Q=_("Start date must be before end date.");C.markInvalid();P.markInvalid()}else{if(C.getValue()>B.getValue()||P.getValue()>P.getValue()){R=false;Q=_("Comparing date range must be before primary date range.");C.markInvalid();P.markInvalid()}else{if(C.getValue()<M){R=false;Q=_("Start date must be after ")+M.format("Y-m-d");C.markInvalid()}else{if(P.getValue()<M){R=false;Q=_("End date must be after ")+M.format("Y-m-d");P.markInvalid()}}}}}}}}if(R){Ext.get("custom_date_error").setDisplayed("none")}else{Ext.get("custom_date_error").update(Q).setDisplayed("block")}return R}}}();MB.reportsMenu=function(){var A=[];return{snapBackCallbackId:null,init:function(B){var C=Ext.get(B);MB.reportsMenu.currentLevels=C.select("div[class*=active]").elements;var D=C.select("div[class*=clickable]").elements;C.on("mouseout",function(F,E){if(!F.within(Ext.get("reportsTree"),true)){if(MB.reportsMenu.snapBackCallbackId){window.clearTimeout(MB.reportsMenu.snapBackCallbackId)}MB.reportsMenu.snapBackCallbackId=MB.reportsMenu.snapBack.defer(3000,MB.reportsMenu)}});C.on("mouseover",function(F,E){if(!F.within(Ext.get("reportsTree"),true)){if(MB.reportsMenu.snapBackCallbackId){window.clearTimeout(MB.reportsMenu.snapBackCallbackId);MB.reportsMenu.snapBackCallbackId=null}}});Ext.each(D,function(E){Ext.get(E).on("click",function(G,F){G.stopEvent();MB.reportsMenu.toggleLevel(F);return false})})},snapBack:function(){Ext.each(this.currentLevels,function(D,B,C){this.toggleLevel(D,true)},this)},toggleLevel:function(D,B){if(!D){return }var C=Ext.get(D);var G=D.id.match(/^[1|2]/);if(!G){return }var E=Ext.get("reportsTree").select("div[class*=sub"+G[0]+"]").elements;var F=C.next();Ext.each(E,function(J,H,I){if(J.id&&F&&J.id!=F.id){var K=Ext.get(J);if(K.prev()&&K.prev().hasClass("item1")){K.prev().removeClass("clicked")}if(K.hasClass("shown")){K.removeClass("shown");K.slideOut(null,{useDisplay:true,easing:"easeOutStrong"})}}});if(F&&F.dom.className.match(/sub\d/)!=null&&!F.hasActiveFx()){if(!F.hasClass("shown")){if(C.hasClass("item1")){C.addClass("clicked")}F.addClass("sliding");F.slideIn(null,{useDisplay:true,afterCls:"shown",easing:"easeOutStrong"})}else{if(!B&&F.prev().id==D.id){C.removeClass("clicked");F.removeClass("shown");F.slideOut(null,{useDisplay:true,easing:"easeOutStrong"})}}}}}}();MB.zoomer=function(){this.segments=[{day:7,label:"7d"},{day:30,label:"1m"},{day:90,label:"3m"},{day:180,label:"6m"},{day:365,label:"1y"},{day:730,label:"2y"},{day:1825,label:"5y"}];return{create:function(H,K,D,A,M){if(K<=7){return }var I=new Ext.Template("{divider} <a class='{style}' id='zoomer_{day}d' href='#'>{label}</a>");var J="";var G=0;var E=false;for(len=segments.length;G<len&&segments[G]["day"]<=K;G++){var L=(G==0)?"":" | ";var C="";if(G+1<len&&segments[G+1]["day"]>K&&segments[G]["day"]==K){E=true;C="zoomCurrent"}else{C="zoom"}J+=I.apply({divider:L,style:C,day:segments[G]["day"],label:MB.util.htmlencode(segments[G]["label"])})}if(G>0){G-=1}if((G<segments.length&&K>segments[G]["day"])||K>1825){J+=I.apply({divider:" | ",style:(!E?"zoomCurrent":"zoom"),day:K,label:"max"})}if(J.length==0){return }var F=Ext.get(H);F.update("Zoomer: "+J);var B=F.select("a").each(function(P,N,O){P.on("click",function(U,R){U.stopEvent();if(Ext.get(R).hasClass("zoomCurrent")){return }var S=F.child("a[class*=zoomCurrent]");S.removeClass("zoomCurrent");S.addClass("zoom");var T=Ext.get(R);T.removeClass("zoom");T.addClass("zoomCurrent");D.visiblePlot=R.id.match(/zoomer_(.*)d/)[1];var Q=MB.chart.updateLineChartXML(D,M);A.setDataXML(Q);return false})})},getZoomDays:function(){return segments}}}();MB.InPlaceEdit=function(){var A;return{makeEditable:function(H,C){this.conf=C;var G=Ext.get(H);for(var D=0,B=this.conf.columns.length;D<B;D++){var E=this.conf.columns[D];var I=E.id;var F=G.select("td[id$=-"+I+"]").elements;Ext.each(F,function(L){var K=Ext.get(L);var N=K.parent("tr");if(N.hasClass("noedit")){return }var M=L.innerHTML;if(E.type=="text"){var J="<div class='editable'>"+M+"</div>";K.update(J)}K.addClass("edit")},this)}G.on({click:function(J,M,N){var K=Ext.get(M);var L=K.parent("td");if(!L||!L.hasClass("edit")||L.hasClass("editing")){return }this.onClick(J,M,N)},mouseover:this.onMouseOver,mouseout:this.onMouseOut,scope:this})},onClick:function(B,G,H){this.clearError();var D=Ext.get(G);var F=D.parent("tr");if(F.hasClass("noedit")){return }F=D.parent("td");var C=F.id.split("-");var E=this.getColumnConfig(C[1]);if(E.type=="checkbox"){this.saveCheckboxValue(D,E,C[0],C[1],D.dom.checked)}else{this.renderEditableText(B,G,H)}},saveCheckboxValue:function(B,C,G,E,D){var F=C.params;F.ids=G;F.field=E;F.value=D?1:0;F.type=C.dataType;Ext.Ajax.request({url:C.url,success:function(H,I){var J=Ext.decode(H.responseText);if(J.success&&J.redirect){document.location=J.redirect}else{if(J.errorText){this.onError(J.errorText)}else{if(C.onChange){C.onChange()}B.parent("td").highlight("FBB117")}}},failure:function(H,I){this.onError("Error: cannot contact the server now. Please try again later.")},params:F})},renderEditableText:function(J,D,C){var F=Ext.get(D);var I=F.parent("td");I.addClass("editing");var B=I.id+"_edit";var H=D.innerHTML;F.insertSibling([{id:B+"_editor",tag:"div",children:[{id:B+"_field",tag:"input",value:H},{tag:"br"},{id:B+"_saveBtn",tag:"div",style:"float: left; padding: 5px 5px"},{id:B+"_cancelBtn",tag:"div",style:"float: left; padding: 5px 5px"}]}],"before",false);F.hide();var G=new Ext.Button({text:"Save",handler:this.onSave,scope:this});G.render(B+"_saveBtn");var E=new Ext.Button({text:"Cancel",handler:this.onCancel,scope:this});E.render(B+"_cancelBtn")},onMouseOver:function(B,D,F){var C=Ext.get(D);var E=C.parent("tr");if(!E.hasClass("noedit")&&C.hasClass("editable")){C.toggleClass("editable_mouseover")}},onMouseOut:function(B,D,F){var C=Ext.get(D);var E=C.parent("tr");if(!E.hasClass("noedit")&&C.hasClass("editable")){C.toggleClass("editable_mouseover")}},onSave:function(J){var C=J.container;var E=C.parent("td[class*=edit]");E.removeClass("editing");var G=E.first();var I=G.select("input").first();var B=I.getValue();G.remove();var L=E.last();var H=L.dom.innerHTML;var K=E.id.split("-");var D=this.getColumnConfig(K[1]);if(error=D.validate(B)){this.onError(error)}else{if(B!=H){var F=D.params;F.ids=K[0];F.field=K[1];F.value=B;F.type=D.dataType;Ext.Ajax.request({url:D.url,success:function(M,O){var N=Ext.decode(M.responseText);if(N.success&&N.redirect){document.location=N.redirect}else{if(N.errorText){this.onError(N.errorText)}else{L.removeClass("editable_mouseover");L.update(B).parent("td").highlight("FBB117")}}},failure:function(M,N){this.onError("Error: cannot contact the server now. Please try again later.")},params:F})}}L.show()},onCancel:function(B){var C=B.container;var D=C.parent("td[class*=edit]");D.removeClass("editing");D.first().remove();D.last().show()},getColumnConfig:function(D){for(var C=0,B=this.conf.columns.length;C<B;C++){var E=this.conf.columns[C].id;if(D==E){return this.conf.columns[C]}}return null},onError:function(D){if(!this.conf.errorBox){return }var B=Ext.get(this.conf.errorBox+"_error_span");if(!B){var C=Ext.get(Ext.get(this.conf.errorBox).select("div[class=mm]").elements[0]);B=Ext.get(Ext.DomHelper.insertAfter(C.first(),{tag:"span",style:"font-size: 10px",html:"error",id:this.conf.errorBox+"_error_span"}))}B.update(D);Ext.get(this.conf.errorBox).slideIn(null,{useDisplay:true})},clearError:function(){if(this.conf.errorBox&&Ext.get(this.conf.errorBox).isDisplayed()){Ext.get(this.conf.errorBox).slideOut(null,{useDisplay:true})}}}}();MB.onReadyStack=[];MB.onReady=function(B,A,C){MB.onReadyStack.push([B,A,C])};MB.constant.chart_color="968470";MB.constant.chart_color2="cf5400";MB.constant.chart_color_intraday="948b78";