var menuData = { // construction du menu en notation JSON menuObject : [ { id:'18872', label:"Information marchés",url_href:'',children: [ { id:'18918', label:"Présentation",url_href:'/landing/productLookup-18918-FR.html',children: [ ]}, { id:'1615', label:"Euronext N.V. données financières",url_href:'',children: [ { id:'1969', label:"Accueil",url_href:'/aboutus/investor/investor-1969-FR.html',children : [ ]}, { id:'8511', label:"NYSE Euronext historique fusion",url_href:'',children : [ { id:'8660', label:"Offre",url_href:'/editorial/wide/editorial-8661-FR.html', children: []}, { id:'7703', label:"Enregistrements réglementaires",url_href:'/editorial/wide/editorial-7703-FR.html', children: []} ]}, { id:'1963', label:"Euronext N.V.",url_href:'',children : [ { id:'1947', label:"Historique",url_href:'/editorial/wide/editorial-1993-FR.html', children: []} ]}, { id:'1966', label:"Archives IR",url_href:'',children : [ { id:'2032', label:"Résultats",url_href:'/aboutus/documentation/documentation-2032-FR.html', children: []}, { id:'2029', label:"Rapports annuels",url_href:'/editorial/wide/editorial-2029-FR.html', children: []}, { id:'2024', label:"Assemblées actionnaires",url_href:'/editorial/wide/editorial-2024-FR.html', children: []}, { id:'2031', label:"Prospectus AMF",url_href:'/editorial/wide/editorial-2031-FR.html', children: []} ]} ]}, { id:'12508', label:"Global Market Data",url_href:'',children: [ { id:'12702', label:"Présentation",url_href:'/landing/landingGeneral-12702-FR.html',children : [ ]}, { id:'2412', label:"Sélection",url_href:'',children : [ { id:'3290', label:"Contrats",url_href:'/editorial/wide/editorial-3290-FR.html', children: []}, { id:'3989', label:"Redevances",url_href:'/editorial/wide/editorial-3989-FR.html', children: []}, { id:'2403', label:"Technical documentation",url_href:'/editorial/wide/editorial-3988-FR.html', children: []} ]} ]}, { id:'170620', label:"Mobile quotes",url_href:'/editorial/wide/editorial-170620-FR.html',children: [ ]}, { id:'12507', label:"Indices",url_href:'',children: [ { id:'12701', label:"Présentation",url_href:'/landing/equitiesOP-12701-FR.html',children : [ ]}, { id:'8810', label:"Actualité indices",url_href:'',children : [ { id:'8811', label:"Nouveaux indices",url_href:'/editorial/wide/editorial-8812-FR.html', children: []}, { id:'1729', label:"Actualité indices",url_href:'/news/allnews/productnews/news-1729-FR.html', children: []}, { id:'40169', label:"Evénements",url_href:'/editorial/wide/editorial-40169-FR.html', children: []} ]}, { id:'1908', label:"Règles de gestion",url_href:'/editorial/documentation/wide/documents-1908-FR.html',children : [ ]}, { id:'278277', label:"Language Translator",url_href:'/landing/landingGeneral-278277-FR.html',children : [ ]}, { id:'1702', label:"Indices globaux",url_href:'',children : [ { id:'1864', label:"Indices globaux",url_href:'/trader/indices/globalIndices-1864-FR.html', children: []}, { id:'1866', label:"Indicateurs de marché",url_href:'/trader/marketwatch/marketwatch-2915-FR.html', children: []}, { id:'1863', label:"Cours",url_href:'/trader/priceslists/priceslistsindices-1863-FR.html', children: []}, { id:'1867', label:"Composition indices",url_href:'/trader/indicescomposition/allindices-1867-FR.html', children: []}, { id:'1868', label:"Licences",url_href:'/editorial/wide/editorial-1868-FR.html', children: []}, { id:'1865', label:"Actualité",url_href:'/news/notices/notices-2750-FR.html', children: []} ]}, { id:'1700', label:"Indices nationaux",url_href:'',children : [ { id:'1876', label:"Indices nationaux",url_href:'/trader/indices/nationalIndices-1876-FR.html', children: []}, { id:'1875', label:"Indicateurs de marché",url_href:'/trader/marketwatch/marketwatch-2935-FR.html', children: []}, { id:'1879', label:"Cours",url_href:'/trader/priceslists/priceslistsindices-1879-FR.html', children: []}, { id:'1878', label:"Composition indices",url_href:'/trader/indicescomposition/compoindices_national-1878-FR.html', children: []}, { id:'1877', label:"Licences",url_href:'/editorial/wide/editorial-1877-FR.html', children: []}, { id:'1874', label:"Actualité",url_href:'/news/notices/notices-2766-FR.html', children: []} ]}, { id:'1703', label:"Indices sectoriels",url_href:'',children : [ { id:'1906', label:"Indices sectoriels",url_href:'/trader/indices/sectorialIndices-1906-FR.html', children: []}, { id:'1907', label:"Indicateurs de marché",url_href:'/trader/marketwatch/marketwatch-2908-FR.html', children: []}, { id:'1904', label:"Cours",url_href:'/trader/priceslists/priceslistsindices-1904-FR.html', children: []}, { id:'1909', label:"Composition indices",url_href:'/trader/indicescomposition/allindices_sectorialindices-1909-FR.html', children: []}, { id:'1905', label:"Licences",url_href:'/editorial/wide/editorial-1905-FR.html', children: []}, { id:'1902', label:"Actualité",url_href:'/news/notices/notices-2772-FR.html', children: []}, { id:'1903', label:"Classification ICB",url_href:'/trader/productinfo/ftseclassification/ftseclassification-1903-FR.html', children: []} ]}, { id:'1701', label:"Autres indices",url_href:'',children : [ { id:'1883', label:"Autres indices",url_href:'/trader/indices/otherIndices-1883-FR.html', children: []}, { id:'1827', label:"Indices de volatilité",url_href:'/editorial/wide/editorial-3955-FR.html', children: []}, { id:'1880', label:"Licences",url_href:'/editorial/wide/editorial-1880-FR.html', children: []}, { id:'1884', label:"Actualité",url_href:'/news/notices/notices-2850-FR.html', children: []} ]}, { id:'7321', label:"Statistiques",url_href:'',children : [ { id:'7345', label:"Résumé",url_href:'/editorial/wide/editorial-7345-FR.html', children: []}, { id:'7347', label:"Global",url_href:'/editorial/wide/editorial-7347-FR.html', children: []}, { id:'7346', label:"Amsterdam",url_href:'/editorial/wide/editorial-7346-FR.html', children: []}, { id:'7348', label:"Bruxelles",url_href:'/editorial/wide/editorial-7348-FR.html', children: []}, { id:'7349', label:"Lisbonne",url_href:'/editorial/wide/editorial-7349-FR.html', children: []}, { id:'7350', label:"Paris",url_href:'/editorial/wide/editorial-7350-FR.html', children: []} ]}, { id:'2404', label:"Services Indices",url_href:'',children : [ { id:'3974', label:"Services Indices",url_href:'/editorial/wide/editorial-3974-FR.html', children: []}, { id:'3975', label:"Modules données de marché",url_href:'/editorial/wide/editorial-3975-FR.html', children: []}, { id:'3976', label:"Index File Service",url_href:'/editorial/wide/editorial-3976-FR.html', children: []}, { id:'3978', label:"Licences",url_href:'/editorial/wide/editorial-3978-FR.html', children: []}, { id:'3977', label:"Indices à la carte",url_href:'/editorial/wide/editorial-3977-FR.html', children: []}, { id:'3994', label:"Commande",url_href:'/editorial/wide/editorial-3994-FR.html', children: []} ]} ]}, { id:'20784', label:"OPC – Official list",url_href:'/editorial/wide/editorial-20784-FR.html',children: [ ]}, { id:'20563', label:"Statistiques",url_href:'',children: [ { id:'8301', label:"Présentation",url_href:'/statisticscentre/landing/statistics-8301-FR.html',children : [ ]}, { id:'20565', label:"Actions/Structurés",url_href:'',children : [ { id:'20767', label:"Par période/thème",url_href:'/editorial/wide/editorial-20770-FR.html', children: []}, { id:'20768', label:"Par région",url_href:'/editorial/wide/editorial-20786-FR.html', children: []}, { id:'20769', label:"Anciens rapports ",url_href:'/editorial/wide/editorial-20769-FR.html', children: []} ]}, { id:'20566', label:" Dérivés ",url_href:'',children : [ { id:'20792', label:"Par période/thème",url_href:'/editorial/wide/editorial-20795-FR.html', children: []}, { id:'20793', label:"Par région",url_href:'/editorial/wide/editorial-20801-FR.html', children: []}, { id:'20794', label:"Anciens rapports ",url_href:'/editorial/wide/editorial-20794-FR.html', children: []} ]}, { id:'20567', label:"Indices",url_href:'',children : [ { id:'21919', label:"Par région",url_href:'/editorial/wide/editorial-20779-FR.html', children: []} ]} ]} ]} ], // méthodes de construction du menu en HTML referenceChannel : undefined, anchorElement : undefined, focusedElement : undefined, channelIDSelected : undefined, hasVisibleNodeChildren : false, buildMenu : function(elt, visibleNode) { var frag = document.createDocumentFragment(); var oldNode = elt.cloneNode(false); menuData.anchorElement = oldNode; menuData.channelIDSelected = visibleNode ; //menuData.buildSubMenu(elt, menuData.menuObject, 1); menuData.buildSubMenu(oldNode, menuData.menuObject, 1); frag.appendChild(oldNode); elt.parentNode.replaceChild(frag,elt); menuData.anchorElement.select("li.extensible").each(function(item) { item.addClassName("collapsed"); item.addClassName("collapsed-level"+item.level); }); var referenceChannel= $(visibleNode); menuData.focusedElement = referenceChannel; 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(); } }