﻿var dynMenuNamePrefix = 'DynamicSubMenu';
var __hoverColor = 'eeeeee';
var __unhoverColor ='';
var __menuInterval;
var __disappearAfter = 250;
var __addX = 149; 
var __addY = 0;
var __LasthoverItem;

var ie, nn4, dom; 
var nn4 = (document.layers) ? true : false;
var ie = (document.all) ? true : false;
var dom = (document.getElementById && !document.all) ? true : false;
var plat = navigator.platform.toLowerCase(); 
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)); 
var is_nav = (agt.indexOf('mozilla') != -1); 
var is_firefox = (agt.indexOf('firefox') != -1); 
var is_safari = (agt.indexOf('safari') != -1); 
var is_mac = (plat.indexOf('mac') != -1);
var is_windows = (plat.indexOf('win32') != -1);

if (is_mac && is_nav && !is_safari) {__addY = 130;}
if (is_mac && is_safari) {__addX = __addX + 0;}
if (is_mac && is_safari) {__addY = 130;}
if (is_firefox) {__addX = __addX - 1;}

function setLyr(item,lyr) { 
    var newX = findPosX(item) + __addX; 
    var newY = findPosY(item) - __addY; 
    var x = new FindDiv(lyr); 
    if(nn4) { 
        var layer = FindDiv(lyr); 
        layer.top = newY; 
        layer.left = newX; 
    }else{ 
        x.style.top = newY + 'px'; 
        x.style.left = newX + 'px'; 
    }
} 

function findPosX(item) { 
    var curleft = 0; 
    if (item.offsetParent) { 
        while (item.offsetParent) { 
            curleft += item.offsetLeft 
            item = item.offsetParent; 
        } 
    }else if (item.x) { 
        curleft += item.x; 
    } 
    return curleft; 
} 

function findPosY(item) { 
    var curtop = 0; 
    if (item.offsetParent) { 
        while (item.offsetParent) { 
            curtop += item.offsetTop 
            item = item.offsetParent; 
        }
    }else if (item.y) { 
        curtop += item.y;
    } 
    return curtop; 
} 

function MenuHover(item, key) {
    HideAll();
    MenuClearInterval();
    
    if ((__LasthoverItem != null) && (__LasthoverItem.getAttribute("isselected") == 'False'))
        __LasthoverItem.style.backgroundColor = __unhoverColor;
    __LasthoverItem = item;
       
    if (item.getAttribute("isselected") == 'False') {
        item.style.background = __hoverColor; 
        var subname = dynMenuNamePrefix + key;
        this.obj = FindDiv(dynMenuNamePrefix + key);
        
        if (this.obj != null) {
            ShowDynamic(this.obj);
            setLyr(item, subname);
        }
    }
}

function MenuUnhover(item, key) {
    __menuInterval = window.setInterval("HideAll()", __disappearAfter);
}

function DynMenuHover(item, key) {
    MenuClearInterval();
    item.style.background = __hoverColor;
}

function DynMenuUnhover(item, key) {
    item.style.backgroundColor = __unhoverColor;
    
    var subname = dynMenuNamePrefix + key;
    this.obj = FindDiv(dynMenuNamePrefix + key);
    __menuInterval = window.setInterval("HideAll()", __disappearAfter);
}

function FindDiv(name) {
    if (document.getElementById) { 
       this.obj = document.getElementById(name);       
    } else if (document.all) { 
       this.obj = document.all[name]; 
    } else if (document.layers) { 
        if (document.layers[name]) { 
            this.obj = document.layers[name];
        }
    } 
	return this.obj; 
}

function FindTR(name) {
    if (document.getElementById) { 
       this.obj = document.getElementById(name);       
    } else if (document.all) { 
       this.obj = document.all[name]; 
    }
	return this.obj; 
}

function ShowDynamic(item) {
    if (nn4) {
        var state = 1; 
        var obj = (document.layers ? document.layers[item.getAttribute("id")] : (document.getElementById ? document.getElementById(item.getAttribute("id")).style : document.all[item.getAttribute("id")].style)); 
        obj.visibility = document.layers ? (state ? "show" : "hide") : (state ? "visible" : "hidden"); 
    }else{
        item.style.visibility = "visible";
        item.style.display = "inline";
    }
}

function HideDynamic(item) {  
    item.style.visibility = "hidden";
    item.style.display = "none";
}

function HideAll() {
    if ((__LasthoverItem != null) && (__LasthoverItem.getAttribute("isselected") == 'False'))
        __LasthoverItem.style.backgroundColor = __unhoverColor;
        
    var divCollection = document.getElementsByTagName("div");
    
	for (var i=0; i < divCollection.length; i++)
	{
		var elementToScan = divCollection[i];
		if (elementToScan.getAttribute("id") != null) {
		    if (elementToScan.getAttribute("id").indexOf(dynMenuNamePrefix) >= 0)
		    {
    	    	divCollection[i].style.visibility = 'hidden'; 
		    }
		}
	}
} 

function MenuClearInterval() {
    if (__menuInterval) {
        window.clearInterval(__menuInterval);
    }
}