Drop down menu acting strange in IE7

It works fine in every other browser (as most things do), but in IE 8, instead of dropping down, it drops across. And in IE7, it does this:

It’s like it creates a new window for the menu to drop down into, but still drops across, and then puts a 404 in the empty window. Here’s the code that I’m using:

var Spry;
if(!Spry)
{
        Spry = {};
}
if(!Spry.Widget)
{
        Spry.Widget = {};
}
Spry.Widget.MenuBar = function(element, opts)
{
        this.init(element, opts);
};
Spry.Widget.MenuBar.prototype.init = function(element, opts)
{
        this.element = this.getElement(element);
        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'))
        {
                return;
        }
        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*, element, isie);
                        if(isie)
                        {
                                this.addClassName(items*, "MenuBarItemIE");
                                items*.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*.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"), "");
};
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) {}
};
Spry.Widget.MenuBar.prototype.createIframeLayer = function(menu)
{
        var layer = document.createElement('iframe');
        layer.tabIndex = '-1';
        layer.src = 'java script: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';
};
Spry.Widget.MenuBar.prototype.removeIframeLayer =  function(menu)
{
        var layers = menu.parentNode.getElementsByTagName('iframe');
        while(layers.length > 0)
        {
                layers[0].parentNode.removeChild(layers[0]);
        }
};
Spry.Widget.MenuBar.prototype.clearMenus = function(root)
{
        var menus = root.getElementsByTagName('ul');
        for(var i=0; i<menus.length; i++)
        {
                this.hideSubmenu(menus*);
        }
        this.removeClassName(this.element, "MenuBarActive");
};
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)));
};
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");
};
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);
        }
};
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)
        {
                listitem.contains = function(testNode)
                {
                        if(testNode == null)
                        {
                                return false;
                        }
                        if(testNode == this)
                        {
                                return true;
                        }
                        else
                        {
                                return this.contains(testNode.parentNode);
                        }
                };
        }
        var self = this;

        this.addEventListener(listitem, 'mouseover', function(e)
        {
                if(self.bubbledTextEvent())
                {
                        return;
                }
                clearTimeout(closetime);
                if(self.currMenu == listitem)
                {
                        self.currMenu = null;
                }
                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())
                {
                        return;
                }
                var related = (typeof e.relatedTarget != 'undefined' ? e.relatedTarget : e.toElement);
                if(!listitem.contains(related))
                {
                        clearTimeout(opentime);
                        self.currMenu = listitem;
                        self.removeClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");
                        if(menu)
                        {
                                closetime = window.setTimeout(function(){self.hideSubmenu(menu);}, 600);
                        }
                }
        }, false);
};

And here’s the page: http://www.alpha-lemur.com/index.html
Thanks in advance!