/************************************************************************************ (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 *************************************************************************************/ // ACC: 4/3/2007 See comments for code I have changed ... 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 findTop(obj) { var curtop = 0; while (obj) { curtop += obj.offsetTop; obj = obj.offsetParent; } return curtop; } 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":""; TxtClose=""+MenuTextCentered!='left'?"":""} 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',NoOfFirstLineMenus); FrstCreat=AcrssFrms?0:1} else CreateMenuStructureAgain('Menu',NoOfFirstLineMenus); 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} //ACC 13/11 dont bother with the resize trigger as its not needed and not working right in chrome //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)/NoOfFirstLineMenus)-b),i,j; for(i=1;iScWinWdth+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(SubLtTpScrlld+ScWinHght)SubTp=this.Level==1?SubTp=TpScrlld+ScWinHght-CCH:SubTp-CCH+(1-2*ChildVerticalOverlap)*ThisHt; if(SubTp"} this.value=MemVal; if(RcrsLvl==1){ a=LowBgColor; b=HighBgColor; c=FontLowColor; d=FontHighColor //hack so we can set a permanent semi-highlight for a menu item if (title == 'Dewsbury Road Runners') { title = 'Home'; } if (MemVal == title) { c=HighCurrent; } } 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; //ACC hack to put background image in this.style.backgroundImage="url('../Images/gradient.gif')"; 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+="
"; 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=""} if(LeftPaddng&&this.value.indexOf('<')==-1&&MenuTextCentered=='left')this.value=' \;'+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+""+this.value+TxtClose; this.Ovalue=CntrTxt+""+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=""; 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