﻿///////////////////////////////////////////////////////////////////////////////
// MyMenu.js - JavaScript code for the CSS menu on Techsoft's new website
// Modified version of the code from the CSS Friendly Menu Adapter by Microsoft
// Copyright © Techsoft a.s.
//
// What we have done here is to modify the structure of the standard CSS menu 
// slightly, inserting some div's to get easier control of the background images:
//
//  <div class="menu root" id="nav">
//      <div class="menutop">
//          <ul>
//              <li><a href="xxx.aspx" title="xxx">xxx</a>
//                  <div class="menu sublevel">
//                      <div class="menutop">
//                          <ul>
//                              <li><a href="y1.aspx" title="y1">y1</a></li>
//                              <li><a href="y2.aspx" title="y2">y2</a></li>
//                              <li><a href="y3.aspx" title="y3">y3</a></li>
//                          </ul>
//                      </div>
//                      <div class="menubottom">
//                      </div>
//                  </div>
//              </li>
//              <li>...(etc)...</li>
//          </ul>
//      </div>
//  </div>
//
// This script code is a workaround for CSS bugs in IE6
//

var hoverClass = "sfhover";
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)
{
    element.className += " sfhover";

    var child = element.firstChild;
    while (child)
    {
        if (child.tagName == "DIV")
        {
            var grandchild = child.firstChild.firstChild.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)
{
    element.className = element.className.replace(new RegExp(" sfhover\\b"), "");

    var child = element.firstChild;
    while (child)
    {
        if (child.tagName == "DIV")
        {
            var grandchild = child.firstChild.firstChild.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 divs = document.getElementsByTagName("DIV");
    for (var i=0; i<divs.length; i++)
    {
        if (divs[i].className.indexOf("menu ")>=0)
        {
            divs[i].style.zIndex = 2;
        
            var menu = divs[i].firstChild.firstChild;

            if (menu==null || menu.tagName!="UL")
                continue;
                
            var items = menu.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 (isIE && ((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 (window.attachEvent && isPreIE7) window.attachEvent("onload", SetHover__AspNetMenu);

