// Cascading Popup Menus v5.2 - Single Frame Menu example script.

// var ItemStyleName = new ItemStyle( Length, Spacing, 'Popout Indicator', Indicator Position, Padding, 'Out Background', 'Over Background', 'Out Font Class', 'Over Font Class', 'Out Border Class', 'Over Border Class', Out Opacity, Over Opacity, 'Link Cursor', 'Default Cursor');
var hBar = new ItemStyle(10, 10, '', 0, 5, '10#FFFFFF', '10#FF0000', 'rootText', 'rootText', '', '',
 null, null, 'hand', 'default');

var subM = new ItemStyle(22, 0, '&gt;', -15, 3, '10#FFFFFF', '10#FF0000', 'menuText', 'menuText',
 'itemBorder', 'itemBorder', null, null, 'hand', 'default');

var pMenu = new PopupMenu('pMenu');
with (pMenu)
{
//startMenu('root', false, x-start, y-start, height, hBar, '', false);
startMenu('root', false, 400, 45, 50, hBar, '', false);
addItem('About<br>NZSG', 'mAbout', 'sm:', null, 100);//was 140
addItem('Synchrotron<br>Science', 'mScience', 'sm:', null, 100);
addItem('<br>Media', 'mMedia', 'sm:', null, 100);//was 160
addItem('The<br>Facility', 'mFacility', 'sm:', null, 100);//was 150
addItem('Research/<br>Users', 'mUsers', 'sm:', null, 100);


startMenu('mAbout', true, 0, 45, 220, subM, '', false);
addItem('Background', '/about/', '');
addItem('Corporate structure', '/about/structure.php', '');
addItem('Shareholders', '/about/shareholders.php', '');
addItem('Contacts', '/about/contacts.php', '');

startMenu('mScience', true, 0, 45, 220, subM, '', false);
addItem('Overview', '/science/', '');
addItem('Benefits', '/science/benefits.php', '');
addItem('Uses', '/science/uses.php', '');
addItem('Techniques', '/science/techniques.php', '');
addItem('Case studies', '/science/casestudies.php', '');
//addItem('NZ investment', '/science/nzinvestment.php', '');
//addItem('Beamlines', '/science/beamlines.php', '');

startMenu('mMedia', true, 0, 45, 220, subM, '', false);
addItem('Press releases', '/media/', '');
addItem('News', '/media/news.php', '');
addItem('Newsletter archive', '/media/archives.php', '');
//addItem('Successful applicants', '/media/success.php', '');

startMenu('mFacility', true, 0, 45, 220, subM, '', false);
addItem('Machine design', '/facility/', '');
addItem('Construction timeline', '/facility/timeline.php', '');
addItem('Location', '/facility/location.php', '');
//moved from 'Science' menu
addItem('NZ investment', '/facility/nzinvestment.php', '');
addItem('Beamlines', '/facility/beamlines.php', '');

startMenu('mUsers', true, 0, 45, 220, subM, '', false);
addItem('Should I use it', '/user/', '');
addItem('Experimental techniques', '/science/techniques.php', '');
addItem('Research applications', '/science/uses.php', '');
addItem('Case studies', '/science/casestudies.php', '');
addItem('Accessing beamtime', '/user/accessing.php', '');
addItem('Accessing funding', '/user/funding.php', '');
addItem('Documents', '/user/documents.php', '');
//addItem('Info request form', '/user/registration.php', '');
//addItem('*Winter School 2009*', '/user/winterschool2009.php', '');
//addItem('*User Workshop 2009*', '/user/workshop2009.php', '');

// End of 'with (pMenu)' block. That's one menu object created!

}



// ******************** MENU EFFECTS ********************
addDropShadow(pMenu, window.subM,
 [40,"#333333",6,6,-4,-4], [40,"#666666",4,4,0,0]);
if ((navigator.userAgent.indexOf('rv:0.')==-1) &&
    !(isOp&&!document.documentElement) && !(isIE4&&!window.external))
{
 pMenu.showMenu = new Function('mN','menuAnim(this, mN, 10)');
 pMenu.hideMenu = new Function('mN','menuAnim(this, mN, -15)');

 // Add animation to other menu objects like this...
 //anotherMenu.showMenu = new Function('mN','menuAnim(this, mN, 10)');
 //anotherMenu.hideMenu = new Function('mN','menuAnim(this, mN, -15)');
}


// ******************** FUNCTIONS CALLED BY THE EFFECTS SECTION ********************

/// This is the "positioning from page anchors" code used by the advanced positioning expressions.
page.elmPos=function(e,p)
{
 var x=0,y=0,w=p?p:this.win;
 e=e?(e.substr?(isNS4?w.document.anchors[e]:getRef(e,w)):e):p;
 if(isNS4){if(e&&(e!=p)){x=e.x;y=e.y};if(p){x+=p.pageX;y+=p.pageY}}
 if (e && this.MS && navigator.platform.indexOf('Mac')>-1 && e.tagName=='A')
 {
  e.onfocus = new Function('with(event){self.tmpX=clientX-offsetX;' +
   'self.tmpY=clientY-offsetY}');
  e.focus();x=tmpX;y=tmpY;e.blur()
 }
 else while(e){x+=e.offsetLeft;y+=e.offsetTop;e=e.offsetParent}
 return{x:x,y:y};
};



function menuAnim(menuObj, menuName, dir)
{
 // The array index of the named menu (e.g. 'mFile') in the menu object (e.g. 'pMenu').
 var mD = menuObj.menu[menuName][0];
 // Add timer and counter variables to the menu data structure, we'll need them.
 if (!mD.timer) mD.timer = 0;
 if (!mD.counter) mD.counter = 0;

 with (mD)
 {
  // Stop any existing animation.
  clearTimeout(timer);

  if (!lyr || !lyr.ref) return;
  if (!visNow && dir>0) dir = 0-dir;
  if (dir>0) lyr.vis('visible');
  lyr.sty.zIndex = dir>0 ? mD.zIndex + 1 : 1001;
  lyr.clip(0, 0, menuW+2, (menuH+2)*Math.pow(Math.sin(Math.PI*counter/200),0.75) );
  counter += dir;
  if (counter>100) { counter = 100; lyr.sty.zIndex = mD.zIndex }
  else if (counter<0) { counter = 0; lyr.vis('hidden') }
  else timer = setTimeout('menuAnim('+menuObj.myName+',"'+menuName+'",'+dir+')', 40);
 }
};




function addDropShadow(mObj, iS)
{
 // Pretty similar to the one above, just loops through list of extra parameters making
 // dropshadow layers (from arrays) and extending the menu dimensions to suit.
 for (var mN in mObj.menu)
 {
  var a=arguments, mD=mObj.menu[mN][0], addW=addH=0;
  if (mD.itemSty != iS) continue;
  for (var shad=2; shad<a.length; shad++)
  {
   var s = a[shad];
   // Safari 1.2 bug: it inherits alpha values SIDEWAYS!?!? What were they thinking?
   var alpha = (s[0]!=null && navigator.userAgent.indexOf('AppleWebKit') == -1);
   if (isNS4) mD.extraHTML += '<layer bgcolor="'+s[1]+'" left="'+s[2]+'" top="'+s[3]+'" width="'+
    (mD.menuW+s[4])+'" height="'+(mD.menuH+s[5])+'" z-index="'+(arguments.length-shad)+'"></layer>';
   else mD.extraHTML += '<div style="position:absolute; background:'+s[1]+'; left:'+s[2]+
    'px; top:'+s[3]+'px; width:'+(mD.menuW+s[4])+'px; height:'+(mD.menuH+s[5])+'px; z-index:'+
    (a.length-shad)+'; '+
    (alpha?'filter:alpha(opacity='+s[0]+'); -moz-opacity:'+s[0]+'%; opacity:'+(s[0]/100):'')+
    '"></div>';
   addW=Math.max(addW, s[2]+s[4]);
   addH=Math.max(addH, s[3]+s[5]);
  }
  mD.menuW+=addW; mD.menuH+=addH;
 }
};