var lang = "EN"; var isSelected = false; var nodeId; Menu = Class.create(); Menu.prototype = { initialize: function(data) { this.data = data; this.listItemTemplate = $('mm-mi'); this.listParent = $('main-menu'); this.listItemSubTemplate = $('sm-mi'); this.listParentSub = $('sub-menu'); this.listItemTopTemplate = $('tm-img'); this.language = "EN"; this.altparams = "&id=19038&company=all"; this.test = true; this.selectSiteId; this.isSelected = false; this.topMenuImageNode; this.loadThePage = true; this.isDeep = true; this.level2ActiveNodeId; this.level3ActiveNodeId; this.activeNode; this.holdingColor = "#e0e0e0"; this.mtfColor = "#d0e2ee"; //if (this.selectedColor != null) { this.selectedColor = this.holdingColor //} // Remove template from document if(this.listParent != null && this.listItemTemplate != null){ this.listItemTemplate.parentNode.removeChild(this.listItemTemplate); } // Remove template from document if(this.listParentSub != null && this.listItemSubTemplate != null){ this.listItemSubTemplate.parentNode.removeChild(this.listItemSubTemplate); } // Remove template from document if(this.listItemTopTemplate != null){ this.listItemTopTemplate.parentNode.removeChild(this.listItemTopTemplate); } this.setTimeFooter(); this.getTopMenu(); }, turboRedirect : function(url) { //urchinTracker(url); $('ajaxframe').src = "Rebound.aspx?url=" + url + "&tick=" + new Date().getTime(); }, getTopMenu : function() { new Ajax.Request('js/MenuHandler.aspx?language=EN&menuid=&tick=' + new Date().getTime() +'&siteid=A', { method:'get', onSuccess: this.loadTopMenu.bind(this), onFailure: this.showError.bind(this) }); }, getTopMenuById : function(id , isDeep) { this.loadThePage = isDeep; this.isDeep = isDeep; new Ajax.Request('js/MenuHandler.aspx?language=' + lang +'&menuid='+ id +'&tick=' + new Date().getTime()+'&siteid=A', { method:'get', onSuccess: this.loadTopMenu.bind(this), onFailure: this.showError.bind(this) }); }, loadTopMenu : function(transport) { try{ this.transport = transport; var language = this.language; var menuNode = this.getDefaultMenuNodeByLanguage(language, transport.responseXML); this.renderMenuLevel(1, menuNode) }catch(e){ //var msg = "ErrorT: "+e.description; //alert(msg); }; }, renderMenuLevel : function (level, node) { var activeNode; var nodes = node.childNodes; if (level == 1) { $('top-menu-container').innerHTML = ""; } else if (level == 2) { this.listParent.innerHTML = ""; } else if (level == 3) { $('sub-menu').innerHTML = ""; } for (var i = 0; i < nodes.length ; i++ ) { var node = nodes[i]; if (node.getAttribute('isSelected') != null) { defaultNode = node.getAttribute('id'); activeNode = node; } if (! activeNode) { if (node.getAttribute('isDefault') != null) { defaultNode = node.getAttribute('id'); activeNode = node; } } if (level == 1) { if (activeNode) { this.selectSiteId = activeNode.getAttribute('id'); this.changeCSS(this.selectSiteId); } //this.loadThePage = true; if (nodes[i + 1] != null) { this.renderMenuLevel1(1, node, nodes[i + 1]); } else { this.renderMenuLevel1(1, node, null); } } else if (level == 2) { if (nodes[i + 1] != null) { this.renderMenuLevel1(2, node, nodes[i + 1]); } else { this.renderMenuLevel1(2, node, null); } } else if (level == 3) { if (nodes[i + 1] != null) { this.renderMenuLevel1(3, node, nodes[i + 1]); } else { this.renderMenuLevel1(3, node, null); } } } if (level == 1) { this.renderMenuLevel(2, activeNode); } else if (level == 2) { this.setActiveNodeBgColor($(this.level3ActiveNodeId)); this.renderMenuLevel(3, this.activeNode); } else if (level == 3) { this.setActiveNodeBgColor($(this.level3ActiveNodeId)); if (this.loadThePage) { var url; if (this.activeNode.getAttribute("url").indexOf("?") > 0) { url = this.activeNode.getAttribute("url") + "&page=" + this.activeNode.getAttribute("id") + "&language=" + this.language; } else { url = this.activeNode.getAttribute("url") + "?page=" + this.activeNode.getAttribute("id") + "&language=" + this.language; } url = this.activeNode.getAttribute("url").replace("?","&"); $('ajaxframe').src = "Rebound.aspx?url=" + url + "&page=" + this.activeNode.getAttribute("id") + "&language=" + this.language + "&by=level&listids="; //this.loadPage(url,this.activeNode.getAttribute('id'), true); } this.loadThePage = true; } }, renderMenuLevel1 : function (level, node, nextNode) { var htmlElement; var htmlElementTemplate; if (level == 1) { htmlElement = this.listItemTopTemplate; } else if (level == 2) { htmlElementTemplate = this.listItemTemplate; htmlElement = this.listParent; } else if (level == 3) { htmlElementTemplate = this.listItemSubTemplate; htmlElement = this.listParentSub; } var nodeIsActive = false; var link; if (node.getAttribute('img')) { var id = node.getAttribute('id'); var a = document.createElement('a'); var imgSplitter = document.createElement('img'); imgSplitter.src = "images/menu/topmenu_splitter_ngm.gif"; a.setAttribute('id',id); a.href = node.getAttribute('url'); a.setAttribute('breadcrums',node.getAttribute('breadcrums')); a.setAttribute('target',node.getAttribute('target')); var listNode = htmlElement.cloneNode(true); listNode.removeAttribute('id'); if (node.getAttribute('isSelected') != null) { this.isSelected = true; nodeIsActive = true; this.topMenuImageNode = node; listNode.src = node.getAttribute('imgActive'); this.activeNode = node; this.setFooterLevelA (node.getAttribute('breadcrums')); } if (! this.isSelected) { if (node.getAttribute('isDefault') == "true") { listNode.src = node.getAttribute('imgActive'); nodeIsActive = true; this.topMenuImageNode = node; this.setFooterLevelA (node.getAttribute('breadcrums')); } else { listNode.src = node.getAttribute('img'); } } else { if (node.getAttribute('isSelected') == null) { listNode.src = node.getAttribute('img'); } } a.appendChild(listNode,this); $('top-menu-container').appendChild(a,this); if (nextNode != null) { if (! nodeIsActive && nextNode.getAttribute('isDefault') == null && nextNode.getAttribute('isSelected') == null) { $('top-menu-container').appendChild(imgSplitter,this); } } } else if (node.getAttribute('text')) { if (node.getAttribute('isSelected') != null) { this.isSelected = true; defaultNode = node.getAttribute('id'); nodeIsActive = true; this.activeNode = node; this.level3ActiveNodeId = node.getAttribute('id'); } if (! this.isSelected) { if (node.getAttribute('isDefault') != null) { defaultNode = node.getAttribute('id'); nodeIsActive = true; this.level3ActiveNodeId = node.getAttribute('id'); this.activeNode = node; } } var listNode = htmlElementTemplate.cloneNode(true); listNode.removeAttribute('id'); var url = node.getAttribute('url'); htmlElement.appendChild(listNode); var text = node.getAttribute('text'); var id = node.getAttribute('id'); if(node.getAttribute('isvisible') != null){ listNode.style.display = (node.getAttribute('isvisible') == "true")?"block":"none"; } if (level == 2) { if (nodeIsActive) { this.setFooterLevelB (node.getAttribute('breadcrums')); } if(this.selectSiteId == "MTF" || this.selectSiteId == "MTF-EN") { $('imgSplitter').src = "images/menu/menu_splitter_mtf.gif"; }else{ $('imgSplitter').src = "images/menu/menu_splitter_ngm.gif"; } if (nextNode != null) { if (nodeIsActive) { this.level2ActiveNodeId = node.getAttribute('id'); if ($('imgSplitter') != null) { $('imgSplitter').src = "images/menu/menu_splitter_empty.gif"; $('imgSplitter').removeAttribute('id'); } } else if (nextNode.getAttribute('isDefault') != null || nextNode.getAttribute('isSelected') == null) { if (nextNode.getAttribute('isSelected') != null || nextNode.getAttribute('isDefault') != null) { if ($('imgSplitter') != null) { $('imgSplitter').src = "images/menu/menu_splitter_empty.gif"; $('imgSplitter').removeAttribute('id'); } } else { if ($('imgSplitter') != null) $('imgSplitter').removeAttribute('id'); } } else { if ($('imgSplitter') != null) { $('imgSplitter').src = "images/menu/menu_splitter_empty.gif"; $('imgSplitter').removeAttribute('id'); } } } else { if ($('imgSplitter') != null) { $('imgSplitter').src = "images/menu/menu_splitter_empty.gif"; $('imgSplitter').removeAttribute('id'); } } if ($('mm-mi-link') != null) { $('mm-mi-link').innerHTML = text; $('mm-mi-link').setAttribute('name', text); $('mm-mi-link').setAttribute('breadcrums', node.getAttribute('breadcrums')); if (id == this.level2ActiveNodeId) { $('mm-mi-link').setAttribute('isActive', 'true'); } $('mm-mi-link').setAttribute('id', id); link = $('mm-mi-link'); } } else if (level == 3) { if (nodeIsActive) { this.setFooterLevelC (node.getAttribute('breadcrums')); } if(this.selectSiteId == "MTF" || this.selectSiteId == "MTF-EN") { $('submenu-splitter').src = "images/menu/menu_splitter_mtf.gif"; }else{ $('submenu-splitter').src = "images/menu/menu_splitter_ngm.gif"; } if (nextNode != null) { if (nodeIsActive) { $('submenu-splitter').src = "images/menu/menu_splitter_empty.gif"; $('submenu-splitter').removeAttribute('id'); } else if (nextNode.getAttribute('isDefault') != null || nextNode.getAttribute('isSelected') == null) { if (nextNode.getAttribute('isSelected') != null || nextNode.getAttribute('isDefault') != null) { $('submenu-splitter').src = "images/menu/menu_splitter_empty.gif"; $('submenu-splitter').removeAttribute('id'); } else { $('submenu-splitter').removeAttribute('id'); } } else { $('submenu-splitter').src = "images/menu/menu_splitter_empty.gif"; $('submenu-splitter').removeAttribute('id'); } } else { $('submenu-splitter').src = "images/menu/menu_splitter_empty.gif"; $('submenu-splitter').removeAttribute('id'); } $('sm-mi-link').innerHTML = "" + text + ""; $('sm-mi-link').setAttribute('name', text); $('sm-mi-link').setAttribute('breadcrums',node.getAttribute('breadcrums')); url = url.replace("?","&"); if (url.indexOf("?") > 0) { $('sm-mi-link').href = "Rebound.aspx?url=" + url + "&page=" + id + "&language=" + this.language + "&by=click"; } else { $('sm-mi-link').href = "Rebound.aspx?url=" + url + "&page=" + id + "&language=" + this.language + "&by=click" ; } //$('sm-mi-link').href = "Rebound.aspx?url=" + url + "&page=" + id + "&language=" + this.language; $('sm-mi-link').setAttribute('target','ajaxframe'); $('sm-mi-link').setAttribute('url',url); if (id == this.level3ActiveNodeId) { $('sm-mi-link').setAttribute('isActive', 'true'); } $('sm-mi-link').setAttribute('id', id); //link = $('sm-mi-link'); } } if (level == 1) { //Event.observe($(node.getAttribute('id')), 'click', this.defineMenu.bindAsEventListener(this, true)); } else if (level == 2) { Event.observe($(node.getAttribute('id')), 'click', this.defineMenu.bindAsEventListener(this, null)); Event.observe($(node.getAttribute('id')), 'mouseover', this.mouseOver.bindAsEventListener(this, null)); Event.observe($(node.getAttribute('id')), 'mouseout', this.mouseOut.bindAsEventListener(this, null)); } else { //Event.observe($(node.getAttribute('id')), 'click', this.loadPage.bindAsEventListener(this)); Event.observe($(node.getAttribute('id')), 'mouseover', this.mouseOver.bindAsEventListener(this, null)); Event.observe($(node.getAttribute('id')), 'mouseout', this.mouseOut.bindAsEventListener(this, null)); } }, mouseOver : function(event) { var element = Event.element(event); var id = element.getAttribute('id'); //höger img-splitter if ($(id).next() != null) { $(id).next().src = "images/menu/menu_splitter_empty.gif"; } //vänster img-splitter if ($(id).up().previous() != null) { if ($(id).up().previous().down().next() != null) { $(id).up().previous().down().next().src = "images/menu/menu_splitter_empty.gif"; } } }, mouseOut : function(event) { var element = Event.element(event); var id = element.getAttribute('id'); var imgurl = "images/menu/menu_splitter_ngm.gif" if (this.selectSiteId == "MTF" || this.selectSiteId == "MTF-EN") { imgurl = "images/menu/menu_splitter_mtf.gif"; } //vänster img-splitter if ($(id).up().previous() != null) { if (!$(id).up().previous().down().hasAttribute('isActive') && ! $(id).hasAttribute('isActive')) { $(id).up().previous().down().next().src = imgurl; } } //höger img-splitter if ($(id).up().next() != null) { if (!$(id).up().next().down().hasAttribute('isActive') && ! $(id).hasAttribute('isActive')) { $(id).next().src = imgurl; } } }, defineMenu : function(event, changeCSS) { var id; /*if (event.id) { id = event.getAttribute('id'); } else { var element = Event.element(event); id = element.parentNode.getAttribute('id'); id = element.getAttribute('id'); }*/ if (event.type) { var element = Event.element(event); id = element.parentNode.getAttribute('id'); if (id == null) { id = element.getAttribute('id'); } if (id == "") { id = element.getAttribute('id'); } } this.isDeep = true; if (changeCSS != null) { var childNode = this.getChildNodeByParentId(id); this.getTopMenuById(childNode.getAttribute('id'), true); } else { this.getTopMenuById(id, true); } if (changeCSS != null) { this.changeCSS(id); } return false; }, loadPage : function (url, id) { if ($('IPStream') != null){ $('IPStream').src = "/blank.htm"; } if (this.isDeep) { //this.getTopMenuById(id , false); new Ajax.Updater({ success: 'content-container', failure: 'disclaimer' }, url + "&tick=" + new Date().getTime() , {encoding:'UTF-8', asynchronous: false, method: 'get', evalScripts: 'true'}); this.convertEditableAreas(); //document.title = id; this.isDeep = false; } }, convertEditableAreas : function() { }, popUpEditableArea : function(event) { var element = Event.element(event); var id = element.id; if (element.id != "") { id = element.id; } else { id = element.getAttribute('rel'); element = element.parentNode; } var pageId; if (id != null) { pageId = id; } else { pageId = element.getAttribute('rel'); } if (pageId == null) { pageId = element.offsetParent.parentNode.getAttribute('rel'); } if (pageId != null) { var uniq = new Date().getTime(); window.open('admin/edit.aspx?id=' + pageId + '&tick=' + uniq,'adminEdit','height=900,width=1000,toolbar=no,directories=no,status=no,menubar=no, scrollbars=no,resizable=no'); } /*var idList = element.getAttribute('rel').split('|') if (idList.length = 4) { var site = idList[0]; var page = idList[1]; var elementid = idList[2]; var language = idList[3]; var uniq = new Date().getTime(); window.open('admin/edit.aspx?site=' + site + '&page=' + page + '&elementid=' + elementid + '&lang=' + language + '&tick=' + uniq,'adminEdit','height=900,width=1000,toolbar=no,directories=no,status=no,menubar=no, scrollbars=no,resizable=no'); }*/ }, getDefaultMenuNodeByLanguage : function (language, xml) { var nodes = xml.getElementsByTagName('menu'); for (var i = 0; i < nodes.length ; i++ ) { var node = nodes[i]; if (node.getAttribute('lang') == language ) {//&& node.getAttribute('isDefault') == "true") { return node; } } return null; }, setFooterLevelA : function (text) { this.footerTextA = text; this.footerTextB= ""; this.footerTextC = ""; this.printFooter(); }, setFooterLevelB : function (text) { this.footerTextB = text; this.footerTextC = ""; this.printFooter(); }, setFooterLevelC : function (text) { this.footerTextC = text; this.printFooter(); }, printFooter : function() { $('breadcrumbs').innerHTML = this.footerTextA; if (this.footerTextB != "") { $('breadcrumbs').innerHTML += " : " + this.footerTextB; } if (this.footerTextC != "") { $('breadcrumbs').innerHTML += " : " + this.footerTextC; } }, changeCSS : function (siteId) { if (siteId == "B" || siteId == "B-EN" || siteId == "B-NO") { this.firstVisit = false; this.selectedColor = this.mtfColor; document.styleSheets[0].disabled = false; document.styleSheets[1].disabled = true; document.styleSheets[3].disabled = false; document.styleSheets[4].disabled = true; $('header-logo').src = "images/header/mtf_logotype_top.gif"; $('btSearch').src = "images/header/toolbar_sok_mtf_" + this.language + ".gif"; } else if (siteId == "A" || siteId == "A-EN") { this.selectedColor = this.holdingColor; document.styleSheets[0].disabled = true; document.styleSheets[1].disabled = false; document.styleSheets[3].disabled = true; document.styleSheets[4].disabled = false; $('header-logo').src = "images/header/holding_logotype_top.gif"; $('btSearch').src = "images/header/toolbar_sok_" + this.language + ".gif"; } else if (siteId == "C" || siteId == "C-EN") { this.selectedColor = this.holdingColor; document.styleSheets[0].disabled = true; document.styleSheets[1].disabled = false; document.styleSheets[3].disabled = true; document.styleSheets[4].disabled = false; $('header-logo').src = "images/header/holding_logotype_top.gif"; $('btSearch').src = "images/header/toolbar_sok_" + this.language + ".gif"; } }, setActiveNodeBgColor : function (element) { if (element != null) element.style.backgroundColor = this.selectedColor; }, openPrintPopup : function (id, siteid, language, type, company) { var uniq = new Date().getTime(); window.open('pages/Print.aspx?id=' + id + '&site=' + siteid + '&language=' + language + '&type=' + type + '&company=' + company + '&tick=' + uniq,'PrintPopup','height=900,width=840,toolbar=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=no'); }, openDirectLinkPopup : function ( url ) { var uniq = new Date().getTime(); window.open('pages/DirectLink.aspx' + url + '&tick=' + uniq, 'DirectLink','height=300,width=650,toolbar=no,directories=no,status=no,menubar=no, scrollbars=yes,resizable=yes'); }, getChildNodeByParentId : function (parentId) { var nodes = this.transport.responseXML.getElementsByTagName('menuitem'); for (var i = 0; i < nodes.length ; i++ ) { var node = nodes[i]; if (node.parentNode.getAttribute('id') == parentId && node.getAttribute('isDefault') != null) { return node; } } return null; }, redirect : function (url , id , menuid, getTopMenu) { if (url != null && id == null && menuid == null && getTopMenu == null){ url = url.replace("?","&"); this.isDeep = true; //urchinTracker(url); $('ajaxframe').src = "Rebound.aspx?url=" + url + "&by=redirect&tick=" + new Date().getTime(); return; /* new Ajax.Updater('content-container' , url, {encoding:'UTF-8', asynchronous: false, method: 'get'}); this.convertEditableAreas(); return; */ } if (getTopMenu != null ){ //this.isDeep = false; //this.getTopMenuById(menuid, false) } //ladda sida if (id != "") { this.getTopMenuById(menuid, false); this.isDeep = true; url = url.replace("?","&"); //urchinTracker(url); $('ajaxframe').src = "Rebound.aspx?url=" + url + "&page=" + menuid + "&id=" + id + "&language=" + this.language + "&by=redirect&tick=" + new Date().getTime(); //new Ajax.Updater('content-container' , url + "&id=" + id + "&language=" + this.language + "&page=" + menuid, {encoding:'UTF-8', asynchronous: false, method: 'get'}); //this.convertEditableAreas(); } else { this.getTopMenuById(menuid, false); this.isDeep = true; url = url.replace("?","&"); //urchinTracker(url); $('ajaxframe').src = "Rebound.aspx?url=" + url + "&page=" + menuid + "&language=" + this.language + "&by=redirect&tick=" + new Date().getTime(); } }, search : function () { var url = "" if (this.selectSiteId.substr(0,1) == "B" || this.selectSiteId.substr(0,1) == "A") { url = "pages/" + this.selectSiteId.substr(0,1) + "/Search.aspx?search=" + encodeURI($('tbSearch').value) //new Ajax.Updater('content-container' , "pages/" + this.selectSiteId.substr(0,1) + "/Search.aspx?search=" + encodeURI($('tbSearch').value) + "&language=" + this.language, {encoding:'UTF-8', asynchronous: false, method: 'get'}); } else { url = "pages/c/Search.aspx?search=" + $('tbSearch').value;// + "&language=" + this.language //new Ajax.Updater('content-container' , "pages/holding/Search.aspx?search=" + $('tbSearch').value + "&language=" + this.language, {encoding:'UTF-8', asynchronous: false, method: 'get'}); } this.redirect(url,'foobar'); }, searchKeyUp : function (e) { var characterCode //literal character code will be stored in this variable if(e && e.which){ //if which property of event object is supported (NN4) e = e characterCode = e.which //character code is contained in NN4's which property } else{ e = event characterCode = e.keyCode //character code is contained in IE's keyCode property } if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key) this.search(); return false } else{ return true } }, openCompanyPop : function (ISIN, list) { if (list == "EN") { window.open('/Company_EN/CompanyDetailPop_New.asp?ISINCode=' + ISIN ,'NGMCompany',',scrollbars=yes,top=50,left=50,width=820,height=630,resizable=yes'); } else if (list == "NO") { window.open('/Company_NO/CompanyDetailPop_New.asp?ISINCode=' + ISIN ,'NGMCompany',',scrollbars=yes,top=50,left=50,width=820,height=630,resizable=yes'); } else { window.open('/Company_SE/CompanyDetailPop_New.asp?ISINCode=' + ISIN ,'NGMCompany',',scrollbars=yes,top=50,left=50,width=820,height=630,resizable=yes'); } }, setTimeFooter : function() { if (this.language == "SE") { this.getSwedishTimeFooter(); } else { this.getIntTimeFooter(); } }, getSwedishTimeFooter : function() { var myDays = ["Sön","Mån","Tis","Ons","Tor","Fre","Lör"] var myMonth = ["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"] var strTime = "" strTime += myDays[new Date().getDay()] + " "; strTime += new Date().getDate() + " "; strTime += myMonth[new Date().getMonth()] + " "; strTime += new Date().getHours() + ":"; strTime += new Date().getMinutes() + ":"; strTime += new Date().getSeconds() + " "; strTime += new Date().getFullYear(); $('footer-time').innerHTML = strTime; }, getIntTimeFooter : function () { $('footer-time').innerHTML = "" + new Date().toString().substr(0, 10) + " " + new Date().getHours() + ":" + new Date().getMinutes() + ":" + new Date().getSeconds() + " " + new Date().getFullYear(); }, showError : function(transport) { var element = Event.element(event); var id = element.id; alert('CLICKED ' + id); } }