130 lines
5 KiB
JavaScript
130 lines
5 KiB
JavaScript
// Material sourced from the bluePortal project (http://blueportal.codeplex.com).
|
|
// Licensed under the Microsoft Public License (available at http://www.opensource.org/licenses/ms-pl.html).
|
|
|
|
var hoverClass = "AspNet-Menu-Hover";
|
|
var topmostClass = "AspNet-Menu";
|
|
var userAgent = navigator.userAgent;
|
|
var versionOffset = userAgent.indexOf("MSIE");
|
|
var isIE = (versionOffset >= 0);
|
|
var isPreIE7 = false;
|
|
var fullVersionIE = "";
|
|
var majorVersionIE = "";
|
|
if (isIE)
|
|
{
|
|
fullVersionIE = parseFloat(userAgent.substring(versionOffset+5, userAgent.length));
|
|
majorVersionIE = parseInt('' + fullVersionIE);
|
|
isPreIE7 = majorVersionIE < 7;
|
|
}
|
|
|
|
function Hover__AspNetMenu(element)
|
|
{
|
|
AddClass__CssFriendlyAdapters(element, hoverClass);
|
|
|
|
if (isPreIE7)
|
|
{
|
|
var child = element.firstChild;
|
|
while (child)
|
|
{
|
|
if (child.tagName == "UL")
|
|
{
|
|
var grandchild = child.firstChild;
|
|
while (grandchild)
|
|
{
|
|
if (grandchild.tagName == "LI")
|
|
{
|
|
if ((typeof(grandchild.iFrameFormElementMask) != "undefined") && (grandchild.iFrameFormElementMask != null))
|
|
{
|
|
grandchild.iFrameFormElementMask.style.display = "block";
|
|
|
|
var w = grandchild.offsetWidth;
|
|
if ((grandchild.offsetWidth == 0) && (typeof(element.iFrameFormElementMask) != "undefined") && (element.iFrameFormElementMask != null) && (element.iFrameFormElementMask.style.width.length > 0))
|
|
{
|
|
w = element.iFrameFormElementMask.style.width;
|
|
}
|
|
grandchild.iFrameFormElementMask.style.width = w;
|
|
|
|
var h = grandchild.offsetHeight + 5 /* fudge to cover margins between menu items */;
|
|
if ((grandchild.offsetHeight == 0) && (typeof(element.iFrameFormElementMask) != "undefined") && (element.iFrameFormElementMask != null) && (element.iFrameFormElementMask.style.height.length > 0))
|
|
{
|
|
h = element.iFrameFormElementMask.style.height;
|
|
}
|
|
grandchild.iFrameFormElementMask.style.height = h;
|
|
}
|
|
}
|
|
|
|
grandchild = grandchild.nextSibling;
|
|
}
|
|
}
|
|
|
|
child = child.nextSibling;
|
|
}
|
|
}
|
|
}
|
|
|
|
function Unhover__AspNetMenu(element)
|
|
{
|
|
RemoveClass__CssFriendlyAdapters(element, hoverClass);
|
|
|
|
if (isPreIE7)
|
|
{
|
|
var child = element.firstChild;
|
|
while (child)
|
|
{
|
|
if (child.tagName == "UL")
|
|
{
|
|
var grandchild = child.firstChild;
|
|
while (grandchild)
|
|
{
|
|
if (grandchild.tagName == "LI")
|
|
{
|
|
if ((typeof(grandchild.iFrameFormElementMask) != "undefined") && (grandchild.iFrameFormElementMask != null))
|
|
{
|
|
grandchild.iFrameFormElementMask.style.display = "none";
|
|
}
|
|
}
|
|
|
|
grandchild = grandchild.nextSibling;
|
|
}
|
|
}
|
|
|
|
child = child.nextSibling;
|
|
}
|
|
}
|
|
}
|
|
|
|
function SetHover__AspNetMenu()
|
|
{
|
|
var menus = document.getElementsByTagName("ul");
|
|
for (var i=0; i<menus.length; i++)
|
|
{
|
|
if(menus[i].className == topmostClass)
|
|
{
|
|
var items = menus[i].getElementsByTagName("li");
|
|
for (var k=0; k<items.length; k++)
|
|
{
|
|
items[k].onmouseover = function() { Hover__AspNetMenu(this); }
|
|
items[k].onmouseout = function() { Unhover__AspNetMenu(this); }
|
|
|
|
if (isPreIE7 && ((typeof(items[k].iFrameFormElementMask) == "undefined") || (items[k].iFrameFormElementMask == null)))
|
|
{
|
|
var iFrameFormElementMask = document.createElement("IFRAME");
|
|
iFrameFormElementMask.scrolling= "no";
|
|
iFrameFormElementMask.src = "javascript:false;";
|
|
iFrameFormElementMask.frameBorder = 0;
|
|
iFrameFormElementMask.style.display = "none";
|
|
iFrameFormElementMask.style.position = "absolute";
|
|
iFrameFormElementMask.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
|
|
|
|
iFrameFormElementMask.style.zIndex = -1;
|
|
items[k].insertBefore(iFrameFormElementMask, items[k].firstChild);
|
|
items[k].iFrameFormElementMask = iFrameFormElementMask;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (isPreIE7)
|
|
{
|
|
window.onload = SetHover__AspNetMenu;
|
|
}
|