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;
	this.iframeHandler;
}

TfeMenu.prototype.OpenMenu = function(menu, dropdownId, offsetX, offsetY, direction, lastOne){
    this.StopTimer();
    this.CloseMenu();
    
    this.activeMenu = menu;
    
    this.activeDropdown = this.FindDropdown(dropdownId);

    this.AddClass(this.activeMenu, 'active');

	if( lastOne == 1 )
		offsetX += this.GetOffsetX(menu) - 114;
	else
	    offsetX += this.GetOffsetX(menu);
	
    offsetY += this.GetOffsetY(menu);
    
    if(direction == 'up') {
	    offsetY -= this.activeDropdown.offsetHeight;
    }
    
    this.ShowDropdown(offsetX, offsetY);
   
    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.display = 'block';
    }
}

TfeMenu.prototype.CloseMenu = function(){
    if(this.activeDropdown != null){
        this.activeDropdown.style.display = 'none';
    }
    if(this.activeMenu != null){
        this.RemoveClass(this.activeMenu, 'active');
    }
    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.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){
		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";
		}
	}
}
TfeMenu.prototype.HideIFrame = function(){
	if(browser.ie){
		if(this.iframeHandler != null){
			this.iframeHandler.style.display = "none";
		}
	}
}
TfeMenu.prototype.CreateIFrame = function(){
	body = document.getElementsByTagName("body");
	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[0].appendChild(this.iframeHandler);
}
TfeMenu.prototype.AddClass = function(node, className) {
	var classNameArray = node.className.split(' ');
	classNameArray[classNameArray.length] = className;
	node.className = classNameArray.join(' ');
}
TfeMenu.prototype.RemoveClass = function(node, className) {
	var classNameArray = node.className.split(' ');
	var newClassName = '';
	for(var i = 0;i < classNameArray.length;i++) {
		if(classNameArray[i] != className) {
			if(newClassName.length > 0) {
				newClassName += ' ';	
			}
			newClassName += classNameArray[i];
		}
	}
	node.className = newClassName;
}

var oTfeMenu = new TfeMenu();

function openMenu(menu, dropdownId, offsetX, offsetY, direction, lastOne){
	oTfeMenu.OpenMenu(menu, dropdownId, offsetX, offsetY, direction, lastOne);
}

function closeMenu(){
	oTfeMenu.CloseMenu();
}

function startTimer(){
	oTfeMenu.StartTimer();
}

function stopTimer(){
	oTfeMenu.StopTimer();
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function switchMenuLayer(linkElement, layerId) {
	var element = MM_findObj(layerId);
	if(element != null) {
		if(element.style.display == 'block') {
			linkElement.className = 'closed';
			element.style.display = 'none';
		} else {
			linkElement.className = 'open';
			element.style.display = 'block';
		}
	}
}

function switchReadMoreContent(showLinkElementId, hideLinkElementId, readMoreContentId, showContent) {
	var showLinkElement = MM_findObj(showLinkElementId);
	var hideLinkElement = MM_findObj(hideLinkElementId);
	var readMoreContentElement = MM_findObj(readMoreContentId);
	
	if(showLinkElement != null && hideLinkElement != null && readMoreContentElement != null) {
		showLinkElement.style.display = 'block';
		hideLinkElement.style.display = 'none';
		if(showContent) {
			readMoreContentElement.style.display = 'block';
		} else {
			readMoreContentElement.style.display = 'none';
		}
	}
	
}