function BrowserCheck() {
        var b = navigator.appName
        if (b=="Netscape") this.b = "ns"
        else if (b=="Microsoft Internet Explorer") this.b = "ie"
        else this.b = b
        this.version = navigator.appVersion
        this.v = parseInt(this.version)
        this.ns = (this.b=="ns" && this.v>=4)
        this.ns4 = (this.b=="ns" && this.v==4)
        this.ns5 = (this.b=="ns" && this.v==5)
        this.ie = (this.b=="ie" && this.v>=4)
        this.ie4 = (this.version.indexOf('MSIE 4')>0)
        this.ie5 = (this.version.indexOf('MSIE 5')>0)
        this.mac = (navigator.userAgent.indexOf("Mac") != -1); 
        this.opera = (navigator.userAgent.indexOf("Opera") != -1); 
        this.min = (this.ns||this.ie)
}
var browser = new BrowserCheck();

TfeMenu = function(){
    this.timer = null;
    this.activeMenu;
    this.activeDropdown;
}

TfeMenu.prototype.OpenMenu = function(menu, dropdownId, offsetX, offsetY){
    this.StopTimer();
    this.HideDropdown();
    
    this.activeMenu = menu;
    this.activeDropdown = this.FindDropdown(dropdownId);

    this.activeMenu.oldClassName = this.activeMenu.className;
    this.activeMenu.className = 'active';
    
    offsetX += this.getOffsetX(menu);
    offsetY += this.getOffsetY(menu);
    
    this.ShowDropdown(offsetX, offsetY);
	
	this.positionIFrame(this.activeDropdown);
    
}

TfeMenu.prototype.FindDropdown = function(dropdownId){
    return document.getElementById(dropdownId);
}

TfeMenu.prototype.ShowDropdown = function(offsetX, offsetY){
    if(this.activeDropdown != null){
        this.activeDropdown.style.top = offsetY + this.activeMenu.offsetHeight + 'px';
        this.activeDropdown.style.left = offsetX + 'px';
        this.activeDropdown.style.visibility = 'visible';
    }
}

TfeMenu.prototype.HideDropdown = function(){
    if(this.activeDropdown != null){
        this.activeDropdown.style.visibility = 'hidden';
		this.hideIFrame();
    }
    if(this.activeMenu != null){
        this.activeMenu.className = this.activeMenu.oldClassName;
    }
}

TfeMenu.prototype.StartTimer = function(){
    this.timer = setTimeout('hideDropdown()',500);
}

TfeMenu.prototype.StopTimer = function(){
    if(this.timer != null){
        clearTimeout(this.timer);
    }
}

TfeMenu.prototype.getOffsetX = function(node){
    var offsetX = this.activeMenu.offsetLeft;
    
    var parentOffsetNode = node.offsetParent;
    while(parentOffsetNode != null){
        if(parentOffsetNode.offsetLeft != null){
            offsetX += parentOffsetNode.offsetLeft;
        }
        parentOffsetNode = parentOffsetNode.offsetParent
    }
    
    return offsetX;
}

TfeMenu.prototype.getOffsetY = function(node){
    var offsetY = this.activeMenu.offsetTop;
    
    var parentOffsetNode = node.offsetParent;
    while(parentOffsetNode != null){
        if(parentOffsetNode.offsetTop != null){
            offsetY += parentOffsetNode.offsetTop;
        }
        parentOffsetNode = parentOffsetNode.offsetParent
    }
    
    return offsetY;
}

TfeMenu.prototype.positionIFrame = function(elem){
        if(browser.ie){
                IfrRef = document.getElementById("DivShim");
                if(IfrRef == null){
                        IfrRef = this.createIFrame();
                }
                if(IfrRef != null){
                        IfrRef.style.width = elem.offsetWidth;
                        IfrRef.style.height = elem.offsetHeight;
                        IfrRef.style.top = elem.style.top;
                        IfrRef.style.left = elem.style.left;
                        IfrRef.style.zIndex = elem.style.zIndex;
                        IfrRef.style.display = "block";
                }
        }
}
TfeMenu.prototype.hideIFrame = function(){
        if(browser.ie){
                IfrRef = document.getElementById("DivShim");
                if(IfrRef != null){
                        IfrRef.style.display = "none";
                }
        }
}
TfeMenu.prototype.createIFrame = function(){
        body = document.getElementsByTagName("body");
        IfrRef = document.createElement("iframe");
        IfrRef.id = "DivShim";
        IfrRef.src="javascript:false;";
        IfrRef.scrolling="no";
        IfrRef.frameborder="0";
        IfrRef.style.position="absolute";
        IfrRef.style.top="0";
        IfrRef.style.left="0"; 
        IfrRef.style.display="none";
        body[0].appendChild(IfrRef);
        return IfrRef;
}
var oTfeMenu = new TfeMenu();

function openMenu(menu, dropdownId, offsetX, offsetY){
	oTfeMenu.OpenMenu(menu, dropdownId, offsetX, offsetY);
}

function hideDropdown(){
	oTfeMenu.HideDropdown();
}

function startTimer(){
	oTfeMenu.StartTimer();
}

function stopTimer(){
	oTfeMenu.StopTimer();
}
