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.activeMenuClass;
    this.activeDropdown;
	this.activeDropdownLink;
	this.activeDropdownLinkClass;
}

TfeMenu.prototype.OpenMenu = function(menu, dropdownId, direction, offsetX, offsetY){
    this.StopTimer();
    this.CloseMenu();
    
    this.activeMenu = menu;
    this.activeDropdown = this.FindDropdown(dropdownId);

    this.activeMenuClass = this.activeMenu.className;
    this.activeMenu.className += ' active';
    
    offsetX += this.GetOffsetX(menu);
    offsetY += this.GetOffsetY(menu);
    
   	if(direction == 'up') {
	   	offsetY -= this.activeMenu.offsetHeight;
    	offsetY -= this.activeDropdown.offsetHeight;
	}
    
    this.ShowDropdown(offsetX, offsetY);

 	this.PositionIFrame(this.activeDropdown);	
	   
    this.SetEvents();
}

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.CloseMenu = function(){
    if(this.activeDropdown != null){
        this.activeDropdown.style.visibility = 'hidden';
    }
    if(this.activeMenu != null){
        this.activeMenu.className = this.activeMenuClass;
    }
    this.HideIFrame();
}

TfeMenu.prototype.SetEvents = function(){
	if(this.activeMenu != null) {
		this.activeMenu.onmouseout = startTimer;
	}
	if(this.activeDropdown != null) {
		this.activeDropdown.onmouseout = startTimer;
		this.activeDropdown.onmouseover = stopTimer;
	}
}

TfeMenu.prototype.FindDropdown = function(dropdownId){
    return document.getElementById(dropdownId);
}

TfeMenu.prototype.StartTimer = function(){
    this.timer = setTimeout('closeMenu()',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.className == 'header') {
			break;
		}
		if(parentOffsetNode.offsetLeft != null){
			//alert(parentOffsetNode.tagName +','+parentOffsetNode.className +','+parentOffsetNode.offsetLeft);
            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){
		if(this.iframeHandler == null) {
			this.CreateIFrame();
		}

		if(this.iframeHandler != null){
			this.iframeHandler.style.width = elem.offsetWidth;
			this.iframeHandler.style.height = elem.offsetHeight;
			this.iframeHandler.style.top = elem.style.top;
			this.iframeHandler.style.left = elem.style.left;
			this.iframeHandler.style.zIndex = elem.style.zIndex + 1;
			this.iframeHandler.style.display = "block";
			//this.iframeHandler.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
		}
	}
}
TfeMenu.prototype.HideIFrame = function(){
	if(browser.ie){
		if(this.iframeHandler != null){
			this.iframeHandler.style.display = "none";
		}
	}
}
TfeMenu.prototype.CreateIFrame = function(){
	body = document.getElementById("iframe");
	this.iframeHandler = document.createElement("iframe");
	this.iframeHandler.id = "DivShim";
	this.iframeHandler.src="javascript:false;";
	this.iframeHandler.scrolling="no";
	this.iframeHandler.frameborder="0";
	this.iframeHandler.style.position="absolute";
	this.iframeHandler.style.top="0";
	this.iframeHandler.style.left="0"; 
	this.iframeHandler.style.display="none";
	body.appendChild(this.iframeHandler);
}

var oTfeMenu = new TfeMenu();

function openMenu(menu, dropdownId, direction, offsetX, offsetY){
	oTfeMenu.OpenMenu(menu, dropdownId, direction, offsetX, offsetY);
}

function closeMenu(){
	oTfeMenu.CloseMenu();
}

function startTimer(){
	oTfeMenu.StartTimer();
}

function stopTimer(){
	oTfeMenu.StopTimer();
}







/////////////////////////// SUB-MENU's ////////////////////////////////////////////////

TfeMenu2 = function() {
  this.timer2 = null;
  this.activeMenu2;
  this.activeMenuClass2;
  this.activeDropdown2;
	this.activeDropdownLink2;
	this.activeDropdownLinkClass2;
}

TfeMenu2.prototype.OpenMenu2 = function(menu, dropdownId, direction, offsetX, offsetY) {
  this.StopTimer2();
  this.CloseMenu2();

  this.activeMenu2 = menu;
  this.activeDropdown2 = this.FindDropdown2(dropdownId);

  this.activeMenuClass2 = this.activeMenu2.className;
  this.activeMenu2.className += ' active';

  //offsetX += this.GetOffsetX2(menu);
  offsetY += this.GetOffsetY2(menu);

  if(direction == 'up') {
    offsetY -= this.activeMenu2.offsetHeight;
    offsetY -= this.activeDropdown2.offsetHeight;
	}

  this.ShowDropdown2(offsetX, offsetY);
  this.SetEvents2();
}

TfeMenu2.prototype.ShowDropdown2 = function(offsetX, offsetY) {
  if(this.activeDropdown2 != null) {
    this.activeDropdown2.style.top = (offsetY - 128) + 'px';// +  this.activeMenu2.offsetHeight + 'px';
    this.activeDropdown2.style.left = offsetX + 'px';
    //alert(this.activeDropdown2.style.cssText);
    this.activeDropdown2.style.visibility = 'visible';
  }
}

TfeMenu2.prototype.CloseMenu2 = function() {
  if(this.activeDropdown2 != null) {
      this.activeDropdown2.style.visibility = 'hidden';
  }
  if(this.activeMenu2 != null) {
      this.activeMenu2.className = this.activeMenuClass2;
  }
}

TfeMenu2.prototype.SetEvents2 = function() {
	if(this.activeMenu2 != null) {
		this.activeMenu2.onmouseout = startSubTimer;
	}
	if(this.activeDropdown2 != null) {
		this.activeDropdown2.onmouseout = startSubTimer;
		this.activeDropdown2.onmouseover = stopSubTimer;
	}
}

TfeMenu2.prototype.FindDropdown2 = function(dropdownId) {
  return document.getElementById(dropdownId);
}

TfeMenu2.prototype.StartTimer2 = function() {
  this.timer2 = setTimeout('closeSubMenu()',500);
}

TfeMenu2.prototype.StopTimer2 = function() {
  if(this.timer2 != null){
      clearTimeout(this.timer2);
  }
}

TfeMenu2.prototype.GetOffsetX2 = function(node) {
  var offsetX = this.activeMenu2.offsetLeft;

  var parentOffsetNode = node.offsetParent;
  while(parentOffsetNode != null) {
    if(parentOffsetNode.className == 'header') {
      break;
    }
    if(parentOffsetNode.offsetLeft != null){
      offsetX += parentOffsetNode.offsetLeft;
    }
    parentOffsetNode = parentOffsetNode.offsetParent
  }
  return offsetX;
}

TfeMenu2.prototype.GetOffsetY2 = function(node) {
  var offsetY = this.activeMenu2.offsetTop;

  var parentOffsetNode = node.offsetParent;
  while(parentOffsetNode != null) {
    if(parentOffsetNode.offsetTop != null) {
      offsetY += parentOffsetNode.offsetTop;
    }
    parentOffsetNode = parentOffsetNode.offsetParent;
  }
  return offsetY;
}

var oTfeMenu2 = new TfeMenu2();

function openSubMenu(menu, dropdownId, direction, offsetX, offsetY){
	oTfeMenu2.OpenMenu2(menu, dropdownId, direction, offsetX, offsetY);
}

function closeSubMenu(){
	oTfeMenu2.CloseMenu2();
}

function startSubTimer(){
	oTfeMenu2.StartTimer2();
}

function stopSubTimer(){
	oTfeMenu2.StopTimer2();
}




function getAbsPositionX(elm)
{
  var z_offsetX = elm.offsetLeft;

  var parentOffsetNode = elm.offsetParent;
  while(parentOffsetNode != null) {
    if(parentOffsetNode.className == 'header') {
      break;
    }
    if(parentOffsetNode.offsetLeft != null){
      z_offsetX += parentOffsetNode.offsetLeft;
    }
    parentOffsetNode = parentOffsetNode.offsetParent;
  }
  
  return z_offsetX;
}

function getAbsPositionY(elm)
{
  var z_offsetY = elm.offsetTop;

  var parentOffsetNode = elm.offsetParent;
  while(parentOffsetNode != null) {
    if(parentOffsetNode.offsetTop != null) {
      z_offsetY += parentOffsetNode.offsetTop;
    }
    parentOffsetNode = parentOffsetNode.offsetParent;
  }
  return z_offsetY;
}
