Spry Menu - Current Page question

Hi
I have a 2 level Spry Menu which is dynamically populated. (http://broke.brokefordwich.com.au)  I am able to add a class to the menu item for the current page. This works fine for the top level items and the second level items. However, I would like to have also highlight the top level menu item for which a second level page is current.
Can Spry do that ? If so, I would appreciate some hints on how to go about it.

Hey Ben !
Thanks for the tip. I will think it thru.
Isn't is amazing how someone else can have an idea that sparks off new ideas.
The current page always has a class added to it. The trick is making the parent of a child page have a different class. However, your approach has given me something to think about. I think I have an idea on how to do this easily in PHP - ie: set a class on the parent of an active child. Earlier the first idea I had was an overkill.  Thanks again.
Cheers from the Hunter.

Similar Messages

  • Spry Menu bar, simple question

    I have a spry menu bar that is working great with my HTML pages.  I would like to incorporate the same bar into my index.php page for my blog so that it can maintain the same look and feel. 
    <dumb question> Can this be done? </dumb question>.
    Thanks in advance for this newb question.
    MP

    Code from my sidebar.php file:
    <!DOCTYPE html><html dir="ltr" lang="en-US"><head>
    <meta charset="UTF-8">
    <title>Coconut Cove Pools | Tyler Texas Pool Builder</title>
    <link rel="profile" href="http://gmpg.org/xfn/11">
    <link rel="stylesheet" type="text/css" media="all" href="http://localhost/coconutcove/blog/wp-content/themes/MP_twentyten/style.css">
    <link rel="pingback" href="http://localhost/coconutcove/blog/xmlrpc.php">
    <link rel="alternate" type="application/rss+xml" title="Coconut Cove Pools » Feed" href="http://localhost/coconutcove/blog/?feed=rss2">
    <link rel="alternate" type="application/rss+xml" title="Coconut Cove Pools » Comments Feed" href="http://localhost/coconutcove/blog/?feed=comments-rss2">
    <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://localhost/coconutcove/blog/xmlrpc.php?rsd">
    <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://localhost/coconutcove/blog/wp-includes/wlwmanifest.xml">
    <link rel="index" title="Coconut Cove Pools" href="http://localhost/coconutcove/blog">
    <meta name="generator" content="WordPress 3.0.1">
    <script src="/coconutcove/SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <link href="/coconutcove/SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css">
    </head><body class="home blog">
    <div id="wrapper" class="hfeed">
         <div id="header">
              <div id="masthead">
              <ul id="MenuBar1" class="MenuBarHorizontal">
                <li><a href="/coconutcove/index.html">Home</a>            </li>
                <li><a href="#" class="MenuBarItemSubmenu">Photos</a>
                  <ul>
                    <li><a href="/coconutcove/pool_spa.html">Pools/Spas</a></li>
                    <li><a href="/coconutcove/kitchen_fireplace.html">Kitchens/Fireplaces</a></li>
                  </ul>
                </li>
                <li><a href="/coconutcove/about.html" class="">About Us</a>            </li>
                <li><a href="/coconutcove/contact.html">Contact Us</a></li>
                <li><a href="/coconutcove/blog">Blog</a></li>
              </ul>
           </div><!-- #masthead -->
         </div><!-- #header -->
         <div id="main">
    <script type="text/javascript">
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"/coconutcove/SpryAssets/SpryMenuBarDownHover.gif", imgRight:"/coconutcove/SpryAssets/SpryMenuBarRightHover.gif"});
        </script>
              <div id="container">
                   <div id="content" role="main">
                   <div id="post-16" class="post-16 post type-post hentry category-pools tag-east-texas-pool-builder tag-tyler-texas-pool-builder">
                   <h2 class="entry-title"><a href="http://localhost/coconutcove/blog/?p=16" title="Permalink to New video" rel="bookmark">New video</a></h2>
                   <div class="entry-meta">
                        <span class="meta-prep meta-prep-author">Posted on</span> <a href="http://localhost/coconutcove/blog/?p=16" title="5:15 am" rel="bookmark"><span class="entry-date">October 20, 2010</span></a> <span class="meta-sep">by</span> <span class="author vcard"><a class="url fn n" href="http://localhost/coconutcove/blog/?author=1" title="View all posts by admin">admin</a></span>               </div><!-- .entry-meta -->
                        <div class="entry-content">
                        <p>I just got this video completed tonight.  It’s a test, just for some filler content.</p>
    <p></p><center><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/EYn8Zsa8fV4?fs=1&hl=en_US&rel=0"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/EYn8Zsa8fV4?fs=1&hl=en_US&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></object></center><p></p>
                                       </div><!-- .entry-content -->
                   <div class="entry-utility">
                                                 <span class="cat-links">
                                  <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="http://localhost/coconutcove/blog/?cat=3" title="View all posts in Pools" rel="category">Pools</a>                         </span>
                             <span class="meta-sep">|</span>
                                                                     <span class="tag-links">
                                  <span class="entry-utility-prep entry-utility-prep-tag-links">Tagged</span> <a href="http://localhost/coconutcove/blog/?tag=east-texas-pool-builder" rel="tag">East Texas Pool Builder</a>, <a href="http://localhost/coconutcove/blog/?tag=tyler-texas-pool-builder" rel="tag">Tyler Texas Pool Builder</a>                         </span>
                             <span class="meta-sep">|</span>
                                            <span class="comments-link"><a href="http://localhost/coconutcove/blog/?p=16#respond" title="Comment on New video">Leave a comment</a></span>
                                       </div><!-- .entry-utility -->
              </div><!-- #post-## -->
                   <div id="post-14" class="post-14 post type-post hentry category-uncategorized">
                   <h2 class="entry-title"><a href="http://localhost/coconutcove/blog/?p=14" title="Permalink to Just another quick post" rel="bookmark">Just another quick post</a></h2>
                   <div class="entry-meta">
                        <span class="meta-prep meta-prep-author">Posted on</span> <a href="http://localhost/coconutcove/blog/?p=14" title="5:10 am" rel="bookmark"><span class="entry-date">October 20, 2010</span></a> <span class="meta-sep">by</span> <span class="author vcard"><a class="url fn n" href="http://localhost/coconutcove/blog/?author=1" title="View all posts by admin">admin</a></span>               </div><!-- .entry-meta -->
                        <div class="entry-content">
                        <p>Just a shout out to my friends on the Texas Rangers.  Way to steal two games in NY!!!</p>
                                       </div><!-- .entry-content -->
                   <div class="entry-utility">
                                                 <span class="cat-links">
                                  <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="http://localhost/coconutcove/blog/?cat=1" title="View all posts in Uncategorized" rel="category">Uncategorized</a>                         </span>
                             <span class="meta-sep">|</span>
                                                                <span class="comments-link"><a href="http://localhost/coconutcove/blog/?p=14#respond" title="Comment on Just another quick post">Leave a comment</a></span>
                                       </div><!-- .entry-utility -->
              </div><!-- #post-## -->
                   <div id="post-9" class="post-9 post type-post hentry category-uncategorized">
                   <h2 class="entry-title"><a href="http://localhost/coconutcove/blog/?p=9" title="Permalink to Here’s a pic" rel="bookmark">Here’s a pic</a></h2>
                   <div class="entry-meta">
                        <span class="meta-prep meta-prep-author">Posted on</span> <a href="http://localhost/coconutcove/blog/?p=9" title="4:28 am" rel="bookmark"><span class="entry-date">October 20, 2010</span></a> <span class="meta-sep">by</span> <span class="author vcard"><a class="url fn n" href="http://localhost/coconutcove/blog/?author=1" title="View all posts by admin">admin</a></span>               </div><!-- .entry-meta -->
                        <div class="entry-content">
                        <p>Here’s a pic from the pool I was just talking about:</p>
    <p><a href="http://localhost/coconutcove/blog/wp-content/uploads/2010/10/MG_7337.jpg"><img class="aligncenter size-full wp-image-10" title="_MG_7337" src="http://localhost/coconutcove/blog/wp-content/uploads/2010/10/MG_7337.jpg" alt="Coconut Cove Pool, Tyler Texas" width="853" height="682"></a></p>
                                       </div><!-- .entry-content -->
                   <div class="entry-utility">
                                                 <span class="cat-links">
                                  <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="http://localhost/coconutcove/blog/?cat=1" title="View all posts in Uncategorized" rel="category">Uncategorized</a>                         </span>
                             <span class="meta-sep">|</span>
                                                                <span class="comments-link"><a href="http://localhost/coconutcove/blog/?p=9#respond" title="Comment on Here’s a pic">Leave a comment</a></span>
                                       </div><!-- .entry-utility -->
              </div><!-- #post-## -->
                   <div id="post-6" class="post-6 post type-post hentry category-uncategorized">
                   <h2 class="entry-title"><a href="http://localhost/coconutcove/blog/?p=6" title="Permalink to MM pool is looking good" rel="bookmark">MM pool is looking good</a></h2>
                   <div class="entry-meta">
                        <span class="meta-prep meta-prep-author">Posted on</span> <a href="http://localhost/coconutcove/blog/?p=6" title="4:25 am" rel="bookmark"><span class="entry-date">October 20, 2010</span></a> <span class="meta-sep">by</span> <span class="author vcard"><a class="url fn n" href="http://localhost/coconutcove/blog/?author=1" title="View all posts by admin">admin</a></span>               </div><!-- .entry-meta -->
                        <div class="entry-content">
                        <p>Check it out, I put a video up on the new pool at mary margaret’s house.  It’s really coming along well.</p>
    <p>Here’s the link:  http://localhost/coconutcove/videos</p>
    <p>Please feel free to leave a comment on the video.</p>
                                       </div><!-- .entry-content -->
                   <div class="entry-utility">
                                                 <span class="cat-links">
                                  <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="http://localhost/coconutcove/blog/?cat=1" title="View all posts in Uncategorized" rel="category">Uncategorized</a>                         </span>
                             <span class="meta-sep">|</span>
                                                                <span class="comments-link"><a href="http://localhost/coconutcove/blog/?p=6#respond" title="Comment on MM pool is looking good">Leave a comment</a></span>
                                       </div><!-- .entry-utility -->
              </div><!-- #post-## -->
                   <div id="post-1" class="post-1 post type-post hentry category-uncategorized">
                   <h2 class="entry-title"><a href="http://localhost/coconutcove/blog/?p=1" title="Permalink to Hello world!" rel="bookmark">Hello world!</a></h2>
                   <div class="entry-meta">
                        <span class="meta-prep meta-prep-author">Posted on</span> <a href="http://localhost/coconutcove/blog/?p=1" title="2:05 pm" rel="bookmark"><span class="entry-date">October 11, 2010</span></a> <span class="meta-sep">by</span> <span class="author vcard"><a class="url fn n" href="http://localhost/coconutcove/blog/?author=1" title="View all posts by admin">admin</a></span>               </div><!-- .entry-meta -->
                        <div class="entry-content">
                        <p>Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!</p>
                                       </div><!-- .entry-content -->
                   <div class="entry-utility">
                                                 <span class="cat-links">
                                  <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="http://localhost/coconutcove/blog/?cat=1" title="View all posts in Uncategorized" rel="category">Uncategorized</a>                         </span>
                             <span class="meta-sep">|</span>
                                                                <span class="comments-link"><a href="http://localhost/coconutcove/blog/?p=1#comments" title="Comment on Hello world!">1 Comment</a></span>
                                       </div><!-- .entry-utility -->
              </div><!-- #post-## -->
                   </div><!-- #content -->
              </div><!-- #container -->
              <div id="primary" class="widget-area" role="complementary">
                   <ul class="xoxo">
                   <li><img src="/coconutcove/images/banners_logos/logo_coconut_cove_pools_150.jpg" width="150" height="150" alt="Coconut Cove Pools Logo"></li><p>
                </p><li id="search" class="widget-container widget_search">
                        <form role="search" method="get" id="searchform" action="http://localhost/coconutcove/blog/">
         <div><label class="screen-reader-text" for="s">Search for:</label>
         <input type="text" value="" name="s" id="s">
         <input type="submit" id="searchsubmit" value="Search">
         </div>
         </form>               </li>
                   <li id="archives" class="widget-container">
                        <h3 class="widget-title">Archives</h3>
                        <ul>
                                  <li><a href="http://localhost/coconutcove/blog/?m=201010" title="October 2010">October 2010</a></li>
                        </ul>
                   </li>
                   <li id="meta" class="widget-container">
                        <h3 class="widget-title">Meta</h3>
                        <ul>
                                                      <li><a href="http://localhost/coconutcove/blog/wp-login.php">Log in</a></li>
                                                 </ul>
                   </li>
                             </ul>
              </div><!-- #primary .widget-area -->
         </div><!-- #main -->
         <div id="footer" role="contentinfo">
              <div id="colophon">
                   <div id="site-info">
                        <a href="http://localhost/coconutcove/blog/" title="Coconut Cove Pools" rel="home">
                             Coconut Cove Pools                    </a>
                   </div><!-- #site-info -->
                   <div id="site-generator">
                                            <a href="http://wordpress.org/" title="Semantic Personal Publishing Platform" rel="generator">
                             Proudly powered by WordPress.                    </a>
                   </div><!-- #site-generator -->
              </div><!-- #colophon -->
         </div><!-- #footer -->
    </div><!-- #wrapper -->
    </body></html>

  • Navigation menu - current page = HOW??

    I've been pulling my hair out for days over such a simple thing as having a navigation page with page links, and wanting the current page to stand out in the navigation menu (a different style from the other links).
    I created a html content layout template to achieve this. In my template (which my page link items use) I have tried to figure out what page I am on. Nothing works at all. I've googled the hell out of this forum and the internet at large, and no go. How do I get the value (url) of the current page? as in http://myserver.com/myportal/mypage/mysubpage sot hat I may compare it to the items destination url?
    In my template, I have an if else construct, but since I don't know what to compare my #item.pageurl# (or some such) to, I'm getting absolutely nowhere. owa_util.get_cgi_env is not helping, nothing useful can be grabbed from those headers (just urls for individual portlets or items etc).
    I do not administer this server myself, nor do I have access to it other than this one pagegroup through the navigator/builder GUI. My permissions are pretty restricted too I guess.
    So is there a simple way to get the url of the page I'm on? Or has someone already done this and I've been at it for naught? Help! :(
    Portal version is OracleAS Portal 10g Release 2 (10.1.4)

    >
    by saying html content layout template, do you mean that on Navigator, you using html template (in the pageGroups tab/any-pageGroup/html templates) or a User Interface Template (within the providers tab options)?Yes, my page group -> html templates -> HTML Content Layout
    I'm using this template to style the page link items in my navigation page (you know, some divs, css and so on), my template looks like this (ignore the if construct owa_util.bla_blah('BLAH'), it obviously doesn't work but it's there to illustrate exactly what I need:
    <oracle>
    declare
    luokka varchar2(300);
    begin
    htp.p('page_url: #PAGE.EDITPAGE.URL#');
    if  owa_util.get_cgi_env('BLAH')='#ITEM.PAGENAME#' then
    class:= 'active';
    else
    class:='nonactive';
    end if;
    htp.p('<div style="padding-left:15px; font-weight:bold;background-image: url(https://myportal.com/portal/pls/portal/docs/1/1911205.PNG);background-repeat: no-repeat;background-position:left;" class='|| class||'>#ITEM.CONTENT#</div>');
    end;
    </oracle>
    if you are using the first one of them, then try the following to get page_url;
    - in the body section of the template, use <ORACLE> </ORACLE> tags-pair to write a plsql code;
    <oracle>
    declare
    v_pageUrl varchar2(50):= '#PAGE.EDITPAGE.URL#';This doesn't give me anything, and #PAGE.EDITPAGE.URL# is not available in the substitution string list. I only have substittion strings that begin with #ITEM
    begin
    htp.p('page url = '||substr(v_page_url,1,instr(v_page_url,'?',1)-1 )||'<br>');
    end;
    </oracle>
    this should give you the url of the page you are on.
    hope that helps!Edited by: Baguette on 25-Feb-2009 09:02
    Edited by: Baguette on 25-Feb-2009 09:05

  • More than one Spry Menu on Page

    I have more than one spry menu on a page.  However, I want them to be formatted differently.  Is that possible?

    Of course, by using css. If you are changing only a few things, you can keep all your additional css selectors in the same Spry css file. If you are radically changing, you might want to dub off a copy of the Spry css file (with a new name of course), Be sure that you link the second css file to your page.
    In your page, add an ID to the containing div for the second menu set. In your css file, be sure to preface all your styles for that menu with the ID for that menu...using descendant selectors.
    <div id="secondmenu">menu code here</div>
    #secondmenu ul.SpryMenuBarHorizontal { code here }
    Make sure that you have set a variable for both menu bars. Look at the bottom of your html for  <script> entries.
    Beth

  • XML data for Spry Menu ?

    I maintain several web sites with static pages that all carry
    a common Spry menu bar hard coded into each page via a template.
    How can I use an XML file to feed a Spry menu widget to save
    uploading all the pages every time there is a change on the site
    that requires the menu to be updated?
    I've searched the web and help files for an answer to this
    without success, so any help or pointers would be most appreciated.

    I made this example that uses a xml file to build the spry
    menu, the page is html, you need to make a seperate dataset for
    each <ul> tag, or item group in the menu, notice the two
    datasets in my sample, you could expand and make as many as you
    want, all drawn from xml files. check out the page here:
    http://gohbcc.com/examples/menutest.html
    html page:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="
    http://www.w3.org/1999/xhtml"
    xmlns:spry="
    http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=utf-8" />
    <title>Untitled Document</title>
    <script src="SpryAssets/SpryMenuBar.js"
    type="text/javascript"></script>
    <script src="SpryAssets/xpath.js"
    type="text/javascript"></script>
    <script src="SpryAssets/SpryData.js"
    type="text/javascript"></script>
    <link href="SpryAssets/SpryMenuBarHorizontal.css"
    rel="stylesheet" type="text/css" />
    <script type="text/javascript">
    <!--
    var ds1 = new Spry.Data.XMLDataSet("s.xml", "links/link");
    var ds2 = new Spry.Data.XMLDataSet("t.xml", "links/link");
    //-->
    </script>
    </head>
    <body>
    <ul id="MenuBar1" class="MenuBarHorizontal">
    <li><a class="MenuBarItemSubmenu" href="#">Item
    1</a>
    <ul>
    <div spry:region="ds1">
    <li spry:repeat="ds1">
    <a href="{a/@href}">{a}</a>
    </li>
    </div>
    <li><a href="#">Item 1.1</a></li>
    <li><a href="#">Item 1.2</a></li>
    <li><a href="#">Item 1.3</a></li>
    </ul>
    </li>
    <li><a href="#">Item 2</a></li>
    <li><a class="MenuBarItemSubmenu" href="#">Item
    3</a>
    <ul>
    <div spry:region="ds2">
    <li spry:repeat="ds2">
    <a href="{a/@href}">{a}</a>
    </li>
    </div>
    <li><a href="#">Item 3.2</a></li>
    <li><a href="#">Item 3.3</a></li>
    </ul>
    </li>
    <li><a href="#">Item 4</a></li>
    </ul>
    <p> </p>
    <div spry:region="ds1" style="float:right;">
    <table>
    <tr>
    <th>A</th>
    <th>A/@href</th>
    </tr>
    <tr spry:repeat="ds1">
    <td>{a}</td>
    <td>{a/@href}</td>
    </tr>
    </table>
    </div>
    <p> </p>
    <script type="text/javascript">
    <!--
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1",
    {imgDown:"SpryAssets/SpryMenuBarDownHover.gif",
    imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
    //-->
    </script>
    </body>
    </html>
    XML Files
    t.xml;
    <?xml version="1.0" encoding="utf-8"?>
    <links>
    <link><a
    href='customer_enter.php?method=Fname'>First
    Name</a></link>
    <link><a
    href='customer_enter.php?method=caseNum'>Case
    Number</a></link>
    <link><a
    href='customer_enter.php?method=Lname'>Last
    Name</a></link>
    <link><a
    href='customer_enter.php?method=caseWorker'>Case
    Worker</a></link>
    </links>
    s.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <links>
    <link><a href='customer_find.php?method=name'>By
    Name</a></link>
    <link><a
    href='customer_find.php?method=caseNum'>By Case
    Number</a></link>
    <link><a href='customer_find.php?method=date'>By
    Date</a></link>
    <link><a
    href='customer_find.php?method=itemNum'>By Item
    Number</a></link>
    </links>

  • How can I add more than one same spry menu (eg. collapsible menu)  with in different styles (font size, color, background, etc) on current page?

    How can I add more than one same spry menu (eg. collapsible menu)  with in different styles (font size, color, background, etc) on current page?

    Hi Nancy,
    This screenshot was only for imagination. A part of the code (not all) is below.  In the code there are some background images but they are not seem in live mode.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <link href="css/my_site.css" rel="stylesheet" type="text/css" />
    <link href="SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css"/>
    <link href="SpryAssets/SpryCollapsiblePanel.css" rel="stylesheet" type="text/css" />
    <script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryCollapsiblePanel.js" type="text/javascript"></script>
    <style>
    #CollapsiblePanel1 .CollapsiblePanelOpen .CollapsiblePanelTab {
        background-color: #003366;
        font-size: 18px;
        line-height: 52px;
        color: #FFF;
    #CollapsiblePanel1 .CollapsiblePanelTabHover .CollapsiblePanelTab {
        background-color: #003366;
        color: #FFF;
        text-shadow: 1px 1px #000;
        font-weight: bold;
        line-height: 52px;
    #CollapsiblePanel1 .CollapsiblePanelClosed .CollapsiblePanelTab  {
        background-color: #C3CFDF;
        border-radius: 5px 5px 0px 0px;
        color: #999
        text-shadow: 1px 1px #000;
        font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
        font-size: 18px;
        font-weight: bold;
        line-height: 52px;
    #CollapsiblePanel2 .CollapsiblePanelOpen .CollapsiblePanelTab {
        background-image: url(images/international.jpg);
        background-repeat: no-repeat;
        font-size: 18px;
        line-height: 52px;
        color: #FFF;
    #CollapsiblePanel2 .CollapsiblePanelTabHover .CollapsiblePanelTab {
        background-color: #003366;
        color: #FFF;
        text-shadow: 1px 1px #000;
        font-weight: bold;
        background-image: url(images/TR_Col-WEB.png);
        background-repeat: no-repeat;
        line-height: 52px;
    #CollapsiblePanel2 .CollapsiblePanelClosed .CollapsiblePanelTab  {
        background-color: #C3CFDF;
        border-radius: 5px 5px 0px 0px;
        color: #999
        text-shadow: 1px 1px #000;
        font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
        font-size: 18px;
        font-weight: bold;
        background-image: url(images/TR_Gray2-WEB.png);
        background-repeat: no-repeat;
        line-height: 52px;
    #CollapsiblePanel2 .CollapsiblePanelContent {
        background-color: blue;
    #CollapsiblePanel3 .CollapsiblePanelOpen .CollapsiblePanelTab {
        background-image: url(images/TR_Col-WEB.png);
        background-repeat: no-repeat;
        font-size: 18px;
        line-height: 52px;
        color: #FFF;
    #CollapsiblePanel3 .CollapsiblePanelTabHover .CollapsiblePanelTab {
        background-color: #003366;
        color: #FFF;
        text-shadow: 1px 1px #000;
        font-weight: bold;
        background-image: url(images/TR_Col-WEB.png);
        background-repeat: no-repeat;
        line-height: 52px;
    #CollapsiblePanel3 .CollapsiblePanelClosed .CollapsiblePanelTab  {
        background-color: #C3CFDF;
        border-radius: 5px 5px 0px 0px;
        color: #999
        text-shadow: 1px 1px #000;
        font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
        font-size: 18px;
        font-weight: bold;
        background-image: url(images/TR_Gray2-WEB.png);
        background-repeat: no-repeat;
        line-height: 52px;
    #CollapsiblePanel4 .CollapsiblePanelOpen .CollapsiblePanelTab {
        background-image: url(images/TR_Col-WEB.png);
        background-repeat: no-repeat;
        font-size: 18px;
        line-height: 52px;
        color: #FFF;
    #CollapsiblePanel4 .CollapsiblePanelTabHover .CollapsiblePanelTab {
        background-color: #003366;
        color: #FFF;
        text-shadow: 1px 1px #000;
        font-weight: bold;
        background-image: url(images/TR_Col-WEB.png);
        background-repeat: no-repeat;
        line-height: 52px;
    #CollapsiblePanel4 .CollapsiblePanelClosed .CollapsiblePanelTab  {
        background-color: #C3CFDF;
        border-radius: 5px 5px 0px 0px;
        color: #999
        text-shadow: 1px 1px #000;
        font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
        font-size: 18px;
        font-weight: bold;
        background-image: url(images/TR_Gray2-WEB.png);
        background-repeat: no-repeat;
        line-height: 52px;
    #CollapsiblePanel5 .CollapsiblePanelOpen .CollapsiblePanelTab {
        background-image: url(images/TR_Col-WEB.png);
        background-repeat: no-repeat;
        font-size: 18px;
        line-height: 52px;
        color: #FFF;
    #CollapsiblePanel5 .CollapsiblePanelTabHover .CollapsiblePanelTab {
        background-color: #003366;
        color: #FFF;
        text-shadow: 1px 1px #000;
        font-weight: bold;
        background-image: url(images/TR_Col-WEB.png);
        background-repeat: no-repeat;
        line-height: 52px;
    #CollapsiblePanel5 .CollapsiblePanelClosed .CollapsiblePanelTab  {
        background-color: #C3CFDF;
        border-radius: 5px 5px 0px 0px;
        color: #999
        text-shadow: 1px 1px #000;
        font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
        font-size: 18px;
        font-weight: bold;
        background-image: url(images/TR_Gray2-WEB.png);
        background-repeat: no-repeat;
        line-height: 52px;
    </style>

  • How do I show what menu title is active, e.g. current page, in spry navigation?

    How do I show what menu title is active, e.g. current page, in spry navigation?
    See website http://dorsay-easton-indian-law.com/index.html
    I want to have Home menu title have a different color when on index.html and so on. I keep using the term "active" for that, and "hover" for mouseover. Is that correct? And what do I need to do so that my menu displays an indication of which page is the current one?

    The CSS pseudo-classes in order are:
    a = any link
    a:link = an unvisited link (normal state)
    a:visited = a link after it has been visited
    a:hover = on mouseover
    a:active = on click
    a:focus = reached with tab key
    See persistent page indicator on menus:
    http://alt-web.com/Articles/Persistent-Page-Indicator.shtml
    Nancy O.
    Alt-Web Design & Publishing
    Web | Graphics | Print | Media  Specialists 
    http://alt-web.com/
    http://twitter.com/altweb

  • Spry Menu Bars, Templates and Current Page Indicators

    Hello,
    If you have a spry menu bar in your design, then create a template, how do you then go about making the menu bar have a current page indicator on each page created from the template?
    Thanks,
    Ferg.

    Can I send you on a different path? This solution will only be required in a non-editable area of the DWT.
    First we write a function to initialse the page
    function InitPage(){
    Spry.$$('#MenuBar1 li').forEach(function(node){
        var a=node.getElementsByTagName("a")[0]; // finds all a elements inside the li, but we only want the first so [0]
        if(a.href == window.location){
            Spry.Utils.addClassName(node,"activeMenuItem");
    The function compares the URL of the page with the link in the menubar and if they are both the same, it will add an 'activeMenuItem, class to the menuitem.
    Next we nee a trigger to activate the function. This is done with a load listener as per
    Spry.Utils.addLoadListener(InitPage);
    Now we need to ensure that our active menuitem looks different, by assigning a couple of style rules as in the following. The !important needs to be there to override the JS.
    .activeMenuItem a {
        background:#a59a84 !important;
        color:#ffffff !important;
    And lastly we need to add SpryDOMUtils.js as the JS script that we based our JS scripts on
    <script src="SpryAssets/SpryDOMUtils.js"></script>
    The whole thing will look like
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Untitled Document</title>
    <link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet">
    <style>
    .activeMenuItem a {
        background:#a59a84 !important;
        color:#ffffff !important;
    </style>
    </head>
    <body>
    <ul id="MenuBar1" class="MenuBarHorizontal">
      <li><a class="MenuBarItemSubmenu" href="#">Item 1</a>
        <ul>
          <li><a href="#">Item 1.1</a></li>
          <li><a href="#">Item 1.2</a></li>
          <li><a href="#">Item 1.3</a></li>
        </ul>
      </li>
      <li><a href="#">Item 2</a></li>
      <li><a class="MenuBarItemSubmenu" href="#">Item 3</a>
        <ul>
          <li><a class="MenuBarItemSubmenu" href="#">Item 3.1</a>
            <ul>
              <li><a href="#">Item 3.1.1</a></li>
              <li><a href="#">Item 3.1.2</a></li>
            </ul>
          </li>
          <li><a href="#">Item 3.2</a></li>
          <li><a href="#">Item 3.3</a></li>
        </ul>
      </li>
      <li><a href="#">Item 4</a></li>
    </ul>
    <script src="SpryAssets/SpryMenuBar.js"></script>
    <script src="SpryAssets/SpryDOMUtils.js"></script>
    <script>
    function InitPage(){
    Spry.$$('#MenuBar1 li').forEach(function(node){
        var a=node.getElementsByTagName("a")[0]; // finds all a elements inside the li, but we only want the first so [0]
        if(a.href == window.location){
            Spry.Utils.addClassName(node,"activeMenuItem");
    Spry.Utils.addLoadListener(InitPage);
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
    </script>
    </body>
    </html>
    Or see it live here http://shoguncarco.com.au/index.php where the function has been externalised in http://shoguncarco.com.au/js/plugins.js
    Gramps

  • Spry Menu - highlight current page in menu

    If the current page is "aboutus.html" for example, can I configure Spry Menu to apply a different color or css class to the "About Us" link in the menu?
    Thank you.

    I added a new class with different color in CSS and refer that class in my html.  I don't think the function is build in. Something like:
    <a class="selectadded" href="/contactus.html">Contact Us</a>

  • Formatting Spry Menu to keep current page highlighted?

    Hi,
    I have O'Reilly's missing manual for CS5, but I can't find instructions for how to keep the menu bar highlighted so that the user always sees the specific page they are on within the menu. If someone selects the 'About' page, I would like the About text/tab to stay highlighted (in the hover style), so the user always knows the page they are on (without adding a breadcrumb or separate page header).
    Can anyone point me to the instructions. Is there a specific sub-selector within the spry css or is there separate html code I need to add to the page html or the spry menu js?
    Thanks,
    Wendy

    Just follow the instructions here http://labs.adobe.com/technologies/spry/articles/updater_help/
    If you want a quick solution
    make a new (empty) file in the SpryAssets folder named SpryDOMUtils.js
    click here http://labs.adobe.com/technologies/spry/includes/SpryDOMUtils.js
    copy the code that you see in in step 2 (on the page, right click and select all from the pop-up)
    open your newly created SpryDOMUtils.js file and paste the contents in there (right click and choose paste)
    And you have a working copy. Don't forget to upload the file to the remote server, otherwise your online version will not work.
    Happy Sprying.
    Ben
    PS NEVER GIVE UP! There is always a solution.

  • How do I put a different image in my drop down menu for my current page?

    Is there a way to put different images or color for each
    buttons in my menubar? And is there a way to have a color to
    identify the current page in my bar?
    Thanks for your time and have a nice day!

    quote:
    Originally posted by:
    JM1978
    khfinity
    We are looking for "how to do it" answers, instead of "how it
    looks like". You have been posting the same link multiple times on
    this forum to others, however, it does not answer any of their
    questions.
    If you do not bother to post something useful, the don't
    waste our time to see your posts!
    Actually what I posted came after searching for an easy
    "how to do it". The closest I found to a tutorial was this:
    http://www.adobe.com/devnet/dreamweaver/articles/spryte_menu.html
    The author designs and implements a spry menu with Fire Works
    graphics. The last section describes how to modify the existing CSS
    for multiple levels. Yet I found the sample page provided above,
    easier to follow than the tutorial.
    I'm sorry if you feel my post was not
    "something useful", and I hope you find the mentioned
    tutorial useful.

  • CS5 Spry Menu Question

    Aloha,
    I have the menu configured that way i want it, but for the life of me I cant figure out how to do the following.
    I have a menu   home, about, contact etc.........  The menu bar has two background images, one when you load the page and then the mouse over image. What i want to do is when your on the index.html page , the Menu link will be lite up in my case (blue)  and then if you go off of that page the blue will go to the current page that is up on your screen.
    I am not great with code, I have spent a few hours tring to figure it out, i have no idea if it can do that or not, but its prob super easy, I just dont know what setting i am looking for.
    2ns Question.. Is there a way to make the Spry menu to look like this?    HOME    |   ABOUT     |      ETC
    Right now i dont have the | in there, not sure if its possable
    Aloha!

    Thank you for posting your URL, this should be done as a matter of course.
    You do need to have SpryDOMUtils.js uploaded to your SpryAssets folder for the script to work.
    The following explains the working of the script
    function InitPage(){
    Spry.$$('#MenuBar1 li').forEach(function(node){ // check each li within a region with an ID of MenuBar1
        var a=node.getElementsByTagName("a")[0]; // finds all a elements inside the li, but we only want the first so [0]
        if(a.href == window.location){ // if the href is the same as the current window location e.g. index.html
            Spry.Utils.addClassName(node,"activeMenuItem"); // add a class called activeMenuItem
    As soon as a class is added, CSS will take care of the styling. In the case that I have suggested, the CSS merely changes the background colour. This could just as happily be a background image.
    If you want a different image for each menu item, then assign a class to the menu item as in
    <li><a href="index.html">Home</a></li>
    <li><a href="home-services.html" class="red">Home Services</a></li>
    <li><a href="business-services.html">Business Services</a></li>
    <li><a href="web-hosting.html">Web Hosting</a></li>
    <li><a href="online-backup.html">Online Backup</a></li>
    <li><a href="about-us.html">About Us</a></li>
    <li><a href="contact.html">Contact Us</a></li>
    The style rule could then be
    .red .activeMenuItem {  background: url(home-button.png); }
    Cheers,
    Gramps

  • Question: My spry menu bar is not displaying correctly in Dreamweaver

    Hello,
    I am  new to Dreamweaver CS5, so coding isn't my area of expertise. My problem with my spry menu bar is that it does not display the tabs on the menu bar correctly. When I try to apply new changes to the CSS of the horizontal menu bar, half of the tabs will change and the other half will not. Also, I am unable to drag and move the menu bar itself around, a function that I was once able to do before. At times, only one tab of the menu bar will display itself, without any of the other tabs as well.
    I have a hunch that my problems stem from some coding errors in the SpryMenuBarHorizontal.css, and possibly in the SpryMenuBar.js. On the CSS Styles panel, my SpryMenuBarHorizontal.CSS list reads as follows:
    I also have a hunch that something about this line-up is also incorrect, but I don't exactly know what the problem is.
    Here is what my coding for my SpryMenuBarHorizontal.css looks like right now:
    @charset "UTF-8";
    /* SpryMenuBarHorizontal.css - version 0.6 - Spry Pre-Release 1.6.1 */
    /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
    LAYOUT INFORMATION: describes box model, positioning, z-order
    /* The outermost container of the Menu Bar, an auto width box with no margin or padding */
    ul.MenuBarHorizontal
        margin: 0;
        padding: 0;
        list-style-type: none;
        font-size: 100%;
        cursor: default;
        width: auto;
        text-align: center;
    /* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html */
    ul.MenuBarActive
        z-index: 1000;
    /* Menu item containers, position children relative to this container and are a fixed width */
    ul.MenuBarHorizontal li
        margin: 0;
        padding: 0;
        list-style-type: none;
        font-size: 100%;
        position: relative;
        text-align: left;
        cursor: pointer;
        width: 8em;
        float: left;
        left: 10;
        top: 10;
        height: 10;
    /* Submenus should appear below their parent (top: 0) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
    ul.MenuBarHorizontal ul
        margin: 0;
        padding: 0;
        list-style-type: none;
        font-size: 100%;
        z-index: 1020;
        cursor: default;
        width: 8.2em;
        position: absolute;
        left: -1000em;
    /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to auto so it comes onto the screen below its parent menu item */
    ul.MenuBarHorizontal ul.MenuBarSubmenuVisible
        left: auto;
    /* Menu item containers are same fixed width as parent */
    ul.MenuBarHorizontal ul li
        width: 8.2em;
    /* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */
    ul.MenuBarHorizontal ul ul
        position: absolute;
        margin: -5% 0 0 95%;
    /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
    ul.MenuBarHorizontal ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible
        left: auto;
        top: 0;
    DESIGN INFORMATION: describes color scheme, borders, fonts
    /* Submenu containers have borders on all sides */
    ul.MenuBarHorizontal ul
        border: 1px solid #CCC;
        text-align: left;
    /* Menu items are a light gray block with padding and no text decoration */
    ul.MenuBarHorizontal a
        display: block;
        cursor: pointer;
        background-color: #000;
        padding: 0.5em 0.75em;
        color: #FFF;
        text-decoration: none;
        font-family: Futura;
        float: none;
    /* Menu items that have mouse over or focus have a blue background and white text */
    ul.MenuBarHorizontal a:hover, ul.MenuBarHorizontal a:focus
        background-color: #C00;
        color: #FFF;
    /* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
    ul.MenuBarHorizontal a.MenuBarItemHover, ul.MenuBarHorizontal a.MenuBarItemSubmenuHover, ul.MenuBarHorizontal a.MenuBarSubmenuVisible
        background-color: #C00;
        color: #FFF;
    SUBMENU INDICATION: styles if there is a submenu under a given menu item
    /* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal a.MenuBarItemSubmenu
        background-image: url(SpryMenuBarDown.gif);
        background-repeat: no-repeat;
        background-position: 95% 50%;
        text-align: center;
    /* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal ul a.MenuBarItemSubmenu
        background-image: url(SpryMenuBarRight.gif);
        background-repeat: no-repeat;
        background-position: 95% 50%;
    /* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal a.MenuBarItemSubmenuHover
        background-image: url(SpryMenuBarDownHover.gif);
        background-repeat: no-repeat;
        background-position: 95% 50%;
    /* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
    ul.MenuBarHorizontal ul a.MenuBarItemSubmenuHover
        background-image: url(SpryMenuBarRightHover.gif);
        background-repeat: no-repeat;
        background-position: 95% 50%;
    BROWSER HACKS: the hacks below should not be changed unless you are an expert
    /* HACK FOR IE: to make sure the sub menus show above form controls, we underlay each submenu with an iframe */
    ul.MenuBarHorizontal iframe
        position: absolute;
        z-index: 1010;
        filter:alpha(opacity:0.1);
    /* HACK FOR IE: to stabilize appearance of menu items; the slash in float is to keep IE 5.0 from parsing */
    @media screen, projection
        ul.MenuBarHorizontal li.MenuBarItemIE
        display: block;
        f\loat: left;
        background: #FFF;
    And here is what my SpryMenuBar.js coding looks like right now too:
    SpryMenuBar.js
    This file handles the JavaScript for Spry Menu Bar.  You should have no need
    to edit this file.  Some highlights of the MenuBar object is that timers are
    used to keep submenus from showing up until the user has hovered over the parent
    menu item for some time, as well as a timer for when they leave a submenu to keep
    showing that submenu until the timer fires.
    (function() { // BeginSpryComponent
    if (typeof Spry == "undefined") window.Spry = {}; if (!Spry.Widget) Spry.Widget = {};
    Spry.BrowserSniff = function()
        var b = navigator.appName.toString();
        var up = navigator.platform.toString();
        var ua = navigator.userAgent.toString();
        this.mozilla = this.ie = this.opera = this.safari = false;
        var re_opera = /Opera.([0-9\.]*)/i;
        var re_msie = /MSIE.([0-9\.]*)/i;
        var re_gecko = /gecko/i;
        var re_safari = /(applewebkit|safari)\/([\d\.]*)/i;
        var r = false;
        if ( (r = ua.match(re_opera))) {
            this.opera = true;
            this.version = parseFloat(r[1]);
        } else if ( (r = ua.match(re_msie))) {
            this.ie = true;
            this.version = parseFloat(r[1]);
        } else if ( (r = ua.match(re_safari))) {
            this.safari = true;
            this.version = parseFloat(r[2]);
        } else if (ua.match(re_gecko)) {
            var re_gecko_version = /rv:\s*([0-9\.]+)/i;
            r = ua.match(re_gecko_version);
            this.mozilla = true;
            this.version = parseFloat(r[1]);
        this.windows = this.mac = this.linux = false;
        this.Platform = ua.match(/windows/i) ? "windows" :
                        (ua.match(/linux/i) ? "linux" :
                        (ua.match(/mac/i) ? "mac" :
                        ua.match(/unix/i)? "unix" : "unknown"));
        this[this.Platform] = true;
        this.v = this.version;
        if (this.safari && this.mac && this.mozilla) {
            this.mozilla = false;
    Spry.is = new Spry.BrowserSniff();
    // Constructor for Menu Bar
    // element should be an ID of an unordered list (<ul> tag)
    // preloadImage1 and preloadImage2 are images for the rollover state of a menu
    Spry.Widget.MenuBar = function(element, opts)
        this.init(element, opts);
    Spry.Widget.MenuBar.prototype.init = function(element, opts)
        this.element = this.getElement(element);
        // represents the current (sub)menu we are operating on
        this.currMenu = null;
        this.showDelay = 250;
        this.hideDelay = 600;
        if(typeof document.getElementById == 'undefined' || (navigator.vendor == 'Apple Computer, Inc.' && typeof window.XMLHttpRequest == 'undefined') || (Spry.is.ie && typeof document.uniqueID == 'undefined'))
            // bail on older unsupported browsers
            return;
        // Fix IE6 CSS images flicker
        if (Spry.is.ie && Spry.is.version < 7){
            try {
                document.execCommand("BackgroundImageCache", false, true);
            } catch(err) {}
        this.upKeyCode = Spry.Widget.MenuBar.KEY_UP;
        this.downKeyCode = Spry.Widget.MenuBar.KEY_DOWN;
        this.leftKeyCode = Spry.Widget.MenuBar.KEY_LEFT;
        this.rightKeyCode = Spry.Widget.MenuBar.KEY_RIGHT;
        this.escKeyCode = Spry.Widget.MenuBar.KEY_ESC;
        this.hoverClass = 'MenuBarItemHover';
        this.subHoverClass = 'MenuBarItemSubmenuHover';
        this.subVisibleClass ='MenuBarSubmenuVisible';
        this.hasSubClass = 'MenuBarItemSubmenu';
        this.activeClass = 'MenuBarActive';
        this.isieClass = 'MenuBarItemIE';
        this.verticalClass = 'MenuBarVertical';
        this.horizontalClass = 'MenuBarHorizontal';
        this.enableKeyboardNavigation = true;
        this.hasFocus = false;
        // load hover images now
        if(opts)
            for(var k in opts)
                if (typeof this[k] == 'undefined')
                    var rollover = new Image;
                    rollover.src = opts[k];
            Spry.Widget.MenuBar.setOptions(this, opts);
        // safari doesn't support tabindex
        if (Spry.is.safari)
            this.enableKeyboardNavigation = false;
        if(this.element)
            this.currMenu = this.element;
            var items = this.element.getElementsByTagName('li');
            for(var i=0; i<items.length; i++)
                if (i > 0 && this.enableKeyboardNavigation)
                    items[i].getElementsByTagName('a')[0].tabIndex='-1';
                this.initialize(items[i], element);
                if(Spry.is.ie)
                    this.addClassName(items[i], this.isieClass);
                    items[i].style.position = "static";
            if (this.enableKeyboardNavigation)
                var self = this;
                this.addEventListener(document, 'keydown', function(e){self.keyDown(e); }, false);
            if(Spry.is.ie)
                if(this.hasClassName(this.element, this.verticalClass))
                    this.element.style.position = "relative";
                var linkitems = this.element.getElementsByTagName('a');
                for(var i=0; i<linkitems.length; i++)
                    linkitems[i].style.position = "relative";
    Spry.Widget.MenuBar.KEY_ESC = 27;
    Spry.Widget.MenuBar.KEY_UP = 38;
    Spry.Widget.MenuBar.KEY_DOWN = 40;
    Spry.Widget.MenuBar.KEY_LEFT = 37;
    Spry.Widget.MenuBar.KEY_RIGHT = 39;
    Spry.Widget.MenuBar.prototype.getElement = function(ele)
        if (ele && typeof ele == "string")
            return document.getElementById(ele);
        return ele;
    Spry.Widget.MenuBar.prototype.hasClassName = function(ele, className)
        if (!ele || !className || !ele.className || ele.className.search(new RegExp("\\b" + className + "\\b")) == -1)
            return false;
        return true;
    Spry.Widget.MenuBar.prototype.addClassName = function(ele, className)
        if (!ele || !className || this.hasClassName(ele, className))
            return;
        ele.className += (ele.className ? " " : "") + className;
    Spry.Widget.MenuBar.prototype.removeClassName = function(ele, className)
        if (!ele || !className || !this.hasClassName(ele, className))
            return;
        ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");
    // addEventListener for Menu Bar
    // attach an event to a tag without creating obtrusive HTML code
    Spry.Widget.MenuBar.prototype.addEventListener = function(element, eventType, handler, capture)
        try
            if (element.addEventListener)
                element.addEventListener(eventType, handler, capture);
            else if (element.attachEvent)
                element.attachEvent('on' + eventType, handler);
        catch (e) {}
    // createIframeLayer for Menu Bar
    // creates an IFRAME underneath a menu so that it will show above form controls and ActiveX
    Spry.Widget.MenuBar.prototype.createIframeLayer = function(menu)
        var layer = document.createElement('iframe');
        layer.tabIndex = '-1';
        layer.src = 'javascript:""';
        layer.frameBorder = '0';
        layer.scrolling = 'no';
        menu.parentNode.appendChild(layer);
        layer.style.left = menu.offsetLeft + 'px';
        layer.style.top = menu.offsetTop + 'px';
        layer.style.width = menu.offsetWidth + 'px';
        layer.style.height = menu.offsetHeight + 'px';
    // removeIframeLayer for Menu Bar
    // removes an IFRAME underneath a menu to reveal any form controls and ActiveX
    Spry.Widget.MenuBar.prototype.removeIframeLayer =  function(menu)
        var layers = ((menu == this.element) ? menu : menu.parentNode).getElementsByTagName('iframe');
        while(layers.length > 0)
            layers[0].parentNode.removeChild(layers[0]);
    // clearMenus for Menu Bar
    // root is the top level unordered list (<ul> tag)
    Spry.Widget.MenuBar.prototype.clearMenus = function(root)
        var menus = root.getElementsByTagName('ul');
        for(var i=0; i<menus.length; i++)
            this.hideSubmenu(menus[i]);
        this.removeClassName(this.element, this.activeClass);
    // bubbledTextEvent for Menu Bar
    // identify bubbled up text events in Safari so we can ignore them
    Spry.Widget.MenuBar.prototype.bubbledTextEvent = function()
        return Spry.is.safari && (event.target == event.relatedTarget.parentNode || (event.eventPhase == 3 && event.target.parentNode == event.relatedTarget));
    // showSubmenu for Menu Bar
    // set the proper CSS class on this menu to show it
    Spry.Widget.MenuBar.prototype.showSubmenu = function(menu)
        if(this.currMenu)
            this.clearMenus(this.currMenu);
            this.currMenu = null;
        if(menu)
            this.addClassName(menu, this.subVisibleClass);
            if(typeof document.all != 'undefined' && !Spry.is.opera && navigator.vendor != 'KDE')
                if(!this.hasClassName(this.element, this.horizontalClass) || menu.parentNode.parentNode != this.element)
                    menu.style.top = menu.parentNode.offsetTop + 'px';
            if(Spry.is.ie && Spry.is.version < 7)
                this.createIframeLayer(menu);
        this.addClassName(this.element, this.activeClass);
    // hideSubmenu for Menu Bar
    // remove the proper CSS class on this menu to hide it
    Spry.Widget.MenuBar.prototype.hideSubmenu = function(menu)
        if(menu)
            this.removeClassName(menu, this.subVisibleClass);
            if(typeof document.all != 'undefined' && !Spry.is.opera && navigator.vendor != 'KDE')
                menu.style.top = '';
                menu.style.left = '';
            if(Spry.is.ie && Spry.is.version < 7)
                this.removeIframeLayer(menu);
    // initialize for Menu Bar
    // create event listeners for the Menu Bar widget so we can properly
    // show and hide submenus
    Spry.Widget.MenuBar.prototype.initialize = function(listitem, element)
        var opentime, closetime;
        var link = listitem.getElementsByTagName('a')[0];
        var submenus = listitem.getElementsByTagName('ul');
        var menu = (submenus.length > 0 ? submenus[0] : null);
        if(menu)
            this.addClassName(link, this.hasSubClass);
        if(!Spry.is.ie)
            // define a simple function that comes standard in IE to determine
            // if a node is within another node
            listitem.contains = function(testNode)
                // this refers to the list item
                if(testNode == null)
                    return false;
                if(testNode == this)
                    return true;
                else
                    return this.contains(testNode.parentNode);
        // need to save this for scope further down
        var self = this;
        this.addEventListener(listitem, 'mouseover', function(e){self.mouseOver(listitem, e);}, false);
        this.addEventListener(listitem, 'mouseout', function(e){if (self.enableKeyboardNavigation) self.clearSelection(); self.mouseOut(listitem, e);}, false);
        if (this.enableKeyboardNavigation)
            this.addEventListener(link, 'blur', function(e){self.onBlur(listitem);}, false);
            this.addEventListener(link, 'focus', function(e){self.keyFocus(listitem, e);}, false);
    Spry.Widget.MenuBar.prototype.keyFocus = function (listitem, e)
        this.lastOpen = listitem.getElementsByTagName('a')[0];
        this.addClassName(this.lastOpen, listitem.getElementsByTagName('ul').length > 0 ? this.subHoverClass : this.hoverClass);
        this.hasFocus = true;
    Spry.Widget.MenuBar.prototype.onBlur = function (listitem)
        this.clearSelection(listitem);
    Spry.Widget.MenuBar.prototype.clearSelection = function(el){
        //search any intersection with the current open element
        if (!this.lastOpen)
            return;
        if (el)
            el = el.getElementsByTagName('a')[0];
            // check children
            var item = this.lastOpen;
            while (item != this.element)
                var tmp = el;
                while (tmp != this.element)
                    if (tmp == item)
                        return;
                    try{
                        tmp = tmp.parentNode;
                    }catch(err){break;}
                item = item.parentNode;
        var item = this.lastOpen;
        while (item != this.element)
            this.hideSubmenu(item.parentNode);
            var link = item.getElementsByTagName('a')[0];
            this.removeClassName(link, this.hoverClass);
            this.removeClassName(link, this.subHoverClass);
            item = item.parentNode;
        this.lastOpen = false;
    Spry.Widget.MenuBar.prototype.keyDown = function (e)
        if (!this.hasFocus)
            return;
        if (!this.lastOpen)
            this.hasFocus = false;
            return;
        var e = e|| event;
        var listitem = this.lastOpen.parentNode;
        var link = this.lastOpen;
        var submenus = listitem.getElementsByTagName('ul');
        var menu = (submenus.length > 0 ? submenus[0] : null);
        var hasSubMenu = (menu) ? true : false;
        var opts = [listitem, menu, null, this.getSibling(listitem, 'previousSibling'), this.getSibling(listitem, 'nextSibling')];
        if (!opts[3])
            opts[2] = (listitem.parentNode.parentNode.nodeName.toLowerCase() == 'li')?listitem.parentNode.parentNode:null;
        var found = 0;
        switch (e.keyCode){
            case this.upKeyCode:
                found = this.getElementForKey(opts, 'y', 1);
                break;
            case this.downKeyCode:
                found = this.getElementForKey(opts, 'y', -1);
                break;
            case this.leftKeyCode:
                found = this.getElementForKey(opts, 'x', 1);
                break;
            case this.rightKeyCode:
                found = this.getElementForKey(opts, 'x', -1);
                break;
            case this.escKeyCode:
            case 9:
                this.clearSelection();
                this.hasFocus = false;
            default: return;
        switch (found)
            case 0: return;
            case 1:
                //subopts
                this.mouseOver(listitem, e);
                break;
            case 2:
                //parent
                this.mouseOut(opts[2], e);
                break;
            case 3:
            case 4:
                // left - right
                this.removeClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
                break;
        var link = opts[found].getElementsByTagName('a')[0];
        if (opts[found].nodeName.toLowerCase() == 'ul')
            opts[found] = opts[found].getElementsByTagName('li')[0];
        this.addClassName(link, opts[found].getElementsByTagName('ul').length > 0 ? this.subHoverClass : this.hoverClass);
        this.lastOpen = link;
        opts[found].getElementsByTagName('a')[0].focus();
            //stop further event handling by the browser
        return Spry.Widget.MenuBar.stopPropagation(e);
    Spry.Widget.MenuBar.prototype.mouseOver = function (listitem, e)
        var link = listitem.getElementsByTagName('a')[0];
        var submenus = listitem.getElementsByTagName('ul');
        var menu = (submenus.length > 0 ? submenus[0] : null);
        var hasSubMenu = (menu) ? true : false;
        if (this.enableKeyboardNavigation)
            this.clearSelection(listitem);
        if(this.bubbledTextEvent())
            // ignore bubbled text events
            return;
        if (listitem.closetime)
            clearTimeout(listitem.closetime);
        if(this.currMenu == listitem)
            this.currMenu = null;
        // move the focus too
        if (this.hasFocus)
            link.focus();
        // show menu highlighting
        this.addClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
        this.lastOpen = link;
        if(menu && !this.hasClassName(menu, this.subHoverClass))
            var self = this;
            listitem.opentime = window.setTimeout(function(){self.showSubmenu(menu);}, this.showDelay);
    Spry.Widget.MenuBar.prototype.mouseOut = function (listitem, e)
        var link = listitem.getElementsByTagName('a')[0];
        var submenus = listitem.getElementsByTagName('ul');
        var menu = (submenus.length > 0 ? submenus[0] : null);
        var hasSubMenu = (menu) ? true : false;
        if(this.bubbledTextEvent())
            // ignore bubbled text events
            return;
        var related = (typeof e.relatedTarget != 'undefined' ? e.relatedTarget : e.toElement);
        if(!listitem.contains(related))
            if (listitem.opentime)
                clearTimeout(listitem.opentime);
            this.currMenu = listitem;
            // remove menu highlighting
            this.removeClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
            if(menu)
                var self = this;
                listitem.closetime = window.setTimeout(function(){self.hideSubmenu(menu);}, this.hideDelay);
            if (this.hasFocus)
                link.blur();
    Spry.Widget.MenuBar.prototype.getSibling = function(element, sibling)
        var child = element[sibling];
        while (child && child.nodeName.toLowerCase() !='li')
            child = child[sibling];
        return child;
    Spry.Widget.MenuBar.prototype.getElementForKey = function(els, prop, dir)
        var found = 0;
        var rect = Spry.Widget.MenuBar.getPosition;
        var ref = rect(els[found]);
        var hideSubmenu = false;
        //make the subelement visible to compute the position
        if (els[1] && !this.hasClassName(els[1], this.MenuBarSubmenuVisible))
            els[1].style.visibility = 'hidden';
            this.showSubmenu(els[1]);
            hideSubmenu = true;
        var isVert = this.hasClassName(this.element, this.verticalClass);
        var hasParent = els[0].parentNode.parentNode.nodeName.toLowerCase() == 'li' ? true : false;
        for (var i = 1; i < els.length; i++){
            //when navigating on the y axis in vertical menus, ignore children and parents
            if(prop=='y' && isVert && (i==1 || i==2))
                continue;
            //when navigationg on the x axis in the FIRST LEVEL of horizontal menus, ignore children and parents
            if(prop=='x' && !isVert && !hasParent && (i==1 || i==2))
                continue;
            if (els[i])
                var tmp = rect(els[i]);
                if ( (dir * tmp[prop]) < (dir * ref[prop]))
                    ref = tmp;
                    found = i;
        // hide back the submenu
        if (els[1] && hideSubmenu){
            this.hideSubmenu(els[1]);
            els[1].style.visibility =  '';
        return found;
    Spry.Widget.MenuBar.camelize = function(str)
        if (str.indexOf('-') == -1){
            return str;   
        var oStringList = str.split('-');
        var isFirstEntry = true;
        var camelizedString = '';
        for(var i=0; i < oStringList.length; i++)
            if(oStringList[i].length>0)
                if(isFirstEntry)
                    camelizedString = oStringList[i];
                    isFirstEntry = false;
                else
                    var s = oStringList[i];
                    camelizedString += s.charAt(0).toUpperCase() + s.substring(1);
        return camelizedString;
    Spry.Widget.MenuBar.getStyleProp = function(element, prop)
        var value;
        try
            if (element.style)
                value = element.style[Spry.Widget.MenuBar.camelize(prop)];
            if (!value)
                if (document.defaultView && document.defaultView.getComputedStyle)
                    var css = document.defaultView.getComputedStyle(element, null);
                    value = css ? css.getPropertyValue(prop) : null;
                else if (element.currentStyle)
                        value = element.currentStyle[Spry.Widget.MenuBar.camelize(prop)];
        catch (e) {}
        return value == 'auto' ? null : value;
    Spry.Widget.MenuBar.getIntProp = function(element, prop)
        var a = parseInt(Spry.Widget.MenuBar.getStyleProp(element, prop),10);
        if (isNaN(a))
            return 0;
        return a;
    Spry.Widget.MenuBar.getPosition = function(el, doc)
        doc = doc || document;
        if (typeof(el) == 'string') {
            el = doc.getElementById(el);
        if (!el) {
            return false;
        if (el.parentNode === null || Spry.Widget.MenuBar.getStyleProp(el, 'display') == 'none') {
            //element must be visible to have a box
            return false;
        var ret = {x:0, y:0};
        var parent = null;
        var box;
        if (el.getBoundingClientRect) { // IE
            box = el.getBoundingClientRect();
            var scrollTop = doc.documentElement.scrollTop || doc.body.scrollTop;
            var scrollLeft = doc.documentElement.scrollLeft || doc.body.scrollLeft;
            ret.x = box.left + scrollLeft;
            ret.y = box.top + scrollTop;
        } else if (doc.getBoxObjectFor) { // gecko
            box = doc.getBoxObjectFor(el);
            ret.x = box.x;
            ret.y = box.y;
        } else { // safari/opera
            ret.x = el.offsetLeft;
            ret.y = el.offsetTop;
            parent = el.offsetParent;
            if (parent != el) {
                while (parent) {
                    ret.x += parent.offsetLeft;
                    ret.y += parent.offsetTop;
                    parent = parent.offsetParent;
            // opera & (safari absolute) incorrectly account for body offsetTop
            if (Spry.is.opera || Spry.is.safari && Spry.Widget.MenuBar.getStyleProp(el, 'position') == 'absolute')
                ret.y -= doc.body.offsetTop;
        if (el.parentNode)
                parent = el.parentNode;
        else
            parent = null;
        if (parent.nodeName){
            var cas = parent.nodeName.toUpperCase();
            while (parent && cas != 'BODY' && cas != 'HTML') {
                cas = parent.nodeName.toUpperCase();
                ret.x -= parent.scrollLeft;
                ret.y -= parent.scrollTop;
                if (parent.parentNode)
                    parent = parent.parentNode;
                else
                    parent = null;
        return ret;
    Spry.Widget.MenuBar.stopPropagation = function(ev)
        if (ev.stopPropagation)
            ev.stopPropagation();
        else
            ev.cancelBubble = true;
        if (ev.preventDefault)
            ev.preventDefault();
        else
            ev.returnValue = false;
    Spry.Widget.MenuBar.setOptions = function(obj, optionsObj, ignoreUndefinedProps)
        if (!optionsObj)
            return;
        for (var optionName in optionsObj)
            if (ignoreUndefinedProps && optionsObj[optionName] == undefined)
                continue;
            obj[optionName] = optionsObj[optionName];
    })(); // EndSpryComponent
    If anyone could possibly steer me on the right direction with this, I'd be very grateful! I've been struggling with this for about a month now and I feel like I may have only made the situation worse.
    I'm not sure if I have to keep making a new spry assets folder in my website or not or if I have to drag and drop the spry assets into the root folder. I have restarted my website over at least a dozen times by now. I have tried changing folders, dragging and dropping various spry assets folders everywhere and I have also uninstalled and reinstalled my copy of Dreamweaver CS5 in the hopes of getting my spry horizontal menu bar to act normal. I am completely new at Dreamweaver and I really, really need some help with this.
    Thanks!

    I haven't been able to get my site posted up yet. Here is a link to it anyway:andrearosales.com
    I will be working on connecting my files up to my server. At the moment, here are some screen shots of some messages that I am getting when I am saving my file.
    I'm not sure what to make of these messages. I tried to put a new spry horizontal menu bar on my main page, and when it appeared, it displayed as a spry vertical menu bar.
    Here is a picture of what it looks like:
    I"m going to refer to the links that were suggested to me though. I'm not sure if pictures of the code will help to solve my problem. I'm going to try again to connect my files to my server though.

  • Having issues linking spry menu bar to my other pages

    Hey everyone,
    I am brand new to web development. I am currently using the trial of DW and I must say I love it. I am having issues with my spry menu bar though. I will click on a certain box in the menu bar and use the properties page at the bottom and insert a link to another one of my webpages that I have created. However when I test my webpage, it will not be linked to it. Instead it is linked to #, or my index page. Now my domain name is: thecampuscocktail.com. I have created two other pages "feedback.html" and "speedydrinks.html" and even when I enter those manually into my browser (i.e. "thecampuscocktail.com/feedback.html") it gives me a page not found error. So I may be doing something incorrectly with uploading my pages however I have used the "put" option with all of them and I have used the "sync site wide" option. I am also using a template though that shouldn't affect it. Being brand new I know very, very little about coding. But here is the code to my template:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!-- TemplateBeginEditable name="doctitle" -->
    <title>The Campus Cocktail</title>
    <!-- TemplateEndEditable -->
    <link href="../twoColLiqLtHdr.css" rel="stylesheet" type="text/css" /><!--[if lte IE 7]>
    <style>
    .content { margin-right: -1px; } /* this 1px negative margin can be placed on any of the columns in this layout with the same corrective effect. */
    ul.nav a { zoom: 1; }  /* the zoom property gives IE the hasLayout trigger it needs to correct extra whiltespace between the links */
    </style>
    <![endif]-->
    <script src="../SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <link href="../SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
    <!-- TemplateBeginEditable name="head" -->
    <!-- TemplateEndEditable -->
    </head>
    <body>
    <div class="container">
      <div class="header">
        <p><a href="../index.html"><img src="../images/newlogo.gif" alt="logo" width="331" height="189" class="logo" /></a></p>
        <ul id="MenuBar1" class="MenuBarHorizontal">
          <li><a href="#">Drinking Games</a>      </li>
          <li><a href="#" class="MenuBarItemSubmenu">Recipes</a>
            <ul>
              <li class="subsubmenu"><a href="#" class="MenuBarItemSubmenu">By Ingredient</a>
                <ul>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                </ul>
              </li>
              <li><a href="#" class="MenuBarItemSubmenu">By Type</a>
                <ul>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                </ul>
              </li>
              <li><a href="#" class="MenuBarItemSubmenu">By Form</a>
                <ul>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                  <li><a href="#">Untitled Item</a></li>
                </ul>
              </li>
            </ul>
          </li>
          <li><a href="../Pages/speedydrinks.html">Speedy Drinks</a>      </li>
          <li><a href="#">Drinks by Occasion</a></li>
          <li><a href="../index.html">Local Bars</a></li>
          <li><a href="../Pages/speedydrinks.html">Submit Your Own</a></li>
        </ul>
        <p> </p>
      <!-- end .header --></div>
      <div class="sidebar1"><!-- TemplateBeginEditable name="EditRegion3" -->
        <ul class="nav">
        </ul>
        <p> Whats New:</p>
        <p> </p>
        <p> </p>
        <p> </p>
        <p> </p>
        <p> </p>
        <!-- end .sidebar1 -->
      <!-- TemplateEndEditable --></div>
      <div class="content"><!-- TemplateBeginEditable name="EditRegion4" --><span class="drinklabel">Drink Of The Day:</span>
          <p> </p>
          <!-- end .content -->
      <!-- TemplateEndEditable --></div>
      <div class="footer">
        <p>                 &copy; 2012 Brandon Hall</p>
        <!-- end .footer --></div>
      <!-- end .container --></div>
    <script type="text/javascript">
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
    </script>
    </body>
    </html>
    any help will be appreciated! Sorry for the length of this post.

    DW_Noobie wrote:
    can anyone help
    It depends.  I can see your two pages as in this link:
    <http://www.thecampuscocktail.com/speedydrinks.html>
    <http://www.thecampuscocktail.com/feedback.html>
    You need to describe what these issues are.

  • Embedding a Web Gallery in a html page with a Spry menu

    I am trying to embed a web gallery I created in Bridge into a web page that has a spry menubar as part of it's code. I was unable to see the gallery on the page and removed the html code associated with the gallery and was trying to start again.
    Somewhere along the way, I started getting error messages regarding the spry menu. Although the menu continues to work, I was seeing the message in Dreamweaver which is unusual.
    This prompted me to wonder if the code for the creation of the web gallery would interfere in any way with the spry menu.
    I don't want to try again to embed without finding out about this. I fortunately had backups of my documents in time machine and no more error messages appear.
    Thank you.

    You should ask this question in the DreamWeaver forum instead. This is the Bridge forum.
    Also see this http://foundationphp.com/tutorials/gallery/embed1.php

Maybe you are looking for

  • Upgrade OS on Xserve (late 2006)

    We have an late 2006 Xserve, running Leopard 10.5.8. I checked mac. OS support - should be 10.7.5 But when I try to update to SL or ML it does not work. I tried to boot from DVDs, also with an external drive and USB-drive. No luck. Any ideas?

  • Restoring folder from Time Machine  to external drive

    My music folder (100+GB) in on an external 500 GB FW drvie, I would like to back both my Mac HD and the FW drive to a 1 TB FW drive. My question, if the 500 GB FW drive fails what is best way of restoring the music folder to the new drive? Can I use

  • Month and Year in Input Field

    Hi Gurus, I m Using SPMON(Period to analyze month and year) as input Field in my BSP Application. If i Click the Input Help i want to call a Function module "popup_to_display_month" .. How to acheive this. I have used onValueHelp attribute in which i

  • How do I convert wmv to mov files for fcp?

    I have tried a couple of different conversion programs to convert a wmv file to mov or mp4, and all seem to result in a viewable mp4, but when I import into final cut and try to put the footage into my sequence, it won't render. The sound renders, bu

  • Limit the columns when export RDL to TIFF or PDF image

    I am working on a report page with around 10 columns. When the report appears, there is a export button for user to export the report to csv, excel, tiff and pdf. There is a problem with the PDF and TIFF image when there are many columns, as width of