Ext.ns('DJIndexes.widget');DJIndexes.widget.InfoWindow=Ext.extend(Ext.Window,{defaultConfig:{autoShow:false,width:300,height:300,modal:(Ext.isIE6)?false:true,autoDestroy:false,title:'',preventBodyReset:true,autoScroll:true,padding:'0 15px 20px 15px',bodyStyle:{fontFamily:'Arial',backgroundColor:'#fff',fontSize:'.85em'}},constructor:function(userConfig){this.cls='widget';this.closeAction='hide';DJIndexes.widget.InfoWindow.superclass.constructor.call(this,Ext.apply(this.defaultConfig,userConfig));this.render(Ext.getBody());if(this.autoShow){this.show();}this.init();},init:function(){if(this.autoLinkCls){Ext.select(this.autoLinkCls).on('click',function(e,t){e.preventDefault();this.show(t);},this);}}});
Ext.ns('DJIndexes.widget');DJIndexes.widget.InfoTabs=Ext.extend(Ext.Panel,{defaultConfig:{layout:'fit',frame:true,header:false,defaults:{autoHeight:true,activeTab:0,enableTabScroll:true,animScroll:true,padding:'0 15px 20px 15px',bodyStyle:{fontFamily:'Arial',backgroundColor:'#fff',fontSize:'.85em'}}},constructor:function(el,userConfig){this.container=el;this.cls='widget';DJIndexes.widget.InfoTabs.superclass.constructor.call(this,Ext.apply(this.defaultConfig,userConfig));this.width=Ext.get(this.container||Ext.getBody()).parent().getComputedWidth();this.add({xtype:'tabpanel',defaults:{autoHeight:true,cls:'dji-infotab'},items:this.tabs});this.render(this.container||Ext.getBody());}});
Ext.QuickTips.init();Ext.form.Field.prototype.msgTarget='side';Ext.ns('DJIndexes.widget.data.contactForm');DJIndexes.widget.data.contactForm={regions:[['asiaPacific','Asia/Pacific'],['europe','Europe'],['latinAmerica','Latin America'],['middleEast','Middle East'],['northAmerica','North America']],subjects:[['benchmark','Benchmarks for a pension plan'],['custom','Custom indexes'],['ftp','Data available via FTP service'],['data','Data requests'],['methodologies','Index methodologies and procedures'],['icb','Industry Classification Benchmark (ICB)'],['marketing','Marketing materials'],['realTime','Real time and delayed index data'],['web','Web site related issues'],['other','Other']]};DJIndexes.widget.ContactForm=Ext.extend(Ext.FormPanel,{defaultConfig:{url:'/DataProxy/ContactForm.cfc',method:'post',baseParams:{method:'webToCase'},hiddenFields:[],additionalParams:[],container:'contact-form',buttonAlign:'center',width:500,monitorValid:true,monitorPoll:1000,frame:true,autoHeight:true,collapsible:true,titleCollapse:true,title:'Contact Form',defaultType:'textfield',bodyStyle:{padding:'10px'},defaults:{width:350,invalidText:'This field is required',allowBlank:false},items:[{xtype:'hidden',name:'formName',value:'DJI Website Inquiry Form'},{fieldLabel:'Full Name',name:'name'},{fieldLabel:'Email Address',name:'email',vtype:'email'},{fieldLabel:'Company Name',name:'company'},new Ext.form.ComboBox({fieldLabel:'Region',emptyText:'Select one...',name:'region',store:new Ext.data.ArrayStore({autoDestroy:true,fields:['key','label'],data:DJIndexes.widget.data.contactForm.regions}),valueField:'key',displayField:'label',mode:'local',triggerAction:'all'}),new Ext.form.ComboBox({fieldLabel:'Subject',emptyText:'Select one...',name:'subject',store:new Ext.data.ArrayStore({autoDestroy:true,fields:['key','label'],data:DJIndexes.widget.data.contactForm.subjects}),valueField:'key',displayField:'label',mode:'local',triggerAction:'all'}),{xtype:'textarea',fieldLabel:'Comments',name:'description',height:100}]},constructor:function(el,userConfig){this.cls='widget';DJIndexes.widget.ContactForm.superclass.constructor.call(this,Ext.apply(this.defaultConfig,userConfig));this.add(this.hiddenFields);try{var params='';Ext.each(this.additionalParams,function(p){params+=p.name+'='+p.value+'|';});if(params){this.add({xtype:'hidden',name:'params',value:params});}}catch(e){}this.addButton({id:'btn-submit',text:'Send',type:'submit',scale:'medium',disabled:true,handler:function(){this.form.submit();},scope:this});this.addButton({id:'btn-reset',text:'Cancel',type:'reset',scale:'medium',handler:function(){this.form.reset();},scope:this});this.on('clientvalidation',this.validate,this);this.on('beforeaction',this.showProgress,this);this.on('actioncomplete',this.handleFormSubmission,this);this.on('actionfailed',this.handleFormSubmission,this);this.render(el||Ext.get(this.defaultConfig.container));},validate:function(f,valid){var el='btn-submit';if(valid){Ext.getCmp(el).enable();}else{Ext.getCmp(el).disable();}},showProgress:function(){Ext.MessageBox.wait('Submitting...','Please wait while we submit your inquiry.');Ext.MessageBox.updateProgress(.3);},handleFormSubmission:function(f,action){if(action.result){if(action.result.success){this.form.reset();Ext.MessageBox.alert('Thank you','Thank you for your inquiry. We will respond to you as soon as possible.');}}else{Ext.MessageBox.alert('An error has occurred','An error occurred while submitting your request, please try again.');}},debug:function(){console.debug(arguments);}});
Ext.QuickTips.init();Ext.Ajax.disableCaching=false;Ext.ns('DJIndexes.widget.data.intraday');DJIndexes.widget.Intraday=Ext.extend(Ext.Panel,{defaultConfig:{numberFormat:'0.00',stringsToRemove:['TM','SM'],proxy:'/DataService/v2/Intraday.cfc',familyId:null,activeTab:0,title:'Intraday',layout:'border',frame:true,defaults:{split:true,border:true,frame:true,resizable:false}},constructor:function(el,userConfig){this.container=el;this.addEvents('tickerselected');this.cls='widget';DJIndexes.widget.Intraday.superclass.constructor.call(this,Ext.apply(this.defaultConfig,userConfig));this.renderer=new DJIndexes.Utils.numberFormatter(this.numberFormat);this.stringRenderer=new DJIndexes.Utils.stringFormatter(this.stringsToRemove);this.height=645;this.add([{region:'north',xtype:'tabpanel',enableTabScroll:true,animScroll:true,height:156,minHeight:116,maxHeight:200},{region:'center',xtype:'dji-intraday-quote',layout:'fit',renderer:this.renderer,stringRenderer:this.stringRenderer,proxy:this.proxy},{region:'south',xtype:'dji-intraday-chart',layout:'fit',height:275,minHeight:275,maxHeight:275,renderer:this.renderer,proxy:this.proxy}]);this.on({'tickerselected':function(data){var c=this.findByType('dji-intraday-chart',true)[0];c.init(data);var q=this.findByType('dji-intraday-quote',true)[0];q.init(data);},scope:this});this.render(this.container||Ext.getBody());this.init();},init:function(){Ext.Ajax.request({url:this.proxy,method:'POST',params:{method:'getFamilies',type:this.familyId},callback:this.handleSetupRequest,scope:this});},handleSetupRequest:function(options,success,response){var grids=[];if(success){var data=this.decode(response.responseText);if(data){Ext.each(data.data,function(family,i){var grid=this.createFamilyGrid(family);this.relayEvents(grid,['tickerselected']);grids.push(grid)},this);}if(grids.length){var r=this.findByType('tabpanel',true)[0];r.add(grids);r.setActiveTab(this.activeTab||0);}this.doLayout();}},createFamilyGrid:function(family){var store=new Ext.data.JsonStore({autoDestroy:true,url:this.proxy,method:'POST',baseParams:{method:'getIndexes',familyId:family.key},root:'data',totalProperty:'size',fields:['indexname','ticker','lasttime',{name:'last',type:'float'},{name:'netchange',type:'float'},'bigchartsid']});var cols=new Ext.grid.ColumnModel({defaults:{sortable:true},columns:[{header:'Index',dataIndex:'ticker'},{header:'Date Time',dataIndex:'lasttime'},{header:'Last',dataIndex:'last',renderer:this.renderer.decimal},{header:'Net Change',dataIndex:'netchange',renderer:this.renderer.change}]});var sm=new Ext.grid.RowSelectionModel({singleSelect:true});var gp=new Ext.grid.GridPanel({store:store,cm:cols,sm:sm,title:family.display,stripeRows:true,columnLines:true,enableColumnHide:false,enableColumnMove:false,viewConfig:{autoFill:true,forceFit:true},loadMask:new Ext.LoadMask(this.container,{msg:'Loading...'})});gp.on({'activate':this.handlePanelActivation,scope:gp});sm.on({'rowselect':this.handleRowSelection,scope:gp});return gp;},handlePanelActivation:function(p){p.store.load({callback:function(){this.selModel.selectFirstRow();},scope:this});},handleRowSelection:function(selModel,rowIdx,e){var data=this.store.getAt(rowIdx).data;this.fireEvent('tickerselected',data);},decode:function(data){var o;try{o=Ext.decode(data);}catch(e){}return o;}});DJIndexes.widget.IntradayChart=Ext.extend(Ext.Panel,{templates:{chart:new Ext.XTemplate('<img width="375" height="214" border="0" src="{chartURL}" title="{title}" alt="{title}" />').compile()},controls:[{label:'Today',value:'1dy'},{label:'5d',value:'5dy'},{label:'1m',value:'1mo'},{label:'3m',value:'3mo'},{label:'1y',value:'1yr'},{label:'5y',value:'5yr'},{label:'10y',value:'10yr'}],bigcharts:{url:'http://chart.bigcharts.com/custom/djindexes-com/big.chart?type=256&ma=3&maval=100&style=2281&rightfill=0&uf=8192',frequency:{'1dy':'1mi','5dy':'15mi','1mo':'1dy','3mo':'1dy','1yr':'1wk','5yr':'1wk','10yr':'1mo'}},defaultConfig:{proxy:'/DataService/v2/Intraday.cfc',collapsible:false,showTitle:false,defaults:{autoWidth:true,autoHeight:true,split:false},tabPosition:'top'},constructor:function(userConfig){DJIndexes.widget.IntradayChart.superclass.constructor.call(this,Ext.apply(this.defaultConfig,userConfig));this.add([{region:'center',xtype:'tabpanel',split:true,autoScroll:true,animScroll:true,resizeTabs:true,tabPosition:this.tabPosition,activeTab:0,defaults:{bodyStyle:{fontFamily:'Arial',backgroundColor:'#e8f0f5',padding:'13px 2px 5px 24px'},height:232}}]);},init:function(data){this.setChartTabs(data,this);},setChartTabs:function(data,config,size){var tabs=[];Ext.each(this.controls,function(c,i){var time=c.value;var size=(size)?size:8;var url=config.bigcharts.url+'&ticker='+data.ticker+'&symb='+time+'&sid='+data.bigchartsid+'&size='+size+'&time='+time+'&freq='+config.bigcharts.frequency[time];var html=(data.bigchartsid)?config.templates.chart.applyTemplate({chartURL:url,title:data.ticker}):time.toUpperCase()+' chart is not available.';var tab={title:c.label,html:html};tabs.push(tab);});var p=config.findByType('tabpanel')[0];p.removeAll();p.add(tabs);p.setActiveTab(1);},decode:function(data){var o;try{o=Ext.decode(data);}catch(e){}return o;}});Ext.reg('dji-intraday-chart',DJIndexes.widget.IntradayChart);DJIndexes.widget.IntradayQuote=Ext.extend(Ext.Panel,{defaultConfig:{proxy:'/DataService/v2/Intraday.cfc',bodyStyle:{fontFamily:'Arial',padding:'10px 5px'},defaults:{border:false}},constructor:function(userConfig){DJIndexes.widget.IntradayQuote.superclass.constructor.call(this,Ext.apply(this.defaultConfig,userConfig));this.store=new Ext.data.JsonStore({autoLoad:false,url:this.proxy,method:'POST',baseParams:{method:'getIndexDetails',full:true},root:'data',totalProperty:'size',fields:[{name:'indexname',convert:this.stringRenderer.indexname},{name:'price',convert:this.renderer.decimal},{name:'netchange',convert:this.renderer.change},{name:'percentagechange',convert:this.renderer.change},{name:'openprice',convert:this.renderer.decimal},'volume',{name:'high',convert:this.renderer.decimal},{name:'low',convert:this.renderer.decimal},{name:'ytdnetchange',convert:this.renderer.change},{name:'ytdpctchange',convert:this.renderer.change}]});this.template=new Ext.XTemplate('<tpl for=".">','<div class="intraday-quote">','<div class="indexname">{indexname}</div>','<div class="intraday-price">{price}</div>','<ul class="intraday-details">','<li><span class="label">Net Chg:</span> {netchange}</li>','<li><span class="label">% Chg:</span> {percentagechange}</li>','<li><span class="label">Open:</span> {openprice}</li>','<li><span class="label">Volume:</span> {volume}</li>','<li><span class="label">High:</span> {high}</li>','<li><span class="label">Low:</span> {low}</li>','<li><span class="label">YTD Chg:</span> {ytdnetchange}</li>','<li><span class="label">YTD % Chg:</span> {ytdpctchange}</li>','</ul>','</div>','</tpl>','<div class="x-clear"></div>').compile();this.add(new Ext.DataView({store:this.store,tpl:this.template}));},init:function(data){this.store.load({params:{ticker:data.ticker}});}});Ext.reg('dji-intraday-quote',DJIndexes.widget.IntradayQuote);

Ext.ns('BCAPI');BCAPI.ready=false;
function onTemplateLoaded(experienceID){BCAPI.player=brightcove.getExperience(experienceID);BCAPI.video=BCAPI.player.getModule(APIModules.VIDEO_PLAYER);BCAPI.content=BCAPI.player.getModule(APIModules.CONTENT);BCAPI.exp=BCAPI.player.getModule(APIModules.EXPERIENCE);BCAPI.social=BCAPI.player.getModule(APIModules.SOCIAL);BCAPI.exp.addEventListener(BCExperienceEvent.TEMPLATE_READY,onTemplateReady);}
function onTemplateReady(){BCAPI.ready=true;BCAPI.exp.removeEventListener(BCExperienceEvent.TEMPLATE_READY,onTemplateReady);}
function loadVideo(video){if(BCAPI.ready&&video.id){if(BCAPI.video.isPlaying()){BCAPI.video.stop();}BCAPI.video.cueVideo(video.id);videoPanel.setTitle(video.title);}}Ext.ns('DJIndexes.widget.MediaCenter.data');DJIndexes.widget.MediaCenter=Ext.extend(Ext.Panel,{tpl:new Ext.XTemplate('<tpl for=".">','<div id="{id}" class="mc-playlist-item">','<img src="{thumb}" width="120" height="90" />','<span class="title">{title}</span>','<p class="meta description">{description}</p>','</div>','<div class="x-clear"></div>','</tpl>'),defaultConfig:{playlistSelector:'.playlist',playerId:'28221116001',publisherId:'86240652',proxy:'/DataService/v2/MediaCenter.cfc',method:'POST',baseParams:{method:'getPlaylist'},activeTab:0,playlists:[],title:'Dow Jones Indexes Media Center',header:false,collapsible:false,playerContainer:'brightcove-player',layout:'border',frame:true,autoWidth:true,height:460,defaults:{split:true,frame:true}},constructor:function(el,userConfig){this.cls='widget';this.container=el;DJIndexes.widget.MediaCenter.superclass.constructor.call(this,Ext.apply(this.defaultConfig,userConfig));this.init();},init:function(){this.createBCPlayer();this.createRegions();this.render(this.container||Ext.getBody());window.videoPanel=this.findByType('panel',true)[0];this.displayPlaylists();},displayPlaylists:function(){Ext.TaskMgr.start({run:function(){if(BCAPI.ready){Ext.TaskMgr.stopAll();this.createPlaylists();}},interval:800,duration:5000,scope:this});},createBCPlayer:function(){var el=Ext.getDom(this.playerContainer);if(el){var params={};params.playerID=this.playerId;params.bgcolor='#e0e8f6';params.width='486';params.height='412';params.publisherID=this.publisherId;params.isVid=true;var player=brightcove.createElement('object');player.id=Ext.id();var parameter;for(var i in params){parameter=brightcove.createElement('param');parameter.name=i;parameter.value=params[i];player.appendChild(parameter);}brightcove.createExperience(player,el,true);}},createRegions:function(){this.add([{region:'west',xtype:'panel',width:498,contentEl:this.playerContainer,autoShow:true,title:'&nbsp;',minWidth:498},{region:'center',xtype:'tabpanel',autoScroll:true,hidden:true,bodyStyle:{fontFamily:'Arial',fontSize:'.85em',backgroundColor:'#e0e8f6'},defaults:{xtype:'dataview',frame:true,autoWidth:true,singleSelect:true,overClass:'x-view-over',itemSelector:'div.mc-playlist-item',emptyText:'<p>No videos found.</p>'}}]);},createPlaylists:function(){if(this.playlists&&this.playlists.length){var tabs=[];Ext.each(this.playlists,function(p){var params,store,id=Ext.id();try{params={'id':p.playlistId};store=this.createPlaylistStore(params,id);tabs.push({id:id,title:p.title,store:store,tpl:this.tpl,listeners:{show:function(dv){if(!this.store.totalLength){this.store.load();}},click:function(dv,idx,node,e){loadVideo(dv.store.data.items[idx].data);},selectionchange:function(dv,selections){var item=this.store.getById(selections[0].id);loadVideo(item.data);}}});}catch(e){}},this);if(tabs.length){var r=this.findByType('tabpanel',true)[0];r.add(tabs);r.show();r.setActiveTab(this.activeItem||0);this.doLayout();}}else{this.disable();Ext.MessageBox.show({title:'INFO',msg:'Sorry, this playlist is empty.',buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.WARNING,minWidth:250});}},createPlaylistStore:function(params,dataviewId){var _baseParams=Ext.apply(params,this.baseParams);var store=new Ext.data.JsonStore({autoLoad:false,url:this.proxy,baseParams:_baseParams,root:'data.videos',idProperty:'id',fields:['id',{name:'thumb',mapping:'thumbnailURL'},{name:'title',mapping:'name'},{name:'description',mapping:'shortDescription'}],listeners:{load:function(store,records,options){Ext.getCmp(dataviewId).select(0);}}});return store;}});