Ext.apply(Ext.form.VTypes,{daterange:function(D,C){var B=C.parseDate(D);if(!B){return }if(C.startDateField&&(!this.dateRangeMax||(B.getTime()!=this.dateRangeMax.getTime()))){var E=Ext.getCmp(C.startDateField);E.setMaxValue(B);this.dateRangeMax=B}if(C.endDateField&&(!this.dateRangeMin||(B.getTime()!=this.dateRangeMin.getTime()))){var A=Ext.getCmp(C.endDateField);A.setMinValue(B);this.dateRangeMin=B}return true}});DJAverages.Report.Base.config={messages:{premiumFeature:'<p>This report is available as part of the <a href="/?view=subscription&page=packages"><b>Premium Data Package</b></a>.</p>',unavailable:"<p>This report is not available for the selected index.</p>"}};DJAverages.Report.Base.Container=Ext.extend(Ext.Panel,{initComponent:function(){var A={layout:"border",frame:true};Ext.applyIf(this,A);DJAverages.Report.Base.Container.superclass.initComponent.call(this)}});Ext.reg("djaws-report-container",DJAverages.Report.Base.Container);DJAverages.Report.Base.ResultGrid=Ext.extend(Ext.grid.GridPanel,{initComponent:function(){var C=[{header:"Col 1",sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Col 2",sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Col 3",sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Col 4",sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Col 5",sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Col 6",sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Col 7",sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Col 8",sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Col 9",sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Col 10",sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"}];var B=new Ext.data.SimpleStore({fields:["field1","field2","field3","field4","field5","field6","field7","field8","field9","field10"],data:[[1,2,3,4,5,6,7,8,9,10],[10,20,30,40,50,60,70,80,90,100],[100,200,300,400,500,600,700,800,900,1000],[1000,2000,3000,4000,5000,6000,7000,8000,9000,10000]]});var A={title:"Your Report",stripeRows:true,frame:true,viewConfig:{forceFit:false,autoFill:false},columns:C,store:B};Ext.applyIf(this,A);DJAverages.Report.Base.ResultGrid.superclass.initComponent.call(this)}});Ext.reg("djaws-result-grid",DJAverages.Report.Base.ResultGrid);DJAverages.Report.Base.DateField=Ext.extend(Ext.form.DateField,{initComponent:function(){var A={vtype:"daterange",format:"d-M-Y"};Ext.applyIf(this,A);DJAverages.Report.Base.DateField.superclass.initComponent.call(this)}});Ext.reg("djaws-datefield",DJAverages.Report.Base.DateField);DJAverages.Report.Performance=Ext.extend(DJAverages.Report.Base.Container,{initComponent:function(){var d={container:"performance-report",form:{url:"/",method:"POST",baseParams:{view:"performance-report",ticker:DJAverages.Utils.getQueryParams("symbol"),format:"json",limit:30},dates:[],selectedDates:{minDates:[],maxDates:[]},selectedDatasets:[]},indexPriceHistoryNotice:{date:"04-Oct-1916",message:{type:"info",message:"On October 4, 1916, a 20 stock Dow was officially introduced replacing the 12 stock Dow. The 20 stock Dow was back-calculated to December 14, 1914. To maintain consistency when the 20 stock Dow was launched in October 1916, the back-calculated values were incorporated into the history."}},labels:{c:{DJI:"May 26, 1896",DJT:"Oct. 26, 1896",DJU:"Jan. 2, 1929",DJC:"Jan. 2, 1934"},o:{DJI:"Oct. 1, 1928",DJT:"Oct. 1, 1928",DJU:"Jan. 2, 1930",DJC:"Jan. 8, 1999"},tr:{DJI:"Sep. 30, 1987",DJT:"Sep. 30, 1987",DJU:"Sep. 30, 1987",DJC:"Sep. 30, 1987"},to:{DJI:"Jul. 20, 1995",DJT:"Jul. 20, 1995",DJU:"Jul. 20, 1995",DJC:"Dec. 31, 1998"},v:{DJI:"Oct. 1, 1997",DJT:"Oct. 1, 1997",DJU:"Oct. 1, 1997",DJC:"Oct. 1, 1997"}},messages:{title:"Performance",missing:{startDate:"Please select a valid start date",endDate:"Please select a valid end date"},invalid:{form:{type:"error",message:"Please complete the information requested in the highlighted fields."},dates:{type:"error",message:"Unable to proceed, please notify the administrator report dates failed to load."}},submission:{success:{},failure:{type:"error",message:"An error occurred while submitting your request, please try again."}}},grid:{dataModel:{level1:new Ext.data.Record.create([{name:"td",type:"date"},{name:"c",type:"float"},{name:"nc",type:"float"},{name:"o",type:"float"},{name:"h",type:"float"},{name:"l",type:"float"}]),level2:new Ext.data.Record.create([{name:"td",type:"date"},{name:"c",type:"float"},{name:"nc",type:"float"},{name:"tr",type:"float"},{name:"o",type:"float"},{name:"h",type:"float"},{name:"l",type:"float"},{name:"to",type:"float"},{name:"th",type:"float"},{name:"tl",type:"float"},{name:"v",type:"float"}])},columnModel:{level1:new Ext.grid.ColumnModel([{header:"Date",sortable:true,dataIndex:"td",renderer:DJAverages.Utils.date},{hidden:true,header:"Close",sortable:true,dataIndex:"c",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"Net Change",sortable:true,dataIndex:"nc",renderer:DJAverages.Utils.changeFormat,align:"right"},{hidden:true,header:"Open",sortable:true,dataIndex:"o",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"High",sortable:true,dataIndex:"h",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"Low",sortable:true,dataIndex:"l",renderer:DJAverages.Utils.decimalFormat,align:"right"}]),level2:new Ext.grid.ColumnModel([{header:"Date",sortable:true,dataIndex:"td",renderer:DJAverages.Utils.date},{hidden:true,header:"Close",sortable:true,dataIndex:"c",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"Net Change",sortable:true,dataIndex:"nc",renderer:DJAverages.Utils.changeFormat,align:"right"},{hidden:true,header:"Total Return",sortable:true,dataIndex:"tr",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"Open",sortable:true,dataIndex:"o",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"High",sortable:true,dataIndex:"h",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"Low",sortable:true,dataIndex:"l",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"Th. Open",sortable:true,dataIndex:"to",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"Th. High",sortable:true,dataIndex:"th",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"Th. Low",sortable:true,dataIndex:"tl",renderer:DJAverages.Utils.decimalFormat,align:"right"},{hidden:true,header:"Volume",sortable:true,dataIndex:"v",align:"right"}])}}};function X(){b()}function b(){Ext.Ajax.request({url:d.form.url,params:{view:d.container+"-dates",ticker:d.form.baseParams.ticker},success:function(f){try{var h=Ext.decode(f.responseText);Ext.applyIf(d.form.dates,h.data)}catch(g){}},failure:function(){DJAverages.Utils.alert(d.messages.invalid.dates)}})}function a(g){var f=d.labels[g][d.form.baseParams.ticker];return f}function e(h,f){var g=(f)?"add":"remove";var i=L(h.name);S(g,i);D();U(g,h.name)}function U(g,h){var f=d.form.selectedDatasets;switch(g){case"add":f.push(h);if(h==="o"){f.push("h");f.push("l")}if(h==="to"){f.push("th");f.push("tl")}break;case"remove":f.remove(c(f,h));if(h==="o"){f.remove(c(f,"h"));f.remove(c(f,"l"))}if(h==="to"){f.remove(c(f,"th"));f.remove(c(f,"tl"))}break}Y();H()}function Y(){var f=d.form.selectedDatasets;if(f.length){Ext.getCmp("submitBtn").enable();Ext.getCmp("resetBtn").enable()}else{Ext.getCmp("submitBtn").disable();Ext.getCmp("resetBtn").disable()}}function H(){G();var h=d.form.selectedDatasets;for(var g=0;g<h.length;g++){var f=O.findColumnIndex(h[g]);O.setHidden(f,false)}}function G(){var g=O.getColumnCount();for(var f=1;f<g;f++){O.setHidden(f,true)}}function L(g){var h=d.form.dates;for(var f=0;f<h.length;f++){if(h[f]["dataset"]===g){return h[f]}}return false}function S(h,i){var g=d.form.selectedDates.minDates;var f=d.form.selectedDates.maxDates;switch(h){case"add":g.push(i.mindate);f.push(i.maxdate);break;case"remove":if(c(g,i.mindate)>=0){g.remove(c(g,i.mindate))}if(c(f,i.maxdate)>=0){f.remove(c(f,i.maxdate))}break}}function c(f,g){for(var h=0;h<f.length;h++){if(f[h]===g){return h}}return -1}function D(){var h=[],f=[],i,j;var k=Ext.getCmp(d.container+"-startDate");var g=Ext.getCmp(d.container+"-endDate");if(h,d.form.selectedDates.minDates.length){Ext.apply(h,d.form.selectedDates.minDates);Ext.apply(f,d.form.selectedDates.maxDates);h.sort(Z);f.sort(Z);i=h[0];j=f[0];k.enable();g.enable()}else{k.disable();g.disable()}k.minValue=new Date(i);k.maxValue=new Date(j);g.minValue=new Date(i);g.maxValue=new Date(j)}var T=/^(\d{2})[\/\- ](\d{2})[\/\- ](\d{4})/;function R(g,f){g=g.replace(T,"$3$2$1");f=f.replace(T,"$3$2$1");if(g>f){return 1}if(g<f){return -1}return 0}function P(g,f){g=g.replace(T,"$3$2$1");f=f.replace(T,"$3$2$1");if(g>f){return -1}if(g<f){return 1}return 0}function Z(g,f){g=g.replace(T,"$3$1$2");f=f.replace(T,"$3$1$2");if(g>f){return 1}if(g<f){return -1}return 0}function W(g,f){g=g.replace(T,"$3$1$2");f=f.replace(T,"$3$1$2");if(g>f){return -1}if(g<f){return 1}return 0}function K(f,g){if(V().isValid()){J(V().getValues());var h={};Ext.apply(h,d.form.baseParams);Ext.apply(h,V().getValues());N.baseParams=h;N.load({callback:F,params:{start:0}})}else{DJAverages.Utils.alert(d.messages.invalid.form)}}function J(h){if(h.c){var g="d-M-Y";var f={check:new Date.parseDate(d.indexPriceHistoryNotice.date,g),start:new Date.parseDate(h.df,g),end:new Date.parseDate(h.dt,g)};if(f.check.between(f.start,f.end)){DJAverages.Utils.alert(d.indexPriceHistoryNotice.message)}}}function F(g,f,h){if(!h){DJAverages.Utils.alert(d.messages.submission.failure)}}function I(){var f=C();if(f){M.src="/?"+f}}function C(){var f=[];if(N.data.length){var g=new Ext.util.MixedCollection();g.addAll(N.lastOptions.params);g.eachKey(function(i,k,h,j){k=(i==="format")?"export":k;f[f.length]=i+"="+k})}return f.join("&")}function E(f,g){V().reset();N.removeAll()}function V(){return Ext.getCmp(d.container+"-criteria-form").getForm()}var B="level"+window.accessLevel;var A=new Ext.data.JsonReader({totalProperty:"totalRows",root:"data"},d.grid.dataModel[B]);var O=d.grid.columnModel[B];var N=new Ext.data.Store({url:d.form.url,baseParams:d.form.baseParams,reader:A,autoLoad:false});var M=DJAverages.Utils.createDownloadWin();var Q={title:d.messages.title,renderTo:d.container,items:[{region:"west",xtype:"form",title:"Criteria",id:d.container+"-criteria-form",collapsible:true,titleCollapse:true,autoScroll:true,width:250,margins:"0 5 0 0",bodyStyle:"padding: .25em;",buttonAlign:"right",labelWidth:70,keys:{key:[10,13],fn:K},defaults:{bodyStyle:"padding: .25em;"},items:[{xtype:"fieldset",title:"Basic Datasets",autoHeight:true,defaultType:"checkbox",defaults:{hideLabel:true,allowBlank:false,listeners:{check:e}},items:[{id:d.container+"-c",name:"c",boxLabel:'Index Price History<div class="availability">From '+a("c")+"</div>",inputValue:"true"},{id:d.container+"-o",name:"o",boxLabel:'Index Open/High/Low<div class="availability">From '+a("o")+"</div>",inputValue:"true"}]},{xtype:"fieldset",title:"Premium Datasets",autoHeight:true,defaultType:"checkbox",defaults:{hideLabel:true,allowBlank:false,listeners:{check:e}},items:[{id:d.container+"-tr",name:"tr",boxLabel:'Daily Total Return<div class="availability">From '+a("tr")+"</div>",inputValue:"true",disabled:(window.accessLevel==1)?true:false},{id:d.container+"-to",name:"to",boxLabel:'Index Theoretical Open/High/Low<div class="availability">From '+a("to")+"</div>",inputValue:"true",disabled:(window.accessLevel==1)?true:false},{id:d.container+"-v",name:"v",boxLabel:'Volume<div class="availability">From '+a("v")+"</div>",inputValue:"true",disabled:(window.accessLevel==1)?true:false}]},{xtype:"fieldset",title:"Date Range",autoHeight:true,defaultType:"djaws-datefield",defaults:{vtype:"daterange",autoWidth:true,allowBlank:false,format:"d-M-Y",disabled:true,disabledDays:[0,6],disabledDaysText:"Weekends cannot be selected"},items:[{fieldLabel:"Start Date",name:"df",id:d.container+"-startDate",endDateField:d.container+"-endDate",blankText:d.messages.missing.startDate,invalidText:d.messages.missing.startDate,tabIndex:2},{fieldLabel:"End Date",name:"dt",id:d.container+"-endDate",startDateField:d.container+"-startDate",blankText:d.messages.missing.endDate,invalidText:d.messages.missing.endDate,tabIndex:3}]},{xtype:"fieldset",title:"Frequency",autoHeight:true,defaultType:"radio",defaults:{hideLabel:true,allowBlank:false},items:[{boxLabel:"Daily",name:"f",inputValue:"d",checked:true},{boxLabel:"Month End",name:"f",inputValue:"m"},{boxLabel:"Quarter End",name:"f",inputValue:"q"},{boxLabel:"Annually",name:"f",inputValue:"a"}]}],buttons:[{minWidth:130,text:"Run Report",id:"submitBtn",type:"submit",scope:this,handler:K,disabled:true},{text:"Reset",id:"resetBtn",type:"reset",scope:this,handler:E,disabled:true}]},{region:"center",xtype:"djaws-result-grid",id:d.container+"-result-grid",bodyBorder:true,store:N,cm:O,loadMask:true,enableColumnHide:false,bbar:new Ext.PagingToolbar({id:d.container+"-bbar",pageSize:d.form.baseParams.limit,store:N,autoHeight:true,autoWidth:true,displayInfo:true,items:["-",{xtype:"button",text:"Download",cls:"x-btn-text-icon",icon:"/images/icons/silk/page_white_excel.png",scope:this,handler:I,tooltip:"Download this report in Excel format."}]})}]};Ext.applyIf(this,Q);DJAverages.Report.Performance.superclass.initComponent.call(this);X()}});Ext.reg("djaws-performance-report",DJAverages.Report.Performance);DJAverages.Report.CumulativeReturn=Ext.extend(DJAverages.Report.Base.Container,{initComponent:function(){var B={container:"cumulative-return-report",form:{url:"/",method:"POST",baseParams:{view:"cumulative-return-report",ticker:DJAverages.Utils.getQueryParams("symbol"),format:"json"},defaults:{minDate:"5/26/1896",maxDate:new Date().format("n/j/Y")}},messages:{title:"Cumulative Return",missing:{startDate:"Please select a valid start date",endDate:"Please select a valid end date"},invalid:{form:{type:"error",message:"Please complete the information requested in the highlighted fields."}},submission:{success:{},failure:{type:"error",message:"An error occurred while submitting your request, please try again."}}},grid:{dataModel:new Ext.data.Record.create([{name:"begindate",type:"date"},{name:"beginindexvalue",type:"float"},{name:"enddate",type:"date"},{name:"endindexvalue",type:"float"},{name:"cumulativepricereturnpercentage",type:"float"},{name:"begintrindexvalue",type:"float"},{name:"endtrindexvalue",type:"float"},{name:"cumulativetotalreturnpercentage",type:"float"}]),columnModel:new Ext.grid.ColumnModel([{header:"Begin Date",sortable:true,dataIndex:"begindate",renderer:DJAverages.Utils.date},{header:"Begin Index Value",sortable:true,dataIndex:"beginindexvalue",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"End Date",sortable:true,dataIndex:"enddate",renderer:DJAverages.Utils.date},{header:"End Index Value",sortable:true,dataIndex:"endindexvalue"},{header:"Price Return Pct.",sortable:true,dataIndex:"cumulativepricereturnpercentage",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Begin TR Index Value",sortable:true,dataIndex:"begintrindexvalue",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"End TR Index Value",sortable:true,dataIndex:"endtrindexvalue",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Total Return Pct.",sortable:true,dataIndex:"cumulativetotalreturnpercentage",renderer:DJAverages.Utils.decimalFormat,align:"right"}])}};function I(N,O){if(L().isValid()){Ext.apply(H.baseParams,L().getValues());H.load({callback:F,params:{start:0}})}else{DJAverages.Utils.alert(B.messages.invalid.form)}}function F(O,N,P){if(!P){DJAverages.Utils.alert(B.messages.submission.failure)}}function E(){var N=K();if(N){M.src="/?"+N}}function K(){var N=[];if(H.data.length){var O=new Ext.util.MixedCollection();O.addAll(H.lastOptions.params);O.eachKey(function(Q,S,P,R){S=(Q==="format")?"export":S;N[N.length]=Q+"="+S})}return N.join("&")}function J(N,O){L().reset();H.removeAll()}function L(){return Ext.getCmp(B.container+"-criteria-form").getForm()}var A="level"+window.accessLevel;var D=new Ext.data.JsonReader({totalProperty:"totalRows",root:"data"},B.grid.dataModel);var G=B.grid.columnModel;var H=new Ext.data.Store({url:B.form.url,baseParams:B.form.baseParams,reader:D,autoLoad:false});var M=DJAverages.Utils.createDownloadWin();var C={title:B.messages.title,renderTo:B.container,items:[{region:"west",xtype:"form",title:"Criteria",id:B.container+"-criteria-form",collapsible:true,titleCollapse:true,autoScroll:true,width:250,margins:"0 5 0 0",bodyStyle:"padding: .25em;",buttonAlign:"right",labelWidth:70,keys:{key:[10,13],fn:I},defaults:{bodyStyle:"padding: .25em;"},items:[{xtype:"fieldset",title:"Date Range",autoHeight:true,defaultType:"djaws-datefield",defaults:{autoWidth:true,allowBlank:false,minValue:B.form.defaults.minDate,maxValue:B.form.defaults.maxDate,disabledDays:[0,6],disabledDaysText:"Weekends cannot be selected"},items:[{fieldLabel:"Start Date",name:"df",id:"startDate-cumulative-return",endDateField:"endDate-cumulative-return",blankText:B.messages.missing.startDate,invalidText:B.messages.missing.startDate,tabIndex:2},{fieldLabel:"End Date",name:"dt",id:"endDate-cumulative-return",startDateField:"startDate-cumulative-return",blankText:B.messages.missing.endDate,invalidText:B.messages.missing.endDate,tabIndex:3},{xtype:"label",html:'<div style="color:#555; padding: .5em; background-color: #bdd3ef; border: 1px solid #aaa; margin-top: 1em; ">Price Return available back to May 26, 1896. Total Return available back to 1993.</div>'}]}],buttons:[{minWidth:130,text:"Run Report",type:"submit",scope:this,handler:I},{text:"Reset",type:"reset",scope:this,handler:J}]},{region:"center",xtype:"djaws-result-grid",id:B.container+"-result-grid",bodyBorder:false,store:H,cm:G,loadMask:true,bbar:new Ext.Toolbar({items:[{xtype:"button",text:"Download",cls:"x-btn-text-icon",icon:"/images/icons/silk/page_white_excel.png",scope:this,handler:E,tooltip:"Download this report in Excel format."}]})}]};Ext.applyIf(this,C);DJAverages.Report.CumulativeReturn.superclass.initComponent.call(this)}});Ext.reg("djaws-cumulative-return-report",DJAverages.Report.CumulativeReturn);DJAverages.Report.Divisor=Ext.extend(DJAverages.Report.Base.Container,{initComponent:function(){var A={container:"divisor-report",form:{url:"/",method:"POST",baseParams:{view:"divisor-report",ticker:DJAverages.Utils.getQueryParams("symbol"),format:"json",limit:30}},messages:{title:"Divisor",missing:{startDate:"Please select a valid start date",endDate:"Please select a valid end date"},invalid:{form:{type:"error",message:"Please complete the information requested in the highlighted fields."}},submission:{success:{},failure:{type:"error",message:"An error occurred while submitting your request, please try again."}}},grid:{dataModel:[{name:"td",type:"date"},{name:"d",type:"float"},{name:"trd",type:"float"}],columnModel:[{header:"Date",width:85,sortable:false,dataIndex:"td",renderer:DJAverages.Utils.date},{header:"Divisor",width:85,sortable:true,dataIndex:"d",renderer:DJAverages.Utils.divisorFormat,align:"right"},{header:"Total Return Divisor",width:125,sortable:true,dataIndex:"trd",renderer:DJAverages.Utils.divisorFormat,align:"right"}]}};function N(){M()}function M(){Ext.Ajax.request({url:A.form.url,params:{view:"performance-report-dates",ticker:A.form.baseParams.ticker},success:F,failure:function(){DJAverages.Utils.alert(A.messages.invalid.dates)}})}function F(P){try{var R=Ext.decode(P.responseText).data;for(var O=0;O<R.length;O++){if(R[O]["dataset"]==="d"){H.load({params:{df:new Date(R[O]["maxdate"]).format("n/j/Y")}})}}}catch(Q){}}function E(){var O=J();if(O){L.src="/?"+O}}function J(){var O=[];if(H.data.length){var P=new Ext.util.MixedCollection();P.addAll(H.baseParams);P.eachKey(function(R,T,Q,S){T=(R==="format")?"export":T;O[O.length]=R+"="+T})}return O.join("&")}function I(O,P){K().reset();H.removeAll()}function K(){return Ext.getCmp(A.container+"-criteria-form").getForm()}var C=new Ext.data.Record.create(A.grid.dataModel);var D=new Ext.data.JsonReader({totalProperty:"totalRows",root:"data"},C);var H=new Ext.data.Store({url:A.form.url,baseParams:A.form.baseParams,reader:D,autoLoad:false});var G=new Ext.grid.ColumnModel(A.grid.columnModel);var L=DJAverages.Utils.createDownloadWin();var B={title:A.messages.title,renderTo:A.container,items:[{region:"center",xtype:"djaws-result-grid",id:A.container+"-result-grid",bodyBorder:true,store:H,cm:G,loadMask:true,bbar:new Ext.Toolbar({items:[{xtype:"button",text:"Download",cls:"x-btn-text-icon",icon:"/images/icons/silk/page_white_excel.png",scope:this,handler:E,tooltip:"Download this report in Excel format."}]})}]};Ext.applyIf(this,B);DJAverages.Report.Divisor.superclass.initComponent.call(this);N()}});Ext.reg("djaws-divisor-report",DJAverages.Report.Divisor);DJAverages.Report.Component=Ext.extend(DJAverages.Report.Base.Container,{initComponent:function(){var P={container:"component-report",form:{url:"/",method:"POST",baseParams:{ticker:DJAverages.Utils.getQueryParams("symbol"),format:"json",limit:30},defaults:{report:"ComponentReport"},dates:[],selectedDates:{minDates:[],maxDates:[]}},messages:{title:"Components",missing:{startDate:"Please select a valid start date",endDate:"Please select a valid end date"},invalid:{form:{type:"error",message:"Please complete the information requested in the highlighted fields."}},submission:{success:{},failure:{type:"error",message:"An error occurred while submitting your request, please try again."}}},grid:{view:{ComponentReport:"component-report",CorporateActionsReport:"corporate-actions-report",ComponentDividendReport:"component-dividend-report",ComponentPerformanceReport:"component-performance-report",ComponentReturnReport:"component-return-report"},dataModel:{ComponentReport:new Ext.data.Record.create([{name:"td",type:"date"},{name:"n"},{name:"ti"},{name:"e"},{name:"o",type:"float"},{name:"h",type:"float"},{name:"l",type:"float"},{name:"c",type:"float"},{name:"v",type:"float"}]),CorporateActionsReport:new Ext.data.Record.create([{name:"td",type:"date"},{name:"c"},{name:"n"}]),ComponentDividendReport:new Ext.data.Record.create([{name:"td",type:"date"},{name:"n"},{name:"t"},{name:"c",type:"float"},{name:"d",type:"float"},{name:"a",type:"float"}]),ComponentPerformanceReport:new Ext.data.Record.create([{name:"c"},{name:"td",type:"date"},{name:"s"},{name:"dr",type:"float"},{name:"wr",type:"float"},{name:"mr",type:"float"},{name:"qr",type:"float"},{name:"yr",type:"float"},{name:"oyr",type:"float"},{name:"tyr",type:"float"},{name:"fyr",type:"float"}]),ComponentReturnReport:new Ext.data.Record.create([{name:"c"},{name:"s"},{name:"tr",type:"float"},{name:"cr",type:"float"},{name:"sd",type:"date"},{name:"td",type:"date"}])},columnModel:{ComponentReport:new Ext.grid.ColumnModel([{header:"Date",width:85,sortable:true,dataIndex:"td",renderer:DJAverages.Utils.date},{header:"Company",width:150,sortable:true,dataIndex:"n"},{header:"Ticker",width:50,sortable:true,dataIndex:"ti"},{header:"Exchange",width:150,sortable:true,dataIndex:"e"},{header:"Open",width:85,sortable:true,dataIndex:"o",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"High",width:85,sortable:true,dataIndex:"h",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Low",width:85,sortable:true,dataIndex:"l",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Close",width:85,sortable:true,dataIndex:"c",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Volume",width:85,sortable:true,dataIndex:"v",align:"right"}]),CorporateActionsReport:new Ext.grid.ColumnModel([{header:"Date",width:85,sortable:true,dataIndex:"td",renderer:DJAverages.Utils.date},{header:"Company",width:175,sortable:true,dataIndex:"n"},{header:"Action Description",width:500,sortable:true,dataIndex:"c"}]),ComponentDividendReport:new Ext.grid.ColumnModel([{header:"Date",width:85,sortable:true,dataIndex:"td",renderer:DJAverages.Utils.date},{header:"Company",width:220,sortable:true,dataIndex:"n"},{header:"Ticker",width:65,sortable:true,dataIndex:"t"},{header:"Price Close",width:85,sortable:true,dataIndex:"c",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Dividend Yield",width:85,sortable:true,dataIndex:"d",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Annualized Dividend",width:115,sortable:true,dataIndex:"a",renderer:DJAverages.Utils.decimalFormat,align:"right"}]),ComponentPerformanceReport:new Ext.grid.ColumnModel([{header:"Date",width:85,sortable:true,dataIndex:"td",renderer:DJAverages.Utils.date},{header:"Ticker",width:70,sortable:true,dataIndex:"s"},{header:"Company",width:210,sortable:true,dataIndex:"c"},{header:"Day",width:80,sortable:true,dataIndex:"dr",renderer:DJAverages.Utils.changeFormat,align:"right"},{header:"Week",width:80,sortable:true,dataIndex:"wr",renderer:DJAverages.Utils.changeFormat,align:"right"},{header:"Month",width:80,sortable:true,dataIndex:"mr",renderer:DJAverages.Utils.changeFormat,align:"right"},{header:"Quarter",width:80,sortable:true,dataIndex:"qr",renderer:DJAverages.Utils.changeFormat,align:"right"},{header:"YTD",width:80,sortable:true,dataIndex:"yr",renderer:DJAverages.Utils.changeFormat,align:"right"},{header:"1-Year",width:80,sortable:true,dataIndex:"oyr",renderer:DJAverages.Utils.changeFormat,align:"right"},{header:"3-Year",width:80,sortable:true,dataIndex:"tyr",renderer:DJAverages.Utils.changeFormat,align:"right"},{header:"5-Year",width:80,sortable:true,dataIndex:"fyr",renderer:DJAverages.Utils.changeFormat,align:"right"}]),ComponentReturnReport:new Ext.grid.ColumnModel([{header:"Company",width:210,sortable:true,dataIndex:"c"},{header:"Ticker",width:70,sortable:true,dataIndex:"s"},{header:"Price Return",width:80,sortable:true,dataIndex:"cr",renderer:DJAverages.Utils.changeFormat,align:"right"},{header:"Total Return",width:80,sortable:true,dataIndex:"tr",renderer:DJAverages.Utils.changeFormat,align:"right"},{header:"Start Date",width:80,sortable:true,dataIndex:"sd",renderer:DJAverages.Utils.date},{header:"End Date",width:80,sortable:true,dataIndex:"td",renderer:DJAverages.Utils.date}])},datesAvailable:{ComponentReport:true,CorporateActionsReport:true,ComponentDividendReport:false,ComponentPerformanceReport:false,ComponentReturnReport:true}}};function N(){O()}function O(){Ext.Ajax.request({url:P.form.url,params:{view:P.container+"-dates",ticker:P.form.baseParams.ticker},success:function(S){try{var U=Ext.decode(S.responseText);Ext.applyIf(P.form.dates,U.data)}catch(T){}},failure:function(){DJAverages.Utils.alert(P.messages.invalid.dates)}})}function F(T){var U=P.form.dates;for(var S=0;S<U.length;S++){if(U[S]["dataset"]===T){return U[S]}}return false}function G(S,T){if(M().isValid()){Ext.apply(L().store.baseParams,M().getValues());L().store.load({params:{start:0},callback:D})}else{DJAverages.Utils.alert(P.messages.invalid.form)}}function D(T,S,U){if(!U){DJAverages.Utils.alert(P.messages.submission.failure)}}function E(){var S=A();if(S){I.src="/?"+S}}function A(){var S=[];if(L().store.data.length){var T=new Ext.util.MixedCollection();T.addAll(L().store.lastOptions.params);T.eachKey(function(V,X,U,W){X=(V==="format")?"export":X;S[S.length]=V+"="+X})}return S.join("&")}function C(S,T){M().reset();L().store.removeAll()}function M(){return Ext.getCmp(P.container+"-criteria-form").getForm()}function L(){return Ext.getCmp(P.container+"-result-grid")}function Q(W,U){var Y=Ext.getCmp(P.container+"-startDate");var S=Ext.getCmp(P.container+"-endDate");if(U){var X=F(W.inputValue);if(X){Y.minValue=new Date(X.mindate);Y.maxValue=new Date(X.maxdate);S.minValue=new Date(X.mindate);S.maxValue=new Date(X.maxdate)}if(W.inputValue==="ComponentDividendReport"||W.inputValue==="ComponentPerformanceReport"){Y.disable();S.disable()}else{Y.enable();S.enable()}var V=R(W.inputValue);L().disable();L().reconfigure(V.store,V.colModel);L().enable();Ext.getCmp(P.container+"-bbar").bind(V.store);var T=Ext.getCmp("show-dividends-ct");if(W.inputValue==="ComponentPerformanceReport"){T.show()}else{T.hide()}}}function R(S){var V=P.grid.dataModel[S];var U=new Ext.data.JsonReader({totalProperty:"totalRows",root:"data"},V);var Y=P.form.baseParams;Y.view=P.grid.view[S];var X=new Ext.data.Store({url:P.form.url,baseParams:Y,reader:U,autoLoad:false});var T=P.grid.columnModel[S];var W={store:X,colModel:T};return W}var B="level"+window.accessLevel;var J=R(P.form.defaults.report);var I=DJAverages.Utils.createDownloadWin();var H={layout:"fit",defaults:{bodyStyle:"padding: 1.5em;"},title:P.messages.title,renderTo:P.container,html:DJAverages.Report.Base.config.messages.premiumFeature};var K={title:P.messages.title,renderTo:P.container,items:[{region:"west",xtype:"form",title:"Criteria",id:P.container+"-criteria-form",collapsible:true,titleCollapse:true,autoScroll:true,width:250,margins:"0 5 0 0",bodyStyle:"padding: .25em;",buttonAlign:"right",labelWidth:70,keys:{key:[10,13],fn:G},defaults:{bodyStyle:"padding: .25em;"},items:[{xtype:"fieldset",title:"Basic Datasets",autoHeight:true,defaultType:"radio",defaults:{hideLabel:true,allowBlank:false,listeners:{check:Q}},items:[{boxLabel:'Component Data<div class="availability">Latest 3 years. Ticker, Primary Exchange, Open, High, Low, Close and Volume.</div>',name:"d",inputValue:"ComponentReport",disabled:false},{boxLabel:'Corporate Actions<div class="availability">Latest 5 years</div>',name:"d",inputValue:"CorporateActionsReport"},{boxLabel:"Component Dividend Data",name:"d",inputValue:"ComponentDividendReport"}]},{xtype:"fieldset",title:"Premium Datasets",autoHeight:true,defaultType:"radio",defaults:{hideLabel:true,allowBlank:false,listeners:{check:Q}},items:[{xtype:"label",html:'<div style="color:#555; padding: .5em; background-color: #bdd3ef; border: 1px solid #aaa; ">Latest 5 years</div>'},{boxLabel:"Component Performance Data",name:"d",inputValue:"ComponentPerformanceReport",disabled:(window.accessLevel==1)?true:false},{xtype:"fieldset",id:"show-dividends-ct",title:"Calculate with Dividends?",autoHeight:true,hidden:true,defaultType:"radio",defaults:{hideLabel:true},items:[{checked:true,boxLabel:"Yes",name:"d-dividends",inputValue:"true",disabled:(window.accessLevel==1)?true:false},{checked:false,boxLabel:"No",name:"d-dividends",inputValue:"false",disabled:(window.accessLevel==1)?true:false}]},{boxLabel:"Component Return Data",name:"d",inputValue:"ComponentReturnReport",disabled:(window.accessLevel==1)?true:false}]},{xtype:"fieldset",title:"Date Range",autoHeight:true,defaultType:"djaws-datefield",defaults:{autoWidth:true,allowBlank:false,disabled:true,format:"d-M-Y",disabledDays:[0,6],disabledDaysText:"Weekends cannot be selected"},items:[{fieldLabel:"Start Date",name:"df",id:P.container+"-startDate",endDateField:P.container+"-endDate",blankText:P.messages.missing.startDate,invalidText:P.messages.missing.startDate,tabIndex:2},{fieldLabel:"End Date",name:"dt",id:P.container+"-endDate",startDateField:P.container+"-startDate",blankText:P.messages.missing.endDate,invalidText:P.messages.missing.endDate,tabIndex:3}]}],buttons:[{minWidth:130,text:"Run Report",type:"submit",scope:this,handler:G},{text:"Reset",type:"reset",scope:this,handler:C}]},{region:"center",xtype:"djaws-result-grid",id:P.container+"-result-grid",bodyBorder:false,store:J.store,cm:J.colModel,loadMask:true,bbar:new Ext.PagingToolbar({id:P.container+"-bbar",pageSize:P.form.baseParams.limit,store:J.store,autoHeight:true,autoWidth:true,displayInfo:true,items:["-",{xtype:"button",text:"Download",cls:"x-btn-text-icon",icon:"/images/icons/silk/page_white_excel.png",scope:this,handler:E,tooltip:"Download this report in Excel format."}]})}]};Ext.applyIf(this,K);DJAverages.Report.Component.superclass.initComponent.call(this);N()}});Ext.reg("djaws-component-report",DJAverages.Report.Component);DJAverages.Report.Fundamentals=Ext.extend(DJAverages.Report.Base.Container,{initComponent:function(){var D={container:"fundamentals-report",form:{url:"/",method:"POST",baseParams:{ticker:DJAverages.Utils.getQueryParams("symbol"),format:"json",limit:30},defaults:{report:"quarterlyReport",minDate:"5/26/1896",maxDate:new Date().format("n/j/Y")}},messages:{title:"Fundamentals",missing:{startDate:"Please select a valid start date",endDate:"Please select a valid end date"},invalid:{form:{type:"error",message:"Please complete the information requested in the highlighted fields."}},submission:{success:{},failure:{type:"error",message:"An error occurred while submitting your request, please try again."}}},grid:{view:{quarterlyReport:"quarterly-fundamentals-report",annualReport:"annual-fundamentals-report"},dataModel:{quarterlyReport:new Ext.data.Record.create([{name:"td",type:"date"},{name:"pe",type:"float"},{name:"py",type:"float"},{name:"d",type:"float"},{name:"roe",type:"float"},{name:"roa",type:"float"},{name:"pb",type:"float"},{name:"eps",type:"float"},{name:"pcf",type:"float"}]),annualReport:new Ext.data.Record.create([{name:"year"},{name:"highdate"},{name:"lowdate"},{name:"startofyear",type:"float"},{name:"yearclose",type:"float"},{name:"highclose",type:"float"},{name:"changepoints",type:"float"},{name:"percentage",type:"float"},{name:"earns",type:"float"},{name:"pe",type:"float"},{name:"divs",type:"float"},{name:"yields",type:"float"}])},columnModel:{quarterlyReport:new Ext.grid.ColumnModel([{header:"Date",width:85,sortable:true,dataIndex:"td",renderer:DJAverages.Utils.date},{header:"PE",width:85,sortable:true,dataIndex:"pe",renderer:DJAverages.Utils.peRatioFormat,align:"right"},{header:"% Yield",width:85,sortable:true,dataIndex:"py",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Dividends",width:85,sortable:true,dataIndex:"d",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"ROE",width:85,sortable:true,dataIndex:"roe",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"ROA",width:85,sortable:true,dataIndex:"roa",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"PB",width:85,sortable:true,dataIndex:"pb",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"EPS",width:85,sortable:true,dataIndex:"eps",renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"PCF",width:85,sortable:true,dataIndex:"pcf",renderer:DJAverages.Utils.decimalFormat,align:"right"}]),annualReport:new Ext.grid.ColumnModel([{header:"Year",dataIndex:"year",width:45,sortable:true},{header:"At Start of Year",dataIndex:"startofyear",width:85,sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"High Close",dataIndex:"highclose",width:85,sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"High Date",dataIndex:"highdate",width:85,sortable:true},{header:"Low Close",dataIndex:"lowclose",width:85,sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Low Date",dataIndex:"lowdate",width:85,sortable:true},{header:"Year's Close",dataIndex:"yearclose",width:85,sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"Change Points",dataIndex:"changepoints",width:85,sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"%",dataIndex:"percentage",width:85,sortable:true,renderer:DJAverages.Utils.changeFormat,align:"right"},{header:"Earns",dataIndex:"earns",width:85,sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"P/E",dataIndex:"pe",width:85,sortable:true,renderer:DJAverages.Utils.peRatioFormat,align:"right"},{header:"Dividends",dataIndex:"divs",width:85,sortable:true,renderer:DJAverages.Utils.decimalFormat,align:"right"},{header:"% Yields",dataIndex:"yields",width:85,sortable:true,renderer:DJAverages.Utils.changeFormat,align:"right"}])}}};function K(Q,R){if(N().isValid()){Ext.apply(J().store.baseParams,N().getValues());J().store.load({params:{start:0},callback:I})}else{DJAverages.Utils.alert(D.messages.invalid.form)}}function I(R,Q,S){if(!S){DJAverages.Utils.alert(D.messages.submission.failure)}}function H(){var Q=M();if(Q){O.src="/?"+Q}}function M(){var Q=[];if(J().store.data.length){var R=new Ext.util.MixedCollection();R.addAll(J().store.lastOptions.params);R.eachKey(function(T,V,S,U){V=(T==="format")?"export":V;Q[Q.length]=T+"="+V})}return Q.join("&")}function L(Q,R){N().reset();J().store.removeAll()}function N(){return Ext.getCmp(D.container+"-criteria-form").getForm()}function J(){return Ext.getCmp(D.container+"-result-grid")}function B(S,Q){if(Q){var R=C(S.inputValue);J().disable();J().reconfigure(R.store,R.colModel);J().enable();Ext.getCmp(D.container+"-bbar").bind(R.store)}}function C(Q){var T=D.grid.dataModel[Q];var S=new Ext.data.JsonReader({totalProperty:"totalRows",root:"data"},T);var W=D.form.baseParams;W.view=D.grid.view[Q];var V=new Ext.data.Store({url:D.form.url,baseParams:W,reader:S,autoLoad:false});var R=D.grid.columnModel[Q];var U={store:V,colModel:R};return U}var A="level"+window.accessLevel;var G=C(D.form.defaults.report);var O=DJAverages.Utils.createDownloadWin();var E={layout:"fit",defaults:{bodyStyle:"padding: 1.5em;"},title:D.messages.title,renderTo:D.container,html:DJAverages.Report.Base.config.messages.premiumFeature};var P={layout:"fit",defaults:{bodyStyle:"padding: 1.5em;"},title:D.messages.title,renderTo:D.container,html:DJAverages.Report.Base.config.messages.unavailable};var F={title:D.messages.title,renderTo:D.container,items:[{region:"west",xtype:"form",title:"Criteria",id:D.container+"-criteria-form",collapsible:true,titleCollapse:true,autoScroll:true,width:250,margins:"0 5 0 0",bodyStyle:"padding: .25em;",buttonAlign:"right",labelWidth:70,keys:{key:[10,13],fn:K},defaults:{bodyStyle:"padding: .25em;"},items:[{xtype:"fieldset",title:"Datasets",autoHeight:true,defaultType:"radio",defaults:{hideLabel:true,allowBlank:false,listeners:{check:B}},items:[{boxLabel:'Quarterly Basis<div class="availability">From Q1 2003 through most recent quarter</div>',name:"d",id:"q",inputValue:"quarterlyReport",checked:true}]}],buttons:[{minWidth:130,text:"Run Report",type:"submit",scope:this,handler:K},{text:"Reset",type:"reset",scope:this,handler:L}]},{region:"center",xtype:"djaws-result-grid",id:D.container+"-result-grid",bodyBorder:false,store:G.store,cm:G.colModel,loadMask:true,bbar:new Ext.PagingToolbar({id:D.container+"-bbar",pageSize:D.form.baseParams.limit,store:G.store,autoHeight:true,autoWidth:true,displayInfo:true,items:["-",{xtype:"button",text:"Download",cls:"x-btn-text-icon",icon:"/images/icons/silk/page_white_excel.png",scope:this,handler:H,tooltip:"Download this report in Excel format."}]})}]};if(DJAverages.Utils.getQueryParams("symbol").toUpperCase()==="DJC"){Ext.applyIf(this,P)}else{Ext.applyIf(this,(window.accessLevel===1)?E:F)}DJAverages.Report.Fundamentals.superclass.initComponent.call(this)}});Ext.reg("djaws-fundamentals-report",DJAverages.Report.Fundamentals);DJAverages.Report.TabPanel=function(){function B(){switch(DJAverages.Utils.getQueryParams("show")){case"performance":return 0;case"cumulative-return":return 1;case"divisor":return 2;case"components":return 3;case"fundamentals":return 4;case"statistics":return 5;case"other":return 6;default:return 0}}var A="reports-panel";var C;return{init:function(){if(Ext.get(A)){C=new Ext.TabPanel({id:"report",renderTo:A,layoutOnTabChange:true,enableTabScroll:true,autoWidth:true,height:800,activeTab:B(),defaults:{header:false},items:[{xtype:"djaws-performance-report",height:750},{xtype:"djaws-cumulative-return-report",height:750},{xtype:"djaws-divisor-report",height:750},{xtype:"djaws-component-report",height:750},{xtype:"djaws-fundamentals-report",height:750},{contentEl:"statistics-report",title:"Statistics",autoHeight:true},{contentEl:"other-report",title:"Other",autoHeight:true}]})}}}}();Ext.onReady(DJAverages.Report.TabPanel.init);