On Hover Scroll?

Hello,
I am working on a personal portfolio at the moment and was wondering if the menu on the website below could be achieved in flash catalyst
http://www.experiencetheplanets.com/ (click on "experience" and then notice the images at the bottom)
I can see the images being arranged into a tiling datalist component that stretches across the viewer's screen. However, instead of including a horizontal scroll bar that the user has to move back and forth, is there a way to maybe turn the datalist itself into a scroll bar that is set to work on hover instead of on click/hold so users can still click on the individual data entries much like in the example above?
I am inexperienced with flash builder so I'd like to stay from it if it is indeed possible to get this type of functionality within catalyst. Otherwise, if flash builder is the only way to accomplish this, I would appreciate any pointers on how to go about achieving it.

Hello,
I am working on a personal portfolio at the moment and was wondering if the menu on the website below could be achieved in flash catalyst
http://www.experiencetheplanets.com/ (click on "experience" and then notice the images at the bottom)
I can see the images being arranged into a tiling datalist component that stretches across the viewer's screen. However, instead of including a horizontal scroll bar that the user has to move back and forth, is there a way to maybe turn the datalist itself into a scroll bar that is set to work on hover instead of on click/hold so users can still click on the individual data entries much like in the example above?
I am inexperienced with flash builder so I'd like to stay from it if it is indeed possible to get this type of functionality within catalyst. Otherwise, if flash builder is the only way to accomplish this, I would appreciate any pointers on how to go about achieving it.

Similar Messages

  • Get rid hover border

    I customized the style of the scrollbar following mainly this article.
    However on the increment/decrement button I get a border when hovering over it. How can I remove this effect?
    .scroll-bar:vertical {
        -fx-background-color:transparent;
    .scroll-bar:vertical .decrement-arrow {
        -fx-background-repeat: no-repeat;
        -fx-background-image : url('scrollUp.png');
        -fx-shape: "";
        -fx-padding: 16px, 15px;
        -fx-background-color:transparent;
    .scroll-bar:vertical .increment-arrow {
        -fx-background-repeat: no-repeat;
        -fx-background-image : url('scrollDown.png');
        -fx-shape: "";
        -fx-padding: 16px, 15px;
        -fx-background-color:transparent;
    .scroll-bar:vertical .increment-arrow:hover,
    .scroll-bar:vertical .decrement-arrow:hover {
        -fx-border-style: none;
    .scroll-bar:horizontal .thumb,
    .scroll-bar:vertical .thumb {
        -fx-background-color:derive(rgb(234, 193, 23),90%);
        -fx-background-insets: 0, 0, 0;
        -fx-background-radius: 0em;
    Having a style definition for hover has no effect. What I have seen with ScenicView is that on the Region underlying the button a DropShadow effect is defined. Might that be the cause?

    I think the shadow is there all the time. In modena.css, I can see those two definitions:
    .scroll-bar > .increment-button:hover,
    .scroll-bar > .decrement-button:hover {
        -fx-color: -fx-hover-base;
    .scroll-bar > .increment-button:hover > .increment-arrow,
    .scroll-bar > .decrement-button:hover > .decrement-arrow {
        -fx-background-color: -fx-mark-highlight-color,derive(-fx-base,-50%);
    I haven't tried but I guess those are the ones you need to override (as opposed to -fx-border-style).

  • Weird Indesign CC font problem...

    Here's another one:
    It seems that I am having problems with selecting fonts. When I choose a font via the menu-dropdown at the upper screen, it regularly won't change the selected text. But doing so in the dedicated floating text-window, however, does. And here's the kicker: The next time it will be vice versa, that is the text-window won't work, but the menu will. No matter if OTF, TTF or T1-fonts. Most recent updates all around, even after resetting preferences.
    I mean, it's not like that is the least bit annoying in what is basically a type-setting software. :-). Does anybody know a fix for this?
    Carbon/Cocoa or not, this all feels rather like a step back from CS6. PS CC didn't run at all at first, but now that it does, it feels more or less bug-free, but in ID, the longer you work with it, the more weirdness you find that just wasn't there in the previous version.
    Has anybody had this weird behaviour as well or is it my system?

    @Peter – thank you for fixing the link, didn't know it was screwed up…
    Yes. This is a very scary and dangerous feature. I'm all with Brigitta Kahn in the comments section at Indesignsecrets:
    http://indesignsecrets.com/hover-scrolling-indesign-cc-feature-bug.php/comment-page-1#comm ent-622819
    One of the things that makes me hesitate using InDesign CC at all.
    And this feature is also in Illustrator CC and a few other CC products…
    See Kelly Vaughn's comments on it:
    http://indesignsecrets.com/hover-scrolling-indesign-cc-feature-bug.php/comment-page-1#comm ent-586900
    Uwe
    PS.: Hope to get my links right this time. (I was logged out inadverently during this session from the forums)

  • Increase the amount of time a menu will stay open?

    When clicking on a menu in AI CC (especially the Character pull down menu which allows you to select a font) the menu automatically closes after about 20 seconds, even if you are still actively scrolling. This is often not enough time when scrolling through a long list of fonts.
    Can this default time be increased or the auto close feature turned off? And a related question, can you turn off Hover Scrolling?

    Mylenium wrote:
    Without proper system info nobody can say anything. This is not normal behavior and something is misconfigured.
    Mylenium
    There doesn't seem to be any commonality on the hardware side, it happens on all 30 computers CC is installed on, ranging from:
    • Brand new MacPro v6.1, 64GB RAM, OS 10.9.2
    • Older MacPro v5.1, 32GB RAM, OS 10.8.5
    • MacBook Pro v11.3, 16GB RAM, OS 10.9.3
    Some installs were individually downloaded via CC, some were rolled out using custom package installer. All Adobe updates have been installed.

  • Scroll bar in the Hover Menu

    Dear Expert,
    We have implemented the Hover menu in our Netweaver Portal 7.01. Everything is working very fine but now we are coming across a problme for the users having roles more than 7. In TLN the roles come in 2 rows one after the another.When the users try to acess the submenu of the frole in the first row he has to struggle a lot, always the role in the 2nd row gets selected.
    To fix this issue i am trying to create a scroll button at the end of the screen and the 2nd row role should come after this button instead of the 2nd row.
    Any other solution is also welcome..
    Thanks and Regards,
    M.D.Sahu

    Marilynn,
    Hopefully, you will not have to go far down this general list.
    You may try the following (you may have tried/done some of them already) and see whether it helps (the following is a general list of things you may try when the issue is not in a specific file; 3) and 4) are specifically aimed at possibly corrupt preferences):
    1) Close down Illy and open again;
    2) Restart the computer (you may do that up to 3 times);
    3) Close down Illy and press Ctrl+Alt+Shift/Cmd+Option+Shift during startup (easy but irreversible);
    4) Move the folder with Illy closed (more tedious but also more thorough and reversible);
    5) Look through and try out the relevant among the Other options (Item 7) is a list of usual suspects among other applications that may disturb and confuse Illy);
    Even more seriously, you may:
    6) Uninstall, run the Cleaner Tool, and reinstall.
    http://www.adobe.com/support/contact/cscleanertool.html

  • Every time I hover over a live link an annoying pop up in the corner of my screen containing the URL pops up. This is worse than a pop up ad because as I scroll through a forum or a document the constant flicker literally gives me a headache.

    How can I stop this or revert back to the previous version?

    You can use this add-on to change this behavior back to how it was in Firefox 3.6:
    https://addons.mozilla.org/firefox/addon/status-4-evar/

  • Animated GIF with hover?

    Here is an animated GIF where you can stop and start it when you hover over it.  I know how to make them in PSD but not sure how to do it with the hovering (scroll down to see it on page below):
    http://www.sbnation.com/2014/1/16/5304078/breaking-madden-49ers-vs-seahawks-beeftank
    If this something I can do in Muse?  Requires coding or is it a PSD function?  I use PSD CS4.
    Thanks.

    Hello,
    This setup is possible in Muse. Please follow the steps below :
    1) First save a copy of your GIF as Jpeg image image (with just first frame of your JIF)
    2) Now place a Blank Composition Widget and keep only one Trigger and target in it (Delete the rest).
    3) Now place your GIF in Target and in Trigger, use the Fill option at top and fill the Tirgger container with the JPEG image.
    4) Select Trigger again and using the states option, you would need to delete the Fill image from Rollover, Mousedown and Active state.
    5) Place the Trigger on top of Target container and from Widget flyout opion, use the settings as shown in the image below :
    A long process but should help you achieve what the effect.
    Regards,
    Sachin

  • Spry menu hover in IE: How to get rid of white frame & "false"?

    Hi--
    I'm encountering an IE issue with a Spry vertical menu bar. When the user hovers over the submenu, white frames appear behind the submenu with the word "false" in them. Of course this doesn't happen in Safari or Firefox.
    I was able to fix other similar problems with the menu by following tips posted on another forum. Namely, in the CSS, I disabled an IE hack that caused a white background to appear (menu background has to be transparent on this site). And in the JS, I disabled the following: this.removeIframeLayer(menu);
    Here's the URL: http://www.qic-ec.org
    Below are the css (1) and js (2).
    Any help would be DEEPLY appreciated.
    Thank you
    Jackie
    CSS:
    @charset "UTF-8";
    /* SpryMenuBarVertical.css - Revision: Spry Preview Release 1.4 */
    /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
    LAYOUT INFORMATION: describes box model, positioning, z-order
    /* The outermost container of the Menu Bar, a fixed width box with no margin or padding */
    ul.MenuBarVertical
    margin: 0;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    cursor: default;
    width: 6.2em;
    /* 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 same fixed width as parent */
    ul.MenuBarVertical li
    margin: 0;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    position: relative;
    text-align: left;
    cursor: pointer;
    width: 6.2em;
    /* Submenus should appear slightly overlapping to the right (95%) and up (-5%) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
    ul.MenuBarVertical ul
    margin: -5% 0 0 95%;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    position: absolute;
    z-index: 1020;
    cursor: default;
    width: 6.2em;
    left: -1000em;
    top: 0;
    /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
    ul.MenuBarVertical ul.MenuBarSubmenuVisible
    left: 0;
    /* Menu item containers are same fixed width as parent */
    ul.MenuBarVertical ul li
    width: 3em;
    DESIGN INFORMATION: describes color scheme, borders, fonts
    /* Outermost menu container has borders on all sides */
    ul.MenuBarVertical
    border: 0px solid #CCC;
    /* Submenu containers have borders on all sides */
    ul.MenuBarVertical ul
    border: 0px solid #CCC;
    /* Menu items are a transparent block with padding and no text decoration */
    ul.MenuBarVertical a
    display: block;
    cursor: pointer;
    padding: 0.5em 0.75em;
    color: #502977;
    text-decoration: none;
    border-bottom: 1px dotted #A88FC7;
    /* Menu items that have mouse over or focus have a transparent background and light purple text */
    ul.MenuBarVertical a:hover, ul.MenuBarVertical a:focus
    color: #A88FC7;
    /* Menu items that are open with submenus are set to MenuBarItemHover with a transparent background and light purple text */
    ul.MenuBarVertical a.MenuBarItemHover, ul.MenuBarVertical a.MenuBarItemSubmenuHover, ul.MenuBarVertical a.MenuBarSubmenuVisible
        color: #A88FC7;
    ul.MenuBarVertical ul li a
    border: 0px;
    color: #006600;
      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.MenuBarVertical a.MenuBarItemSubmenu
    background-image: url(SpryMenuBarRight.gif);
    background-repeat: no-repeat;
    background-position: 95% 50%;
    /* 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.MenuBarVertical 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.MenuBarVertical a.MenuBarItemSubmenuHover
    background-image: url(SpryMenuBarRightHover.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.MenuBarVertical 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.MenuBarVertical iframe
    position: absolute;
    z-index: 1010;
    /* 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.MenuBarVertical li.MenuBarItemIE
    display: inline;
    f\loat: left;
            background: #fff;
    JS:
    /* SpryMenuBar.js - Revision: Spry Preview Release 1.4 */
    // Copyright (c) 2006. Adobe Systems Incorporated.
    // All rights reserved.
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions are met:
    //   * Redistributions of source code must retain the above copyright notice,
    //     this list of conditions and the following disclaimer.
    //   * Redistributions in binary form must reproduce the above copyright notice,
    //     this list of conditions and the following disclaimer in the documentation
    //     and/or other materials provided with the distribution.
    //   * Neither the name of Adobe Systems Incorporated nor the names of its
    //     contributors may be used to endorse or promote products derived from this
    //     software without specific prior written permission.
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    // POSSIBILITY OF SUCH DAMAGE.
    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.
    var Spry;
    if(!Spry)
    Spry = {};
    if(!Spry.Widget)
    Spry.Widget = {};
    // 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;
    var isie = (typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE');
    if(typeof document.getElementById == 'undefined' || (navigator.vendor == 'Apple Computer, Inc.' && typeof window.XMLHttpRequest == 'undefined') || (isie && typeof document.uniqueID == 'undefined'))
    // bail on older unsupported browsers
    return;
    // load hover images now
    if(opts)
    for(var k in opts)
    var rollover = new Image;
    rollover.src = opts[k];
    if(this.element)
    this.currMenu = this.element;
    var items = this.element.getElementsByTagName('li');
    for(var i=0; i<items.length; i++)
    this.initialize(items[i], element, isie);
    if(isie)
    this.addClassName(items[i], "MenuBarItemIE");
    items[i].style.position = "static";
    if(isie)
    if(this.hasClassName(this.element, "MenuBarVertical"))
    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.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:false;';
    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.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, "MenuBarActive");
    // bubbledTextEvent for Menu Bar
    // identify bubbled up text events in Safari so we can ignore them
    Spry.Widget.MenuBar.prototype.bubbledTextEvent = function()
    return (navigator.vendor == 'Apple Computer, Inc.' && (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, "MenuBarSubmenuVisible");
    if(typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE')
    if(!this.hasClassName(this.element, "MenuBarHorizontal") || menu.parentNode.parentNode != this.element)
    menu.style.top = menu.parentNode.offsetTop + 'px';
    if(typeof document.uniqueID != "undefined")
    this.createIframeLayer(menu);
    this.addClassName(this.element, "MenuBarActive");
    // 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, "MenuBarSubmenuVisible");
    if(typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE')
    menu.style.top = '';
    menu.style.left = '';
    // 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, isie)
    var opentime, closetime;
    var link = listitem.getElementsByTagName('a')[0];
    var submenus = listitem.getElementsByTagName('ul');
    var menu = (submenus.length > 0 ? submenus[0] : null);
    var hasSubMenu = false;
    if(menu)
    this.addClassName(link, "MenuBarItemSubmenu");
    hasSubMenu = true;
    if(!isie)
    // 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)
    if(self.bubbledTextEvent())
    // ignore bubbled text events
    return;
    clearTimeout(closetime);
    if(self.currMenu == listitem)
    self.currMenu = null;
    // show menu highlighting
    self.addClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");
    if(menu && !self.hasClassName(menu, "MenuBarSubmenuVisible"))
    opentime = window.setTimeout(function(){self.showSubmenu(menu);}, 250);
    }, false);
    this.addEventListener(listitem, 'mouseout', function(e)
    if(self.bubbledTextEvent())
    // ignore bubbled text events
    return;
    var related = (typeof e.relatedTarget != 'undefined' ? e.relatedTarget : e.toElement);
    if(!listitem.contains(related))
    clearTimeout(opentime);
    self.currMenu = listitem;
    // remove menu highlighting
    self.removeClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");
    if(menu)
    closetime = window.setTimeout(function(){self.hideSubmenu(menu);}, 600);
    }, false);

    Oh, sorry, after I updated to 1.6.1 and uploaded the new code, I didn't post it here. Here it is (minus intro comments)--and it's still not working in IE (though I am testing on an older PC with IE 6). The problem only arises upon hovering.
    THANKS
    Jackie
    JS
    // SpryMenuBar.js - version 0.12 - Spry Pre-Release 1.6.1
    // Copyright (c) 2006. Adobe Systems Incorporated.
    // All rights reserved.
    var Spry; if (!Spry) 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];
    CSS
    @charset "UTF-8";
    /* SpryMenuBarVertical.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, a fixed width box with no margin or padding */
    ul.MenuBarVertical
    margin: 0;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    cursor: default;
    width: 6.2em;
    /* 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 same fixed width as parent */
    ul.MenuBarVertical li
    margin: 0;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    position: relative;
    text-align: left;
    cursor: pointer;
    width: 6.2em;
    /* Submenus should appear slightly overlapping to the right (95%) and up (-5%) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
    ul.MenuBarVertical ul
    margin: -5% 0 0 95%;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    position: absolute;
    z-index: 1020;
    cursor: default;
    width: 6.2em;
    left: -1000em;
    top: 0;
    /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
    ul.MenuBarVertical ul.MenuBarSubmenuVisible
    left: 0;
    /* Menu item containers are same fixed width as parent */
    ul.MenuBarVertical ul li
    width: 8.2em;
    DESIGN INFORMATION: describes color scheme, borders, fonts
    /* Outermost menu container has borders on all sides */
    ul.MenuBarVertical
    border: 0px solid #CCC;
    /* Submenu containers have borders on all sides */
    ul.MenuBarVertical ul
    border: 0px solid #CCC;
    /* Menu items are a light gray block with padding and no text decoration */
    ul.MenuBarVertical a
    display: block;
    cursor: pointer;
    background-color: transparent;
    padding: 0.5em 0.75em;
    color: #502977;
    text-decoration: none;
    border-bottom: 1px dotted #A88FC7;
    /* Menu items that have mouse over or focus have a blue background and white text */
    ul.MenuBarVertical a:hover, ul.MenuBarVertical a:focus
    background-color: transparent;
    color: #A88FC7;
    /* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
    ul.MenuBarVertical a.MenuBarItemHover, ul.MenuBarVertical a.MenuBarItemSubmenuHover, ul.MenuBarVertical a.MenuBarSubmenuVisible
    background-color: transparent;
    color: #A88FC7;
    ul.MenuBarVertical ul li a
    border: 0px;
    color: #006600;
    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.MenuBarVertical 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.MenuBarVertical 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.MenuBarVertical 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.MenuBarVertical li.MenuBarItemIE
    display: inline;
    f\loat: left;
    background: #FFF;

  • Spry menu hover: How to get rid of white box with "false"?

    Hi--
    I'm encountering an IE issue with a Spry vertical menu bar. When the user hovers over the submenu, white frames appear behind the submenu with the word "false" in them. Of course this doesn't happen in Safari or Firefox.
    I was able to fix other similar problems with the menu by following tips posted on another forum. Namely, in the CSS, I disabled an IE hack that caused a white background to appear (menu background has to be transparent on this site). And in the JS, I disabled the following: this.removeIframeLayer(menu);
    Here's the URL: http://www.qic-ec.org
    Below are the css (1) and js (2).
    Any help would be DEEPLY appreciated.
    Thank you
    Jackie
    CSS:
    @charset "UTF-8";
    /* SpryMenuBarVertical.css - Revision: Spry Preview Release 1.4 */
    /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
    LAYOUT INFORMATION: describes box model, positioning, z-order
    /* The outermost container of the Menu Bar, a fixed width box with no margin or padding */
    ul.MenuBarVertical
    margin: 0;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    cursor: default;
    width: 6.2em;
    /* 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 same fixed width as parent */
    ul.MenuBarVertical li
    margin: 0;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    position: relative;
    text-align: left;
    cursor: pointer;
    width: 6.2em;
    /* Submenus should appear slightly overlapping to the right (95%) and up (-5%) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
    ul.MenuBarVertical ul
    margin: -5% 0 0 95%;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    position: absolute;
    z-index: 1020;
    cursor: default;
    width: 6.2em;
    left: -1000em;
    top: 0;
    /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
    ul.MenuBarVertical ul.MenuBarSubmenuVisible
    left: 0;
    /* Menu item containers are same fixed width as parent */
    ul.MenuBarVertical ul li
    width: 3em;
    DESIGN INFORMATION: describes color scheme, borders, fonts
    /* Outermost menu container has borders on all sides */
    ul.MenuBarVertical
    border: 0px solid #CCC;
    /* Submenu containers have borders on all sides */
    ul.MenuBarVertical ul
    border: 0px solid #CCC;
    /* Menu items are a transparent block with padding and no text decoration */
    ul.MenuBarVertical a
    display: block;
    cursor: pointer;
    padding: 0.5em 0.75em;
    color: #502977;
    text-decoration: none;
    border-bottom: 1px dotted #A88FC7;
    /* Menu items that have mouse over or focus have a transparent background and light purple text */
    ul.MenuBarVertical a:hover, ul.MenuBarVertical a:focus
    color: #A88FC7;
    /* Menu items that are open with submenus are set to MenuBarItemHover with a transparent background and light purple text */
    ul.MenuBarVertical a.MenuBarItemHover, ul.MenuBarVertical a.MenuBarItemSubmenuHover, ul.MenuBarVertical a.MenuBarSubmenuVisible
        color: #A88FC7;
    ul.MenuBarVertical ul li a
    border: 0px;
    color: #006600;
      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.MenuBarVertical a.MenuBarItemSubmenu
    background-image: url(SpryMenuBarRight.gif);
    background-repeat: no-repeat;
    background-position: 95% 50%;
    /* 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.MenuBarVertical 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.MenuBarVertical a.MenuBarItemSubmenuHover
    background-image: url(SpryMenuBarRightHover.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.MenuBarVertical 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.MenuBarVertical iframe
    position: absolute;
    z-index: 1010;
    /* 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.MenuBarVertical li.MenuBarItemIE
    display: inline;
    f\loat: left;
            background: #fff;
    JS:
    /* SpryMenuBar.js - Revision: Spry Preview Release 1.4 */
    // Copyright (c) 2006. Adobe Systems Incorporated.
    // All rights reserved.
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions are met:
    //   * Redistributions of source code must retain the above copyright notice,
    //     this list of conditions and the following disclaimer.
    //   * Redistributions in binary form must reproduce the above copyright notice,
    //     this list of conditions and the following disclaimer in the documentation
    //     and/or other materials provided with the distribution.
    //   * Neither the name of Adobe Systems Incorporated nor the names of its
    //     contributors may be used to endorse or promote products derived from this
    //     software without specific prior written permission.
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    // POSSIBILITY OF SUCH DAMAGE.
    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.
    var Spry;
    if(!Spry)
    Spry = {};
    if(!Spry.Widget)
    Spry.Widget = {};
    // 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;
    var isie = (typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE');
    if(typeof document.getElementById == 'undefined' || (navigator.vendor == 'Apple Computer, Inc.' && typeof window.XMLHttpRequest == 'undefined') || (isie && typeof document.uniqueID == 'undefined'))
    // bail on older unsupported browsers
    return;
    // load hover images now
    if(opts)
    for(var k in opts)
    var rollover = new Image;
    rollover.src = opts[k];
    if(this.element)
    this.currMenu = this.element;
    var items = this.element.getElementsByTagName('li');
    for(var i=0; i<items.length; i++)
    this.initialize(items[i], element, isie);
    if(isie)
    this.addClassName(items[i], "MenuBarItemIE");
    items[i].style.position = "static";
    if(isie)
    if(this.hasClassName(this.element, "MenuBarVertical"))
    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.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:false;';
    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.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, "MenuBarActive");
    // bubbledTextEvent for Menu Bar
    // identify bubbled up text events in Safari so we can ignore them
    Spry.Widget.MenuBar.prototype.bubbledTextEvent = function()
    return (navigator.vendor == 'Apple Computer, Inc.' && (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, "MenuBarSubmenuVisible");
    if(typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE')
    if(!this.hasClassName(this.element, "MenuBarHorizontal") || menu.parentNode.parentNode != this.element)
    menu.style.top = menu.parentNode.offsetTop + 'px';
    if(typeof document.uniqueID != "undefined")
    this.createIframeLayer(menu);
    this.addClassName(this.element, "MenuBarActive");
    // 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, "MenuBarSubmenuVisible");
    if(typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE')
    menu.style.top = '';
    menu.style.left = '';
    // 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, isie)
    var opentime, closetime;
    var link = listitem.getElementsByTagName('a')[0];
    var submenus = listitem.getElementsByTagName('ul');
    var menu = (submenus.length > 0 ? submenus[0] : null);
    var hasSubMenu = false;
    if(menu)
    this.addClassName(link, "MenuBarItemSubmenu");
    hasSubMenu = true;
    if(!isie)
    // 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)
    if(self.bubbledTextEvent())
    // ignore bubbled text events
    return;
    clearTimeout(closetime);
    if(self.currMenu == listitem)
    self.currMenu = null;
    // show menu highlighting
    self.addClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");
    if(menu && !self.hasClassName(menu, "MenuBarSubmenuVisible"))
    opentime = window.setTimeout(function(){self.showSubmenu(menu);}, 250);
    }, false);
    this.addEventListener(listitem, 'mouseout', function(e)
    if(self.bubbledTextEvent())
    // ignore bubbled text events
    return;
    var related = (typeof e.relatedTarget != 'undefined' ? e.relatedTarget : e.toElement);
    if(!listitem.contains(related))
    clearTimeout(opentime);
    self.currMenu = listitem;
    // remove menu highlighting
    self.removeClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");
    if(menu)
    closetime = window.setTimeout(function(){self.hideSubmenu(menu);}, 600);
    }, false);

    Do you have any suggestions for how to adjust the JS so that the menu functions properly in IE? As I said, I upgraded to Spry 1.6.1 and uploaded the new CSS and JS and the problem is still there. The CSS is the same as in the previous version. The new JS is:
    // SpryMenuBar.js - version 0.12 - Spry Pre-Release 1.6.1
    var Spry; if (!Spry) 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];

  • How do I add a hover feature on my pictures

    I would like to add a hover feature to my pictures so when I hover over the picture it turns to white and adds words. I found this feature in the Roxy website: http://www.roxy.com & See attached picture. Can someone help how to set this feature up?

    Hi,
    Yes I want the text to show up from the top and bottom with the scroll affects as it appears on the site.
    Thank you
    Hilda Martin
    (405) 323.0790
    Orangeperceptions.com

  • How do I add a 5th photo to be viewed in a scrolling slideshow while still keeping it 4 photos long?

    I am not sure if this really makes sense. But I am working with a template in Dreamweaver and the template has a 4 picture vertical slideshow(attached photo). It is really not a slideshow but I do not know what else to call it. So I want to add more than just 4 pictures but everytime I go to add a picture it turns the 4 picture slideshow into a 5 picture slideshow rather than hiding that 5th picture until it is scrolled over using the up/down buttons at the bottom. Initially the Up/Down buttons are of no use unless I can figure this out and add say 8 pictures instead of just the 4. If now I will just have to remove the buttons since they would be a waste of place.
    This is the html code used in the template for this slideshow. If you have any suggestions it would be greatly appreciated since I am sort of new to Dreamweaver. Also if you need more information I would be happy to provide you with anything.
    <div class="images">
                                                                                         <ul>
                                                                                                        <li><a href="#"><img src="images/yellow.gif" alt="" width="215" height="124"/></a></li>
                <li><a href="#"><img src="images/basin_door.gif" alt="" width="215" height="124"/></a></li>
                                                                                                        <li><a href="#"><img src="images/ford_valve_covers.gif" alt="" width="215" height="124"/></a></li>
                <li><a href="#"><img src="images/car_frame.gif" alt="" width="215" height="124"/></a></li>
             </ul>
                                                        </div>
    Thank you,
    Ryan

    Well I tried placing that in various places. Under .images which stretched each image to 500px since that would equal the 4 images. But instead it stretched each image.
    I placed in layout.css under the appropriate index which worked but once I tried to place another image it tried to just add it which eliminated the Up/Down buttons.
    In other words I have no idea where to place this code plus it probably doesn't help that I am pretty new to dreamweaver. So I attached the layout.css, style.css, and index-3.html which is the page I am working with right now. Thank you.
    Layout.css
    /*======= index.html =======*/
    #page1 header {height: 664px;}
    #page1 .col-1 {width: 215px;}
    #page1 .col-2 {width: 665px; padding: 0px 0px 0px 42px;}
    #page1 .col-2 .col-1 {width: 287px;}
    #page1 .divider {background: url(../images/divider-bg.gif) 247px 0px repeat-y;}
    /*======= index-1.html =======*/
    #page2 .col-1 {width: 242px;}
    #page2 .col-2 {
              width: 625px;
              text-align: center;
    #page2 .divider {background: url(../images/divider-bg.gif) 247px 0px repeat-y;}
    /*======= index-2.html =======*/
    #page3 .col-1 {width: 275px;}
    #page3 .col-2 {width: 900px;}
    #page3 .col-3 {width: 214px;}
    //#page3 .divider {background: url(../images/divider-bg.gif) 652px 0px repeat-y;}
    /*======= index-3.html =======*/
    #page4 .col-1 {width: 215px;}
    #page4 .col-2 {
              width: 650px;
              padding-left: 47px;
    #page4 .col-2 .col-1 {width: 286px;}
    #page4 .divider {background: url(../images/divider-bg.gif) 247px 0px repeat-y;}
    /*======= index-4.html =======*/
    #page5 .col-1 {width: 198px;}
    #page5 .col-2 {width: 900px; padding: 0px 27px 0px 0px}
    //#page5 .divider {background: url(../images/divider-bg.gif) 449px 0px repeat-y;}
    /*======= index-5.html =======*/
    #page6 .col-1 {width: 215px;}
    #page6 .col-2 {
              width: 620px;
              padding-right: 63px;
    #page6 .col-2 .col-1 {width: 286px;}
    #page6 .divider {background: url(../images/divider-bg.gif) 652px 0px repeat-y;}
    /*======= index-6.html =======*/
    #page7 .col-1 {width: 242px;}
    #page7 .col-2 {width: 620px;}
    #page7 .divider {background: url(../images/divider-bg.gif) 247px 0px repeat-y;}
    Style.css
    /* Getting the new tags to behave */
    article, aside, audio, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, meter, nav, output, progress, section, source, video{ display: block; }
    mark, rp, rt, ruby, summary, time{ display: inline }
    /* Global properties ======================================================== */
    body {
              background: url(../images/policsy-bg.gif) 0 bottom repeat-x #fff;
              font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
              font-size: 14px;
              line-height: 18px;
              color: #828282;
              min-width: 1000px;
    html, body { height: 100%;}
    p { padding-top: 18px; }
    .top { padding-top: 6px; }
    .top1 { padding-top: 0px; }
    .top2 { padding-top: 0px; }
    .top3 { padding-top: 21px; }
    .top4 { padding-top: 25px; }
    .top5 { padding-top: 29px; }
    .bot { padding-bottom: 34px; }
    .bot1 {
              padding-bottom: 38px;
              padding-left: 0px
    .h-top {padding: 0px 0px 2px 0px; margin-top: -2px;}
    .h-bot {
              padding-bottom: 25px;
              text-align: center;
              padding-right: 0px;
    .h-bot1 {
              padding-bottom: 20px;
              text-align: center;
    .h-bot2 {padding-bottom: 3px;}
    .h-bot3 {padding-bottom: 23px;}
    .pad-left {
              display: inline-block;
              margin-left: 4px;
    a {          color: #d52d00; outline: none; }
    a:hover{
              text-decoration: none;
              color: #B8D6D6;
              font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    /* Global Structure ============================================================= */
    .main {
              margin: 0 auto;
              width: 960px;
              /* Header */
              header{
                        height: 438px;
              /* Content */
              section#content {
              /* Footer */
              footer{
                        min-height: 268px;
    /* Left & Right alignment */
    .fleft { float: left;}
    .fright { float: right;}
    .clear { clear: both;}
    .col-1, .col-2, .col-3, .col-4, .col-5 { float: left;}
    .alignright { text-align: right;}
    .aligncenter { text-align: center;}
    .wrapper {
              width: 100%;
              overflow: hidden;
    .container {
              width: 100%;
    /*----- form defaults -----*/
    input, select, textarea {
              font-family: Arial, Helvetica, sans-serif;
              font-size: 1em;
              vertical-align: middle;
              font-weight: normal;
    /*----- other -----*/
    .img-indent { margin: 0 25px 0 0; float: left; }
    .extra-wrap { overflow: hidden; }
    .img {padding-top: 4px;}
    .img1 {padding-top: 2px;}
    /*=============================================================================== text =====*/
    h1 {
              padding: 0px 0 0px 326px;
              position: relative;
              float: left;
              h1 a {
                        display: block;
                        height: 120px;
                        width: 300px;
                        text-indent: -5000px;
                        background: url(../images/msi_logo_webcolors.gif) left top no-repeat;
    h2 {
              font-size: 24px;
              line-height: 1.2em;
              color: #fff;
              padding: 36px 0px 2px 0px;
              margin: 0px 0px 0px 0px;
              text-align: center;
    h3 {
              font-size: 18px;
              line-height: 1.2em;
              color: #fff;
              padding: 16px 0px 17px 0px;
    .color {color: #19a7f4;}
    /*======================================================================================== =========================== header =====*/
    .extra {background: url(../images/body-bg.gif) 0 0 repeat-x #222222;}
    .shadow {background: url(../images/extra-bg.jpg) top center no-repeat;}
    .header strong {
              float: left;
              padding: 9px 0 0 0;
              color: #333;
              text-transform: uppercase;
              text-decoration: none;
              font-size: 12px;
              line-height: 1.2em;
              display: inline-block;
    *+ html .header strong {
              padding: 7px 0 0 0;
    .login {
              float: right;
              padding: 4px 0 0 0;
              margin-right: -2px;
              width: 204px;
    *+ html .login {
              width: 201px;
              .login-link {
                        background: url(../images/login-bg.gif) left 0px no-repeat;
                        padding: 4px 0 0 22px;
                        margin: 1px 0 0;
                        color: #a0a0a0;
                        text-transform: uppercase;
                        text-decoration: none;
                        font-size: 12px;
                        line-height: 1.2em;
                        display: inline-block;
              *+ html .login-link {
                        padding: 2px 0 0 21px;
                        .login-link:hover {
              color: #333;
    .social {
              float: right;
              background: url(../images/login-span-bg.gif) 0 4px no-repeat;
              padding-left: 0px;
              overflow: hidden;
              width: 92px;
              margin-left: 7px;
              .social img {
                        float: right;
                        margin-left: 4px;
    /*=============================================================================== nav =====*/
    #menu {
              width: 100%;
              height: 68px; position:relative; z-index:99
              #menu > li {
                        float: left;
                        font-size: 15px;
                        line-height: 1.2em;
                        background: url(../images/nav-li-bg.png) 0 0 no-repeat;
                        padding-left: 2px; position:relative
                        #menu > li > a {
                                  display: block;
                                  width: 134px;
                                  background: url(../images/nav-a-bg.png) 0 0 repeat-x;
                                  text-align: center;
                                  text-transform: uppercase;
                                  text-decoration: none;
                                  color: white;
                                  padding: 28px 0 21px;
                        #menu > li:hover > a{ color:#1eaffa}
                                  #menu > li > .active {
                                            background: url(../images/nav-a-bg-hover.gif) 0 0 repeat-x;
                                            position: relative;
                                            margin-left: -2px;
                                            padding: 28px 0 21px 2px;
                                            color:#fff !important
                                  #menu > .first{ background:none;
                        padding-left:0}
              #menu > .first > a {
                        background: url(../images/nav-first-a-bg.gif) 0 0 no-repeat;
                        margin: 0;
                        width: 135px;
                        #menu > .first > .active {
                                  background: url(../images/nav-first-a-bg-hover.gif) 0 0 no-repeat;
                                  margin: 0 0px 0 0;
                                  padding: 25px 0 24px 0px;
              #menu > .last > a {
                        background: url(../images/nav-last-a-bg.gif) right 0 no-repeat;
                        margin: 0;
                        width: 143px;
                        #menu > .last  > .active {
                                  background: url(../images/nav-last-a-bg-hover.gif) right 0 no-repeat;
                                  margin: 0 0px 0 -1px;
                                  padding-left: 1px;
    .submenu_1{ position:absolute; top:73px; left:0; width:295px;}
    .menu_box{ padding:14px; background:#272727}
    .menu_box > li{ line-height:36px; background: url(../images/menu_line.gif) 0 bottom repeat-x; position:relative; margin-top:-2px; padding:3px 0; zoom:1}
    .menu_box > .end{ background: none}
    .menu_box > li > a{ display:block; padding-left:19px;border-radius: 18px; -moz-border-radius: 18px; -webkit-border-radius: 18px; font-size:13px; font-weight:700; color:#fff; text-transform:uppercase; text-decoration:none; position:relative; line-height:36px; height:36px; zoom:1;background: url(../images/spacer.gif) 0 0 repeat}
    .menu_box > li:hover > a{background: url(../images/submenu_bg.gif) 0 0 repeat-x #0280d8;}
    .menu_box > li:hover{ background:#272727}
    .submenu_2{ top:-13px; position:absolute; left:282px; width:181px; background:#272727}
    .submenu_2 > ul{ padding:14px 9px}
    .submenu_2 > ul >li{ line-height:40px; background: url(../images/menu_line.gif) 0 bottom repeat-x;}
    .submenu_2 > ul >li > a{ display:block; padding-left:22px;font-size:13px; font-weight:700; color:#fff; text-transform:uppercase; text-decoration:none; line-height:40px;}
    .submenu_2 > ul >li:hover > a{ color:#1eaffa}
    .submenu_2 > ul > .end{ background: none}
    #menu div{ display:none}
    /*=============================================================================== sliders =====*/
    #page1 .sliders {background: url(../images/sliders-bg.gif) 0 0 repeat-x #0e0e0e; overflow:none !important; height:398px; padding-bottom:2px; padding-top:10px}
    .sliders {
              background: url(../images/sliders-bg-1.gif) 0 0 repeat-x #0e0e0e;
              border-radius: 0 0 20px 20px;
              -moz-border-radius: 0 0 20px 20px;
              -webkit-border-radius: 0 0 20px 20px;
              box-shadow: 2px 1px 3px #101010;
              -moz-box-shadow: 2px 1px 3px #101010;
              -webkit-box-shadow: 2px 1px 3px #101010;
              position: relative; padding-top:10px;
    .slider{ overflow:none !important; z-index:2 !important; zoom:1}
              .sliders .pic { margin: 0 0 10px 10px; position:relative; z-index:2 !important; zoom:1}
    #page1          .sliders .pic { margin: 0 0 20px 10px;}
              .sliders .items{ display:none}
    .pagination{ position: relative; z-index:2; bottom:0px; left:376px; zoom:1}
    * + html .pagination{ bottom:3px;}
    .pagination li{ float:left; padding-right:6px;}
    .pagination li a{ display:block; width:25px; height:25px; background:url(../images/buttons.png) right 0 no-repeat; text-indent:-9999px;}
    .pagination li a:hover, .pagination .current a{ background-position:left}
    /*======================================================================================== =========================== content =====*/
    /*=============================================================================== indents =====*/
    .indent { padding: 0px 0px 0px 0px }
    .indent1 { padding: 0px 0px 0px 0px }
    .policy-indent {padding: 0 30px 34px 0;}
    .policy-indent a:hover {text-decoration: underline;}
    /*=============================================================================== col-indents =====*/
    .col-indent { padding-right: 0px; }
    .col-indent1 { padding-right: 37px; }
    .col-indent2 { padding-right: 29px; }
    .col-indent3 { padding-right: 44px; }
    .col-indent4 { padding-right: 36px; }
    /*=============================================================================== boxes =====*/
    .box {
              background: #000;
              border-radius: 15px;
              -moz-border-radius: 15px;
              -webkit-border-radius: 15px;
              box-shadow: 5px 5px 5px #191919;
              -moz-box-shadow: 5px 5px 5px #191919;
              -webkit-box-shadow: 5px 5px 5px #191919;
              position: relative;
              padding: 0px 0px 0px 32px;
              left: 2px;
              top: 1px;
    /*=============================================================================== line-hor =====*/
    /*=============================================================================== lists =====*/
    .list {
              padding: 18px 0 0;
              .list li {
              background: url(../images/list-bg.gif) 2px 6px no-repeat;
              padding-left: 14px;
                        .list li a {
              color: #19a7f4;
              font-weight: bold;
              .list .last {padding-bottom: 12px;}
    .list_1 {padding-bottom: 18px;}
              .list_1 li {
                        font-size: 12px;
                        line-height: 24px;
                        .list_1 li a {
                                  text-decoration: none;
                                  color: #828282;
                                  text-transform: uppercase;
                                  .list_1 li a:hover {color: #19a7f4;}
    /*=============================================================================== images =====*/
    .images img {margin-bottom: 1px;}
    /*=============================================================================== links =====*/
    .link {
              background: url(../images/link-bg.gif) 0 0 repeat-x #191818;
              display: inline-block;
              padding: 8px 13px 11px;
              text-decoration: none;
              border-radius: 9px;
              -moz-border-radius: 9px;
              -webkit-border-radius: 9px;
              position: relative;
              font-size: 14px;
              line-height: 1.2em;
              color: #fff;
              margin-top: 9px;
              .link:hover {
                        color: #19a7f4;
    .links a {
              display: block;
              width: 107px;
              height: 49px;
              text-decoration: none;
    .links .fleft {
              background: url(../images/links-fleft.gif) 0 0 no-repeat;
    .links .fleft:hover, .links .fright:hover{ background-position:bottom}
    .links .fright {
              background: url(../images/links-fright.gif) 0 0 no-repeat;
    .policy-indent a {text-decoration: none; color: #19a7f4;}
    /*=============================================================================== contact =====*/
    .contact {
              width: 195px;
              float: left;
              .contact span {
                        display: inline-block;
                        vertical-align: baseline;
                        width: 99px;
              .contact a {
                        font-weight: bold;
                        text-decoration: none;
                        color: #19a7f4;
                        .contact a:hover {text-decoration: underline;}
    /*======================================================================================== =========================== footer =====*/
    footer {position: relative; overflow: hidden;}
    footer .indent {padding: 31px 0 62px 31px;}
    footer .col {
              float: left;
              width: 162px;
              margin-right: 30px;
    footer img {
              border-radius: 12px;
              -moz-border-radius: 12px;
              -webkit-border-radius: 12px;
              box-shadow: 5px 5px 5px #1a1a1a;
              -moz-box-shadow: 5px 5px 5px #1a1a1a;
              -webkit-box-shadow: 5px 5px 5px #1a1a1a;
              position: relative;
    footer .divider1 {background:url(../images/divider_1-bg.gif) 574px 0px repeat-y;}
    .policy {
              position: absolute;
              bottom: 0;
              background: url(../images/policy-bg.gif) 0 0 repeat-x;
              height: 36px;
              width: 100%;
              .policy strong {
              padding: 14px 0 0 380px;
              color: #333;
              text-transform: uppercase;
              text-decoration: none;
              font-size: 12px;
              line-height: 1.2em;
              display: inline-block;
              text-align: left;
                        .policy strong a {margin-right: 60px; color: #9f9f9f; text-decoration: none;}
                                  .policy strong a:hover {
              color: #333;
    /*---------------------------------------------------------------------------------------- --------------------------- forms -----*/
    #ContactForm {
              padding-top: 21px;
              width: 215px;
              #ContactForm label {
                        min-height: 44px;
                        display: block;
                        position:relative;
                        background: url(../images/label-bg.gif) no-repeat 0 0;
              #ContactForm .error,#ContactForm .empty{ position:relative; font-size:10px; color:#19A7F4; background:none; padding:0; display:none}
              #ContactForm .link {
                        margin: 30px 0px 0px 0px;
                        padding: 8px 19px 11px;
              #ContactForm input {
                        width: 193px;
                        border: none;
                        padding: 7px 11px;
                        background: none;
                        color: #828282;
                        font-size: 14px;
                        line-height: 18px;
                        font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
              #ContactForm textarea {
                        width: 194px;
                        height: 433px;
                        background: none;
                        border: none;
                        padding: 0px 11px; 
                        color: #828282;
                        font-size: 14px;
                        line-height: 18px;
                        overflow: auto;
                        font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
              #ContactForm span {
                        width: 215px;
                        display: block;
                        background: url(../images/text-bg.gif) no-repeat 0 0;
                        border: none;
                        padding: 6px 0px;
    .success{ padding-bottom:15px; display:none}
    .success strong{color:#19A7F4;}
    /*==========================================*/
    /* Project specifics =========================================================== */
    /* Pour some CSS below ========================================================= */
    Index-3.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>Projects</title>
    <meta charset="utf-8">
    <link rel="stylesheet" href="css/reset.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/layout.css" type="text/css" media="screen">
    <script type="text/javascript" src="js/html5.js"></script>
    <script type="text/javascript" src="js/jquery-1.6.min.js" ></script>
    <script type="text/javascript" src="js/cufon-yui.js"></script> 
    <script type="text/javascript" src="js/cufon-replace.js"></script>
    <script src="js/MyriadPro-Bold.js" type="text/javascript"></script> 
    <script src="js/Myriad_Roman.js" type="text/javascript"></script> 
    <script type="text/javascript" src="js/imagepreloader.js"></script>
    <script type="text/javascript">
              preloadImages([
                        'images/nav-a-bg-hover.gif',
                        'images/nav-last-a-bg-hover.gif',
                        'images/nav-first-a-bg-hover.gif.jpg']);
    </script>   
    <script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
    <script type="text/javascript" src="js/tms-0.3.js"></script>
    <script type="text/javascript" src="js/tms_presets.js"></script>
    <script type="text/javascript" src="js/script.js"></script>
      <script src="js/jcarousellite.js" type="text/javascript"></script>
    <script type="text/javascript" src="js/superfish.js"></script>
      <!--[if lt IE 7]>
                <script type="text/javascript" src="http://info.template-help.com/files/ie6_warning/ie6_script_other.js"></script>
      <![endif]-->
    <!--[if lt IE 9]>
              <style type="text/css">
                        .menu_box > li > a, .sliders, .box, .link, footer img{ behavior: url(js/PIE.htc); }
              </style>
      <![endif]-->
    </head>
    <body id="page4">
              <div class="extra"><div class="shadow">
                        <div class="main">
                                  <!-- header -->
                                  <header>
                                            <div class="container header">
                                                      <strong>We provide quality manufacturing!</strong>
                                                      <div class="login">
                                                                <div class="social">
                                                                          <a href="#"><img src="images/social-img_3.gif" alt="" /></a><a href="#"><img src="images/social-img_2.gif" alt="" /></a><a href="#"><img src="images/social-img_1.gif" alt="" /></a>
                                                                </div>
                                                                <a href="#" class="login-link">Client Login</a>
                                                      </div>
                                                      <div class="clear"></div>
                                            </div>
                                            <div class="wrapper"><h1><a href="index.html">Highway Road Construction and repair</a></h1></div>
                                            <nav>
                                                      <ul id="menu">
                                                                <li class="first"><a href="index.html">Home</a></li>
                                                                <li><a href="index-1.html">powder coating</a>
                                                                          <!--<div class="submenu_1">
                                                                                    <ul class="menu_box">
                                                                                              <li><a href="index-1.html">Earthwork Contractor</a></li>
                                                                                              <li><a href="index-1.html">Utility Contractor</a></li>
                                                                                              <li><a href="index-1.html">Demolition Contractor</a>
                                                                                                        <div class="submenu_2">
                                                                                                                  <ul>
                                                                                                                            <li><a href="index-1.html">Demolish</a></li>
                                                                                                                            <li class="end"><a href="index-1.html">recycle </a></li>
                                                                                                                  </ul>
                                                                                                        </div>
                                                                                              </li>
                                                                                              <li><a href="index-1.html">Road Construction</a></li>
                                                                                              <li class="end"><a href="index-1.html">Construction Equipment Rental</a></li>
                                                                                    </ul>
                                                                          </div>
                                                                </li>-->
                                                <li><a href="index-2.html">fabrication</a></li>
                                                                <li><a href="index-3.html" class="active">projects</a></li>
                                                                <li><a href="index-4.html">design</a></li>
                                                                <li><a href="index-5.html">wire forming</a></li>
                                                                <li class="last"><a href="index-6.html">contact us</a></li>
                                                      </ul>
                                            </nav>
                                            <div class="sliders">
                                                      <ul class="items">
                                                                <li><img src="images/red_bike.gif" alt=""></li>
                                                                <li><img src="images/well.gif" alt=""></li>
                                                                <li><img src="images/belle_inn.gif" alt=""></li>
                                                                <li><img src="images/belle_motive.gif" alt=""></li>
                                                                <li><img src="images/basin_cab.gif" alt=""></li>
                                                                <li><img src="images/basin_bed.gif" alt=""></li>
                                                      </ul>
                                            </div>
                                  </header>
                                  <!-- content -->
                                  <section id="content">
                                            <div class="box">
                                                      <div class="wrapper divider">
                                                                <article class="col-1 col-indent bot">
                                                                          <div align="center">
                                                                  <h2>Best Projects</h2>
                                                                          <p class="bot"><strong class="color">Maecenas tristique orci ac sem. Duis ultricies pharetra donec in accumsan malesuada orci orem ipsum dolor sit amet.</strong></p></div>
                                                                          <div class="images">
                                                                                    <ul>
                                                                                              <li><a href="#"><img src="images/yellow.gif" alt="" width="215" height="124"/></a></li>
                                                                                              <li><a href="#"><img src="images/basin_door.gif" alt="" width="215" height="124"/></a></li>
                                                                                              <li><a href="#"><img src="images/ford_valve_covers.gif" alt="" width="215" height="124"/></a></li>
                                                                                              <li><a href="#"><img src="images/car_frame.gif" alt="" width="215" height="124"/></a></li>
                                    </ul>
                                                        </div>
                                                                                    <div class="wrapper links">
                                                                                              <a href="#" class="fleft" id="prev"> </a>
                                                                                              <a href="#" class="fright" id="next"> </a>
                                                                                    </div>
                                                                </article>
                                                                <article class="col-2 bot1">
                                                                          <div align="center">
                                                                  <h2>Past Projects</h2>
                                                                          <p>For 25 years, Manufacturing Systems Inc. has had the opportunity to send a wide variety of products out the door and are always excited to be involved in new, innovative projects.<br>
                                <br>
                                Our signature product line, <a href="http://www.trucatchtraps.com" title="Tru Catch Traps" target="_blank">Tru-Catch Traps&#8482;</a>, has allowed us to serve the animal welfare community nation-wide and gain valuable knowledge in every aspect of product development, design, promotion,a nd sales. Our traps are constructed, welded, and powder coated in-house. Give your customers what we give ours...a quality, American-made product. </p>
                                                                          </div>
                          <div class="wrapper top">
                                                                                    <div class="col-1 col-indent3">
                                                                                              <ul class="list">
                                                                                                        <li><a href="#">Vestibulum iaculis lacinia est roin</a></li>
                                                                                                        <li><a href="#">Fusce euismod consequat ante ing elitom</a></li>
                                                                                                        <li><a href="#">Lorem ipsum dolor sit amet consecte</a></li>
                                                                                                        <li><a href="#">Aliquam congue fermentum nisl</a></li>
                                                                                                        <li><a href="#">Mauris accumsan nulla vel diam ulla venen</a></li>
                                                                                                        <li><a href="#">Sed in lacus ut enim adipiscing aliquet</a></li>
                                                                                                        <li><a href="#">In pede mi aliquet sit amet euism</a></li>
                                                                                                        <li><a href="#">Praesent justo dolor lobortis quis lobortis</a></li>
                                                                                              </ul>
                                                                                    </div>
                                                                                    <div class="col-1">
                                                                                              <ul class="list">
                                                                                                        <li><a href="#">Sed in lacus ut enim adipiscing aliquet</a></li>
                                                                                                        <li><a href="#">In pede mi aliquet sit amet euism</a></li>
                                                                                                        <li><a href="#">Praesent justo dolor lobortis quis lobortis</a></li>
                                                                                                        <li><a href="#">Vestibulum sed ante onec sagittis</a></li>
                                                                                                        <li><a href="#">Fusce euismod consequat ante ing elitom</a></li>
                                                                                                        <li><a href="#">Lorem ipsum dolor sit amet consecte</a></li>
                                                                                                        <li><a href="#">Aliquam congue fermentum nisl</a></li>
                                                                                                        <li><a href="#">Mauris accumsan nulla vel diam ulla venen</a></li>
                                                                                              </ul>
                                                                                    </div>
                                                                          </div>
                                                                          <!--<p class="top3"><a href="#" class="link">More Info</a></p>-->
                                                                  <div align="center">
                                                                  <h2>Current Projects</h2>
                                                                          <p><strong class="color">Project1. </strong> Fusce euismod consequat ante. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque sed dolor. Aliquam congue fermentum nisl. Mauris accumsan nulla vel diam. Sed in lacus ut enim adipiscing aliquet. Nulla venenatis. In pede mi, aliquet sit amet, euismod in, auctor ut in, ligula. Aliquam dapibus tincidunt metus justo dolor.</p>
                                                                          <p><strong class="color">Project2. </strong> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque sed dolor. Aliquam congue fermentum nisl. Mauris accumsan nulla vel diam. Sed in lacus ut enim adipiscing aliquet. Nulla venenatis. In pede mi, aliquet sit amet, euismod in, auctor ut in, ligula. Aliquam dapibus tincidunt metus. Praesent justo dolor, lobortis quis, lobortis dignissim, pulvinar ac, lorem. Vestibulum sed ante. Donec sagittis euismod purus euismod.</p>
                                                                          <!--<p><a href="#" class="link">More Info</a></p>-->
                                </div>
                                                                </article>
                                                      </div>
                                            </div>
                                  </section>
                        </div>
                        <!-- footer -->
                        <footer>
                                  <div class="main">
                                            <div class="indent">
                                                      <div class="container divider1">
                                                                <div class="col">
                                                                          <div align="center">
                                                                  <h3>Subnavigation</h3>
                                                                          </div>
                                                          <ul class="list_1">
                                                                                    <li><a href="#">Clients Support</a></li>
                                                                                    <li><a href="#">Standards</a></li>
                                                                                    <li><a href="#">new technologies</a></li>
                                                                                    <li><a href="#">faqs</a></li>
                                                                          </ul>
                                                                </div>
                                                                <div class="col">
                                                                          <div align="center">
                                                                  <h3>Archive</h3>
                                                                          </div>
                          <ul class="list_1">
                                                                                    <li><a href="#">2012</a></li>
                                                                                    <li><a href="#">2011</a></li>
                                                                                    <li><a href="#">2010</a></li>
                                                                                    <li><a href="#">2009</a></li>
                                                                          </ul>
                                                                </div>
                                                                <div class="col col-indent2">
                                                                          <div align="center">
                                                                  <h3>Useful Info</h3>
                                                                          </div>
                                <ul class="list_1">
                                                                                    <li><a href="#">news</a></li>
                                                                                    <li><a href="#">career</a></li>
                                                                                    <li><a href="#">about us</a></li>
                                                                                    <li><a href="#">hours: mon-fri 8-5 MST</a></li>
                                                                          </ul>
                                                                </div>
                                                                <div class="fleft">
                                                                          <img src="images/footer-img.jpg" alt="" /

  • Scrolling main content in an AP Div disappearing behind other AP Divs...?

    Newbie here, using CS3. No CSS power user (yet!)--general concepts, yes, but not much practice. Meanwhile two recent CS3 classes, several books, and a concerted search through online forums have failed to point me toward a fix for this prob. Any help greatly appreciated.
    Prob statement: In design view the core content of my pages disappears behind my footer and a secondary box, both AP Divs, so that I cannot see or edit anything beyond the bottom edge of the core-content AP Div. Overflow for that AP Div is set to scroll. The "obscured" content shows up only as an outlined shape extending past the footer etc. (and I can see some of the obscured text "through" the footer). Down arrow doesn't get me there: it just scoots down the outlined-but-obscured section. Doubleclicking highlights everything that's obscured so that I can see the relative shapes of the paragraphs, but doesn't expose the content. This seemed to start the first time I set the content div to scroll any overflow. I've changed it back/forth since; no joy.
    Rendered in IE or Firefox, all the pages with all their varying content lengths look fine. Scrollbar works great. It's just that in order to edit or compose further, I have to copy everything into Notepad or something, work there, and then paste it back into DW. Definitely non-optimum, though: can't format or add hyperlinks to the content.
    I'm using AP Divs, with scroll on in the "content" AP Div, because I couldn't figure out how to create a template where the footer would slide down the page in response to varying amounts of content. Started out with a table to handle all this, but an instructor recommended AP Divs so I went that way. I'd like to resolve this, rather than just go back to using tables while leaving this AP Div oddness a mystery.
    The footer is full of a Spry tabbed panels giving my legal/green/design statements and other small bits of info. The secondary box is an AP Div called "quotations" and is for friendly little bits of cute/clever nonsense at the bottom of each page.
    Tried a number of different settings so far and by now I've probably truly messed things up. Can anyone suggest a fix?
    The code for the template file seems long, so my apologies. However, the content type isn't allowed for attachments so I've pasted it in below.
    Much appreciation!
    =================================
    <!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>
    <style type="text/css">
    <!--
    body {
        background-color: #003300;
    #LeftSidebar {
        position:absolute;
        width:80px;
        height:697px;
        z-index:1;
        background-image: url(../Images/BG.jpg);
        top: 20px;
    #Banner {
        position:absolute;
        width:360px;
        height:187px;
        z-index:2;
        left: 100px;
        top: 20px;
        background-color: #6384EF;
    #BannerPhone {
        position:absolute;
        width:265px;
        height:187px;
        z-index:3;
        left: 470px;
        top: 20px;
        font-family: Georgia, "Times New Roman", Times, serif;
        font-size: x-large;
        font-variant: normal;
        color: #E4D9A8;
    #NavBar {
        position:absolute;
        width:636px;
        height:35px;
        z-index:4;
        left: 100px;
        top: 219px;
        padding-top: 3px;
        padding-right: 0px;
        padding-bottom: 0px;
        padding-left: 5px;
        background-color: #E4D9A8;
        border-top-color: #E4D9A8;
        border-right-color: #E4D9A8;
        border-bottom-color: #E4D9A8;
        border-left-color: #E4D9A8;
    #Heading {
        position:absolute;
        left:100px;
        top:254px;
        width:636px;
        height:42px;
        z-index:8;
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: medium;
        font-weight: bold;
        color: #003300;
        background-color: #E4D9A8;
        text-indent: 5px;
        padding-top: 5px;
        padding-right: 0px;
        padding-bottom: 0px;
        padding-left: 5px;
        border-top-color: #E4D9A8;
        border-right-color: #E4D9A8;
        border-bottom-color: #E4D9A8;
        border-left-color: #E4D9A8;
        vertical-align: bottom;
    #Content {
        position:absolute;
        width:636px;
        height:315px;
        z-index:9;
        left: 100px;
        top: 296px;
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: small;
        color: #003300;
        background-color: #E4D9A8;
        overflow: scroll;
        padding-top: 0px;
        padding-right: 0px;
        padding-bottom: 0px;
        padding-left: 5px;
    #Footer {
        position:absolute;
        width:560px;
        height:50px;
        z-index:-1;
        left: 133px;
        top: 670px;
        background-color: #E4D9A8;
    #Quotation {
        position:absolute;
        width:636px;
        height:40px;
        z-index:0;
        left: 101px;
        top: 621px;
        font-family: Georgia, "Times New Roman", Times, serif;
        font-size: x-small;
        font-style: italic;
        color: #E4D9A8;
        text-indent: 5px;
        padding-top: 0px;
        padding-right: 0px;
        padding-bottom: 0px;
        padding-left: 5px;
        background-color: #003300;
    -->
    </style>
    <script src="../SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
    <link href="../SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
    <!--
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    function MM_nbGroup(event, grpName) { //v6.0
      var i,img,nbArr,args=MM_nbGroup.arguments;
      if (event == "init" && args.length > 2) {
        if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
          img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
          if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
          nbArr[nbArr.length] = img;
          for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
            if (!img.MM_up) img.MM_up = img.src;
            img.src = img.MM_dn = args[i+1];
            nbArr[nbArr.length] = img;
      } else if (event == "over") {
        document.MM_nbOver = nbArr = new Array();
        for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
          if (!img.MM_up) img.MM_up = img.src;
          img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
          nbArr[nbArr.length] = img;
      } else if (event == "out" ) {
        for (i=0; i < document.MM_nbOver.length; i++) {
          img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
      } else if (event == "down") {
        nbArr = document[grpName];
        if (nbArr)
          for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
        document[grpName] = nbArr = new Array();
        for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
          if (!img.MM_up) img.MM_up = img.src;
          img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
          nbArr[nbArr.length] = img;
    //-->
    </script>
    <!-- TemplateParam name="Content2" type="boolean" value="true" -->
    <style type="text/css">
    <!--
    a:link {
        color: #003300;
    a:visited {
        color: #336666;
    a:hover {
        color: #009933;
    a:active {
        color: #990033;
    -->
    </style>
    <meta name="Description" content="Skyway Consulting: taking your information to a higher level! We do information design: planning, writing, editing, and indexing your user documentation. We also design websites, website graphics, print layouts, and logos. Basically, we want to be your source for the way your organization interfaces with the world. " />
    </head>
    <body onload="MM_preloadImages('../Images/Button_WebDesignOver.gif','../Images/Button_UserDocsO ver.gif','../Images/Button_LogoDesignOver.gif','../Images/Button_PrintLayoutOver.gif','../ Images/Button_ITSvcsOver.gif','../Images/Button_Home.gif','../Images/Button_HomeOver.gif', '../Images/Button_WebDesign.gif','../Images/Button_UserDocs.gif','../Images/Button_ITSvcs. gif','../Images/Button_LogoDesign.gif','../Images/Button_AboutUs.gif','../Images/Button_Co ntact.gif','../Images/Button_AboutUsOver.gif')">
    <div id="LeftSidebar"></div>
    <div id="Banner">
      <div align="center"><img src="../Images/Banner.gif" alt="Skyway Consulting" width="335" height="184" /></div>
    </div>
    <div id="BannerPhone">
      <p align="center">Taking your information to a higher level.</p>
      <p align="center">530.965.2624</p>
      <p align="center"><img src="../Images/email_Info.gif" alt="Address" width="203" height="23" /></p>
    </div>
    <div id="NavBar">
      <table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td><a href="../index.html" target="_top" onclick="MM_nbGroup('down','group1','Home','../Images/Button_HomeOver.gif',1)" onmouseover="MM_nbGroup('over','Home','../Images/Button_HomeOver.gif','',1)" onmouseout="MM_nbGroup('out')"><img src="../Images/Button_Home.gif" alt="Skyway Consulting Homepage" name="Home" border="0" id="Home" onload="" /></a></td>
          <td><a href="../webdesign.html" target="_top" onclick="MM_nbGroup('down','group1','WebsiteDesign','../Images/Button_WebDesignOver.gif', 1)" onmouseover="MM_nbGroup('over','WebsiteDesign','../Images/Button_WebDesignOver.gif','',1) " onmouseout="MM_nbGroup('out')"><img src="../Images/Button_WebDesign.gif" alt="Website Design Services" name="WebsiteDesign" width="106" height="30" border="0" id="WebsiteDesign" onload="" /></a></td>
          <td><a href="javascript:;" target="_top" onclick="MM_nbGroup('down','group1','UserDoc','../Images/Button_UserDocsOver.gif',1)" onmouseover="MM_nbGroup('over','UserDoc','../Images/Button_UserDocsOver.gif','',1)" onmouseout="MM_nbGroup('out')"><img src="../Images/Button_UserDocs.gif" alt="User Documentation Services" name="UserDoc" width="106" height="30" border="0" id="UserDoc" onload="" /></a></td>
          <td><a href="../it_svcs.html" target="_top" onclick="MM_nbGroup('down','group1','ITServices','../Images/Button_ITSvcsOver.gif',1)" onmouseover="MM_nbGroup('over','ITServices','../Images/Button_ITSvcsOver.gif','',1)" onmouseout="MM_nbGroup('out')"><img src="../Images/Button_ITSvcs.gif" alt="IT Services" name="ITServices" width="106" height="30" border="0" id="ITServices" onload="" /></a></td>
          <td><a href="javascript:;" target="_top" onclick="MM_nbGroup('down','group1','LogoDesign','../Images/Button_LogoDesignOver.gif',1) " onmouseover="MM_nbGroup('over','LogoDesign','../Images/Button_LogoDesignOver.gif','',1)" onmouseout="MM_nbGroup('out')"><img src="../Images/Button_LogoDesign.gif" alt="Logo Design Services" name="LogoDesign" width="106" height="30" border="0" id="LogoDesign" onload="" /></a></td>
          <td><a href="../about.html" target="_top" onclick="MM_nbGroup('down','group1','AboutUs','../Images/Button_AboutUsOver.gif',1)" onmouseover="MM_nbGroup('over','AboutUs','../Images/Button_AboutUsOver.gif','',1)" onmouseout="MM_nbGroup('out')"><img src="../Images/Button_AboutUs.gif" alt="AboutUs" name="AboutUs" border="0" id="Contact" onload="" /></a></td>
        </tr>
      </table>
    </div>
    <div id="Content"><!-- TemplateBeginEditable name="Content" -->
      <p>Content</p>
      <!-- TemplateEndEditable --></div>
    <div id="Footer">
      <div id="TabbedPanels1" class="TabbedPanels">
        <ul class="TabbedPanelsTabGroup">
          <li class="TabbedPanelsTab" tabindex="0">Info</li>
          <li class="TabbedPanelsTab" tabindex="0">Legal</li>
          <li class="TabbedPanelsTab" tabindex="0">Privacy Policy</li>
          <li class="TabbedPanelsTab" tabindex="0">Green Statement</li>
          <li class="TabbedPanelsTab" tabindex="0">Design Credit</li>
          <li class="TabbedPanelsTab" tabindex="0">Webmaster</li>
        </ul>
        <div class="TabbedPanelsContentGroup">
          <div class="TabbedPanelsContent">Click for information on these topics.</div>
          <div class="TabbedPanelsContent">(c) 2009 Skyway Consulting. All content, including photographic content, is owned by Skyway Consulting. You may not copy, reproduce, modify, or publicly display, perform, distribute, or otherwise use the content provided on this site in any way for any public or commercial purpose. Skyway Consulting will not work on websites involving objectionable material, including but not limited to pornography, hatred, intolerance, or animal abuse. Our management staff's decision on what constitutes &quot;objectionable material&quot; is final. </div>
          <div class="TabbedPanelsContent">We recognize that your privacy is important. This privacy policy applies to all of our services and website pages. We do not set cookies. We do not sell or otherwise seek to profit from the contact information you provide, although we may preserve some information for use by Skyway Consulting. If you have questions about this privacy policy, please [link]contact us.</div>
          <div class="TabbedPanelsContent">Skyway Consulting is an American home-based business that makes every effort to conserve, reduce, reuse, and recycle.</div>
          <div class="TabbedPanelsContent">
            <p>Page design by Skyway Consulting. (Of course!)</p>
            <p>Tiling forest graphic at left by the talented Silvia Hartmann, <a href="http://silviahartmann.com/">http://silviahartmann.com/</a>. (Thank you, Silvia!)</p>
          </div>
          <div class="TabbedPanelsContent">Page problems? Contact <img src="../Images/email_Webmaster.gif" alt="Webmaster e-dress" width="177" height="18" align="absmiddle" /></div>
        </div>
      </div>
    </div>
    <div id="Quotation"><!-- TemplateBeginEditable name="Quotation" -->Quotation<!-- TemplateEndEditable --></div>
    <div id="Heading"><!-- TemplateBeginEditable name="Heading" -->Heading<!-- TemplateEndEditable --></div>
    <div align="center"></div>
    <script type="text/javascript">
    <!--
    var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
    //-->
    </script>
    </body>
    </html>

    I hadn't looked at the code at all. I was relying on the Dreamweaver GUI to correctly guide me to a desired outcome.
    I think that this is not a desirable approach to Dreamweaver, which will write perfect HTML if you let it, but it's too easy to click buttons and apply wizards without regard for the markup consequences, thereby producing a veritable pig's ear of a page.  If you are going to use DW professionally, you will have to become comfortable with code.  That doesn't mean you will have to spend 100% of your time in Code view, but you will definitely need to watch the code as it is formulated.
    I'm not starting from an engineering background.
    Neither did I.  But I did start with a sincere desire to become proficient, and to learn the technology.
    Murray, I get the idea of redoing my template without AP Divs, and will get into that. I don't know what "image swaps and links" mean, though. Would you mind teaching this newbie on this point?
    Not at all.  When you select the "NavBar" feature, you are placing elements and code on your page that were designed in the dark ages of HTML (frames).  Some of the features in the NavBar will only work in a framed page (the down image and the over while down).  The code is antique, invalid, and just wrong to be included.  My suggestion was to forego this and just place your button images on the page (in whatever container you need to use), and apply links to them so that they link to the desired pages.  Then apply swap image behaviors to them to create your rollover effects, one for each button.  The result will be modern code, that has none of the legacy stuff of the navbar, and that will work fine for you.  As you become more familiar with CSS you can investigate even better ways to do such menus (if you want a preview of this, Google "CSS Sprites).  The latter method is usually the only way I do menus anymore.  And even then, I use both text and graphics for accessability and SEO purposes.
    I will say that I like your attitude.  A determination to learn and improve is a winning approach.

  • Trouble with Spry Menu Bar Not Opening on Hover

    I have two Spry Menu Bars on this one page. They were both working fine. Now the menu bar on the top right is not opening on rollover. I have uploaded the Spry .JS and .CSSfiles to the server.Could it be that I added 2 to the names of the CSS styles, but not all of them? I just tested them all with 2 after the style name, and it didn't fix it.
    I also noticed that the ability to edit these two navigation bars using the Property Inspector went away. I can't seem to click on them to edit. Now I edit them through the code only.
    Rebuild it on another page, and paste in the code?
    Suggestions?
    ALso, getting an error message on line 2 of HTML below, which I don't remember editing.
    I will paste the template page HTML, then the CSS, then the Javascript Spry file for Menu Bar Horizontal. I did not edit the JS file at all.
    Link to the uploaded files: http://www.sproulcreative.com/filetest/panin_website/
    Thanks for any help you can offer.
    D
    HTML for template 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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <!-- TemplateBeginEditable name="doctitle" -->
    <title>Press Reviews of Paninos Italian Restaurant Food in three Colorado Locations</title>
    <!-- TemplateEndEditable -->
    <link href="../styles_paninositalianrestaurant.css" rel="stylesheet" type="text/css" />
    <script src="../SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryMenuBar_topnav.js" type="text/javascript"></script>
    <link href="../SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
    <link href="../SpryAssets/SpryMenuBarHorizontal_topnav.css" rel="stylesheet" type="text/css" />
    <!-- TemplateBeginEditable name="head" --><!-- TemplateEndEditable --><!-- TemplateParam name="LinksSidebar" type="boolean" value="true" -->
    </head>
    <body>
    <div id="wrapper">
    <a href="#skiptomaincontent">
         <img src="../images/spacer.gif" alt="Skip to main page content" name="spacer" width="1"
    height="1" class="invisible" id="spacer">   </a><!--ANCHOR FOR SCREEN READERS-->
    <!--START TOP NAV DIV-->
    <div id="topnav">
    <!--START TWITTER/FACEBOOK MENU BAR -->
    <script type="text/javascript">
    <!--
    var MenuBar2 = new Spry.Widget.MenuBar("twittermenu", {imgDown:"../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
    //-->
    </script>
    <ul id="twittermenu" class="MenuBarHorizontal2">
          <li><a href="../paninos_local_italian_restaurant_fort_collins_colorado_springs_minnesota.html">H ome</a></li>
          <li><a href="../reviews_italian_restaurant_food.html">Reviews</a></li>
          <li><a href="../history_of_paninos_local_italian_restaurant_coloradosprings_fortcollins_minnesot a.html">History</a></li>
          <li><a class="MenuBarItemSubmenu2" href="#">Twitter</a>
                      <ul>
                            <li><a href="http://twitter.com/Paninosfc">Follow Fort Collins, CO, Paninos</a></li>
                            <li><a href="http://twitter.com/paninosmn">Follow Minnesota Paninos</a></li>
                      </ul>
          </li>
          <li><a href="#" class="MenuBarItemSubmenu2">Facebook</a>
                <ul>
                      <li><a href="http://www.facebook.com/search/?q=Paninos&init=quick#/pages/North-Oaks-MN/Paninos/13234142 7180?v=wall&ref=search">Minnesota Twin Cities Four</a></li>
                </ul>
                </li>
    </ul>
    <!--END TWITTER/FACEBOOK MENU BAR-->
    </div>
    <!--ENDS TOP NAV DIV-->
    <div id="pagebg">
    <div id="centralpageborder"><!--FOR BORDER TRIM & BG color-->
    <!--START OF HEADERBOX-->
    <div id="headerbox">
          <div align="left">
                <img src="../images/web_logo_paninos_final.png" alt="Paninos Italian Restaurant Logo (black text with a tomato for the letter O), Your family's Italian restaurant for over 35 years, locally owned and operated." width="215" height="118" class="paddingbottom" />
    <!--START OF MAIN FOUR NAVIGATION -->
    <ul id="MainFourNav" class="MenuBarHorizontal">
          <li><a href="#" class="MenuBarItemSubmenu"><img src="../images/img_mainnav_locations_contact.png" alt="Paninos Italian Restaurant Locations and Contact Information: Colorado Springs, Fort Collins, Minnesota" name="locationscontactbutton" width="167" height="24" border="0" id="locationscontactbutton" /></a>                 <ul>
                         <li><a href="../contact_info_italian_restaurant_fort_collins_colorado_paninos.html">Fort Collins, Colorado, by CSU</a></li>
                         <li><a href="../contact_info_italian_restaurant_colorado_springs_downtown_colorado_paninos.html" >Colorado Springs Downtown: Tejon St. by Colorado College</a></li>
    <li><a href="../contact_info_italian_restaurant_colorado_springs_8th_street_colorado_paninos.htm l">Colorado Springs: South Eighth St.</a></li>
                      <li><a href="http://paninos.com/minnesota/">Minnesota website</a></li>
                      </ul></li>
          <li><a href="#" class="MenuBarItemSubmenu"><img src="../images/img_main4nav_download_menus.png" alt="Download Italian Restaurant Menus in PDF format for restaurants in Fort Collins, Colorado; Colorado Springs, Colorado; and Minnesota" name="menudownloadbutton" width="142" height="24" border="0" id="menudownloadbutton" /></a>
                <ul>
                      <li><a href="#"><em>Please pick your favorite Paninos:</em></a></li>
                      <li><a href="../online_menus_local_italian_food/Paninos_Menu_ColoradoSprings_Downtown.pdf">Color ado Springs Downtown: Tejon St. by Colorado College</a></li>
    <li><a href="../online_menus_local_italian_food/Paninos_Menu_ColoradoSprings_Eighth_Street.pdf"> Colorado Springs: South Eighth St.</a></li>
                      <li><a href="../online_menus_local_italian_food/Paninos_Menu_Fort_Collins_Colorado.pdf">Fort Collins, Colorado, by CSU</a></li>
                      <li><a href="http://paninos.com/minnesota/">Minnesota (go to website)</a></li>
                </ul>
          </li>
          <li><a href="../photo_gallery_pasta_dishes_pizza_italian_food.html"><img src="../images/img_main4nav_photo_gallery.png" alt="Photo Gallery of Local Italian Food including pizza and pasta" name="photogallery" width="56" height="24" border="0" id="photogallery" /></a> </li>
          <li><a href="../pizza_coupons_and_special_deals_italian_food.html"><img src="../images/img_main4nav_specials.png" alt="Pizza Coupons and Specials" name="pizzacouponsandspecials" width="71" height="24" border="0" id="pizzacouponsandspecials" /></a> </li>
    </ul>
    <script type="text/javascript">
    <!--
    var MenuBar1 = new Spry.Widget.MenuBar("MainFourNav", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
    //-->
    </script>           
                <!-- TemplateBeginEditable name="HeaderPhotos" -->
                <p class="headerphotos"><img src="../images/imgheader_lasagna_beef_hot_cheesey_coloradosprings_fortcollins_italian_res taurant.png" width="263" height="133" /><img src="../images/imgheader_spinach_salad_with_chicken.png" width="263" height="133" /><img src="../images/imgheader_big-t-pizza2.png" width="263" height="133" /></p>
                <!-- TemplateEndEditable --></div>
    </div><!--ENDS HEADERBOX DIV-->
    <div id="bodybox"><!--BOX AROUND MAIN PAGE TEXT, FOR WHOLE PAGE BELOW HEADER AREA-->
    <div id="pagetitle"><!-- TemplateBeginEditable name="MainPageHeader" --><img src="../images/img_title_press_reviews_italian_restaurant.png" width="307" height="38" /><!-- TemplateEndEditable --></div><!--ENDS PAGE TITLE-->
    <div id="innerbdybox"><!--WRAPS ALL MAIN CONTENT BELOW BODYBOX TITLE, all 3 columns -->
    <div id="content"><!--WRAPS MAINTEXT AND PHOTO SIDEBAR COLUMNS-->
    <div id="maintext"><!--MAINTEXT OR BODY CONTENT OF P-->
    <!-- TemplateBeginEditable name="BodyTextSection" -->
    <a name="skiptomaincontent" id="skiptomaincontent"></a><!--ANCHOR FOR SCREENREADERS-->
    <h1>A Tradition Food And Sports: <br />
                            CC &amp; Panino’s Love of Hockey Runs From Colorado to Minnesota</h1>
          <h4>Byline: By Jim Bainbridge, The Gazette</h4>
          <p>No Colorado Springs business has had a deeper bond with the Colorado College hockey program during the past three decades than Panino’s Restaurant, a connection seen on its walls, in its clientele and in its bloodlines.<br />
                Panino’s has been tied to the school’s hockey program since the restaurant was bought in 1974 by former CC All-America hockey player Tony Frasca. It’s still the place to be on game day a generation later with his son Mike running things. <a href="http://daily.gazette.com/Repository/ml.asp?Ref=VGhlR2F6ZXR0ZS8yMDA1LzAzLzI5I0FyMDMzMDI=&Mo de=HTML&Locale=english-skin-custom"><span class="smalltext">Click here to view entire article.</span></a><br />
    <span class="smalltext">(Reprinted with permission of The Gazette)</span></p>
          <!-- TemplateEndEditable --> </div>
    <!--ENDS MAINTEXT DIV-->
          <div id="photosidebar">
                <!--STARTS PHOTO SIDEBAR DIV-->
                <!-- TemplateBeginEditable name="PhotoSidebar" --><img src="../images/img_waiter1_pizza_lasagna.png" alt="Happy waiter serving Pizza and Lasagna" width="190" height="158" /> <br />
                <img src="../images/img_panino_italian_grinder_sandwich.png" alt="Grinder Hot Italian Sandwich called a Panino" width="190" height="158" /><!-- TemplateEndEditable --></div>
          <!--ENDS PHOTOSIDEBAR DIV-->
    </div><!--ENDS #CONTENT DIV THAT ENCLOSES 2 COLUMNS- MAINTEXT AND PHOTOSIDEBAR-->
          <!-- TemplateBeginIf cond="_document['LinksSidebar']" --><!-- TemplateBeginEditable name="EditRegion3" -->
    <div id="linkssidebar"><!--START LEFT LINKSSIDEBAR DIV--> 
            <p>The Gazette<br />
                The Coloradoan<br />
                The North Forty News<br />
                Colorado Springs Times</p>
    </div><!--ENDS LINKSSIDEBAR DIV-->
    <!-- TemplateEndEditable --><!-- TemplateEndIf -->
    </div><!--ENDS INNERBODYBOX DIV THAT WRAPS ALL 3 COLUMNS BELOW THE HEADER -->
    <div id="footer"> </div><!--CLEARS CONTENT BEFORE LOWER CONTENT BORDER-->
    <br />
    <br />
    </div> <!--****ENDS BODYBOX DIV THAT ENCLOSES PAGE HEADER BELOW "HEADER" AREA,INNERBODYBOX (FOR ALL 3 COLUMNS OF CONTENT), and FOOTER DIV (TO CLEAR CONTENT) . MOVING THIS AFER THE LINKKSIDEBAR SEEMED TO MAKE IT ALGIN CORRECTLY. PUTTNG AFTER THE PHOTOSIDEBAR MADE THE MAINTEXT HAVE SCROLL BAR-->
    </div><!--ENDS CENTRALPAGEBORDER DIV-->
    </div><!--ENDS PAGEBG DIV-->
    </div><!--ENDS WRAPPER TO MAKE PAGE LEFT JUSTIFY -->
    </body>
    </html>
    CSS for Spry Menu Bar:
    @charset "UTF-8";
    /* SpryMenuBarHorizontal.css - Revision: Spry Preview Release 1.4 */
    /* 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.MenuBarHorizontal2
        list-style-type: none;
        font-size: 100%;
        cursor: default;
        width: auto;
        /*margin-top: -10px; */
        margin-right: 0;
        margin-bottom: 0;
        margin-left: 0px;
        padding-top: 0;
        padding-bottom: 0;
    /* 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.MenuBarHorizontal2 li
        list-style-type: none;
        font-size: 95%;
        position: relative;
        text-align: left;
        cursor: pointer;
        float: left;
        font-family: Arial, Helvetica, sans-serif;
        font-weight: bold;
    /* 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.MenuBarHorizontal2 ul
        margin: 0;
        padding: 0;
        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.MenuBarHorizontal2 ul.MenuBarSubmenuVisible
        left: auto;
    /* Menu item containers are same fixed width as parent */
    ul.MenuBarHorizontal2 ul li
        width: 8.2em;
    /* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */
    ul.MenuBarHorizontal2 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.MenuBarHorizontal2 ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible
        left: auto;
        top: 0;
    DESIGN INFORMATION: describes color scheme, borders, fonts
    /* Submenu containers have borders on all sides */
    ul.MenuBarHorizontal2 ul
        border: 1px solid #9E2532;
    /* Menu items are a light gray block with padding and no text decoration */
    ul.MenuBarHorizontal2 a
        display: block;
        cursor: pointer;
        padding: 0.5em 0.75em;
        color: #F3E8CC;
        text-decoration: none;
        background-color: #663300;
    /* Menu items that have mouse over or focus have a blue background and white text */
    ul.MenuBarHorizontal2 a:hover, ul.MenuBarHorizontal2 a:focus
        color: #FFF;
        background-color: #663300;
    /* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
    ul.MenuBarHorizontal2 a.MenuBarItemHover, ul.MenuBarHorizontal2 a.MenuBarItemSubmenuHover, ul.MenuBarHorizontal2 a.MenuBarSubmenuVisible
        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.MenuBarHorizontal2 a.MenuBarItemSubmenu2
        background-image: url(SpryMenuBarDown.gif);
        background-repeat: no-repeat;
        background-position: 100% 50%;
    /* 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.MenuBarHorizontal2 ul a.MenuBarItemSubmenu2
        background-image: url(SpryMenuBarRight.gif);
        background-repeat: no-repeat;
        background-position: 100% 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.MenuBarHorizontal2 a.MenuBarItemSubmenuHover
        background-image: url(SpryMenuBarDownHover.gif);
        background-repeat: no-repeat;
        background-position: 100% 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.MenuBarHorizontal2 ul a.MenuBarItemSubmenuHover
        background-image: url(SpryMenuBarRightHover.gif);
        background-repeat: no-repeat;
        background-position: 100% 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.MenuBarHorizontal2 iframe
        position: absolute;
        z-index: 1010;
    /* 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.MenuBarHorizontal2 li.MenuBarItemIE
            display: inline;
            f\loat: left;
            background: #FFF;
    JAVASCRIPT FILE FOR MENU BAR HORIZONTAL:
    /* SpryMenuBar.js - Revision: Spry Preview Release 1.4 */
    // Copyright (c) 2006. Adobe Systems Incorporated.
    // All rights reserved.
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions are met:
    //   * Redistributions of source code must retain the above copyright notice,
    //     this list of conditions and the following disclaimer.
    //   * Redistributions in binary form must reproduce the above copyright notice,
    //     this list of conditions and the following disclaimer in the documentation
    //     and/or other materials provided with the distribution.
    //   * Neither the name of Adobe Systems Incorporated nor the names of its
    //     contributors may be used to endorse or promote products derived from this
    //     software without specific prior written permission.
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    // POSSIBILITY OF SUCH DAMAGE.
    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.
    var Spry;
    if(!Spry)
        Spry = {};
    if(!Spry.Widget)
        Spry.Widget = {};
    // 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;
        var isie = (typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE');
        if(typeof document.getElementById == 'undefined' || (navigator.vendor == 'Apple Computer, Inc.' && typeof window.XMLHttpRequest == 'undefined') || (isie && typeof document.uniqueID == 'undefined'))
            // bail on older unsupported browsers
            return;
        // load hover images now
        if(opts)
            for(var k in opts)
                var rollover = new Image;
                rollover.src = opts[k];
        if(this.element)
            this.currMenu = this.element;
            var items = this.element.getElementsByTagName('li');
            for(var i=0; i<items.length; i++)
                this.initialize(items[i], element, isie);
                if(isie)
                    this.addClassName(items[i], "MenuBarItemIE");
                    items[i].style.position = "static";
            if(isie)
                if(this.hasClassName(this.element, "MenuBarVertical"))
                    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.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:false;';
        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.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, "MenuBarActive");
    // bubbledTextEvent for Menu Bar
    // identify bubbled up text events in Safari so we can ignore them
    Spry.Widget.MenuBar.prototype.bubbledTextEvent = function()
        return (navigator.vendor == 'Apple Computer, Inc.' && (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, "MenuBarSubmenuVisible");
            if(typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE')
                if(!this.hasClassName(this.element, "MenuBarHorizontal") || menu.parentNode.parentNode != this.element)
                    menu.style.top = menu.parentNode.offsetTop + 'px';
            if(typeof document.uniqueID != "undefined")
                this.createIframeLayer(menu);
        this.addClassName(this.element, "MenuBarActive");
    // 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, "MenuBarSubmenuVisible");
            if(typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE')
                menu.style.top = '';
                menu.style.left = '';
            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, isie)
        var opentime, closetime;
        var link = listitem.getElementsByTagName('a')[0];
        var submenus = listitem.getElementsByTagName('ul');
        var menu = (submenus.length > 0 ? submenus[0] : null);
        var hasSubMenu = false;
        if(menu)
            this.addClassName(link, "MenuBarItemSubmenu");
            hasSubMenu = true;
        if(!isie)
            // 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)
            if(self.bubbledTextEvent())
                // ignore bubbled text events
                return;
            clearTimeout(closetime);
            if(self.currMenu == listitem)
                self.currMenu = null;
            // show menu highlighting
            self.addClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");
            if(menu && !self.hasClassName(menu, "MenuBarSubmenuVisible"))
                opentime = window.setTimeout(function(){self.showSubmenu(menu);}, 250);
        }, false);
        this.addEventListener(listitem, 'mouseout', function(e)
            if(self.bubbledTextEvent())
                // ignore bubbled text events
                return;
            var related = (typeof e.relatedTarget != 'undefined' ? e.relatedTarget : e.toElement);
            if(!listitem.contains(related))
                clearTimeout(opentime);
                self.currMenu = listitem;
                // remove menu highlighting
                self.removeClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");
                if(menu)
                    closetime = window.setTimeout(function(){self.hideSubmenu(menu);}, 600);
        }, false);

    It has to do with all of your absolutely positioned elements.  What's happening is that the menu is falling behind the absolutely positioned elements on your page.  Since there is nothing there, it's like trying to click a link that is outside your home while you are staring through a window.  Personally with that page setup you have now I really don't see a need for absolutely positioned elements.  But if you feel you will require them as part of your design you need to ensure the z-index of your menu layer is greater than that of the body elements positioned below it.

  • Scroll not a method of ResultSet on JDBC 2.0? Install Missing?

    Hi,
    1) (rset.scroll(lastRow - startRow) Is this an oracle extension
    to ResultSet? Reference the sample 4 at:
    http://download-west.oracle.com/otndoc/oracle9i/901_doc/appdev.90
    1/a88894/adx07xsu.htm
    Also how is that example 4 suppose to replace the same class
    in example 3? then why it is declared as public class pageTest()
    2) Am I missing any installed portion? I am working on an oracle
    8.1.7 version, and has only done the following to get XSU
    working:
    loadjava -user scott/tiger -r -v xmlparserv2.jar
    loadjava -user scott/tiger -r -v xmlplsql.jar
    sqlplus scott/tiger @/$OH/xdk/plsql/parser/bin/load.sql
    I was able to make, compile and run the samples at
    $OH/xdk/java/parser/demo
    I have not done any:
    xsulload.csh - I do not have this file.
    xdkload - I did not execute this,were not part of original 8i
    install
    catxsu.sql - I do not have this file, nowhere to be found in
    $OH/rdbms/admin/
    oraclexsql.jar - I have not loaded either as I have not found
    instructions or steps to load this.
    Thanks in advance for any help. Happy New Year!

    I am trying to use ResultSet.TYPE_SCROLL_SENSITIVE and
    CONCUR_UPDATABLE (using IBM DB2 JDBC 2.0) but I get
    run time error :
    SQL Exception.SQLState = null Error code = 0 Error
    message = Updatable result set is not supported by
    this version of the DB2 JDBC 2.0 driver.
    Any suggestion or help is appreciated.
    Has anyone heard that IBM DB2 implementation does not
    support updatable and scroll_sensitive?It gave you a precise error message, and you don't believe the error message, thinking somehow you can get around it anyway, making it support updatable result sets...
    You should check out this link:
    http://www.hov-hov.dk/you.htm

  • Spry tabbed panels - Different Hover Class for each tab

    Already posted this in the general Dreamweaver section, but just realized there was a specific Spry section. So, my apologies for the repost.
    I'm setting up spry tabbed panels, and I'm wanting to use an image for each tab, with the text already on it. I've figured this much out by creating a different class for each in the spry tabbed panel css.
    However, I'd also like to have a second hover image for each tab. I'm having trouble figuring out how to set up separate classes for each tab's hover state.
    Any help?
    Thanks.

    Just in case you did not notice the announce at the top of this forum's main page, I have copied it here.
    Announcement: New to Spry, or  the Spry forums?
    Hide Details
    Before you post a topic please verify  that:
    You  are using the latest Spry files
    The latest version of  the Adobe Spry Framework is 1.6.1, this is the same version that ships  with Dreamweaver CS4. If you use Dreamweaver CS3 (uses Spry 1.4), its  wise to upgrade your files to the latest version. This can easily be  done using the Spry Updater that can be found here.
    Your  question was not asked before
    Using the search  functionality on forums you can easily find out if your question has  been answered before. While you are in search, you can specify the  search locations. The Spry forum can be found under:
    Adobe  Labs > Spry Framework for Ajax
    Yoru question can not be  found in the existing documentation
    Spry provides you  with allot of documentation this can found on different locations. In  the sidebar of this forum you can find a small summary of resources that  will help you on your way.
    If these options do not apply to your question,  please be so kind to also supply the following information in your topic  together with a clear description of your issue:
    What  browsers does this issue occure:
    example: Internet Explorer 8 on  Window 7 and Firefox 3.0 on Mac OSX
    What version  of Spry are using:
    example: Spry 1.6.1 ( the version number can  be found in license header of the .css and .js files )
    What  is the url of your website or page in issue:
    example: http://www.example.com/page/in/issue.html
    Step  to reproduce the issue:
    example: Scroll down till you find the  header "help", there you will see a Spry Accordion. When you click on it  it will not open or close.
    So users can provide you with a  better answer, without having to ask you for further details.
    by Arnout Kazemier at Oct 23, 2009 2:47 PM                        
    landon_tc wrote:
    Actually, I do remember posting that, and have updated it with what worked for me. However, I could not recall posting it in a specific ajax spry forum, so I assumed I just posted in the general forum. Hence the current situation.
    Yeah and my name is not Ben Pleysier.
    landon_tc wrote:
    Any help with the current problem?
    Please have a look at this thread http://forums.adobe.com/message/2662019#2662019
    I hope this helps.
    Ben Pleysier

Maybe you are looking for