Ext.namespace('DJIndexes');DJIndexes.Intraday=function(){var intradayReloadTimeout=120000;var MESSAGE={DATA_NOT_LOADED:'An error occurred while loading intraday data.'};var containerEl='center';var familyGridPanels=new Array;var intradayEl,dialog,indexDescription,symbolsGrid,componentsGrid,productsGrid,currentFamily,globalToolbar;var dataProxy='/DataService/v2/Intraday.cfc';var config={family:{proxy:dataProxy,params:{method:'getFamilies',type:'homepage',format:'json'},dataMap:{root:'data',totalProperty:'totalRows',id:'key'},dataModel:[{name:'key'},{name:'display'},{name:'desc'},{name:'lookup'}]},index:{proxy:dataProxy,params:{method:'getIndexes',format:'json'},dataMap:{root:'data',totalProperty:'totalRows',id:'ticker'},dataModel:[{name:'ticker'},{name:'indexname'},{name:'lasttime'},{name:'last',type:'float'},{name:'netchange',type:'float'},{name:'hascomponents',type:'boolean'}]},symbols:{proxy:dataProxy,params:{method:'getSymbols',format:'json'},dataMap:{root:'data',totalProperty:'totalRows',id:'suggestedticker'},dataModel:[{name:'suggestedticker'},{name:'bloomberg'},{name:'bridge'},{name:'comstock'},{name:'descriptionvalue'},{name:'dissemination'},{name:'ilx'},{name:'indexname'},{name:'interval'},{name:'isin'},{name:'reuters'}]},components:{proxy:dataProxy,params:{method:'getComponents',format:'json'},dataMap:{root:'data',totalProperty:'totalRows',id:'ticker'},dataModel:[{name:'ticker'},{name:'averageweight',type:'float'},{name:'companyname'},{name:'localclose',type:'float'},{name:'marketcaprange'},{name:'primaryexchange'},{name:'style'},{name:'subsector'}]},products:{proxy:dataProxy,params:{method:'getProducts',format:'json'},dataMap:{root:'data',totalProperty:'totalRows'},dataModel:[{name:'exchangename'},{name:'exchangeurl'},{name:'indexname'},{name:'productname'},{name:'producttype'},{name:'tradingsymbol'}]}};var columnModel={index:new Ext.grid.ColumnModel([{header:'Index',width:175,sortable:true,dataIndex:'indexname'},{header:'Date Time',width:80,sortable:true,dataIndex:'lasttime'},{header:'Last',width:60,sortable:true,dataIndex:'last',renderer:DJIndexes.Utils.Renderers.decimal,align:'right'},{header:'Chg.',width:50,sortable:true,dataIndex:'netchange',renderer:DJIndexes.Utils.Renderers.change,align:'right'}]),symbols:new Ext.grid.ColumnModel([{header:'Suggested Ticker',width:110,dataIndex:'suggestedticker',renderer:DJIndexes.Utils.Renderers.componentHandler},{header:'Dissemination',width:140,dataIndex:'dissemination'},{header:'Interval',width:50,dataIndex:'interval'},{header:'Bloomberg',width:70,dataIndex:'bloomberg'},{header:'Bridge',width:65,dataIndex:'bridge'},{header:'Comstock',width:70,dataIndex:'comstock'},{header:'ILX',width:65,dataIndex:'ilx'},{header:'ISIN',width:85,dataIndex:'isin'},{header:'Reuters',width:65,dataIndex:'reuters'}]),components:new Ext.grid.ColumnModel([{header:'Company Name',width:260,sortable:true,dataIndex:'companyname'},{header:'Primary Exchange',width:150,sortable:true,dataIndex:'primaryexchange'},{header:'Ticker',width:50,sortable:true,dataIndex:'ticker'},{header:'Style',width:170,sortable:true,dataIndex:'style'},{header:'U.S. Close',width:80,sortable:true,dataIndex:'localclose',renderer:DJIndexes.Utils.Renderers.decimal,align:'right'}]),products:new Ext.grid.ColumnModel([{header:'Product Type',width:160,sortable:true,dataIndex:'producttype'},{header:'Product Name',width:160,sortable:true,dataIndex:'productname'},{header:'Exchange',width:240,sortable:true,dataIndex:'exchangename',renderer:DJIndexes.Utils.Renderers.productInfoExchange},{header:'Trading Symbol',width:160,sortable:true,dataIndex:'tradingsymbol'}])};return{init:function(){intradayEl=DJIndexes.Utils.createEl(containerEl,'intraday');var familyDS=this.createDataStore(config.family).load({callback:this.handleFamilies,params:{r:new Date()}});},createDataStore:function(config,params){var ds=new Ext.data.Store({proxy:this.createProxy(config.proxy),reader:new Ext.data.JsonReader(config.dataMap,config.dataModel)});ds.baseParams=config.params;if(!params=='undefined'||!params==''){ds.paramNames=params;}ds.on('beforeload',this.handleDataSourcePreload);return ds;},createProxy:function(url){var proxy=new Ext.data.HttpProxy({url:url,method:'POST'});return proxy;},handleDataSourcePreload:function(store,options){if(store.paramNames.familyId){currentFamily=store.paramNames.familyId;}var url=dataProxy+'?method='+store.baseParams.method;for(i in store.paramNames){url+='&'+i+'='+store.paramNames[i];}store.proxy=DJIndexes.Intraday.createProxy(url);},handleFamilies:function(data,callback,success){if(!success){DJIndexes.Intraday.displayMessage(MESSAGE.DATA_NOT_LOADED);}else{var el,grid,toolbar,gridFoot;for(var i=0;i<data.length;i++){grid=DJIndexes.Intraday.createGrid(DJIndexes.Utils.createEl(containerEl,'grid-'+data[i].get('lookup')),DJIndexes.Intraday.createDataStore(config.index,{familyId:data[i].get('key')}),columnModel.index);toolbar=new Ext.Toolbar(grid.getView().getFooterPanel(true),[{text:'Reload',cls:'x-btn-text-icon bmenu',icon:'/global-img/icons/silk/arrow_refresh.png',handler:DJIndexes.Intraday.reloadGrid,scope:grid}]);grid.on('rowclick',DJIndexes.Intraday.showDetails);familyGridPanels.push(new Ext.GridPanel(grid,{title:data[i].get('display'),background:true}));}var layout=Ext.BorderLayout.create({center:{margins:{left:0,top:0,right:0,bottom:0},panels:familyGridPanels,tabPosition:'top',resizeTabs:false}},intradayEl);var center=layout.getRegion('center');for(var i=0;i<center.panels.length;i++){center.getPanel(i).on('activate',DJIndexes.Intraday.loadFrontPanel);center.getPanel(i).on('activate',DJIndexes.Intraday.autoReloadActivePanel);}if(center.hasPanel(0)){center.showPanel(0);}}DJIndexes.Intraday.finished();},createDialog:function(){if(!dialog){dialog=new Ext.LayoutDialog('intraday-dialog',{autoCreate:true,width:750,height:500,minWidth:640,minHeight:400,modal:true,shim:true,fixedcenter:true,shadow:true,proxyDrag:true,collapsible:false,center:{autoScroll:true,tabPosition:'top',closeOnTab:false,alwaysShowTabs:true},south:{autoScroll:true,split:true,initialSize:75,minSize:22,maxSize:75,titlebar:true,collapsible:true,collapsedTitle:'About This Index',animate:true}});dialog.addKeyListener(27,this.hideDialog,dialog);dialog.setDefaultButton(dialog.addButton('Close Window',this.hideDialog,dialog));dialog.on('hide',this.unloadPanels);this.createDetailPanels();}},createDetailPanels:function(params){symbolsGrid=this.createGrid(DJIndexes.Utils.createEl(containerEl,'grid-symbols'),this.createDataStore(config.symbols,params),columnModel.symbols);productsGrid=this.createGrid(DJIndexes.Utils.createEl(containerEl,'grid-products'),this.createDataStore(config.products,params),columnModel.products);componentsGrid=this.createGrid(DJIndexes.Utils.createEl(containerEl,'grid-components'),this.createDataStore(config.components,params),columnModel.components);indexDescription=new Ext.ContentPanel('intraday-index-desc-panel',{title:'About This Index',autoCreate:true,fitToFrame:true,fitContainer:true,autoScroll:true});var borderLayout=dialog.getLayout();dialog.beginUpdate();borderLayout.add('center',new Ext.GridPanel(symbolsGrid,{title:'Symbols',background:true}));borderLayout.add('center',new Ext.GridPanel(productsGrid,{title:'Products',background:true}));borderLayout.add('center',new Ext.GridPanel(componentsGrid,{title:'Components',background:true}));borderLayout.add('south',indexDescription);dialog.endUpdate();var center=borderLayout.getRegion('center');for(var i=0;i<center.panels.length;i++){center.getPanel(i).on('activate',DJIndexes.Intraday.loadBackPanel);}},createGrid:function(el,ds,cm){var grid=new Ext.grid.Grid(el,{ds:ds,cm:cm,loadMask:true});grid.render();return grid;},reloadGrid:function(button,e){button.scope.dataSource.reload();},autoReloadActivePanel:function(panel){if(panel.active){setTimeout(function(){var dt=new Date();var day=dt.format('w');var hour=dt.format('G');if(day>=1&&day<=5&&hour>=9&&hour<=16){panel.grid.dataSource.reload();DJIndexes.Intraday.autoReloadActivePanel(panel);}},intradayReloadTimeout);}},loadFrontPanel:function(panel){panel.grid.getDataSource().load({callback:DJIndexes.Intraday.frontPanelLoaded});},loadBackPanel:function(panel){panel.grid.getDataSource().load({callback:DJIndexes.Intraday.backPanelLoaded});},unloadPanels:function(dialog){var center=dialog.getLayout().getRegion('center');center.showPanel('grid-products');var panel;for(var i=0;i<center.panels.length;i++){panel=center.getPanel(i);panel.setActiveState(false);panel.getGrid().getDataSource().removeAll();}var south=dialog.getLayout().getRegion('south');south.getPanel(0).setContent(null);},setIndexDescription:function(desc){dialog.getLayout().getRegion('south').getPanel(0).setContent(desc);},frontPanelLoaded:function(data,options,success){if(!success){DJIndexes.Intraday.displayMessage(MESSAGE.DATA_NOT_LOADED);}else{if(data.length>0&&DJIndexes.Quotemedia){try{DJIndexes.Quotemedia.loadChart(data[0].get('ticker'),currentFamily);}catch(e){}}}DJIndexes.Intraday.createDialog();},backPanelLoaded:function(data,options,success){if(!success){DJIndexes.Intraday.displayMessage(MESSAGE.DATA_NOT_LOADED);}},displayMessage:function(msg){Ext.Msg.alert('Status',msg);},showDetails:function(grid,rowIndex,e){var record=grid.getDataSource().getAt(rowIndex);var ticker=record.get('ticker');var title=record.get('indexname');var showProducts=(record.get('hasproducts'))?true:false;var showComponents=(record.get('hascomponents'))?true:false;DJIndexes.Intraday.showDialog(ticker,title,showProducts,showComponents,e.getTarget());},showDialog:function(ticker,title,showProducts,showComponents,target){var center=dialog.getLayout().getRegion('center');var ds;for(var i=0;i<center.panels.length;i++){ds=center.getPanel(i).grid.getDataSource();ds.paramNames={'ticker':ticker};}DJIndexes.Utils.toggleFlash(DJIndexes.flashToToggle,false);dialog.setTitle(title);dialog.show(target);center.showPanel(0);},hideDialog:function(){dialog.hide();DJIndexes.Utils.toggleFlash(DJIndexes.flashToToggle,true);},finished:function(){DJIndexes.Home.initFlashBanner();},debug:function(){console.debug(arguments);}}}();