Ext.namespace('DJIndexes');DJIndexes.WorldwideOffices=function(){var address={princeton:['Dow Jones Indexes','P.O. Box 300','Princeton, NJ 08543-0300','USA'],mexico:['Dow Jones Indexes','Edificio del &Aacute;ngel','Reforma 350 piso 9','Juarez C.P. 06600','M&eacute;xico'],chile:['Dow Jones Indexes','MAC-IVER 440, EI 1104','Santiago, Chile'],brazil:['Dow Jones Indexes','Caixa Postal 17023','Paolo, Brazil 02340-970'],spain:['Dow Jones Indexes','Espronceda 32, 5 Planta','28003 Madrid','Spain'],france:['STOXX Limited','c/o Abax','4, Rue de Cerisoles','75008 Paris','France'],switzerland:['STOXX Limited','Selnaustrasse 30','8021 Z&uuml;rich','Switzerland'],frankfurt:['STOXX Limited/Dow Jones Indexes','Wilhelm-Leuschner-Str. 78','60329 Frankfurt','Germany'],unitedKingdom:['STOXX Limited/Dow Jones Indexes','One Canada Square','34th floor','E14 5AA London','United Kingdom'],unitedKingdom2:['Dow Jones Indexes','90 Long Acre','London WC2E 9PR','United Kingdom'],sweden:['STOXX Limited','Kungsgatan 12-14, trapphus B, plan 7','111 35  Stockholm','Sweden'],hongKong:['Dow Jones Indexes','Suite 2404 24th Floor','Central Plaza','18 Harbour Road','Wanchai','Hong Kong'],singapore:['Dow Jones AER Company, Inc.','10 Anson Road #32-08','International Plaza','Singapore 079903'],nyc:['Dow Jones Indexes','1155 Avenue of the Americas','New York, NY 10036','USA'],dubai:['Dow Jones Indexes','Office 314, Building 5','Dubai Media City','P.O. Box 50285','Dubai, U.A.E.']};var config={defaultDialogTitle:'Contact Details',defaultDialogWidth:300,defaultDialogHeight:300,enlargedDialogWidth:520,enlargedDialogHeight:550,regions:[{id:'americas',name:'Americas',expanded:true,territory:[{id:'north-america-dji',name:'North America - Product Licensing',contacts:[{id:'cassano',contact:'John Cassano',title:'Sales Manager',phone:'+1 609 520 7697',fax:'+1 609 520 7030',email:'john.cassano@dowjones.com',address:address.princeton},{id:'ciuba',contact:'Richard Ciuba',title:'Senior Director',phone:'+1 609 520 7172',fax:'+1 609 520 7030',email:'richard.ciuba@dowjones.com',address:address.princeton},{id:'lecky',contact:'John Lecky',title:'Sales Manager',phone:'+1 609 520 7584',fax:'+1 609 520 7030',email:'john.lecky@dowjones.com',address:address.princeton},{id:'Meyer',contact:'Lisa Meyer',title:'Senior Manager, Business Development',phone:'+1 609 520 4642',fax:'+1 609 520 7030',email:'Lisa.Meyer@dowjones.com',address:address.princeton}]},{id:'north-america-djw',name:'North America - Benchmark Data Licensing',contacts:[{id:'kerr',contact:'Patrick Kerr',title:'Sales Director',phone:'+1 609 520 7360',fax:'+1 609 520 7030',email:'patrick.kerr@dowjones.com',address:address.princeton},{id:'daniels',contact:'Cheryl Daniels',title:'Senior Business Development Manager',phone:'+1 609 520 4639',fax:'+1 609 520 7030',email:'cheryl.daniels@dowjones.com',address:address.princeton},{id:'kowalke',contact:'Kamila Kowalke',title:'Regional Director',phone:'',fax:'',email:'kamila.kowolke@dowjones.com',address:''}]}]},{id:'latin-america',name:'Latin America',territory:[{id:'latin-america',name:'Latin America',contacts:[{id:'Meyer',contact:'Lisa Meyer',title:'Senior Manager, Business Development',phone:'+1 609 520 4642',fax:'+1 609 520 7030',email:'Lisa.Meyer@dowjones.com',address:address.princeton}]},{id:'mexico',name:'Mexico',contacts:[{id:'garces',contact:'Marcela Garces',title:'Sales Executive',phone:'+52-55-5080-3462',fax:'+52-55-5208-2725',email:'marcela.garces@dowjones.com',address:address.mexico}]}]},{id:'europe',name:'Europe',territory:[{id:'europe',name:'Europe',contacts:[{id:'winslade',contact:'Jon Winslade',title:'Director, European Business Development',phone:'+44 (0)20 7842 9687',fax:'+44 (0)20 7842 9650',email:'jon.winslade@dowjones.com',address:address.unitedKingdom2}]},{id:'france',name:'BE, FR, GR, IL, IT, TR, Africa',contacts:[{id:'grimaldi',contact:'Rosanna Grimaldi',title:'Director Business Dev',phone:'+33 1 4070 8004',fax:'+33 1 4070 9695',email:'rosanna.grimaldi@stoxx.com',address:address.france}]},{id:'spain',name:'ES, PT',contacts:[{id:'Octavio',contact:'Helena Octavio',title:'Regional Director',phone:'+34 91 395 8128',fax:'+34 91 441 1596',email:'helena.octavio@stoxx.com',address:address.spain}]},{id:'frankfurt',name:'AT, CH, DE, LU, Eastern Europe',contacts:[{id:'thomas',contact:'Dr. Markus Thomas',title:'Regional Director',phone:'+49 69 2972 5296',fax:'+41 58 854 3307',email:'markus,thomas@stoxx.com',address:address.frankfurt}]},{id:'united-kingdom',name:'IE, NL, UK',contacts:[{id:'Baskett',contact:'Shaun Baskett ',title:'Regional Director',phone:'+44 207 864 4343',fax:'+44 207 864 4380',email:'shaun.baskett@stoxx.com',address:address.unitedKingdom}]},{id:'sweden',name:'Nordic, Baltic, RU and UA',contacts:[{id:'woler',contact:'Peter W&ouml;lger',title:'Regional Director',phone:'+46 (0)8 5451 3120',fax:'+41 (0)58 854 3133',email:'peter.wolger@stoxx.com',address:address.sweden}]},{id:'switzerland',name:'Customized Products',contacts:[{id:'raju',contact:'Sudir Raju',title:'Manager',phone:'+41 58 854 2456',fax:'+41 58 854 3456',email:'sudir.raju@stoxx.com',address:address.switzerland}]}]},{id:'asia-pacific',name:'Asia Pacific',territory:[{id:'hong-kong',name:'Asia/Pacific',contacts:[{id:'sultan',contact:'Ariff Sultan',title:'Business Development Director, Asia &amp; Islamic',phone:'+65 6415 4262',fax:'+65 6225 0649 ',email:'ariff.sultan@dowjones.com',address:address.singapore},{id:'yeung',contact:'Anthony Yeung',title:'Regional Director, Asia/Pacific',phone:'+852 2831 2580',fax:'+852 2575 8916',email:'anthony.yeung@dowjones.com',address:address.hongKong}]}]},{id:'middle-east',name:'Middle East',territory:[{id:'',name:'',contacts:[{id:'corrin',contact:'Steve Corrin',title:'Business Development Director',phone:'+971 4 364-4960',fax:'+971 4 429-0501',email:'steve.corrin@dowjones.com',address:address.dubai},{id:'alRifai',contact:'Tariq al-Rifai',title:'Director - Islamic Market Indexes',phone:'+971 4 364-4960',fax:'+971 4 429-0501',email:'Tariq.AlRifai@dowjones.com',address:address.dubai}]}]}]};var regions,offices,regionTemplate,territoryTemplate,contactDialog,contactContentPanel,contactFormPanel,contactInnerLayout;var regionDiv='regions';var template={region:['<div class="region {expanded}">{regionName}</div>','<div id="region-{regionId}" class="territory {expanded}"></div>'],territory:['<ul>','<li id="territory-{territoryId}">{territoryName}</li>','</ul>'],office:['<ul id="office-{territoryId}" class="contact"></ul>'],contact:['<li id="contact-{contactId}" class="person" title="Click here for more information on {name}">','{name} ({title})','<div class="contact-details">','<div id="contact-record">','<span class="name">{name}</span><br/>','<span class="title">{title}</span><br/><br/>','<a href="mailto:{email}">{email}</a><br/>','Phone: {phone}<br/>','Fax: {fax}<br/>','{address}','</div></div>','</li>']};return{init:function(){regions=Ext.get(regionDiv);regionTemplate=new Ext.Template(template.region);territoryTemplate=new Ext.Template(template.territory);officeTemplate=new Ext.Template(template.office);contactTemplate=new Ext.Template(template.contact);Ext.each(config.regions,this.createRegion,this);this.createDialog();this.attachListeners()},attachListeners:function(){Ext.select('div.region',true).on('click',this.handleRegionClick,this);Ext.select('li.person',true).on('click',this.handleContactClick,this)},handleRegionClick:function(e,el){var toggleClass='expanded';var targetEl=Ext.get(e.target);var territory=targetEl.getNextSibling();targetEl.toggleClass(toggleClass).getNextSibling();Ext.get(territory).toggleClass(toggleClass)},handleContactClick:function(e,el){var targetEl=Ext.get(e.target);var details=Ext.select('div.contact-details',true,e.target);var detailsText='Details for this contact could not be found.';if(details.elements.length>0){detailsText=details.elements[0].dom.innerHTML}this.displayContactDetails(detailsText,e.target)},displayContactDetails:function(d,target){try{contactContentPanel.setContent(d);contactDialog.show(target)}catch(e){}DJIndexes.Utils.toggleFlash(DJIndexes.flashToToggle,false)},hideContactDetail:function(){contactDialog.hide();DJIndexes.Utils.toggleFlash(DJIndexes.flashToToggle,true)},createRegion:function(r){regionTemplate.append(regions,{regionName:r.name,regionId:r.id,expanded:(r.expanded)?'expanded':''});Ext.each(r.territory,function(t){var el=Ext.get('region-'+r.id);territoryTemplate.append(el,{territoryName:t.name,territoryId:t.id});var tEl=Ext.get('territory-'+t.id);officeTemplate.append(tEl,{territoryId:t.id});Ext.each(t.contacts,function(c){var el=Ext.get('office-'+t.id);contactTemplate.append(el,{contactId:c.id,name:c.contact,title:c.title,phone:c.phone,fax:c.fax,email:c.email,address:DJIndexes.WorldwideOffices.createAddress(c.address)})},this)})},createAddress:function(a){var output='';for(var i=0;i<a.length;i++){output+='<br/>'+a[i]}return output},createDialog:function(){contactDialog=new Ext.LayoutDialog('contact-dialog',{autoCreate:true,modal:true,resizable:false,collapsible:false,shadow:true,proxyDrag:true,fixedcenter:true,draggable:true,title:config.defaultDialogTitle,width:config.defaultDialogWidth,height:config.defaultDialogHeight,center:{alwaysShowTabs:false}});contactContentPanel=new Ext.ContentPanel('contactContentPanel',{autoCreate:true,fitToFrame:true,autoScroll:false,loadOnce:true});contactFormPanel=new Ext.ContentPanel('contactFormPanel',{autoCreate:true,fitToFrame:true,autScroll:false,loadOnce:true});contactInnerLayout=new Ext.BorderLayout('contact-dialog-inner-layout',{north:{autoScroll:false,split:false,initialSize:240,minSize:210,titleBar:false,collapsible:false,collapsed:false},south:{autoScroll:false,split:false,initialSize:300,minSize:22,maxSize:300,titlebar:true,title:'Send a note to this contact',collapsible:true,collapsed:true,collapsedTitle:'Open to send a note',animate:true,autoHide:true}});contactInnerLayout.beginUpdate();contactInnerLayout.add('north',contactContentPanel);contactInnerLayout.add('south',contactFormPanel);contactInnerLayout.endUpdate(true);var layout=contactDialog.getLayout();layout.beginUpdate();layout.add('center',new Ext.NestedLayoutPanel(contactInnerLayout,{}));layout.endUpdate();contactDialog.addKeyListener(27,this.hideContactDetail,contactDialog);var innerLayout=layout.getRegion('center').getPanel(0).getLayout();var south=innerLayout.getRegion('south');south.on('expanded',this.handleRegionSlide);south.on('collapsed',this.handleRegionSlide);south.on('invalidated',this.handleRegionInvalidated);innerLayout.showPanel(0)},handleRegionSlide:function(region){var width=config.defaultDialogWidth;var height=config.defaultDialogHeight;if(region.isSlid||!region.collapsed){width=config.enlargedDialogWidth;height=config.enlargedDialogHeight}contactDialog.resizeTo(width,height)},handleRegionInvalidated:function(region){contactDialog.resizeTo(contactDialog.height,contactDialog.width)},debugRegion:function(r){var t=r.territory;console.warn('Region: '+r.name);for(var i=0;i<t.length;i++){this.debugTerritory(t[i])}},debugTerritory:function(t){console.info('Territory: '+t.name)},debug:function(){console.info(arguments)}}}();Ext.onReady(DJIndexes.WorldwideOffices.init,DJIndexes.WorldwideOffices);DJIndexes.WorldwideOffices.ContactForm=function(){var form;var config={debugMode:window.debugMode||false,formDiv:'contactFormPanel',fieldWidth:350,dataStore:[],postURL:'/DataProxy/ContactForm.cfc',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']],messages:{missing:{email:'Please enter your e-mail address',company:'Please enter your company name',name:'Please enter your full name',region:'Please tell us what region of the world you are in',subject:'Please select the subject of this inquiry',description:'Please enter your question or comment'},invalid:{form:'Please complete the information requested in the highlighted fields.',email:'The e-mail address you have entered is not properly formatted.'},submission:{success:{title:'Thank you',message:'Thank you for your inquiry. We will respond to you as soon as possible.'},failure:{title:'An error has occurred',message:'An error occurred while submitting your request, please try again.'}}}};return{init:function(){Ext.QuickTips.init();Ext.QuickTips.enable();this.createDataStore();this.createForm()},createDataStore:function(){config.dataStore['region']=new Ext.data.SimpleStore({fields:['regionId','regionName'],data:config.regions});config.dataStore['subject']=new Ext.data.SimpleStore({fields:['subjectId','subjectName'],data:config.subjects})},createForm:function(){form=new Ext.form.Form({url:config.postURL,method:'post',labelAlign:'right',baseParams:{method:'webToCase',debug:config.debugMode}});form.add(new Ext.form.TextField({name:'formName',value:'DJI Website Inquiry Form',inputType:'hidden',labelStyle:'display:none;'}),new Ext.form.TextField({fieldLabel:'Email Address',name:'email',allowBlank:false,blankText:config.messages.missing.email,width:config.fieldWidth,validator:this.validateEmail,validationDelay:500}),new Ext.form.TextField({fieldLabel:'Company',name:'company',allowBlank:false,blankText:config.messages.missing.company,width:config.fieldWidth}),new Ext.form.TextField({fieldLabel:'Name',name:'name',allowBlank:false,blankText:config.messages.missing.name,width:config.fieldWidth}),new Ext.form.ComboBox({fieldLabel:'Region',name:'region',allowBlank:false,blankText:config.messages.missing.region,width:config.fieldWidth,triggerAction:'all',forceSelection:true,store:config.dataStore.region,displayField:'regionName',valueField:'regionId',emptyText:'select one...'}),new Ext.form.ComboBox({fieldLabel:'Subject',name:'subject',allowBlank:false,blankText:config.messages.missing.subject,width:config.fieldWidth,triggerAction:'all',forceSelection:true,store:config.dataStore.subject,displayField:'subjectName',valueField:'subjectId',emptyText:'select one...'}),new Ext.form.TextArea({fieldLabel:'Comments',name:'description',allowBlank:false,blankText:config.messages.missing.description,width:config.fieldWidth,height:100}));form.addButton({text:'SEND',type:'submit',scope:this,handler:this.validateForm});form.addButton({text:'Cancel',type:'reset',scope:this,handler:this.resetForm});form.on('actioncomplete',function(){this.displayMessage(config.messages.submission.success);this.resetForm()},this);form.on('actionfailed',function(){this.displayMessage(config.messages.submission.failure)},this);form.render(config.formDiv)},validateForm:function(){if(form.isValid()){form.submit()}else{Ext.Msg.alert('Missing Data',config.messages.invalid.form)}},validateEmail:function(emailAddress){var emailRE=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;return(emailRE.test(emailAddress))?true:config.messages.invalid.email},resetForm:function(){form.reset()},displayMessage:function(o){Ext.Msg.alert(o.title,o.message)}}}();Ext.onReady(DJIndexes.WorldwideOffices.ContactForm.init,DJIndexes.WorldwideOffices.ContactForm);