DVC PRO White Frames

I'm collaborating on a DVC Pro project with an editor who has FCP 5. I have version 7. But when I open his project file to make notes, I see white frames in both the viewer and canvas windows.
I can open the clips in quicktime player, so it does not appear to be a codec issue. Footage is DVC ProHD 720p.
Also, as a shot in the dark I changed the canvas view to alpha and RGB , oddly enough I'm getting red monochrome of the footage - weird. RGB remains white, straight alpha white. I've tried all variations in the canvas view (checkerboard, overlays etc) and all other are white frames - weird.
I'm using a Macbook Pro 2.4ghz, 4 gigs ram 512 video card, FCP 7.01 in Leopard 10.5.8
Any thoughts on this much appreciated.
M

I remember FCP5 creating a different kind of QuickTime movie than FCP6 and FCP7 do. I believe FCP5 created "Final Cut Pro Movies" whereas FCP6 and FCP7 create "QuickTime Movies". Maybe you have mixed kinds of video files, and that is causing an issue? Are you able to view the video files in the finder, to see if you have different icons sitting in there?
Also, in the past 4 years I've seen white frames with DVCPRO-HD, it's been a codec issue.
Hope this helps!!
Andrew

Similar Messages

  • White screen issue with DVC Pro HD

    I have a G5, have Final Cut HD and have upgraded to QT 7 Pro. I am trying to open an HD file I shot last year, which was edited on another system. When I try to open the clip, it is a white screen with audio. The movie info is as follows.
    DVCPRO HD (720p60), 1280 x 720, Millions
    16-bit Integer (Big Endian), Stereo, 48.000 kHz
    Any ideas on why it is not playing? Thanks!
    John M

    ok... i just got this on mine. yesterday i was just getting ready to log subclips from fcp5, and when i opened the project file, i noticed that all my subclips i created and orignal clip where all red / out. so i closed fcp5 and went to the location of the file. i double clicked it, and behold, white screen, audio only.. so i had to completely redo the convertion of the orginal file.
    next day
    I was looking for a subclip that i had already extracted from the main file, and when i double clicked it showed the video. after that closed the window, and someone asked me to reopen the quicktime file again, i double clicked it, and all of a sudden the video was white, and only audio.
    ive spent about 4 to 5 hours researching with someone else on this issue and have yet to find anything such as a fix, or work around, but my video keeps disappearing which is disturbing. from what we have come down to the issue is deals within quicktime are below...
    we believe that quicktime is somehow changing the codecs DVC PRO and changing it to "Integer (Big Endian), Timecode, Video.." that is what it says.. and comepletely removing the codec for the video, and deleting the video footage, but keeping the audio in place perfectly. now, we also used metadatahootenanny to inspect a copy of the file and low and behold severe corrupt of the meta data in the quicktime file. the issue be with quicktime interaction with storage, or a bug quicktime behalf. we need to find a solution to this issue. we are currently in contact with apple tech support and hopefully we will be posting a answer soon.

  • Cross-dissolve from white frame to adjustment layer no longer works in CC 2014

    Windows 7, Premiere Pro CC 2014
    I have a video clip in a nested sequence on V1 and an adjustment layer on V2.
    I want to dissolve from a white frame to the clip using the adjustment layer.
    In PP CC (not 2014) this was simple:
    Starting with a white PNG graphic on V2, cross-dissolve to the adjustment layer.
    However, in PP CC 2014, this causes a dissolve to BLACK over the duration of the dissolve and then a CUT to the video.
    This behavior in CC 2014 is illogical. Why has it changed?
    There are other ways to do this, but this one was quick and easy, and is required for hundreds of clips in existing sequences / projects.
    Response from support via live chat:
    thank you for your patience
    the adjustment is layer is not functioning properly
    https://www.adobe.com/cfusion/mmform/index.cfm?name=wishform&loc=en
    please mention it in the feature/bug request form

    For me with a color matte it shows exactly the same behavior as with a PNG.
    You're dissolving between the matte and the adjustment layer on V2?

  • DVC Pro Tape and DV tape not good in Final Cut Pro 5?

    I have a DVCPro tape along with a deck as well as a DV tape along with a deck for that.
    I started final cut pro and used the NTSC easy setup. I first captured the DVC Pro, when it was done i tried to play it in the viewer and it would play for less then a second then stop. However when i brought it down to the timeline it played fine in the canvas.
    So i when ahead a captured the DV tapes onto the same project. When it was completed i tried to play it back using my DV hardware to my TV but i would only see picture and no audio. ALl my settings were correct and the audio would only play on Mbox or the internal speaker in a G5. I thought i had a bad connection but the DVC Pro tape worked fine with audio. So i figured i go back to the DVC File i captured and when i pulled it up in the viewer everything is green and no picture what so ever.
    Can anyone please help

    #8 External Monitor Viewing.
    Shane's Stock Answer #8:
    A simple path is mac > firewire > camera or deck > rca cables > tv
    Then start up your camera and tv, then open fcp.
    Then go View > External video > all frames
    Video playback should be Apple firewire NTSC (If you are using an NTSC set)
    Audio playback should be Audio follows Video
    Techinially, this should send synched video to your TV
    If for some reason you can't view your timeline on your external monitor, there are a few things to try:
    1) Make sure that the camera/deck is connected and powered on BEFORE you open FCP.
    2) In the Final Cut Pro menu select AUDIO/VIDEO Preferences and make sure your signal is being sent out thru Firewire DV.
    3) Go to the menu and select VIEW>EXTERNAL>ALL FRAMES.
    4) Click in the % box above the image and select FIT TO WINDOW.
    5) Go to VIEW->refresh A/V devices
    6) Make sure the Log & Capture window is closed
    If you want it to play in both the canvas and the external monitor you need to go to the FINAL CUT PRO menu and select AUDIO/VIDIO settings and make sure MIRROR ON DESKTOP is selected under the PLAYBACK OUTPUT section
    Shane

  • Weird "white frame" in iMovie?

    Hi. Anyone ever have a short "white frame" (like 0.5 or less of a second) show up unexpectedly between clips? Can't seem to get rid of it - and it totally interrupts the "flow" of my iMovie.
    Thanks for the help!
    MacBook Pro   Mac OS X (10.4.7)   Also have a Mini

    Might wanna post over in the appropriate iMovie forum.
    http://discussions.apple.com/category.jspa?categoryID=141

  • CAPTURING FROM DVC PRO INTO iMOVIE

    I am feeding a DVC pro deck with SDI out into the firewire port on my new mac. I can see the video in imovie capture window, but cannot actually capture footage (either by selecting import or hitting the space bar). No clips are captured.
    I have rebooted the mac but still can't capture video. Since I can see video in the imove capture window, I can assume that the source (dvc pro) is not the problem.
    Any help would be appreciated.

    iMovie 11 is well worth the cost. Get it for $14.99 in the new App Store.
    In iMovie 11, you need to get a free app called MPEG Streamclip. You need to have it anyway. It is like a Swiss Army Knife for people who make videos. Right-click on the clip in iMovie. Select Reveal in Finder. Drag this clip to MPEG Streamclip. Move the playhead to the frame you want, and click FILE/EXPORT FRAME. Pick Jpeg, TIFF, or PNG and you are done.
    In iMovie 08, the above procedure works fine as well. However, there is another way, which I have documented [here|http://discussions.apple.com/thread.jspa?threadID=2255510]

  • Export Quicktime from a DVC Pro HD 720p60 Project

    I've read the discussions and am still looking for some solid answers on this and /or confirmation that I've done it correctly.
    I'm working in a DVC Pro HD 720p60 project
    Sequence setting frame size is 960x720
    (no I don't know what it was shot on)
    The cuts are :30 spots and I'm looking to do 2 things for my producer.
    1) export the spots so that he can compress them as desired for his reel on his website, for which I've done the following:
    File - Export - Quicktime Conversion - Settings, H.264, size 1920x1080
    Is this the best way to do this?
    2) export the spots so that he can add them to his reel when he wants to on dvd, for which I've done the following:
    I created a new DV50 project and cut the spots into them.
    File - Export - Quicktime Movie - Current Settings
    I also tried:
    File - Export - Quicktime Conversion - Settings, H.264
    The strange thing was that the H.264 on this looked better than the quicktime movie.
    Any thoughts? Much appreciated!

    Well, if you need to get it to the web guy to compress as he sees fit, then you will need to provide him with...well, what he wants. You need to ask him (her) what they want you to give to them.
    And the dimensions would be 1280x720. 960x720 is squeezed anamorphically. and going to 1920x1080 is makig it bigger than the original.
    As for the H.264 for DVD. Compressing it like that, then compressing again for DVD...icky. It looks better? Well then, maybe it darkened or brightened the footage as it compressed it. You might consider color correcting your main footage if you like that look.
    And you weren't in a DV or DVCPRO 50 project, you were in a DVCPRO HD project. Why cut it in a one of those settings? it won't look any better, in fact, it will look worse. And compressing it for DVD ro the web wouldn't be any easier. Sorry, I guess I don't understand your reasoning here.
    DV 50 isn't what it was shot nor edited at. It is DVCPRO HD...DVCPRO 100. Export self contained using sequence settings and it is EXACTLY the same quality as the original footage in the timeline.
    Shane

  • Upconverting from DVC Pro HD to a 10-bit codec

    Hi,
    I'm working on a project that has been edited in DVC Pro HD (720p). There are a lot of layered effects and color adjustments. We want to move the project to a 10-bit codec for final rendering and mastering.
    What is the best way to make this transition?
    Is it better to use the Media Manager to make a recompressed copy of the project, change the codec in the Sequence Settings and force a rerender, or simply export a quicktime movie with a 10-bit codec? (will simply exporting re-render the effects in 10-bit color space?)
    We're using FCP 5.1.4 and a Kona LHe card on a MacPro Quad G5

    dwburman wrote:
    We're using FCP 5.1.4 and a Kona LHe card on a MacPro Quad G5
    What do you mean by final rendering and mastering? I ask because I'd argue that the benefits of going 10-bit (vs 8-bit, in most cases) only apply to smoother gradients and intensive color correction (where you're aggressively altering color balance, recoloring shots or greatly adjusting contrast). If all that has already been done, I'm not sure that I, personally, see the benefit in what you're looking to do.
    Also, since you're working with FCP 5.1.4 - and cannot go ProRes422 - can you afford the extra hard drive space and drain on your resources? Correct me if I'm wrong, but your only choice would be to go from DVCProHD to 10-Bit Uncompressed. Which means files, what, about 4-5x larger?
    All those doubts aside - meaning you have the drive space available and have yet to do color correction - I'd use Media Manager to create a new project using only the media referenced and, as mentioned by ap_TonyTony, use FCP to render out in 10-bit.
    If you're also looking to uprez the material (going up to 1080p, for instance) then I'd dump those new clips into Compressor, crank up the Frame Controls and let the machine churn out files for the next 3 days. Once that's done, I'd go into your fresh Media Manager-created project and do a manual reconnect to your 1080p stuff.
    Or am I totally lost on what you're attempting to do?

  • DVC PRO HD workflow questions

    I am about to edit a music promo shot using the Panasonic Varicam. I have a few questions.
    We shot at 24, 25 (for a double speed track playback) and 60 fps are there any issues with this or things to consider when using the frame rate convertor in FCP. I am a bit concerned about the 25fps stuff, I notice that the DVC PRO HD settings in FCP are 24P.
    Are there any other concerns with particular decks and FCP. I have done some searching, but none of it seems conclusive. From what I can see I will be fine using FW 400 to get it into the mac.
    Any thoughts and experiences appreciated.
    Keith

    I'm with Tallguy...why did you shoot 25fps? That is a decidedly PAL format. That won't mix well with 23.98fps (24p) and 60p. YOu might have to use the Standards Converter from www.nattress.com in order to get it to play nice. Although thats for mixing 30fps and 25fps...not sure about 24fps and 25fps.
    If you use the DVCPRO HD FRAME RATE CONVERTER you'll get great results.
    Capture with a capture card via HD SDI if you can. Audio will be ahead of video by two frames if you capture via firewire. You'll have to slip it on the timeline when you edit...every clip.
    Shane

  • DVC Pro HD corruption

    We started working with the Final Cut 6.0.1 last week on a Power PC G5 Dual 2Gb. We receive quicktime files from the lab with the following compression DVC Pro HD 1080 p25 (We have the QT Pro 7.2) Our sequence has the following setting DVC Pro HD-1080 p24. Now the problem we´re having is that once we conform the quicktimes from 25fps to 24fps through Cinema Tools, when we import them to Final Cut the conformed clips show at some points few corrupted frames (the screen gets all colorfull pixelated) . The clips from the lab look fine at 25fps, so we think the problem might be with the Cinema Tools. Why this happens? Or the problem could be when we copy the material to our 4 disk SATA internal raid?
    Also we have problems to merge audio and video clips. We mark both the in point at the slate chack, and once we merged them the audio is randomly merged and not precisely at the mark we set. And the difference is not constant, so in one could be 7 frames, and the next more than a second, either after or before the image´s chack. By the moment we´re merging through the timeline, but it takes us more time.
    This has happened to us in the past, but just a couple of times, now it seems that it doesn´t work at all, and we don´t know if it has to do with the 6.0.1 version.
    Please could someone give us some light into this darkness?

    I've noticed this merge problem when adjusting the in audio point at millisecond. Setting the in point on a frame creates a correct merged clip.

  • Capturing DVC Pro with firewire

    Having some trouble, hope someone has a solution. I am trying to capture footage from DVC Pro 25 into FCP using firewire. FCP 5 does not support DVC Pro 25 anymore, not since ver.3, but I was wondering if there was a way to adjust the capture and sequence settings to make my own setting that would do it right. I have played with the settings a lot and I continue to lose audio sync. It looks good until about 5 min and then progressively loses sync so that at a 25 minute end of a clip the audio is as much as two seconds out of sync.
    I am using a Panasonic AJ-D250 and the firewire card is the AJ-YAD250.
    MacG5   Mac OS X (10.4.6)   FCP Studio, DVC Pro Deck

    As the deck controller (in this case, Final Cut Pro) is cueing up the deck for the 'edit' (in this case, a capture), the controller signals the deck as to what frame/field it's on and the deck responds. This happens with a certain frequency (every so many fields/frames), and the capstans in the deck adjust the speed of the tape so the tape is playing the proper frame when the controller tells the recorder (in this case, FCP) to start recording.
    FCP5 changed the number of polls the controller made with the deck, effectively doubling the polling. Most decks respond to this very nicely. Pannys don't, so tech support wrote a plug that returns the polling to what existed in FCP4.
    As I said, I don't know if this has any effect when you're controlling the deck via FW. But, if you'll Email me at the address in my Profile, I'll send the plug to you. It's a zipped text file that you'll unzip and drop into /Library/Application Support/Final Cut Pro System Support/Plugins folder.
    I'm doubtful that it will resolve the sync problem you're having, but you're welcome to it.

  • DVC Pro 50 Question and Surprise!

    Hi
    I recently got some DVCPro 50 footage to edit with. I have a Sony DSR45 deck (DV/DV Cam) that can't play DVCPro. So I rented a deck and captured into FCP 5.
    I selected the Easy NTSC DVDPro 50 capture and all went well. The deck worked and capture was a breeze.
    Now, I expected that when I reconnected firewire to my DV Deck (which I usually use to monitor NTSC through) that FCP would send DVC Pro 50 down the firewire and there would be no NTSC output. Sure enough that was the case.
    But I inadvertantly switched the project back to a DV NTSC easy set up (while the DVCPro 50 project was open) and lo and behold the firewire output from FCP popped up on the NTSC monitor!(through the DV Cam deck!)
    Now, what is going on here? Is the DVCPro 50 footage being downsampled by FCP for the monitor? Or am I seeing 'all' of the DVCPro 50 data?
    FCP is not applying any rendering or real time effects.
    To add to my confusion....
    I also have an AJA LA converter. So I set it up to receive the DVCPro via FW and give me a Component Video feed to the NTSC monitor.
    It worked as expected... but the images were much darker than the result in the above DV set up.
    Neither the DVCam deck nor the AJA can add or subtract set up.
    The monitor is set to add set up to the output of the DVCam deck (since dv decks don't add it on throughput). Maybe component signals don't get that set up on input.
    Any glimmers of info that might help me sort out my confusion?
    Thanks
    Lee
    PS the NTSC Monitor is a Sony PVM14 L2

    Hi Lee
    your sequence settings tell FCP how to render the footage for that sequence, despite the format of the footage contained
    when you changed your sequence settings to NTSC DV, then FCP started rendering your DVCPRO50 footage as DV, hence making it viewable through FW to your DV deck/monitor.
    thats how it generally works anyway!
    check the color of the render bar at the top of your sequence timeline. usually, switching the your sequence settings away from the native codec of the footage contained will make the render bar turn red, meaning it wil have to render ... although that wouldn't necessarily be apparent until you actually play in the timeline (while the playhead is still, FCP will render the current frame under the playhead automaticaly).
    hope it helps
    Andy

  • Using DVC Pro HD with FCP 5.1.4

    Hey everyone!
    I'm planning a new project and both the client and myself would like to use DVC Pro HD for filming. I'm just a little worried about how FCP 5 will handle the gig. As well I like to know if any other gear such a Raid drives are necessary. I would really appreciate any advice.
    Thanks in advance

    Hi Shane,
    You answered a questioned I posted on the apple discussion site about editing in DVCPRO HD, I guess because my gig is rapidly approaching and I want to get things done right I have another question. I hope you don't mind.
    I have a MacBook Pro 2.16GHz with 1 gig of ram, I was planning on using an AJ HDX900 or 400 for shooting. I'm going to purchase an Apple 23" inch cinema display and most like a Matrox MXO as you suggested I would probably need. " Buy what you need when you need it" or something like that right! You can see I have been reading your blog. Back to the matter at hand, I was wondering if my set up is fast enough and powerful enough to edith the material and do I use the Matrox to output to a betacam deck afterwards? Sorry my questions may seem a little or very simple but I am rather new to the industry.
    Thanks for any help,
    Guy
    PS I also mailed this to you so just ignore one or the other, thanks again and happy Canada day!

  • 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;

  • Do I need to up my rig for DVC Pro or XDCam?

    Hi, all.
    I've been editing ACVHD shot with a Canon Vixia camcorder, which hasn't been much of a problem in terms of file sizes and processing.  We're looking to improve our video capabilities and I've started shopping for a decent pro-sumer video camera.  I'm looking mostly at Panasonic and Sony cameras and would like to know something about how the DVC Pro or XDCam formats work with AE and Premier.  I'm assuming that these formats will produce much larger files, requiring more storage and possibly more processing power.  At the moment I'm running a Dell Precision 490 tower with these specs:
    Windows 7 Enterprise - 64 Bit OS
    Processor: Intel (R) Xeon (R) CPU  5160 @ 3.00GHz (2 processors)
    4.00 GB RAM
    150GB HD
    I've been running CS5, but an upgrade to CS6 is on the way.  Project files have been stored on a network server, so the small HD hasn't been a problem, but I'm usually writing and reading over ethernet.  Our finished videos usually run about 3-5 minutes, but occassionally we might do something running between 20-30 minutes.
    So, my questions:
    - will this system, as is, be able to handle prosumer video formats?  If not, what kind of system or external hardware would I need to bring me to at least entry level specs for this kind of work?
    - will working over the network be an issue?  If so, what will I need for internal/external hard drives?
    - are there other questions I should be asking?  What am I not considering?
    I don't know how much money I can get for this, so I need to bring my bosses a number that won't scare the hell out of them.  I can probably bring the camera and assessories in for under $10,000, but I'm guessing that adding two new high-powered work stations might double that figure.  Not sure exactly where the line is.  Can anyone offer any insight or advice?  I certainly don't want to invest in a decent camera only to find I don't have the muscle to edit the footage.
    My thanks in advance for any help or information.

    Well, the deal is that I work for a State agency where I produce videos for public consumption via our YouTube channel as well as training DVDs and some other applications.  It took me about seven years to get any money to work with (used my own personal cameras until then), and even then was given only $3000 to buy a video camera, DSLR, lighting, and teleprompter.  After a three more years of whining, they've finally decided to "resource" our production effort.
    I suspect I can wrangle about a $10,000 budget, but I'm hoping I might be able to get as much as $15-20,000.  This has to buy a camera, accessories, and anything else I may need for the foreseeable future.  Renting isn't really an option and whatever I get now is probably what I'll be working with for the next 6-10 years (if I don't get a better job or hang myself before then), so I want to invest in technologies or formats that have staying power.
    That's why I'm asking whether I need faster machines to handle these pro and prosumer formats.  If I need to factor new workstations or other hardware into my calculations, I'll need to plan for that now.  From what I'm reading, it seems that it'll actually take less processing power to work with intraframe compression, but this may be offset by the much larger file sizes.
    By the way, I really appreciate everyone's responses.  This community has unquestionably been my most reliable resource for over fifteen years now.

Maybe you are looking for