/******************************** Copyright (c) 2001 Thomas Brattli (www.dhtmlcentral.com) eXperience DHTML coolMenus - Get it at www.dhtmlcentral.com Version 3.01 This script can be used freely as long as all copyright messages are intact. This script takes over for the old Coolmenus2 and CoolFrameMenu Visit www.dhtmlcentral.com/coolmenus/ for the latest version of the script. Tutorial: http://www.dhtmlcentral.com/tutorial.asp Support: http://www.dhtmlcentral.com/forums/forum.asp?FORUM_ID=2&CAT_ID=1&Forum_Title=CoolMenus (You can delete the comments below to save space) Known bugs: Netscape 6: When using padding in the layers you can sometimes get strange visual effects on the lowest menu item. Only way to fix is to not use padding. Opera: This menu is very close to working on Opera, but as far as I could figure out opera don't support innerHTML or document.createElement() which makes the changing of the text inside the submenus immpossible. If anyone know a solution to this please let me know. Explorer 4 for mac: It will not work in this browser, nothing does. Explorer 5 for mac: It works fine, but like Netscape 6 it's a little slow and you can get strange visual effects sometimes. Script checked and working with: PC: Netscape 4.03 - Netscape 4.04 -Netscape 4.08 - Netscape 4.73 - Netscape 6 - Netscape 6.01 Internet Explorer 5.0 - Internet Explorer 5.5 -Internet Explorer 6.0 MAC: Netscape 4 - Explorer 5 Btw: There is basically just one explanation to why this code is sort of "scrambled": I wanted this file be as small as possible.. If you want it to be smaller feel free to remove all comments (except for the copyright) *******************************/ /******************************* Default browsercheck *******************************/ function lib_bwcheck(){ //Browsercheck (needed) this.ver=navigator.appVersion this.agent=navigator.userAgent this.dom=document.getElementById?1:0 this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0; this.ie4=(document.all && !this.dom)?1:0; this.ie7=(this.agent.indexOf("MSIE 7")>-1 && this.dom)?1:0; this.ie=this.ie4||this.ie5||this.ie6||this.ie7 this.mac=this.agent.indexOf("Mac")>-1 this.opera5=this.agent.indexOf("Opera 5")>-1 this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; this.ns4=(document.layers && !this.dom)?1:0; this.bw=(this.ie7 || this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5 || this.dom) return this } var bw=new lib_bwcheck() /******************************* Pageobject ********************************/ function makePageCoords(win,fr){ if(!win) win=window this.x=0;this.x2=(bw.ns4 || bw.ns6)?win.innerWidth-1:win.document.body.offsetWidth; if(!fr&&bw.ie) this.x2-=20; else if(!fr&&bw.ns4) this.x2-=4; else if(bw.ns6) this.x2+=1 if(bw.ns4&&!win.rows) this.x2+=5 this.y=0;this.y2=(bw.ns4 || bw.ns6)?win.innerHeight:win.document.body.offsetHeight; if(!fr&&bw.ie) this.y2-=4; else if(bw.ns4&&fr) this.y2+=4 this.y2orig=this.y2; this.x50=this.x2/2; this.y50=this.y2/2; this.x10=(this.x2*10)/100-5;this.y10=(this.y2*10)/100-5 this.x15=(this.x2*15)/100-5;this.y15=(this.y2*15)/100-5; return this; } /******************************* Debugging function ********************************/ function debug(txt,ev){if(mDebugging==2) self.status=txt; else alert(txt); if(ev) eval(ev); return false} /****************************** Scroll function ******************************/ var rrr=0 function cm_checkScrolled(obj){ if(bw.ns4 || bw.ns6) obj.scrolledY=obj.win.pageYOffset else obj.scrolledY=obj.win.document.body.scrollTop if(obj.scrolledY!=obj.lastScrolled){ if(!obj.useframes){ for(i=0;ithis.l[l].maxnum) this.l[l].maxnum=this.m[parent].subs.length if(this.m[parent].totheight==0) this.m[parent].totheight=this.l[l].border this.m[parent].totheight+=obj.height+ this.l[l].border if(this.m[parent].maxwidthobj.width?this.maxwidth:obj.width; this.maxheight=this.maxheight>obj.height?this.maxwidth:obj.height } if(img1) text='' else if(bw.ns4){text=''+text+''} if(parent==""&&bw.ns4&&this.useNS4links) {text='
'+text+'
'} else if (bw.ns4&&this.useNS4links) {text='
'+text+'
'} if(img1){obj.preimg1=new Image(); obj.preimg1.src=img1}; if(img2){obj.preimg2=new Image(); obj.preimg2.src=img2} if(img2) obj.img="imgCMenu"+name; else obj.img=0; obj.img1=img1||""; obj.img2=img2||""; obj.text=text; obj.c1=bgcoloroff||prop1.bgcoloroff||prop2.bgcoloroff; obj.c2=bgcoloron||prop1.bgcoloron||prop2.bgcoloron; obj.c3=textcolor||this.l[l].tc; obj.c4=hovercolor||prop1.hovercolor||prop2.hovercolor; obj.mclick=onclick||""; obj.mover=onmouseover||""; obj.mout=onmouseout||""; obj.totheight=0; obj.maxwidth=0; obj.subx=-1; obj.suby=-1; } /****************************** Onmouseout ******************************/ function cm_mout(name){ clearTimeout(this.tim); this.isover=0; if(this.m[name].mout!="") eval(this.m[name].mout); if(!(!bw.ie&&this.m[name].l==0&&this.useframes&&this.aobj[1]!=-1)) this.tim=setTimeout(this.name+".hideSubs(1,0,0,0,1)",this.wait) } /****************************** Onmouseover ******************************/ function cm_mover(name){ clearTimeout(this.tim); this.isover=1; if(this.m[name].mover!="") eval(this.m[name].mover) var l=this.m[name].l; var num=this.m[name].num; var obj=this.l[l].o[num] if(this.aobj[l]!=-1&&this.aobj[l]!=obj){if(this.aobj[l].l>=l) this.aobj[l].setactive(0,0,1)} if(this.lastl==name&&l!=0) return; if(l==0&&this.loaded){ if(this.aobj[0].name==name){ this.hideSubs(2,1); if(this.aobj[1]!=-1) this.aobj[1].setactive(0,0,1); this.aobj[1]=-1; this.lastl=-1; return } } this.aobj[l]=obj; this.aobj[l].name=name; this.aobj[l].setactive(1,0,1); this.lastl=name; if(!this.loaded) return this.showSubs(name,l,num) } /****************************** Hiding subelements ******************************/ function cm_hideSubs(l,system,cl,sys2,hc){ if(this.isover && !system) return if(l==1 && this.aobj[0]!=-1&&!sys2){this.aobj[0].setactive(0,0,1);this.aobj[0]=-1} if(!this.loaded) return; if(cl==1) return for(i=l;ipage.x2){ if(align!=1){if(align==3&&topalign!=0) topalign=3; align=1; this.getCoords(name,l,num,topalign,align,ln,border,cn)} }else if(this.m[name].subxpage.y2){ if(l==1){topalign=3; this.getCoords(name,l,num,topalign,align,ln,border,cn,3)} else if(align!=3){ align=3; this.getCoords(name,l,num,topalign,align,ln,border,cn)} }else if(this.m[name].suby=this.l.length) return; ln=this.m[name].subs.length if(ln==0){this.hideSubs(l,1,0,1); return} else this.hideSubs(l+1,1); var border=this.l[l].border; this.aobj[l]=-1 if(this.useframes&&(bw.ns4||bw.ns6)) cm_checkScrolled(this) if((this.m[name].subx==-1 || this.m[name].suby==-1) || this.m[name].scrollY!=this.lastScrolled || this.isresized){ var topalign=this.l[0].align; var align=this.l[l-1].align; this.getCoords(name,l,num,topalign,align,ln,border,0) }var x=this.m[name].subx; var y=this.m[name].suby; var bobj=this.l[l].oBorder; bobj.hideIt(); bobj.clipTo(0,this.m[name].maxwidth,this.m[name].totheight,0,1) bobj.moveIt(x,y); var yy=border for(i=0;ithis.m[name].subx && selx<(this.m[name].subx+this.m[name].maxwidth)) &&((sely+selh)>this.m[name].suby && sely<(this.m[name].suby+this.m[name].totheight))){ if(this.sel[i].style.visibility!="hidden"){ this.sel[i].level=l this.sel[i].style.visibility="hidden"; this.hcode+=this.name+".sel["+i+"].style.visibility='visible';" } }else if(l<=this.sel[i].level) this.sel[i].style.visibility="visible" } }else if(bw.ns4&&this.hideForm){ eval(this.hideForm+".visibility='hide'") this.hcode=this.hideForm+".visibility='show'" } } /****************************** Making all top elements ******************************/ function cm_makeTop(rr){ var m,rows,border,x,y,mpa m=this.menuplacement; rows=this.rows; this.pxbetween=this.checkp(this.pxbetween,0,1,1) border=this.l[0].border;y=this.checkp(this.fromtop,0,0,1)+border;x=this.checkp(this.fromleft,0,0,1)+border if(m=="bottomcenter"||m=="bottom"){ if(m=="bottomcenter") x=toppage.x2/2-(this.totwidth+border*this.l[0].num+this.pxbetween*(this.l[0].num-1))/2 y=toppage.y2-this.maxheight-border }else if(m=="right") x=toppage.x2-this.maxwidth-border*2 else if(m=="bottom") y=toppage.y2-this.maxheight-border*2 else if(m=="center"){if(rows==0) x=toppage.x2/2 - (this.maxwidth+border*2)/2; else x=toppage.x2/2 - (this.totwidth + border*this.l[0].num +this.pxbetween*(this.l[0].num-1))/2} else if(m.toString().indexOf(",")>-1) mpa=1 if(this.usebar){ var bx,by,bww,bh,oBb oNS=bw.ns6?this.oNS[this.l[0].maxnum]:0 this.oBar=new cm_makeObj('div'+this.name+'Bar',0,0,window,0,oNS) if(this.barx=="menu") bx=mpa&&rows?this.checkp(m[0],1,0,1)-border:x-border; else{ bx=this.checkp(this.barx,1,0,1) } if(this.bary=="menu") by=mpa&&!rows?this.checkp(m[0],0,0,1)-border:y-border; else by=this.checkp(this.bary,0,0,1); this.oBar.moveIt(bx,by) if(this.barwidth=="menu"){bww=rows?mpa?(this.checkp(m[m.length-1],1,0,1)-bx)+this.m[this.l[0].names[this.l[0].num-1]].width+border:(this.totwidth +this.pxbetween*(this.l[0].num-1)):this.maxwidth; bww+=!rows?border*2:0;}else bww=this.checkp(this.barwidth,1,0,1); if(bw.ie&&rows&&this.barwidth=="100%"&&this.useframes) bww+=parseInt(self.document.body.leftMargin)*2 if(this.barheight=="menu"){bh=!rows?mpa?(this.checkp(m[m.length-1],0,0,1)-by)+this.m[this.l[0].names[this.l[0].num-1]].height+border:(this.totheight + this.pxbetween*(this.l[0].num-1)):this.maxheight; bh+=rows?this.l[0].border*2:0;} else bh=this.checkp(this.barheight,0,0,1); this.oBar.clipTo(0,bww,bh,0,1); if(this.barinheritborder&&border){oBb=new cm_makeObj('div'+this.name+'Barb',0,0,window,'div'+this.name+'Bar'); oBb.moveIt(border,border); oBb.clipTo(0,bww-border*2,bh-border*2,0,1); oBb=null;} }this.l[0].o=new Array() for(j=0;j\n' for(j=0;j' str+=tempstr+' class="cl'+this.name+i+'">'+txt+''; str+='\n' }else this.oNS[j]=cm_NS6_createElement(this.ns6styleb[i],tempstr+' class="cl'+this.name+i+'">'+txt+'') }else frstr+=tempstr+'">\n' }if(i!=0){frstr+='\n'} } if(this.usebar){ if(this.barinheritborder) str2='
'; if(bw.ns6) this.oNS[this.l[0].maxnum]=cm_NS6_createElement(this.ns6styleb[this.ns6styleb.length-1],str2) else{str+='
';str+=str2+'
\n'} } if(!this.useframes&&bw.ie) str+=frstr; else this.frstr=frstr; if(!bw.ns6) document.write(str) this.makeTop(); if(this.useframes) window.onerror=cm_check_error; } //Trapping external pages in frame error! coolFrameError=0 function cm_check_error(e){ e=e.toLowerCase() if(e.indexOf("access")>-1||e.indexOf("permission")>-1){ coolFrameError=1; return true }else return false } /****************************** Make styles ******************************/ function cm_makeStyle(){ var str="\n") //if(bw.ns4) str+="\nA.clNS4{text-decoration:none;padding:"+this.NS4padding+"}\n" //document.write(str+"\n\n") } /****************************** Refreshing page if it's resized ******************************/ function cm_resized(){ page2=new makePageCoords(window,this.useframes); if(page2.x2!=toppage.x2 || page2.y2!=toppage.y2){ if(!bw.ns4){ toppage=new makePageCoords(window,this.useframes); this.makeTop(1) if(!this.useframes) page=toppage; this.isresized=1 eval(this.resizecode) }else{this.win.location.reload(); location.reload()} } if(!bw.ns4&&this.useframes){page=new makePageCoords(this.win,this.useframes)} } /****************************** Going to another page ******************************/ function cm_go(name){ obj=this.m[name]; url=obj.lnk; target=obj.target; fc=obj.mclick if(url){ if(this.useframes&&!coolFrameError) loc=this.win.location.href; else loc=location.href if(fc) eval(fc); url=this.checkFolder(loc.toString(),url); this.isover=0; if(String(target)=="undefined" || target=="" || target==0 || target=="_self"){ this.hideSubs(1,0,1); this.win.location.href=url }else if(target=="_blank") window.open(url) else if(target=="_top" || target=="window") top.location.href=url else if(top[target]) top[target].location.href=url else{fr=findFrame(target); if(fr) fr.location.href=url} }else if(fc) eval(fc) } /****************************** Getting folders - THANKS TO DCAGE FOR THIS FIX ******************************/ function cm_checkFolder(tmp,url){ if(url.indexOf("mailto:")>-1 || url.indexOf("/")==0 || url.indexOf("http://")==0) return url else if(this.useframes && bw.ie) return url var addr=''; var lvl=''; var off_cnt=0; var cnt=0; if(tmp.indexOf('file:')>-1 || tmp.charAt(1)==':') addr=this.offlineUrl; else if(tmp.indexOf('http:')>-1) addr=this.onlineUrl; for(var i=0;ioff_cnt) lvl+='../'}} return lvl + url } /****************************** Checkloaded for the frames version ******************************/ function cm_checkLoaded(ev,ns){ coolFName=eval(coolFName) var ok=0 if(document.layers){ if(ns){ coolFName.refresh(); coolFName.nsload=1; ok=1; coolFrameError=0 }else if(ev.target.name==coolFName.frame&&!coolFName.nsload){coolFName.refresh(); ok=1; coolFrameError=0; routeEvent(ev)} }else if(bw.ie){ if (coolFName.win.document.readyState == "complete"){ coolFName.win.document.body.insertAdjacentHTML("beforeEnd",coolFName.frstr) coolFName.win.document.body.onunload=cm_unloaded; coolFName.refresh(); ok=1; coolFrameError=0 }else setTimeout("cm_checkLoaded()",200) }else if(bw.ns6){ if(coolFName.win.document){ if(coolFName.win.document.body){coolFName.win.addEventListener("unload", cm_unloaded, true); coolFName.refresh(); ok=1; coolFrameError=0} else setTimeout("cm_checkLoaded()",200) }else setTimeout("cm_checkLoaded()",200) } } function cm_unloaded(ev){coolFName=eval(coolFName); if(document.layers && ev.target.name!=coolFName.frame) return; else coolFName.nsload=0; coolFName.loaded=0; if(!document.layers) setTimeout("cm_checkLoaded()",200)} /****************************** Make menu object ******************************/ var coolFName=""; var onload function makeCoolMenu(name){ coolFName=name this.name=name; this.lastScrolled=0; this.win=window; toppage=new makePageCoords(window,parent.frames.length); this.aobj=new Array(); this.m=new Array() this.o=new Array(); this.l=new Array() this.level=new Array(); this.lastl=-1; this.resized=cm_resized; this.makeMenu=cm_makeMenu; this.showSubs=cm_showSubs; this.makeTop=cm_makeTop; this.getCoords=cm_getCoords; this.checkPage=cm_checkPage; this.mmout=cm_mout; this.mover=cm_mover; this.checkp=cm_checkp; this.hideSubs=cm_hideSubs; this.construct=cm_construct; this.makeStyle=cm_makeStyle; this.refresh=cm_refresh; this.go=cm_go; this.frstr=""; this.loadcnt=0 this.totwidth=0; this.totheight=0; this.maxwidth=0; this.maxheight=0 this.tim=10; this.loaded=0; this.isover=false; this.checkFrame=cm_checkFrame; this.checkFolder=cm_checkFolder; this.hcode="" this.oNS=new Array(); this.oNS2=new Array() } /****************************** Find frame ******************************/ function findFrame(frameName){ obj=top; var frameObj=0; for(i=0;i-1 && this.dom)?1:0; this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0; this.ie4=(document.all && !this.dom)?1:0; this.ie7=(this.agent.indexOf("MSIE 7")>-1 && this.dom)?1:0; this.ie=this.ie4||this.ie5||this.ie6||this.ie7 this.mac=this.agent.indexOf("Mac")>-1 this.opera5=this.agent.indexOf("Opera 5")>-1 this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; this.ns4=(document.layers && !this.dom)?1:0; this.bw=(this.ie7 || this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5 || this.dom) return this } var bw=new lib_bwcheck() //Making browsercheck object var mDebugging=2 //General debugging variable. Set to 0 for no debugging, 1 for alerts or 2 for status debugging. oCMenu=new makeCoolMenu("oCMenu") //Making the menu object. Argument: menuname oCMenu.useframes=0 //Do you want to use the menus as coolframemenu or not? (in frames or not) - Value: 0 || 1 oCMenu.frame="frmMain" //The name of your main frame (where the menus should appear). Leave empty if you're not using frames - Value: "main_frame_name" /*If you set this to 1 you will get a "hand" cursor when moving over the links in NS4. The only downside to it is that if you're using frames and you don't have spesified that the links should have no "underline" you will get lines on the links. In that case you have to add this STYLE setting to ALL the pages that will be loaded in the main frame: (if you don't want padding just remove the padding stuff)*/ oCMenu.useNS4links=1 //After adding the "hover effect" for netscape as well, all styles are lost. But if you want padding add it here. oCMenu.NS4padding=0 //If you have select boxes close to your menu the menu will check for that and hide them if they are in the way of the menu. //This feature does unfortunatly not work in NS4! oCMenu.checkselect=1 /*If you choose to have this code inside a linked js, or if your using frames it's important to set these variables. This will help you get your links to link to the right place even if your files are in different folders. The offlineUrl variable is the actual path to the directory where you js file are locally. This is just so you can test it without uploading. Remember to start it with file:/// and only use slashes, no backward slashes! Also remember to end with a slash */ //oCMenu.offlineUrl="file:///C|/Inetpub/wwwroot/dhtmlcentral/" //Value: "path_to_menu_file_offline/" //The onlineUrl variable is the online path to your script. Place in the full path to where your js file is. Remember to end with a slash. //oCMenu.onlineUrl="http://www.dhtmlcentral.com/" //Value: "path_to_menu_file_online/" oCMenu.pagecheck=0 //Do you want the menu to check whether any of the subitems are out of the bouderies of the page and move them in again (this is not perfect but it hould work) - Value: 0 || 1 oCMenu.checkscroll=0 //Do you want the menu to check whether the page have scrolled or not? For frames you should always set this to 1. You can set this to 2 if you want this feature only on explorer since netscape doesn't support the window.onscroll this will make netscape slower (only if not using frames) - Value: 0 || 1 || 2 oCMenu.resizecheck=1 //Do you want the page to reload if it's resized (This should be on or the menu will crash in Netscape4) - Value: 0 || 1 oCMenu.wait=500 //How long to wait before hiding the menu on mouseout. Netscape 6 is a lot slower then Explorer, so to be sure that it works good enough there you should not have this lower then 500 - Value: milliseconds //Background bar properties oCMenu.usebar=0 //If you want to use a background-bar for the top items set this on - Value: 1 || 0 oCMenu.barcolor="Navy" //The color of the background bar - Value: "color" oCMenu.barwidth="100%" //The width of the background bar. Set this to "menu" if you want it to be the same width as the menu. (this will change to match the border if you have one) - Value: px || "%" || "menu" oCMenu.barheight="menu" //The height of the background bar. Set this to "menu" if you want it to be the same height as the menu. (this will change to match the border if you have one) - Value: px || "%" || "menu" oCMenu.barx=0 //The left position of the bar. Set this to "menu" if you want it be the same as the left position of the menu. (this will change to match the border if you have one) - Value: px || "%" || "menu" oCMenu.bary=0 //The top position of the bar Set this to "menu" if you want it be the same as the top position of the menu. (this will change to match the border if you have one) - Value: px || "%" || "menu" oCMenu.barinheritborder=0 //Set this to 1 if you want the bar to have the same border as the top menus - Value: 0 || 1 //Placement properties oCMenu.rows=1 //This controls whether the top items is supposed to be laid out in rows or columns. Set to 0 for columns and 1 for row - Value 0 || 1 /* oCMenu.fromleft=160 //This is the left position of the menu. (Only in use if menuplacement below is 0 or aligned) (will change to adapt any borders) - Value: px || "%" oCMenu.fromtop=120 //This is the left position of the menu. (Only in use if menuplacement below is 0 or aligned) (will change to adapt any borders) - Value: px || "%" */ oCMenu.pxbetween=0 //How much space you want between each of the top items. - Value: px || "%" /*You have several different ways to place the top items. You can have them right beside eachother (only adding the pxbetween variable) oCMenu.menuplacement=0 You can have them aligned to one of the sides - This is mostly when not using frames, but can be used in both conditions Values: (If you get strange results check the fromleft,fromtop and pxbetween variables above) For menus that are placed in columns (align=left or align=right (se below)) you can align them to the "right" or "center" For menus that are placed in rows (align=top or align=bottom (se below)) you can align them to the "bottom", "center" or "bottomcenter" oCMenu.menuplacement="center" You can also set them directly in pixels: (Remember to have as many array members as you have top items) oCMenu.menuplacement=new Array(10,200,400,600) Or you can place in percentage: (remember to use the ' ' around the numbers) Choose one of those options to get the desired results. */ //oCMenu.menuplacement=new Array('2%','20%','36%','57%','70%','80%') oCMenu.menuplacement=0 oCMenu.onlineUrl="/research.nsf/files/DDM_research.js/$file/DDM_research.js/"; if (bw.ns4) {oCMenu.fromleft=170} else if (bw.ns6) {oCMenu.fromleft=170} else {oCMenu.fromleft=170} if (bw.ns4) {oCMenu.fromtop=175} else if (bw.ns6) {oCMenu.fromtop=175} else {oCMenu.fromtop=175} oCMenu.level[0]=new Array() oCMenu.level[0].width=80 oCMenu.level[0].height=50 oCMenu.level[0].bgcoloroff='#9CB9D9' oCMenu.level[0].bgcoloron='#CCCCCC' oCMenu.level[0].textcolor='#000000' oCMenu.level[0].hovercolor='#0000FF' oCMenu.level[0].style='padding:4px;font-family:Arial,Helvetica;font-size:9.4px; text-align:center; text-decoration:underline' oCMenu.level[0].border=1 oCMenu.level[0].bordercolor='#CCCCCC' oCMenu.level[0].offsetX=0 oCMenu.level[0].offsetY=-1 oCMenu.level[0].NS4font='Arial,Helvetica' oCMenu.level[0].align='bottom' oCMenu.level[1]=new Array() oCMenu.level[1].width=120 oCMenu.level[1].height=20 oCMenu.level[1].bgcoloroff='#9CB9D9' oCMenu.level[1].bgcoloron='#CCCCCC' oCMenu.level[1].textcolor='#000000' oCMenu.level[1].hovercolor='#0000FF' oCMenu.level[1].style='padding:4px;font-family:Arial,Helvetica;font-size:9.4px;text-decoration:underline ' oCMenu.level[1].border=1 oCMenu.level[1].bordercolor='#CCCCCC' oCMenu.level[1].offsetX=0 oCMenu.level[1].offsetY=-1 oCMenu.level[1].NS4font='Arial,Helvetica' oCMenu.level[1].align='bottom' oCMenu.myNS4FontSize='9.4px' oCMenu.makeMenu('Top1','', CenterNS('About CIPS','110'),'/cipshome.nsf/pages/aboutcips','','80','50','','','','','#000000','','','status="/cipshome.nsf/pages/aboutcips";','status="";') oCMenu.makeMenu('Sub1-1','Top1',"CIPS Courses","/cipshome.nsf/pages/education",'','120','20','','','','','','','','status="/cipshome.nsf/pages/education";','status="";') oCMenu.makeMenu('Sub1-2','Top1',"CIPS Membership","/cipshome.nsf/pages/membership",'','120','20','','','','','','','','status="/cipshome.nsf/pages/membership";','status="";') oCMenu.makeMenu('Sub1-3','Top1',"Find an Intl. Specialist","/intl_membrshp.nsf/web+view/$SearchForm?SearchView",'','120','20','','','','','','','','status="/intl_membrshp.nsf/web+view/$SearchForm?SearchView";','status="";') oCMenu.makeMenu('Top2','', CenterNS('Business Development','110'),"/cipshome.nsf/pages/businessdevelopment?opendocument",'','80','50','','','','','#000000','','','status="/cipshome.nsf/pages/businessdevelopment?opendocument";','status="";') oCMenu.makeMenu('Sub2-1','Top2',"ICREA","/cipshome.nsf/pages/icrea",'','150','20','','','','','','','','status="/cipshome.nsf/pages/icrea";','status="";') oCMenu.makeMenu('Sub2-2','Top2',"Country Profiles","/intlprof.nsf",'','150','20','','','','','','','','status="/intlprof.nsf";','status="";') oCMenu.makeMenu('Sub2-3','Top2',"Personal Marketing","/cipshome.nsf/pages/personalmktg",'','150','20','','','','','','','','status="/cipshome.nsf/pages/personalmktg";','status="";') oCMenu.makeMenu('Sub2-4','Top2',"Tools for Intl. Practitioners","/cipshome.nsf/pages/newsandresources",'','150','20','','','','','','','','status="/cipshome.nsf/pages/newsandresources";','status="";') oCMenu.makeMenu('Top3','', CenterNS('Meetings & Events','110'),"/cipshome.nsf/pages/meetingsevents?opendocument",'','80','50','','','','','#000000','','','status="/cipshome.nsf/pages/meetingsevents?opendocument";','status="";') oCMenu.makeMenu('Sub3-1','Top3',"NAR Meetings","/cipshome.nsf/pages/narmeetings",'','150','20','','','','','','','','status="/cipshome.nsf/pages/narmeetings";','status="";') oCMenu.makeMenu('Sub3-2','Top3',"International Conferences","/cipshome.nsf/pages/intlmeetings",'','150','20','','','','','','','','status="/cipshome.nsf/pages/intlmeetings";','status="";') oCMenu.makeMenu('Sub3-3','Top3',"Summaries & Reports","/cipshome.nsf/pages/mtgreports",'','150','20','','','','','','','','status="/cipshome.nsf/pages/mtgreports";','status="";') oCMenu.makeMenu('Top4','', CenterNS('News & Information','110'),"/cipshome.nsf/pages/newsinformation?opendocument",'','80','50','','','','','#000000','','','status="/cipshome.nsf/pages/newsinformation?opendocument";','status="";') oCMenu.makeMenu('Sub4-1','Top4',"Industry News","/cipshome.nsf",'','150','20','','','','','','','','status="/cipshome.nsf";','status="";') oCMenu.makeMenu('Sub4-2','Top4',"Weekly News Headlines","/cipshome.nsf/pages/intl_news",'','150','20','','','','','','','','status="/cipshome.nsf/pages/intl_news";','status="";') oCMenu.makeMenu('Sub4-3','Top4',"Global Perspectives","/IntUpdt.nsf?OpenDatabase",'','150','20','','','','','','','','status="/IntUpdt.nsf?OpenDatabase";','status="";') oCMenu.makeMenu('Sub4-4','Top4',"Country Profiles","/intlprof.nsf",'','150','20','','','','','','','','status="/intlprof.nsf";','status="";') oCMenu.makeMenu('Top5','', CenterNS('Association Resources','110'),'/intlocal.nsf/resource?OpenView','','80','50','','','','','#000000','','','status="/intlocal.nsf/resource?OpenView";','status="";') oCMenu.makeMenu('Sub5-1','Top5',"Local Councils","/intlocal.nsf",'','120','20','','','','','','','','status="/intlocal.nsf";','status="";') oCMenu.makeMenu('Sub5-2','Top5',"AE International","/realtorae.nsf/pages/international",'','120','20','','','','','','','','status="/realtorae.nsf/pages/international";','status="";') oCMenu.makeMenu('Sub5-3','Top5',"AE Listserve","/intlocal.nsf/pages/aelistserve",'','120','20','','','','','','','','status="/intlocal.nsf/pages/aelistserve";','status="";') oCMenu.makeMenu('Top6','', CenterNS('Cooperating Associations','110'),'/intlnet.nsf/coopassocmain','','80','50','','','','','#000000','','','status="/intlnet.nsf/coopassocmain";','status="";') oCMenu.makeMenu('Top7','', CenterNS('International Home Page','110'),'http://www.realtor.org/international/index.html','','80','50','','','','','#000000','','','status="http://www.realtor.org/international/index.html";','status="";') oCMenu.makeStyle();oCMenu.construct()