var isMacIE = ((navigator.userAgent.indexOf("IE 4") > -1) && (navigator.userAgent.indexOf("Mac") > -1));
var isDynamic = ((document.all || document.getElementById) && !isMacIE);
var activeMenu = 0;
var done = false;
var sPathPrefix = '/uk/';

initMenus();

function initMenus() {
    if (isDynamic) {
        for (var menuNo = 1; menuNo <= noOfMenus; menuNo++){
            menusource = '<div class="iframedivmenu" id="menu' + menuNo + '">';
            menusource += '<iframe id="menu' + menuNo + 'frame" src="' + sPathPrefix + 'includes/menu' + menuNo + '.html" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" style="overflow:visible; display:block; width:100%;"></iframe>';
            menusource += '</div>';
            document.write(menusource);
        }
    }
}

function init() {
    if (isDynamic) {
        if (document.getElementById) {
            for (var i = 1; i <= noOfMenus; i++){
                eval('document.getElementById("menu' + i + 'row").onmouseout = doHide');
                eval('document.getElementById("menu' + i + '").onmouseout = doHide');
            }
        } else if (document.all) {
            for (var i = 1; i <= noOfMenus; i++){
                eval('document.all["menu' + i + 'row"].onmouseout = doHide');
                eval('document.all["menu' + i + '"].onmouseout = doHide');
            }
        }
    }
    done=true;
}

function uninit() {
    done=false;
}

function activateMenu(menuLayerRef,offset,width,top) {
    if (done) {
        if (isDynamic && activeMenu != menuLayerRef) {
            if (activeMenu){
                hideMenu("menu" + activeMenu);
            }
            menuID = "menu" + menuLayerRef;
            activeMenu = menuLayerRef;
            if (isNaN(top)) {
                top = findPosY(getLayer(top));
            }
            if (isNaN(offset)) {
                offset = findPosX(getLayer(offset));
            }
            if (isNaN(width)) {
                width = findWidth(getLayer(width));
            }
            eval('document.getElementById("' + menuID + 'row").className = "menuheadingcellselected"');
            eval('document.getElementById("' + menuID + 'anchor").className = "menuheadingselected"');
            getStyle(menuID).top = top;
            getStyle(menuID).left = offset - 20; //Should really subtract padding-left
            getStyle(menuID).width = parseInt(width) + 40; //Should really add padding-left and padding-right
            showMenu(menuID);
        }
    }
}

function showMenu(layerID) {
    eval('getStyle("'+layerID+'").visibility = "visible"');
    eval('getStyle("'+layerID+'").display = "block"');
    iframeResize(layerID + "frame");
}

function iframeResize(iframe) {
    var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
    var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

    if (document.getElementById) {
        dyniframe = document.getElementById(iframe);
        if (dyniframe) {
            if (window.opera) { //opera syntax
                dyniframe.height = dyniframe.document.body.scrollHeight;
            } else if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) { //ns6 syntax
                dyniframe.height = dyniframe.contentDocument.body.offsetHeight+FFextraHeight;
            } else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) { //ie5+ syntax
                dyniframe.height = dyniframe.Document.body.scrollHeight;
            }
        }
    }
}

function doHide(e) {
    e = e ? e : window.event;
    var f = (e.relatedTarget) ? e.relatedTarget : e.toElement;
    if (window.opera) {
        if ((f.id == null || f.id.indexOf("menu") == -1) && (f.nodeName != "BODY" && f.nodeName != "A")) {
            setUpHideMenu();
        }
    } else {
        if (f != null && (f.id == null || f.id.indexOf("menu") == -1)) {
            setUpHideMenu();
        }
    }
}

function setUpHideMenu() {
    if (activeMenu) {
        menuID = "menu" + activeMenu;
        hideMenu(menuID);
        activeMenu = 0;
    }
}

function hideMenu(layerID) {
    eval('document.getElementById("' + menuID + 'row").className = "menuheadingcell"');
    eval('document.getElementById("' + menuID + 'anchor").className = "menuheading"');
    eval('getStyle("'+layerID+'").visibility = "hidden"');
    eval('getStyle("'+layerID+'").display = "none"');
}

function getStyle(layer) {
    return getLayer(layer).style;
}

function getLayer(layer) {
    if (document.all) {
        return document.all[layer];
    } else if (document.getElementById) {
        return document.getElementById(layer);
    } else {
        return;
    }
}

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curleft += obj.offsetLeft;
            obj = obj.offsetParent;
        }
    } else if (obj.x) {
        curleft += obj.x;
    }
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curtop += obj.offsetTop;
            obj = obj.offsetParent;
        }
    } else if (obj.y) {
        curtop += obj.y;
    }
    return curtop;
}

function findWidth(obj) {
    if (obj.offsetWidth != 0) {
        curwidth = obj.offsetWidth;
    } else if (obj.offsetParent) {
        curwidth = obj.offsetParent.offsetWidth;
    } else {
        curwidth = 155;
    }
    return curwidth;
}