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.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.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.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.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);
Ext.BLANK_IMAGE_URL="/images/blank.gif";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"other":return 5;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:"other-report",title:"Other",autoHeight:true}]})}}}}();Ext.onReady(DJAverages.Report.TabPanel.init);
