// Cascading Popup Menus v5.2 - Single Frame Menu example script.


// If you're upgrading from v5.1, you can paste your existing menu data in, and if you're
// upgrading from v5.0 you need to add 'cursor' settings to your ItemStyles.
//
// And before going ANY further, you must have READ and AGREE TO the script license!
// It can be found on my site, in the syntax helpfile, or in the demo script document.


var hBar = new ItemStyle(40, 0, '', 0, 4, '10#ffcc00', '10#ffcc00', 'highText', 'highText', '', '', null, null, 'hand', 'hand');

var hBar2 = new ItemStyle(40, 0, '', 0, 4, '10#fe6600', '10#fe6600', 'highText', 'highText', '', '', null, null, 'hand', 'hand');
var hBar3 = new ItemStyle(44, 0, '', 0, 4, '10#d0d5e4', '10#d0d5e4', 'highText', 'highText', '', '', null, null, 'hand', 'hand');


var separator2 = new ItemStyle(5, 0, '', 0, 5, '10#FFFFFF', '10#FFFFFF', 'highText', 'highText', '', '', null, null, 'hand', 'hand');

var subM = new ItemStyle(26, 0, '<img src="http://desmoinesregister.com/graphics/arrows.gif">', -15, 6, '10#d2cfbd', '10#FFCC00', 'lowText', 'lowText',
 '', '', 100, 100, 'hand', 'hand');
 
var subBlank = new ItemStyle(22, 0, '&gt;', -15, 0, '#CCCCDD', '#6699CC', 'lowText', 'highText',
 '', '', null, null, 'hand', 'default');


var midpointTop = new ItemStyle(30, 0, '', 0, 0, '', '', '', '', '', '', null, null, 'hand', 'hand');

var midpointBottom = new ItemStyle(80, 0, '', 0, 0, '', '', '', '', '', '', null, null, 'hand', 'hand');

var XtileSmall = new ItemStyle(60, 0, '', 0, 0, '#FFFFFF', '#FFFFFF', '', '', '', '', null, null, 'hand', 'hand');

var XtileBig = new ItemStyle(250, 0, '', 0, 0, '#FFFFFF', '#FFFFFF', '', '', '', '', null, null, 'hand', 'hand');


var navMenu = new PopupMenu('navMenu');
with (navMenu)
{



//THE NAV BAR
startMenu('root', false, 130, 125, 20, hBar);
addItem('<center><div style=\"color:#000000;\">news</div></center>', 'mNews', 'sm:', null, 42);
addItem('', '', '', separator2);
addItem('<center><div style=\"color:#000000;\">sports</div></center>', 'mSports', 'sm:', null, 47);
addItem('', '', '', separator2);
addItem('<center><div style=\"color:#000000;\">communities</div></center>', 'mCommunities', 'sm:', null, 82);
addItem('', '', '', separator2);
addItem('<center><div style=\"color:#000000;\">business</div></center>', 'http://www.desmoinesregister.com/apps/pbcs.dll/section?category=BUSINESS', '', null, 61);
addItem('', '', '', separator2);
addItem('<center><div style=\"color:#000000;\">entertainment</div></center>', 'mEnt', 'sm:', null, 92);
addItem('', '', '', separator2);
addItem('<center><div style=\"color:#ffffff;height:20px;\">juice</div></center>', 'http://www.dmjuice.com', '', hBar2);
addItem('', '', '', separator2);
addItem('<center><div style=\"color:#000000;height:20px;\">Moms</div></center>', 'http://www.dmmoms.com', '', hBar3);
addItem('', '', '', separator2);
addItem('<center><div style=\"color:#000000;\">travel</div></center>', 'http://asp.usatoday.com/travel/gcitravel/destination.aspx?cid=desmoinesregister', '', null, 42);
addItem('', '', '', separator2);
addItem('<center><div style=\"color:#000000;\">opinion</div></center>', 'mOpinion', 'sm:', null, 52);
addItem('', '', '', separator2);
addItem('<center><div style=\"color:#000000;\">obituaries</div></center>', 'http://desmoinesregister.com/apps/pbcs.dll/classifieds?Category=Obituaries', '', null, 66);




//THE NEWS MENU
startMenu('mNews', true, 0, 21, 150, subM, '', false);
addItem('agriculture', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=BUSINESS01', '');
addItem('life', 'mLife', 'sm:').onclick='window.location.href="http://desmoinesregister.com/apps/pbcs.dll/section?category=LIFE"';
addItem('crime & courts', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=NEWS01', '');
addItem('education', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=NEWS02', '');
addItem('iowa caucuses', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=NEWS&theme=CAMPAIGN_2008&template=theme', '');
addItem('local govt.', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=NEWS05', '');
addItem('nation & world', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=NEWS06', '');
addItem('obituaries', 'http://desmoinesregister.com/apps/pbcs.dll/classifieds?Category=Obituaries', '');
addItem('politics', 'http://desmoinesregister.com/politics', '');
addItem('state govt.', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=NEWS10', '');
addItem('photo galleries', 'http://desmoinesregister.com/photos', '');
addItem('news video', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=Video01', '');
addItem('slide shows/audio', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=Multimedia', '');


	//COMMUNITIES SUBMENU
	startMenu('mCommunities', true, 0, 21, 150, subM, '', false);
	addItem('Ankeny', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=COMM01', '');
	addItem('Clive', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=COMM02', '');
	addItem('D.M. East & North', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=COMM04', '');
	addItem('D.M. South', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=COMM05', '');
	addItem('D.M. West', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=COMM06', '');
	addItem('Johnston', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=COMM08', '');
	addItem('Urbandale', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=COMM09', '');
	addItem('Waukee', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=COMM10', '');
	addItem('West Des Moines', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=COMM11', '');	
	addItem('photo galleries', 'http://desmoinesregister.com/photos', '');
	addItem('slide shows/audio', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=Multimedia', '');

	
	//LIFE SUBMENU
	startMenu('mLife', true, 149, 0, 150, subM, '', false);
	addItem('columnists', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=LIFE01', '');
	addItem('health', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=LIFE02', '');
	addItem('home & garden', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=LIFE03', '');
		addItem('religion', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=LIFE05', '');
	
//THE SPORTS MENU
startMenu('mSports', true, 0, 21, 150, subM, '', false);
addItem('auto racing', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS1401', '');
addItem('baseball', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS03', '');
addItem('college sports', 'mcollegesports', 'sm:').onclick='window.location.href="http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS02"';
addItem('columnists', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS05', '');
addItem('high school', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS08', '');
addItem('hockey', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS1403', '');
addItem('outdoors', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS10', '');
addItem('other sports', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS13', '');	
addItem('photo galleries', 'http://desmoinesregister.com/photos', '');
addItem('sports video', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=Video02', '');
addItem('slide shows/audio', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=Multimedia', '');
	//College SUBMENU
startMenu('mcollegesports', true, 149, 0, 150, subM, '', false);
	addItem('Iowa Hawkeyes', 'http://desmoinesregister.com/hawkeyeinsider', '');
	addItem('Iowa State Cyclones', 'http://desmoinesregister.com/cycloneinsider', '');
	addItem('Drake Bulldogs', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS0204', '');
	addItem('UNI Panthers', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS0207', '');
	addItem('Other colleges', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS0208', '');
	

//BUSINESS SUBMENU
startMenu('mBusiness', true, 149, 0, 150, subM, '', false);
addItem('agriculture', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=BUSINESS01', '');
addItem('careers', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=BUSINESS02', '');
addItem('columnists', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=BUSINESS03', '');
addItem('economy', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=BUSINESS04', '');
addItem('technology', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=BUSINESS05', '');
	
//THE ENTERTAINMENT MENU
startMenu('mEnt', true, 0, 21, 150, subM, '', false);
addItem('life', 'mLife2', 'sm:').onclick='window.location.href="http://desmoinesregister.com/apps/pbcs.dll/section?category=LIFE"';
addItem('arts', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=ENT01', '');
addItem('food & dining', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=ENT02', '');
addItem('music', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=ENT04', '');
addItem('travel', 'http://asp.usatoday.com/travel/gcitravel/destination.aspx?cid=desmoinesregister', '');
addItem('photo galleries', 'http://desmoinesregister.com/photos', '');
addItem('video', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=Video04', '');
addItem('slide shows/audio', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=Multimedia', '');
	
	//LIFE SUBMENU
	startMenu('mLife2', true, 149, 0, 150, subM, '', false);
	addItem('columnists', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=LIFE01', '');
	addItem('health', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=LIFE02', '');
	addItem('home & garden', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=LIFE03', '');
		addItem('religion', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=LIFE05', '');
//OPINION SUBMENU
startMenu('mOpinion', true, 0, 21, 150, subM, '', false);
addItem('columnists', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=OPINION01', '');
addItem('Duffy', 'http://desmoinesregister.com/duffy/index.html', '');
addItem('forums', 'http://forums.dmregister.com', '');
addItem('editorials', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=OPINION03', '');
addItem('letters', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=OPINION04', '');
addItem('photo galleries', 'http://desmoinesregister.com/photos', '');
addItem('slide shows/audio', 'http://desmoinesregister.com/apps/pbcs.dll/section?category=Multimedia', '');

	







showDelay = 475;
hideDelay = 500;

}


addMenuBorder(navMenu, window.subBlank,
 null, '#666666', 1, '#CCCCDD', 2);
 

if ((navigator.userAgent.indexOf('rv:0.')==-1) &&
    !(isOp&&!document.documentElement) && !(isIE4&&!window.external))
{
 navMenu.showMenu = new Function('mN','menuAnim(this, mN, 10)');
 navMenu.hideMenu = new Function('mN','menuAnim(this, mN, -15)');
}

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}}
 else if (e && e.focus && e.href && this.MS && /Mac/.test(navigator.platform))
 {
  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)
{
 var mD = menuObj.menu[menuName][0];
 if (!mD.timer) mD.timer = 0;
 if (!mD.counter) mD.counter = 0;

 with (mD)
 {
  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 addMenuBorder(mObj, iS, alpha, bordCol, bordW, backCol, backW)
{
 // Loop through the menu array of that object, finding matching ItemStyles.
 for (var mN in mObj.menu)
 {
  var mR=mObj.menu[mN], dS='<div style="position:absolute; background:';
  if (mR[0].itemSty != iS) continue;
  // Loop through the items in that menu, move them down and to the right a bit.
  for (var mI=1; mI<mR.length; mI++)
  {
   mR[mI].iX += bordW+backW;
   mR[mI].iY += bordW+backW;
  }
  // Extend the total dimensions of menu accordingly.
  mW = mR[0].menuW += 2*(bordW+backW);
  mH = mR[0].menuH += 2*(bordW+backW);

  // Set the menu's extra content string with divs/layers underneath the items.
  if (isNS4) mR[0].extraHTML += '<layer bgcolor="'+bordCol+'" left="0" top="0" width="'+mW+
   '" height="'+mH+'" z-index="980"><layer bgcolor="'+backCol+'" left="'+bordW+'" top="'+
   bordW+'" width="'+(mW-2*bordW)+'" height="'+(mH-2*bordW)+'" z-index="990"></layer></layer>';
  else mR[0].extraHTML += dS+bordCol+'; left:0px; top:0px; width:'+mW+'px; height:'+mH+
   'px; z-index:980; '+
   (alpha!=null?'filter:alpha(opacity='+alpha+'); -moz-opacity:'+alpha+'%; opacity:'+(alpha/100):'')+
   '">'+dS+backCol+'; left:'+bordW+'px; top:'+bordW+'px; width:'+(mW-2*bordW)+'px; height:'+
   (mH-2*bordW)+'px; z-index:990"></div></div>';
 }
};

navMenu.onclick = function(mN, iN) { with (this)
{

 // This is where the top level navigation links are defined
 if (mN == 'root')
 {
 	//NEWS
  if (iN == 1) location.href = 'http://desmoinesregister.com/apps/pbcs.dll/section?category=NEWS';
  	//SPORTS
  if (iN == 3) location.href = 'http://desmoinesregister.com/apps/pbcs.dll/section?category=SPORTS';
  	//BUSINESS
  if (iN == 5) location.href = 'http://desmoinesregister.com/apps/pbcs.dll/section?category=COMM';
  	//ENTERTAINMENT
   if (iN == 9) location.href = 'http://desmoinesregister.com/apps/pbcs.dll/section?category=ENT';
  	//OPINION
  if (iN == 17) location.href = 'http://desmoinesregister.com/apps/pbcs.dll/section?category=OPINION';
  //INTERACTIVE
  if (iN == 19) location.href = 'http://desmoinesregister.com/apps/pbcs.dll/section?category=Interactive';
 }
}};

PopupMenu.prototype.elementHide = function(mN, show)
{
 var hideTags = [];
 // <select> is hidden in all IE versions, and Opera < 7.0.
 if ((isIE && !isOp) || (isOp && !document.documentElement))
  hideTags[hideTags.length] = 'SELECT';
 // <iframe> is hidden in IE < 5.5, all Opera versions, and Mozilla < 1.0.
 if ((isIE && !isOp && !window.createPopup) || isOp ||
  navigator.userAgent.match('rv:0.')) hideTags[hideTags.length] = 'IFRAME';
 // <object> and <applet> are hidden in all browsers.
 hideTags[hideTags.length] = 'OBJECT';
 hideTags[hideTags.length] = 'APPLET';

 with (this.menu[mN][0])
 {
  if (!lyr || !lyr.ref) return;

  var oldFn = show ? 'ehShow' : 'ehHide';
  if (this[oldFn]) this[oldFn](mN);
  else this.menu[mN][0].lyr.vis(show ? 'visible' : 'hidden');
  if (!isDOM && !isIE) return;
  if (hideTags.length == -1) return;

  var w = par?eval(par):self;
  if (!w.hideElms) w.hideElms = [];
  var hE = w.hideElms;

  if (show)
  {
   var elms = [];
   for (var t = 0; t < hideTags.length; t++)
   {
    var tags = isDOM ? w.document.getElementsByTagName(hideTags[t]) :
     isIE ? w.document.all.tags(hideTags[t]) : null;
    for (var i = 0; i < tags.length; i++) elms[elms.length] = tags[i];
   }
   for (var eN = 0; eN < elms.length; eN++)
   {
    var eRef = elms[eN];
    with (w.page.elmPos(eRef)) var eX = x, eY = y;
    if (!(lyr.x()+menuW<eX || lyr.x()>eX+eRef.offsetWidth) &&
        !(lyr.y()+menuH<eY || lyr.y()>eY+eRef.offsetHeight))
    {
     if (!hE[eN]) hE[eN] = { ref: eRef, menus: [] };
     hE[eN].menus[mN] = true;
     eRef.style.visibility = 'hidden';
    }
   }
  }
  else for (var eN in hE)
  {
   var reShow = 1, eD = hE[eN];
   eD.menus[mN] = false;
   for (var eM in eD.menus) reShow &= !eD.menus[eM];
   if (reShow && eD.ref)
   {
    eD.ref.style.visibility = 'visible';
    delete hE[eN];
   }
  }
 }
 return;
}
for (var p in PopupMenu.list)
{
 var pm = PopupMenu.list[p];
 pm.ehShow = pm.showMenu;
 pm.showMenu = new Function('mN','this.elementHide(mN, true)');
 pm.ehHide = pm.hideMenu;
 pm.hideMenu = new Function('mN','this.elementHide(mN, false)');
}
