var menuData = { // construction du menu en notation JSON menuObject : [ { id:'18872', label:"Marktinformatie",url_href:'',children: [ { id:'18918', label:"Overzicht",url_href:'/landing/productLookup-18918-NL.html',children: [ ]}, { id:'1615', label:"Euronext N.V. Financials",url_href:'',children: [ { id:'1969', label:"Home",url_href:'/aboutus/investor/investor-1969-NL.html',children : [ ]}, { id:'8511', label:"NYSE Euronext merger history",url_href:'',children : [ { id:'8660', label:"Offer",url_href:'/editorial/wide/editorial-8661-NL.html', children: []}, { id:'7703', label:"Regulatory Filings",url_href:'/editorial/wide/editorial-7703-NL.html', children: []} ]}, { id:'1963', label:"Euronext N.V.",url_href:'',children : [ { id:'1947', label:"Geschiedenis",url_href:'/editorial/wide/editorial-1993-NL.html', children: []} ]}, { id:'1966', label:"IR archives",url_href:'',children : [ { id:'2032', label:"Resultaten",url_href:'/aboutus/documentation/documentation-2032-NL.html', children: []}, { id:'2029', label:"Jaarverslagen",url_href:'/editorial/wide/editorial-2029-NL.html', children: []}, { id:'2024', label:"Jaarvergadering",url_href:'/editorial/wide/editorial-2024-NL.html', children: []}, { id:'2031', label:"Prospectus AMF",url_href:'/editorial/wide/editorial-2031-NL.html', children: []} ]} ]}, { id:'12508', label:"Global Market Data",url_href:'',children: [ { id:'12702', label:"Overzicht",url_href:'/landing/landingGeneral-12702-NL.html',children : [ ]}, { id:'2412', label:"Selection",url_href:'',children : [ { id:'3290', label:"Contracten",url_href:'/editorial/wide/editorial-3290-NL.html', children: []}, { id:'3989', label:"Tarieven",url_href:'/editorial/wide/editorial-3989-NL.html', children: []}, { id:'2403', label:"Technical documentation",url_href:'/editorial/wide/editorial-3988-NL.html', children: []} ]} ]}, { id:'59119', label:"Prime Source",url_href:'',children: [ { id:'59120', label:"About Prime Source",url_href:'/landing/landingGeneral-59120-NL.html',children : [ ]}, { id:'59121', label:"A comprehensive offer",url_href:'',children : [ { id:'59126', label:"An informed choice",url_href:'/landing/landingGeneral-59126-NL.html', children: []}, { id:'59127', label:"A unique combination of services",url_href:'/landing/landingGeneral-59127-NL.html', children: []}, { id:'59128', label:"Bespoke solutions",url_href:'/landing/landingGeneral-59128-NL.html', children: []} ]}, { id:'59718', label:"Prime Source Integral",url_href:'',children : [ { id:'59122', label:"An independent valuation service",url_href:'/landing/landingGeneral-59122-NL.html', children: []}, { id:'59720', label:"The Integral process",url_href:'/landing/landingGeneral-59720-NL.html', children: []} ]}, { id:'59719', label:"Prime Source Echo",url_href:'',children : [ { id:'59123', label:"A swift and simple valuation solution",url_href:'/landing/landingGeneral-59123-NL.html', children: []}, { id:'59721', label:"The Echo process",url_href:'/landing/landingGeneral-59721-NL.html', children: []}, { id:'158920', label:"Contributors",url_href:'/editorial/wide/editorial-158920-NL.html', children: []} ]}, { id:'59124', label:"Publicaties",url_href:'/landing/landingGeneral-59124-NL.html',children : [ ]}, { id:'60368', label:"Prime Source in 30’’",url_href:'/editorial/wide/editorial-60368-NL.html',children : [ ]}, { id:'59125', label:"Contact",url_href:'/landing/landingGeneral-59125-NL.html',children : [ ]} ]}, { id:'12507', label:"Indices",url_href:'',children: [ { id:'12701', label:"Overzicht",url_href:'/landing/equitiesOP-12701-NL.html',children : [ ]}, { id:'8810', label:"Indexnieuws",url_href:'',children : [ { id:'8811', label:"Nieuwe indices",url_href:'/editorial/wide/editorial-8812-NL.html', children: []}, { id:'1729', label:"Indexnieuws",url_href:'/news/allnews/productnews/news-1729-NL.html', children: []} ]}, { id:'1908', label:"Index reglementen",url_href:'/editorial/documentation/wide/documents-1908-NL.html',children : [ ]}, { id:'1702', label:"Global indices",url_href:'',children : [ { id:'1864', label:"Global indices",url_href:'/trader/indices/globalIndices-1864-NL.html', children: []}, { id:'1866', label:"Marktoverzicht",url_href:'/trader/marketwatch/marketwatch-2915-NL.html', children: []}, { id:'1863', label:"Koersen",url_href:'/trader/priceslists/priceslistsindices-1863-NL.html', children: []}, { id:'1867', label:"Indexsamenstelling",url_href:'/trader/indicescomposition/allindices-1867-NL.html', children: []}, { id:'1868', label:"Licenties",url_href:'/editorial/wide/editorial-1868-NL.html', children: []}, { id:'1865', label:"Nieuws",url_href:'/news/notices/notices-2750-NL.html', children: []} ]}, { id:'1700', label:"Nationale indices",url_href:'',children : [ { id:'1876', label:"Nationale indices",url_href:'/trader/indices/nationalIndices-1876-NL.html', children: []}, { id:'1875', label:"Marktoverzicht",url_href:'/trader/marketwatch/marketwatch-2935-NL.html', children: []}, { id:'1879', label:"Koersen",url_href:'/trader/priceslists/priceslistsindices-1879-NL.html', children: []}, { id:'1878', label:"Indexsamenstelling",url_href:'/trader/indicescomposition/compoindices_national-1878-NL.html', children: []}, { id:'1877', label:"Licenties",url_href:'/editorial/wide/editorial-1877-NL.html', children: []}, { id:'1874', label:"Nieuws",url_href:'/news/notices/notices-2766-NL.html', children: []} ]}, { id:'1703', label:"Sectorindices",url_href:'',children : [ { id:'1906', label:"Sectorindices",url_href:'/trader/indices/sectorialIndices-1906-NL.html', children: []}, { id:'1907', label:"Marktoverzicht",url_href:'/trader/marketwatch/marketwatch-2908-NL.html', children: []}, { id:'1904', label:"Koersen",url_href:'/trader/priceslists/priceslistsindices-1904-NL.html', children: []}, { id:'1909', label:"Indexsamenstelling",url_href:'/trader/indicescomposition/allindices_sectorialindices-1909-NL.html', children: []}, { id:'1905', label:"Licenties",url_href:'/editorial/wide/editorial-1905-NL.html', children: []}, { id:'1902', label:"Nieuws",url_href:'/news/notices/notices-2772-NL.html', children: []}, { id:'1903', label:"ICB classificatie",url_href:'/trader/productinfo/ftseclassification/ftseclassification-1903-NL.html', children: []} ]}, { id:'1701', label:"Overige indices",url_href:'',children : [ { id:'1883', label:"Overige indices",url_href:'/trader/indices/otherIndices-1883-NL.html', children: []}, { id:'1827', label:"Volatility indices",url_href:'/editorial/wide/editorial-3955-NL.html', children: []}, { id:'1880', label:"Licenties",url_href:'/editorial/wide/editorial-1880-NL.html', children: []}, { id:'1884', label:"Nieuws",url_href:'/news/notices/notices-2850-NL.html', children: []} ]}, { id:'7321', label:"Statistieken",url_href:'',children : [ { id:'7345', label:"Overzicht",url_href:'/editorial/wide/editorial-7345-NL.html', children: []}, { id:'7347', label:"Global",url_href:'/editorial/wide/editorial-7347-NL.html', children: []}, { id:'7346', label:"Amsterdam",url_href:'/editorial/wide/editorial-7346-NL.html', children: []}, { id:'7348', label:"Brussel",url_href:'/editorial/wide/editorial-7348-NL.html', children: []}, { id:'7349', label:"Lissabon",url_href:'/editorial/wide/editorial-7349-NL.html', children: []}, { id:'7350', label:"Parijs",url_href:'/editorial/wide/editorial-7350-NL.html', children: []} ]}, { id:'2404', label:"Indexdiensten",url_href:'',children : [ { id:'3974', label:"Indexdiensten",url_href:'/editorial/wide/editorial-3974-NL.html', children: []}, { id:'3975', label:"Koersinformatiemodules",url_href:'/editorial/wide/editorial-3975-NL.html', children: []}, { id:'3976', label:"Index File Service",url_href:'/editorial/wide/editorial-3976-NL.html', children: []}, { id:'3978', label:"Licenties",url_href:'/editorial/wide/editorial-3978-NL.html', children: []}, { id:'3977', label:"Customized indices",url_href:'/editorial/wide/editorial-3977-NL.html', children: []}, { id:'3994', label:"Orders plaatsen",url_href:'/editorial/wide/editorial-3994-NL.html', children: []} ]} ]}, { id:'20563', label:"Statistieken",url_href:'',children: [ { id:'8301', label:"Overzicht",url_href:'/statisticscentre/landing/statistics-8301-NL.html',children : [ ]}, { id:'20565', label:"Effecten",url_href:'',children : [ { id:'20767', label:"Periode/onderwerp",url_href:'/editorial/wide/editorial-20770-NL.html', children: []}, { id:'20768', label:"Per locatie",url_href:'/editorial/wide/editorial-20786-NL.html', children: []}, { id:'20769', label:"Beëindigde rapportages",url_href:'/editorial/wide/editorial-20769-NL.html', children: []} ]}, { id:'20566', label:"Futures/Opties",url_href:'',children : [ { id:'20792', label:"Periode/onderwerp",url_href:'/editorial/wide/editorial-20795-NL.html', children: []}, { id:'20793', label:"Per locatie",url_href:'/editorial/wide/editorial-20801-NL.html', children: []}, { id:'20794', label:"Beëindigde rapportages",url_href:'/editorial/wide/editorial-20794-NL.html', children: []} ]}, { id:'20567', label:"Indices",url_href:'',children : [ { id:'21919', label:"Per locatie",url_href:'/editorial/wide/editorial-20779-NL.html', children: []} ]} ]} ]} ], // méthodes de construction du menu en HTML referenceChannel : undefined, anchorElement : undefined, focusedElement : undefined, channelIDSelected : undefined, hasVisibleNodeChildren : false, buildMenu : function(elt, visibleNode) { menuData.anchorElement = elt; menuData.channelIDSelected = visibleNode ; menuData.buildSubMenu(elt, menuData.menuObject, 1); menuData.anchorElement.select("li.extensible").each(function(item) { item.addClassName("collapsed"); item.addClassName("collapsed-level"+item.level); }); var referenceChannel=$(visibleNode); menuData.focusedElement = $(visibleNode) ; if (referenceChannel != undefined && referenceChannel != null) { level = referenceChannel.level ; if ( ! menuData.hasVisibleNodeChildren && (level == 2 || level == 3 || level == 4)) referenceChannel.addClassName("focusedLevel"+level) ; else if (level == 1) referenceChannel.addClassName("focused"); if (!referenceChannel.hasClassName("extensible")) referenceChannel = referenceChannel.up("li.extensible"); if (referenceChannel != undefined) { referenceChannel.expandMenu(); menuData.referenceChannel = referenceChannel; } } menuData.anchorElement.observe("click", menuClickObserver); $(document).observe("mouseover", menuOverObserver); }, buildSubMenu : function(elt, children, level) { var ul = new Element("ul"); children.each(function(item) { var li = new Element("li", {id : item.id}); li.level=level; if (item.children.length > 0) { if (item.id == menuData.channelIDSelected) menuData.hasVisibleNodeChildren = true ; li.update("
"+item.label+"
"); li.addClassName("extensible"); li.collapseMenu=menuFct.collapseMenu; li.expandMenu=menuFct.expandMenu; var subUl = menuData.buildSubMenu(li, item.children, level+1); subUl.hide(); } else li.update("
"+item.label+"
"); ul.insert(li); }); elt.insert(ul); return ul; } }; var menuFct = { collapseMenu : function () { var elt = $(this); if (elt.hasClassName("collapsed")) return; elt.removeClassName("expanded"); elt.removeClassName("expanded-level"+elt.level); elt.addClassName("collapsed"); elt.addClassName("collapsed-level"+elt.level); var toHide = elt.childElements()[1]; Effect.BlindUp(toHide, { duration: 0.2 }); // collapse children recursively elt.select('li.expanded').each(function(child) { child.collapseMenu() ; }) ; }, expandMenu : function () { var elt = $(this); // expand if not done yet if (!elt.hasClassName("expanded")) { elt.addClassName("expanded"); elt.addClassName("expanded-level"+elt.level); elt.removeClassName("collapsed"); elt.removeClassName("collapsed-level"+elt.level); var toShow = elt.childElements()[1]; Effect.BlindDown(toShow, { duration: 0.3 }); } // collapse sibblings elt.siblings().each(function(sib) { if (sib.match("li.extensible", "expanded")) sib.collapseMenu(); }); // expand father recursively var fatherToExpand = elt.up('.extensible'); if (fatherToExpand != undefined) fatherToExpand.expandMenu(); } }; var backToRefID = null; function menuOverObserver(e) { var element = Event.element(e); if (element.descendantOf(menuData.anchorElement)) // Over menu { // Just entered -> Cancel the back to reference channel callback if (backToRefID != null) { clearTimeout(backToRefID); backToRefID = null; } } // Not over menu and trigger not set yet else if (backToRefID == null) { // Trigger the back to reference channel callback backToRefID = setTimeout(function() { // open the reference node if (menuData.referenceChannel != undefined) { menuData.referenceChannel.expandMenu(); // collpase the children of the reference element menuData.referenceChannel.select('.expanded').each(function(child) { child.collapseMenu() ; }) ; } // collapse the brothers of the active element if (menuData.focusedElement != undefined) { menuData.focusedElement.siblings().each(function(sib) { if (sib.match("li.extensible", "expanded")) sib.collapseMenu() ; }) ; } }, 5000); } } function menuClickObserver(e) { var elt = Event.element(e); // Skip links if (elt.match("a div")||elt.match("a")) return; // Get the first extensible parent var extensibleParent = elt.match("li.extensible")?elt:elt.up("li.extensible"); // If not found, we're not in the menu if (extensibleParent == undefined) return; if (extensibleParent.expandMenu != undefined) // If found { if (extensibleParent.hasClassName("expanded")) extensibleParent.collapseMenu(); else extensibleParent.expandMenu(); e.stop(); } }