Solved

Open links in new window from drop-down menu

Posted on 2004-09-22
8
1,460 Views
Last Modified: 2012-05-05
I'm working with a script that I found on the internet. The script is great but I want to make a change and am having trouble doing so. I want to open some of the links (initiated by clicking on a menu item) in a new browser window. The script is set up to only open in the same browser window.

I've included three files here. The first (exmplmenu_var.js) defines the menu elements and formatting. The second (menu_com.js) creates and drives the menu.The third (example.htm) is an example of the script.

exmplmenu_var.js
/***********************************************************************************
*      (c) Ger Versluis 2000 version 5.411 24 December 2001 (updated Jan 31st, 2003 by Dynamic Drive for Opera7)
*      For info write to menus@burmees.nl                      *
*      You may remove all comments for faster loading                *            
***********************************************************************************/
//HV Menu- by Ger Versluis (http://www.burmees.nl/)
//Submitted to Dynamic Drive (http://www.dynamicdrive.com)
//Visit http://www.dynamicdrive.com for this script and more

      var NoOffFirstLineMenus=5;                  // Number of first level items
      var LowBgColor='white';                  // Background color when mouse is not over
      var LowSubBgColor='white';                  // Background color when mouse is not over on subs
      var HighBgColor='black';                  // Background color when mouse is over
      var HighSubBgColor='black';                  // Background color when mouse is over on subs
      var FontLowColor='black';                  // Font color when mouse is not over
      var FontSubLowColor='black';                  // Font color subs when mouse is not over
      var FontHighColor='white';                  // Font color when mouse is over
      var FontSubHighColor='white';                  // Font color subs when mouse is over
      var BorderColor='black';                  // Border color
      var BorderSubColor='black';                  // Border color for subs
      var BorderWidth=1;                        // Border width
      var BorderBtwnElmnts=1;                  // Border between elements 1 or 0
      var FontFamily="arial,comic sans ms,technical"      // Font family menu items
      var FontSize=9;                        // Font size menu items
      var FontBold=1;                        // Bold menu items 1 or 0
      var FontItalic=0;                        // Italic menu items 1 or 0
      var MenuTextCentered='left';                  // Item text position 'left', 'center' or 'right'
      var MenuCentered='left';                  // Menu horizontal position 'left', 'center' or 'right'
      var MenuVerticalCentered='top';            // Menu vertical position 'top', 'middle','bottom' or static
      var ChildOverlap=.2;                        // horizontal overlap child/ parent
      var ChildVerticalOverlap=.2;                  // vertical overlap child/ parent
      var StartTop=0;                        // Menu offset x coordinate
      var StartLeft=1;                        // Menu offset y coordinate
      var VerCorrect=0;                        // Multiple frames y correction
      var HorCorrect=0;                        // Multiple frames x correction
      var LeftPaddng=3;                        // Left padding
      var TopPaddng=2;                        // Top padding
      var FirstLineHorizontal=1;                  // SET TO 1 FOR HORIZONTAL MENU, 0 FOR VERTICAL
      var MenuFramesVertical=1;                  // Frames in cols or rows 1 or 0
      var DissapearDelay=1000;                  // delay before menu folds in
      var TakeOverBgColor=1;                  // Menu frame takes over background color subitem frame
      var FirstLineFrame='navig';                  // Frame where first level appears
      var SecLineFrame='space';                  // Frame where sub levels appear
      var DocTargetFrame='space';                  // Frame where target documents appear
      var TargetLoc='';                        // span id for relative positioning
      var HideTop=0;                        // Hide first level when loading new document 1 or 0
      var MenuWrap=1;                        // enables/ disables menu wrap 1 or 0
      var RightToLeft=0;                        // enables/ disables right to left unfold 1 or 0
      var UnfoldsOnClick=0;                  // Level 1 unfolds onclick/ onmouseover
      var WebMasterCheck=0;                  // menu tree checking on or off 1 or 0
      var ShowArrow=1;                        // Uses arrow gifs when 1
      var KeepHilite=1;                        // Keep selected path highligthed
      var Arrws=['tri.gif',5,10,'tridown.gif',10,5,'trileft.gif',5,10];      // Arrow source, width and height

function BeforeStart(){return}
function AfterBuild(){return}
function BeforeFirstOpen(){return}
function AfterCloseAll(){return}


// Menu tree
//      MenuX=new Array(Text to show, Link, background image (optional), number of sub elements, height, width);
//      For rollover images set "Text to show" to:  "rollover:Image1.jpg:Image2.jpg"

Menu1=new Array("Home","http://www.dynamicdrive.com","",0,20,138);

Menu2=new Array("News","blank.htm","",2);
      Menu2_1=new Array("General","blank.htm","",5,20,150);      
            Menu2_1_1=new Array("CNN","http://www.cnn.com","",0,20,150);
            Menu2_1_2=new Array("ABCNews","http://www.abcnews.com","",0);
            Menu2_1_3=new Array("MSNBC","http://www.msnbc.com","",0);
                Menu2_1_4=new Array("CBSNews","http://www.cbsnews.com","",0);
                Menu2_1_5=new Array("Canadian News","http://news.bbc.co.uk","",2);
                          Menu2_1_5_1=new Array("Vancouver Sun","http://www.vancouversun.com","",0,20,150);
                          Menu2_1_5_2=new Array("CTV News","http://www.ctvnews.com","",0);
      Menu2_2=new Array("Technology","blank.htm","",3);
            Menu2_2_1=new Array("TechWeb","http://www.techweb.com","",0,20,200);
            Menu2_2_2=new Array("News.com","http://www.news.com","",0);
            Menu2_2_3=new Array("Wired News","http://www.wired.com","",0);

Menu3=new Array("Search Engines","blank.htm","",3);
      Menu3_1=new Array("Altavista","http://www.altavista.com","",0,20,150);
      Menu3_2=new Array("Google","http://www.google.com","",0);
      Menu3_3=new Array("Yahoo","http://www.yahoo.com","",0);

Menu4=new Array("Webmaster","blank.htm","",4);
      Menu4_1=new Array("Dynamic Drive","http://www.dynamicdrive.com","",0,20,180);
      Menu4_2=new Array("JavaScript Kit","http://www.javascriptkit.com","",0);
      Menu4_3=new Array("Freewarejava","http://www.freewarejava.com","",0);
      Menu4_4=new Array("Web Review","http://www.webreview.com","",0);

Menu5=new Array("Other","javascript:top.location.href='blank.htm'","",1);
      Menu5_1=new Array("Author\'s Site","http://www.burmees.nl/","",0,20,140);

menu_com.js
/************************************************************************************
      (c) Ger Versluis 2000 version 5.5 24 December 2001 (updated Jan 31st, 2003 by Dynamic Drive for Opera7)
      Updated 19 July, 2003 by GV for CSS CompatMode      
      HV Menu found on Dynamic Drive ONLY may be used on both commercial and non commerical sites      
      For info write to menus@burmees.nl                                                 
      This script featured on Dynamic Drive DHTML code library: http://www.dynamicdrive.com
*************************************************************************************/
      var AgntUsr=navigator.userAgent.toLowerCase();
      var AppVer=navigator.appVersion.toLowerCase();
      var DomYes=document.getElementById?1:0;
      var NavYes=AgntUsr.indexOf('mozilla')!=-1&&AgntUsr.indexOf('compatible')==-1?1:0;
      var ExpYes=AgntUsr.indexOf('msie')!=-1?1:0;
      var Opr=AgntUsr.indexOf('opera')!=-1?1:0;
      var Opr6orless=window.opera && navigator.userAgent.search(/opera.[1-6]/i)!=-1 //DynamicDrive.com added code
      if(Opr){NavYes=1;ExpYes=0;}
      var DomNav=DomYes&&NavYes?1:0;
       var DomExp=DomYes&&ExpYes?1:0;
      var Nav4=NavYes&&!DomYes&&document.layers?1:0;
      var Exp4=ExpYes&&!DomYes&&document.all?1:0;
      var Exp6Plus=(AppVer.indexOf("msie 6")!= -1||AppVer.indexOf("msie 7")!= -1)?1:0
      var PosStrt=(NavYes||ExpYes||Opr)&&!Opr6orless?1:0;
      var P_X=DomYes?"px":"",FHtml=null,ScHtml=null,FCmplnt=0,SCmplnt=0;
      var FrstLoc,ScLoc,DcLoc;
      var ScWinWdth,ScWinHght,FrstWinWdth,FrstWinHght;
      var ScLdAgainWin;
      var FirstColPos,SecColPos,DocColPos;
      var RcrsLvl=0;
      var FrstCreat=1,Loadd=0,Creatd=0,IniFlg,AcrssFrms=1;
      var FrstCntnr=null,CurrntOvr=null,CloseTmr=null;
      var CntrTxt,TxtClose,ImgStr;
      var Ztop=100;
      var ShwFlg=0;
      var M_StrtTp=StartTop,M_StrtLft=StartLeft;
      var StaticPos=0;
      var M_Hide=Nav4?'hide':'hidden';
      var M_Show=Nav4?'show':'visible';
      var Par=parent.frames[0]&&FirstLineFrame!=SecLineFrame?parent:window;
      var Doc=Par.document;
      var Bod=Doc.body;
      var Trigger=NavYes&&!Opr?Par:Bod;

      MenuTextCentered=MenuTextCentered==1||MenuTextCentered=='center'?'center':MenuTextCentered==0||MenuTextCentered!='right'?'left':'right';

      WbMstrAlrts=["Item not defined: ","Item needs height: ","Item needs width: "];

      if(Trigger.onload)Dummy=Trigger.onload;
      Trigger.onload=Go;

function Dummy(){return}

function CnclSlct(){return false}

function RePos(){
      FrstWinWdth=ExpYes?FCmplnt?FHtml.clientWidth:FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
      FrstWinHght=ExpYes?FCmplnt?FHtml.clientHeight:FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
      ScWinWdth=ExpYes?SCmplnt?ScHtml.clientWidth:ScLoc.document.body.clientWidth:ScLoc.innerWidth;
      ScWinHght=ExpYes?SCmplnt?ScHtml.clientHeight:ScLoc.document.body.clientHeight:ScLoc.innerHeight;
      if(MenuCentered=='justify'&&FirstLineHorizontal){
            FrstCntnr.style.width=FrstWinWdth+P_X;
            var LftXtra=(DomNav&&!Opr)||FCmplnt?LeftPaddng:0;
            ClcJus();
            var P=FrstCntnr.FrstMbr,W=Menu1[5],i;
            for(i=0;i<NoOffFirstLineMenus;i++){P.style.width=W+P_X;P=P.PrvMbr}}
      StaticPos=-1;
      if(TargetLoc)ClcTrgt();
      if(MenuCentered)ClcLft();
      if(MenuVerticalCentered)ClcTp();
      PosMenu(FrstCntnr,StartTop,StartLeft)}

function UnLoaded(){
      if(CloseTmr)clearTimeout(CloseTmr);
      Loadd=0; Creatd=0;
      if(HideTop){
            var FCStyle=Nav4?FrstCntnr:FrstCntnr.style;
            FCStyle.visibility=M_Hide}}

function ReDoWhole(){
      if(ScWinWdth!=ScLoc.innerWidth||ScWinHght!=ScLoc.innerHeight||FrstWinWdth!=FrstLoc.innerWidth||FrstWinHght!=FrstLoc.innerHeight)Doc.location.reload()}

function Check(WMnu,NoOf){
      var i,array,ArrayLoc;
      ArrayLoc=parent.frames[0]?parent.frames[FirstLineFrame]:self;
      for(i=0;i<NoOf;i++){
            array=WMnu+eval(i+1);
            if(!ArrayLoc[array]){WbMstrAlrt(0,array); return false}
            if(i==0){      if(!ArrayLoc[array][4]){WbMstrAlrt(1,array); return false}
                  if(!ArrayLoc[array][5]){WbMstrAlrt(2,array); return false}}
            if(ArrayLoc[array][3])if(!Check(array+'_',ArrayLoc[array][3])) return false}
      return true}

function WbMstrAlrt(No,Xtra){
      return confirm(WbMstrAlrts[No]+Xtra+'   ')}

function Go(){
      Dummy();
      if(Loadd||!PosStrt)return;
      BeforeStart();
      Creatd=0; Loadd=1;
      status='Building menu';
      if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){
            FirstLineFrame=SecLineFrame;
            if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){
                  FirstLineFrame=SecLineFrame=DocTargetFrame;
                  if(FirstLineFrame =="" || !parent.frames[FirstLineFrame])FirstLineFrame=SecLineFrame=DocTargetFrame=''}}
      if(SecLineFrame =="" || !parent.frames[SecLineFrame]){
            SecLineFrame=DocTargetFrame;
            if(SecLineFrame =="" || !parent.frames[SecLineFrame])SecLineFrame=DocTargetFrame=FirstLineFrame}
      if(DocTargetFrame =="" || !parent.frames[DocTargetFrame])DocTargetFrame=SecLineFrame;
      if(WebMasterCheck){      if(!Check('Menu',NoOffFirstLineMenus)){status='build aborted';return}}
      FrstLoc=FirstLineFrame!=""?parent.frames[FirstLineFrame]:window;
      ScLoc=SecLineFrame!=""?parent.frames[SecLineFrame]:window;
      DcLoc=DocTargetFrame!=""?parent.frames[DocTargetFrame]:window;
      if (FrstLoc==ScLoc) AcrssFrms=0;
      if (AcrssFrms)FirstLineHorizontal=MenuFramesVertical?0:1;
      if(Exp6Plus||Opr){
            FHtml=FrstLoc.document.getElementsByTagName("HTML")[0];ScHtml=ScLoc.document.getElementsByTagName("HTML")[0];
            FCmplnt=FrstLoc.document.compatMode.indexOf("CSS")==-1?0:1;SCmplnt=ScLoc.document.compatMode.indexOf("CSS")==-1?0:1}
      FrstWinWdth=ExpYes?FCmplnt?FHtml.clientWidth:FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
      FrstWinHght=ExpYes?FCmplnt?FHtml.clientHeight:FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
      ScWinWdth=ExpYes?SCmplnt?ScHtml.clientWidth:ScLoc.document.body.clientWidth:ScLoc.innerWidth;
      ScWinHght=ExpYes?SCmplnt?ScHtml.clientHeight:ScLoc.document.body.clientHeight:ScLoc.innerHeight;
      if(Nav4){      CntrTxt=MenuTextCentered!='left'?"<div align='"+MenuTextCentered+"'>":"";
            TxtClose="</font>"+MenuTextCentered!='left'?"</div>":""}
      FirstColPos=Nav4?FrstLoc.document:FrstLoc.document.body;
      SecColPos=Nav4?ScLoc.document:ScLoc.document.body;
      DocColPos=Nav4?DcLoc.document:ScLoc.document.body;
      if (TakeOverBgColor)FirstColPos.bgColor=AcrssFrms?SecColPos.bgColor:DocColPos.bgColor;
      if(MenuCentered=='justify'&&FirstLineHorizontal)ClcJus();
      if(FrstCreat){
            FrstCntnr=CreateMenuStructure('Menu',NoOffFirstLineMenus);
            FrstCreat=AcrssFrms?0:1}
      else CreateMenuStructureAgain('Menu',NoOffFirstLineMenus);
      if(TargetLoc)ClcTrgt();
      if(MenuCentered)ClcLft();
      if(MenuVerticalCentered)ClcTp();
      PosMenu(FrstCntnr,StartTop,StartLeft);
      IniFlg=1;
      Initiate();
      Creatd=1;
      if (AcrssFrms){
            ScLdAgainWin=ExpYes?ScLoc.document.body:ScLoc;
            ScLdAgainWin.onunload=UnLoaded}
      Trigger.onresize=Nav4?ReDoWhole:RePos;
      AfterBuild();
      if(MenuVerticalCentered=='static'&&!AcrssFrms)setInterval('KeepPos()',250);
      status='Menu ready for use'}

function KeepPos(){
      var TS=ExpYes?SCmplnt?ScHtml.scrollTop:FrstLoc.document.body.scrollTop:FrstLoc.pageYOffset;
      if(TS!=StaticPos){
            var FCStyle=Nav4?FrstCntnr:FrstCntnr.style;
            FrstCntnr.OrgTop=StartTop+TS;StaticPos=TS;
            FCStyle.top=FrstCntnr.OrgTop+P_X}}

function ClcJus(){
      var a=BorderBtwnElmnts?1:2,b=BorderBtwnElmnts?BorderWidth:0;
      var Size=Math.round(((FrstWinWdth-a*BorderWidth)/NoOffFirstLineMenus)-b),i,j;
      for(i=1;i<NoOffFirstLineMenus+1;i++){j=eval('Menu'+i);j[5]=Size}
      StartLeft=0}

function ClcTrgt(){
      var TLoc=Nav4?FrstLoc.document.layers[TargetLoc]:DomYes?FrstLoc.document.getElementById(TargetLoc):FrstLoc.document.all[TargetLoc];
      StartTop=M_StrtTp;
      StartLeft=M_StrtLft;
      if(DomYes){
            while(TLoc){StartTop+=TLoc.offsetTop;StartLeft+=TLoc.offsetLeft;TLoc=TLoc.offsetParent}}
      else{      StartTop+=Nav4?TLoc.pageY:TLoc.offsetTop;StartLeft+=Nav4?TLoc.pageX:TLoc.offsetLeft}}

function ClcLft(){
      if(MenuCentered!='left'&&MenuCentered!='justify'){
            var Size=FrstWinWdth-(!Nav4?parseInt(FrstCntnr.style.width):FrstCntnr.clip.width);
            StartLeft=M_StrtLft;
            StartLeft+=MenuCentered=='right'?Size:Size/2}}

function ClcTp(){
      if(MenuVerticalCentered!='top'&&MenuVerticalCentered!='static'){
            var Size=FrstWinHght-(!Nav4?parseInt(FrstCntnr.style.height):FrstCntnr.clip.height);
            StartTop=M_StrtTp;
            StartTop+=MenuVerticalCentered=='bottom'?Size:Size/2}}

function PosMenu(CntnrPntr,Tp,Lt){
      RcrsLvl++;
      var Cmplnt=RcrsLvl==1?FCmplnt:SCmplnt;
      var LftXtra=(DomNav&&!Opr)||Cmplnt?LeftPaddng:0;
      var TpXtra=(DomNav&&!Opr)||Cmplnt?TopPaddng:0;
      var Topi,Lefti,Hori;
      var Cntnr=CntnrPntr;
      var Mmbr=Cntnr.FrstMbr;
      var CntnrStyle=!Nav4?Cntnr.style:Cntnr;
      var MmbrStyle=!Nav4?Mmbr.style:Mmbr;
      var PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0;
      var PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0;
      var MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
      var MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
      var CntnrWt=!Nav4?parseInt(CntnrStyle.width):CntnrStyle.clip.width;
      var CntnrHt=!Nav4?parseInt(CntnrStyle.height):CntnrStyle.clip.height;
      var SubTp,SubLt;
      if (RcrsLvl==1 && AcrssFrms)!MenuFramesVertical?Tp=FrstWinHght-CntnrHt+(Nav4?4:0):Lt=RightToLeft?0:FrstWinWdth-CntnrWt+(Nav4?4:0);
      if (RcrsLvl==2 && AcrssFrms)!MenuFramesVertical?Tp=0:Lt=RightToLeft?ScWinWdth-CntnrWt:0;
      if (RcrsLvl==2 && AcrssFrms){Tp+=VerCorrect;Lt+=HorCorrect}
      CntnrStyle.top=RcrsLvl==1?Tp+P_X:0;
      Cntnr.OrgTop=Tp;
      CntnrStyle.left=RcrsLvl==1?Lt+P_X:0;
      Cntnr.OrgLeft=Lt;
      if (RcrsLvl==1 && FirstLineHorizontal){
            Hori=1;Lefti=CntnrWt-MmbrWt-2*BorderWidth;Topi=0}
      else{      Hori=Lefti=0;Topi=CntnrHt-MmbrHt-2*BorderWidth}
      while(Mmbr!=null){
            MmbrStyle.left=Lefti+BorderWidth+P_X;
            MmbrStyle.top=Topi+BorderWidth+P_X;
            if(Nav4)Mmbr.CmdLyr.moveTo(Lefti+BorderWidth,Topi+BorderWidth);
            if(Mmbr.ChildCntnr){
                  if(RightToLeft)ChldCntnrWdth=Nav4?Mmbr.ChildCntnr.clip.width:parseInt(Mmbr.ChildCntnr.style.width);
                  if(Hori){      SubTp=Topi+MmbrHt+2*BorderWidth;
                        SubLt=RightToLeft?Lefti+MmbrWt-ChldCntnrWdth:Lefti}
                  else{      SubLt=RightToLeft?Lefti-ChldCntnrWdth+ChildOverlap*MmbrWt+BorderWidth:Lefti+(1-ChildOverlap)*MmbrWt+BorderWidth;
                        SubTp=RcrsLvl==1&&AcrssFrms?Topi:Topi+ChildVerticalOverlap*MmbrHt}
                  PosMenu(Mmbr.ChildCntnr,SubTp,SubLt)}
            Mmbr=Mmbr.PrvMbr;
            if(Mmbr){      MmbrStyle=!Nav4?Mmbr.style:Mmbr;
                  PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0;
                  PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0;
                  MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
                  MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
                  Hori?Lefti-=BorderBtwnElmnts?(MmbrWt+BorderWidth):(MmbrWt):Topi-=BorderBtwnElmnts?(MmbrHt+BorderWidth):(MmbrHt)}}
      RcrsLvl--}

function Initiate(){
      if(IniFlg){      Init(FrstCntnr);IniFlg=0;
            if(ShwFlg)AfterCloseAll();ShwFlg=0}}

function Init(CntnrPntr){
      var Mmbr=CntnrPntr.FrstMbr;
      var MCStyle=Nav4?CntnrPntr:CntnrPntr.style;
      RcrsLvl++;
      MCStyle.visibility=RcrsLvl==1?M_Show:M_Hide;
      while(Mmbr!=null){
            if(Mmbr.Hilite){Mmbr.Hilite=0;if(KeepHilite)LowItem(Mmbr)}
            if(Mmbr.ChildCntnr) Init(Mmbr.ChildCntnr);
            Mmbr=Mmbr.PrvMbr}
      RcrsLvl--}

function ClearAllChilds(Pntr){
      var CPCCStyle;
      while (Pntr){
            if(Pntr.Hilite){
                  Pntr.Hilite=0;
                  if(KeepHilite)LowItem(Pntr);
                  if(Pntr.ChildCntnr){
                        CPCCStyle=Nav4?Pntr.ChildCntnr:Pntr.ChildCntnr.style;
                        CPCCStyle.visibility=M_Hide;
                        ClearAllChilds(Pntr.ChildCntnr.FrstMbr)}
                  break}
            Pntr=Pntr.PrvMbr}}

function GoTo(){
      if(this.LinkTxt){
            status='';
            var HP=Nav4?this.LowLyr:this;
            LowItem(HP);
            this.LinkTxt.indexOf('javascript:')!=-1?eval(this.LinkTxt):DcLoc.location.href=this.LinkTxt}}

function HiliteItem(P){
      if(Nav4){
            if(P.ro)P.document.images[P.rid].src=P.ri2;
            else{      if(P.HiBck)P.bgColor=P.HiBck;
                  if(P.value.indexOf('<img')==-1){
                        P.document.write(P.Ovalue);
                        P.document.close()}}}
      else{      if(P.ro){      var Lc=P.Level==1?FrstLoc:ScLoc;
                  Lc.document.images[P.rid].src=P.ri2}
            else{      if(P.HiBck)P.style.backgroundColor=P.HiBck;
                  if(P.HiFntClr)P.style.color=P.HiFntClr}}
      P.Hilite=1}

function LowItem(P){
      if(P.ro){      if(Nav4)P.document.images[P.rid].src=P.ri1;
            else{      var Lc=P.Level==1?FrstLoc:ScLoc;
                  Lc.document.images[P.rid].src=P.ri1}}
      else{      if(Nav4){      if(P.LoBck)P.bgColor=P.LoBck;
                  if(P.value.indexOf('<img')==-1){
                        P.document.write(P.value);
                        P.document.close()}}
            else{      if(P.LoBck)P.style.backgroundColor=P.LoBck;
                  if(P.LwFntClr)P.style.color=P.LwFntClr}}}

function OpenMenu(){      
      if(!Loadd||!Creatd) return;
      var TpScrlld=ExpYes?SCmplnt?ScHtml.scrollTop:ScLoc.document.body.scrollTop:ScLoc.pageYOffset;
      var LScrlld=ExpYes?SCmplnt?ScHtml.scrollLeft:ScLoc.document.body.scrollLeft:ScLoc.pageXOffset;
      var CCnt=Nav4?this.LowLyr.ChildCntnr:this.ChildCntnr;
      var ThisHt=Nav4?this.clip.height:parseInt(this.style.height);
      var ThisWt=Nav4?this.clip.width:parseInt(this.style.width);
      var ThisLft=AcrssFrms&&this.Level==1&&!FirstLineHorizontal?0:Nav4?this.Container.left:parseInt(this.Container.style.left);
      var ThisTp=AcrssFrms&&this.Level==1&&FirstLineHorizontal?0:Nav4?this.Container.top:parseInt(this.Container.style.top);
      var HP=Nav4?this.LowLyr:this;
      CurrntOvr=this;
      IniFlg=0;
      ClearAllChilds(this.Container.FrstMbr);
      HiliteItem(HP);
      if(CCnt!=null){
            if(!ShwFlg){ShwFlg=1;      BeforeFirstOpen()}
            var CCW=Nav4?this.LowLyr.ChildCntnr.clip.width:parseInt(this.ChildCntnr.style.width);
            var CCH=Nav4?this.LowLyr.ChildCntnr.clip.height:parseInt(this.ChildCntnr.style.height);
            var ChCntTL=Nav4?this.LowLyr.ChildCntnr:this.ChildCntnr.style;
            var SubLt=AcrssFrms&&this.Level==1?CCnt.OrgLeft+ThisLft+LScrlld:CCnt.OrgLeft+ThisLft;
            var SubTp=AcrssFrms&&this.Level==1?CCnt.OrgTop+ThisTp+TpScrlld:CCnt.OrgTop+ThisTp;
            if(MenuWrap){
                  if(RightToLeft){
                        if(SubLt<LScrlld)SubLt=this.Level==1?LScrlld:SubLt+(CCW+(1-2*ChildOverlap)*ThisWt);
                        if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=ScWinWdth+LScrlld-CCW}
                  else{      if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=this.Level==1?ScWinWdth+LScrlld-CCW:SubLt-(CCW+(1-2*ChildOverlap)*ThisWt);
                        if(SubLt<LScrlld)SubLt=LScrlld}
                  if(SubTp+CCH>TpScrlld+ScWinHght)SubTp=this.Level==1?SubTp=TpScrlld+ScWinHght-CCH:SubTp-CCH+(1-2*ChildVerticalOverlap)*ThisHt;
                  if(SubTp<TpScrlld)SubTp=TpScrlld}
            ChCntTL.top=SubTp+P_X;ChCntTL.left=SubLt+P_X;ChCntTL.visibility=M_Show}
      status=this.LinkTxt}

function OpenMenuClick(){
      if(!Loadd||!Creatd) return;
      var HP=Nav4?this.LowLyr:this;
      CurrntOvr=this;
      IniFlg=0;
      ClearAllChilds(this.Container.FrstMbr);
      HiliteItem(HP);
      status=this.LinkTxt}

function CloseMenu(){
      if(!Loadd||!Creatd) return;
      if(!KeepHilite){
            var HP=Nav4?this.LowLyr:this;
            LowItem(HP)}
      status='';
      if(this==CurrntOvr){
            IniFlg=1;
            if(CloseTmr)clearTimeout(CloseTmr);
            CloseTmr=setTimeout('Initiate(CurrntOvr)',DissapearDelay)}}

function CntnrSetUp(Wdth,Hght,NoOff){
      var x=RcrsLvl==1?BorderColor:BorderSubColor;
      this.FrstMbr=null;
      this.OrgLeft=this.OrgTop=0;
      if(x)this.bgColor=x;
      if(Nav4){      this.visibility='hide';
            this.resizeTo(Wdth,Hght)}
      else{      if(x)this.style.backgroundColor=x;
            this.style.width=Wdth+P_X;
            this.style.height=Hght+P_X;
            this.style.fontFamily=FontFamily;
            this.style.fontWeight=FontBold?'bold':'normal';
            this.style.fontStyle=FontItalic?'italic':'normal';
            this.style.fontSize=FontSize+'pt';
            this.style.zIndex=RcrsLvl+Ztop}}

function MbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){
      var Location=RcrsLvl==1?FrstLoc:ScLoc;
      var MemVal=eval(WhatMenu+'[0]');
      var t,T,L,W,H,S;
      var a,b,c,d;
      var Cmplnt=RcrsLvl==1?FCmplnt:SCmplnt;
      var LftXtra=(DomNav&&!Opr)||Cmplnt?LeftPaddng:0;
      var TpXtra=(DomNav&&!Opr)||Cmplnt?TopPaddng:0;
      this.PrvMbr=PrMmbr;
      this.Level=RcrsLvl;
      this.LinkTxt=eval(WhatMenu+'[1]');
      this.Container=MmbrCntnr;
      this.ChildCntnr=null;
      this.Hilite=0;
      this.style.overflow='hidden';
      this.style.cursor=ExpYes&&(this.LinkTxt||(RcrsLvl==1&&UnfoldsOnClick))?'hand':'default';
      this.ro=0;
      if(MemVal.indexOf('rollover')!=-1){
            this.ro=1;
            this.ri1=MemVal.substring(MemVal.indexOf(':')+1,MemVal.lastIndexOf(':'));
            this.ri2=MemVal.substring(MemVal.lastIndexOf(':')+1,MemVal.length);
            this.rid=WhatMenu+'i';
            MemVal="<img src=\""+this.ri1+"\" name=\""+this.rid+"\" width=\""+Wdth+"\" height=\""+Hght+"\">"}
      this.value=MemVal;
      if(RcrsLvl==1){
            a=LowBgColor;
            b=HighBgColor;
            c=FontLowColor;
            d=FontHighColor}
      else{      a=LowSubBgColor;
            b=HighSubBgColor;
            c=FontSubLowColor;
            d=FontSubHighColor}
      this.LoBck=a;
      this.LwFntClr=c;
      this.HiBck=b;
      this.HiFntClr=d;
      this.style.color=this.LwFntClr;
      if(this.LoBck)this.style.backgroundColor=this.LoBck;
      this.style.textAlign=MenuTextCentered;
      if(eval(WhatMenu+'[2]'))this.style.backgroundImage="url(\'"+eval(WhatMenu+'[2]')+"\')";
      if(MemVal.indexOf('<')==-1){
            this.style.width=Wdth-LftXtra+P_X;
            this.style.height=Hght-TpXtra+P_X;
            this.style.paddingLeft=LeftPaddng+P_X;
            this.style.paddingTop=TopPaddng+P_X}
      else{      this.style.width=Wdth+P_X;
            this.style.height=Hght+P_X}
      if(MemVal.indexOf('<')==-1&&DomYes){
            t=Location.document.createTextNode(MemVal);
            this.appendChild(t)}
      else this.innerHTML=MemVal;
      if(eval(WhatMenu+'[3]')&&ShowArrow){
            a=RcrsLvl==1&&FirstLineHorizontal?3:RightToLeft?6:0;
            S=Arrws[a];
            W=Arrws[a+1];
            H=Arrws[a+2];
            T=RcrsLvl==1&&FirstLineHorizontal?Hght-H-2:(Hght-H)/2;
            L=RightToLeft?2:Wdth-W-2;
            if(DomYes){

                  t=Location.document.createElement('img');
                  this.appendChild(t);
                  t.style.position='absolute';
                  t.src=S;

                  t.style.width=W+P_X;
                  t.style.height=H+P_X;
                  t.style.top=T+P_X;
                  t.style.left=L+P_X}
            else{      MemVal+="<div style='position:absolute; top:"+T+"; left:"+L+"; width:"+W+"; height:"+H+";visibility:inherit'><img src='"+S+"'></div>";
                  this.innerHTML=MemVal}}
      if(ExpYes){this.onselectstart=CnclSlct;
            this.onmouseover=RcrsLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu;
            this.onmouseout=CloseMenu;
            this.onclick=RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?OpenMenu:GoTo      }
      else{      RcrsLvl==1&&UnfoldsOnClick?this.addEventListener('mouseover',OpenMenuClick,false):this.addEventListener('mouseover',OpenMenu,false);
            this.addEventListener('mouseout',CloseMenu,false);
            RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?this.addEventListener('click',OpenMenu,false):this.addEventListener('click',GoTo,false)}}

function NavMbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){
      var a,b,c,d;
      if(RcrsLvl==1){
            a=LowBgColor;
            b=HighBgColor;
            c=FontLowColor;
            d=FontHighColor}
      else {      a=LowSubBgColor;
            b=HighSubBgColor;
            c=FontSubLowColor;
            d=FontSubHighColor      }
      this.value=eval(WhatMenu+'[0]');
      this.ro=0;
      if(this.value.indexOf('rollover')!=-1){
            this.ro=1;
            this.ri1=this.value.substring(this.value.indexOf(':')+1,this.value.lastIndexOf(':'));
            this.ri2=this.value.substring(this.value.lastIndexOf(':')+1,this.value.length);
            this.rid=WhatMenu+'i';this.value="<img src='"+this.ri1+"' name='"+this.rid+"'>"}
      if(LeftPaddng&&this.value.indexOf('<')==-1&&MenuTextCentered=='left')this.value='&nbsp\;'+this.value;
      if(FontBold)this.value=this.value.bold();
      if(FontItalic)this.value=this.value.italics();
      this.Ovalue=this.value;
      this.value=this.value.fontcolor(c);
      this.Ovalue=this.Ovalue.fontcolor(d);
      this.value=CntrTxt+"<font face='"+FontFamily+"' point-size='"+FontSize+"'>"+this.value+TxtClose;
      this.Ovalue=CntrTxt+"<font face='"+FontFamily+"' point-size='"+FontSize+"'>"+this.Ovalue+TxtClose;
      this.LoBck=a;
      this.HiBck=b;
      this.ChildCntnr=null;
      this.PrvMbr=PrMmbr;
      this.Hilite=0;
      this.visibility='inherit';
      if(this.LoBck)this.bgColor=this.LoBck;
      this.resizeTo(Wdth,Hght);
      if(!AcrssFrms&&eval(WhatMenu+'[2]'))this.background.src=eval(WhatMenu+'[2]');
      this.document.write(this.value);
      this.document.close();
      this.CmdLyr=new Layer(Wdth,MmbrCntnr);
      this.CmdLyr.Level=RcrsLvl;
      this.CmdLyr.LinkTxt=eval(WhatMenu+'[1]');
      this.CmdLyr.visibility='inherit';
      this.CmdLyr.onmouseover=RcrsLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu;
      this.CmdLyr.onmouseout=CloseMenu;
      this.CmdLyr.captureEvents(Event.MOUSEUP);
      this.CmdLyr.onmouseup=RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?OpenMenu:GoTo;
      this.CmdLyr.LowLyr=this;
      this.CmdLyr.resizeTo(Wdth,Hght);
      this.CmdLyr.Container=MmbrCntnr;
      if(eval(WhatMenu+'[3]')&&ShowArrow){
            a=RcrsLvl==1&&FirstLineHorizontal?3:RightToLeft?6:0;
            this.CmdLyr.ImgLyr=new Layer(Arrws[a+1],this.CmdLyr);
            this.CmdLyr.ImgLyr.visibility='inherit';
            this.CmdLyr.ImgLyr.top=RcrsLvl==1&&FirstLineHorizontal?Hght-Arrws[a+2]-2:(Hght-Arrws[a+2])/2;
            this.CmdLyr.ImgLyr.left=RightToLeft?2:Wdth-Arrws[a+1]-2;
            this.CmdLyr.ImgLyr.width=Arrws[a+1];
            this.CmdLyr.ImgLyr.height=Arrws[a+2];
            ImgStr="<img src='"+Arrws[a]+"' width='"+Arrws[a+1]+"' height='"+Arrws[a+2]+"'>";
            this.CmdLyr.ImgLyr.document.write(ImgStr);
            this.CmdLyr.ImgLyr.document.close()}}

function CreateMenuStructure(MName,NumberOf){
      RcrsLvl++;
      var i,NoOffSubs,Mbr,Wdth=0,Hght=0;
      var PrvMmbr=null;
      var WMnu=MName+'1';
      var MenuWidth=eval(WMnu+'[5]');
      var MenuHeight=eval(WMnu+'[4]');
      var Location=RcrsLvl==1?FrstLoc:ScLoc;
      if (RcrsLvl==1&&FirstLineHorizontal){
            for(i=1;i<NumberOf+1;i++){
                  WMnu=MName+eval(i);
                  Wdth=eval(WMnu+'[5]')?Wdth+eval(WMnu+'[5]'):Wdth+MenuWidth}
            Wdth=BorderBtwnElmnts?Wdth+(NumberOf+1)*BorderWidth:Wdth+2*BorderWidth;Hght=MenuHeight+2*BorderWidth}
      else{      for(i=1;i<NumberOf+1;i++){
                  WMnu=MName+eval(i);
                  Hght=eval(WMnu+'[4]')?Hght+eval(WMnu+'[4]'):Hght+MenuHeight}
            Hght=BorderBtwnElmnts?Hght+(NumberOf+1)*BorderWidth:Hght+2*BorderWidth;Wdth=MenuWidth+2*BorderWidth}
      if(DomYes){
            var MmbrCntnr=Location.document.createElement("div");
            MmbrCntnr.style.position='absolute';
            MmbrCntnr.style.visibility='hidden';
            Location.document.body.appendChild(MmbrCntnr)}
      else{      if(Nav4) var MmbrCntnr=new Layer(Wdth,Location)
            else{      WMnu+='c';
                  Location.document.body.insertAdjacentHTML("AfterBegin","<div id='"+WMnu+"' style='visibility:hidden; position:absolute;'><\/div>");
                  var MmbrCntnr=Location.document.all[WMnu]}}
      MmbrCntnr.SetUp=CntnrSetUp;
      MmbrCntnr.SetUp(Wdth,Hght,NumberOf);
      if(Exp4){      MmbrCntnr.InnerString='';
            for(i=1;i<NumberOf+1;i++){
                  WMnu=MName+eval(i);
                  MmbrCntnr.InnerString+="<div id='"+WMnu+"' style='position:absolute;'><\/div>"}
            MmbrCntnr.innerHTML=MmbrCntnr.InnerString}
      for(i=1;i<NumberOf+1;i++){
            WMnu=MName+eval(i);
            NoOffSubs=eval(WMnu+'[3]');
            Wdth=RcrsLvl==1&&FirstLineHorizontal?eval(WMnu+'[5]')?eval(WMnu+'[5]'):MenuWidth:MenuWidth;
            Hght=RcrsLvl==1&&FirstLineHorizontal?MenuHeight:eval(WMnu+'[4]')?eval(WMnu+'[4]'):MenuHeight;
            if(DomYes){
                  Mbr=Location.document.createElement("div");
                  Mbr.style.position='absolute';
                  Mbr.style.visibility='inherit';
                  MmbrCntnr.appendChild(Mbr)}
            else Mbr=Nav4?new Layer(Wdth,MmbrCntnr):Location.document.all[WMnu];
            Mbr.SetUp=Nav4?NavMbrSetUp:MbrSetUp;
            Mbr.SetUp(MmbrCntnr,PrvMmbr,WMnu,Wdth,Hght);
            if(NoOffSubs) Mbr.ChildCntnr=CreateMenuStructure(WMnu+'_',NoOffSubs);
            PrvMmbr=Mbr}
      MmbrCntnr.FrstMbr=Mbr;
      RcrsLvl--;
      return(MmbrCntnr)}

function CreateMenuStructureAgain(MName,NumberOf){
      var i,WMnu,NoOffSubs,PrvMmbr,Mbr=FrstCntnr.FrstMbr;
      RcrsLvl++;
      for(i=NumberOf;i>0;i--){
            WMnu=MName+eval(i);
            NoOffSubs=eval(WMnu+'[3]');
            PrvMmbr=Mbr;
            if(NoOffSubs)Mbr.ChildCntnr=CreateMenuStructure(WMnu+'_',NoOffSubs);
            Mbr=Mbr.PrvMbr}
      RcrsLvl--}

example.htm
<html>

<head>
<title>HV Menu example</title>
</head>

<body>
<script type='text/javascript'>

//HV Menu- by Ger Versluis (http://www.burmees.nl/)
//Submitted to Dynamic Drive (http://www.dynamicdrive.com)
//Visit http://www.dynamicdrive.com for this script and more

function Go(){return}

</script>
<script type='text/javascript' src='exmplmenu_var.js'></script>
<script type='text/javascript' src='menu_com.js'></script>
<noscript>Your browser does not support script</noscript>
</body>

</html>
0
Comment
Question by:jmoubhij
  • 5
  • 2
8 Comments
 
LVL 75

Accepted Solution

by:
Michel Plungjan earned 500 total points
ID: 12123172
Menu5=new Array("Other","javascript:window.open('page.html',newwin')","",1);

would be one way
0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 12123187
the other is to change
DocTargetFrame='space'
to

DocTargetFrame='myTarget'
0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 12123199
Lastly it is a very old version
Check out
http://www.burmees.nl/menu/menus.htm
0
 
LVL 49

Expert Comment

by:Roonaan
ID: 12123209
What does the third element in each menu-array -Menu_1_1 for example - do? I see it set to be "" at every occasion, but quite possibly this would be the one where you could stuff the target in. What happens if you change one of those empties with "_blank"?

(this is how things worked in coolmenus, hopefuly there is some kind of similarity..)

regards

-r-

On the other hand, you could always create a document saying:
<script>
 window.open('mydocument.html', 'newwindow');
/script>

A page has been opened in a new window. If this is not the case, please a href="mydocument.html" target="_blank">click this link</a>
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 12123254
3rd is BGImage:

//     MenuX=new Array(Text to show, Link, background image (optional), number of sub elements, height, width);
0
 

Author Comment

by:jmoubhij
ID: 12123449
Sorry, should have included this:

Menu1=new Array("TextToShow","Link","BgImage",NoOfSubs,Height,Width,BgColor,BgHiColor,FontColor,FontHiColor,BorderColor);
0
 

Author Comment

by:jmoubhij
ID: 12123971
Thanks so much for the quick response. I'm really under the gun to get this done.

The open() method for the windows object worked. I did try this before but must have had the syntax wrong.

Just need to correct a typo. Line should read:

Menu5=new Array("Other","javascript:window.open('page.html','newwin')","",1);

*newwin was missing start quote

thanks again!



0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 12124237
Ok, sorry for the missing quote
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

This article demonstrates how to create a simple responsive confirmation dialog with Ok and Cancel buttons using HTML, CSS, jQuery and Promises
Boost your ability to deliver ambitious and competitive web apps by choosing the right JavaScript framework to best suit your project’s needs.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now