/*
====================================================

  http://www.GlobalWebCart.com - Version 2

  Copyright 2008 Internet Specialty Services, LLC.

  ANY UN-AUTHORIZED USE OR DISTRIBUTION OF THIS
  FILE OR IT'S CONTENTS IS STRICTLY PROHIBITED

====================================================
*/

//Based On SuckerTree Vertical Menu 1.1 (Nov 8th, 06)
//By Dynamic Drive: http://www.dynamicdrive.com/style/


var iDelay = 200;

function delayDisappear(oEle){
	oEle.getElementsByTagName("ul")[0].style.display="none"
}

function setSth(oEle){
	oEle.style.visibility="visible"
	oEle.style.display="none"
}
    
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
	if(typeof fRef == 'function'){
		var argu = Array.prototype.slice.call(arguments,2);
		var f = (function(){ fRef.apply(null, argu); });
		return _st(f, mDelay);
		}
	return _st(fRef,mDelay);
}


function sMenusV(){
	var ldObj=document.getElementById("LeftDirectory");
	if (!ldObj) {return;}

	var menuids = ldObj.getElementsByTagName("ul");

	var oTimeout = new Array();
	var iMaxCount = 1;


	for (var i=0; i<=menuids.length; i++) {
		if (document.getElementById("DirTreeExpand_"+i)!=undefined) {
			var ultags=document.getElementById("DirTreeExpand_"+i).getElementsByTagName("ul")
			//var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul")
			for (var t=0; t<ultags.length; t++){
				ultags[t].parentNode.getElementsByTagName("a")[0].className="subfolderstyle"
				if (ultags[t].parentNode.parentNode.id=="DirTreeExpand_"+i) //if this is a first level submenu
					ultags[t].style.left=ultags[t].parentNode.offsetWidth-1+"px" //dynamically position first level submenus to be width of main menu item
				else //else if this is a sub level submenu (ul)
					ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth-1+"px" //position menu to the right of menu item that activated it
				
                ultags[t].style.position = "absolute";
				//ultags[t].parentNode.style.position = "absolute";
				//maxZIndex = getMaxZIndex(ultags[t]) + 1;
				/*var oObj = ultags[t];
				while (oObj && oObj.id != ""){
					oObj.style.zIndex = maxZIndex + 1;
					oObj = oObj.parentNode;
				}*/
				//ultags[t].style.zIndex = maxZIndex + 1;
				//ultags[t].parentNode.style.zIndex = maxZIndex + 1;
				ultags[t].style.zIndex = 998;
				ultags[t].parentNode.style.zIndex = 998;
				
				ultags[t].parentNode.onmouseover=function(){


      this.getElementsByTagName("ul")[0].style.display="block";
      this.getElementsByTagName("ul")[0].style.left=(this.offsetWidth-1)+"px";

					this.getElementsByTagName("ul")[0].style.display="block";
					//this.getElementsByTagName("ul")[0].style.position = "absolute";
					//if (typeof(maxZIndex) != "undefined"){
					//	maxZIndex ++;
					//}else{
						//maxZIndex = getMaxZIndex(this.getElementsByTagName("ul")[0]) + 1;
					//}
					//alert(maxZIndex);
					//this.getElementsByTagName("ul")[0].style.zIndex = maxZIndex.toString();
					var oEle = this;
					//debugger
					while (oEle && oEle.nodeName != "#document" && oEle != oEle.parentNode){
					    if (oEle.getAttribute("timeoutObj")){
					        //alert('get: ' + oEle.getAttribute("timeoutObj"));
					        window.clearTimeout(oTimeout[parseInt(oEle.getAttribute("timeoutObj"))]);
					    }
					    oEle = oEle.parentNode;
					}
				}
 
				ultags[t].parentNode.onmouseout=function(){
				    oTimeout[iMaxCount] = window.setTimeout(delayDisappear,iDelay, this);
				    this.setAttribute("timeoutObj", iMaxCount);
				    iMaxCount++;
				}
			}

			for (var t=ultags.length-1; t>-1; t--){ //loop through all sub menus again, and use "display:none" to hide menus (to prevent possible page scrollbars
				ultags[t].style.visibility="visible"
				ultags[t].style.display="none"
				}
		}
	}
}

function getMaxZIndex(oObj){
	var oAllObjects = document.all ? document.all : document.getElementsByTagName("*");
	var iMaxZIndex = 1;
	for(var i = 0;i < oAllObjects.length;i++){
		var p = getPosition(oAllObjects[i]);
		var e = getPosition(oObj);
		if (e.left + e.width > p.left && e.left < p.left + p.width &&
		    e.top + e.height > p.top && e.top < p.top + p.height) {
		    var sZIndex = oAllObjects[i].style.zIndex;
			if (sZIndex.length > 0){
				var iZIndex = parseInt(sZIndex);
				if (iZIndex > iMaxZIndex){
					iMaxZIndex = iZIndex;
				}
			}
		}
	}
	
	return iMaxZIndex;
}

function sTree_getPosition(el){
	var e = el.offsetParent, x = el.offsetLeft, y = el.offsetTop;
	while(e){
		x += e.offsetLeft;
		y += e.offsetTop;
		e = e.offsetParent;
	}
	return{
		"left": x,
		"top": y,
		"width": el.offsetWidth,
		"height": el.offsetHeight
	}
}
