﻿var subMenu = new Array();
var subsubMenu = new Array();
var hovering = false;

var defaultSecs = 3;
var secs = defaultSecs;
//var timerID = null;
var timerID = 0;
var timerRunning = false;
var delay = 1000;


function menu_addToList(elsub, elsubsub)
{
    var es = document.getElementById(elsub);
    subMenu.push(es);
    var ess = document.getElementById(elsubsub)
    subsubMenu.push(ess);
    ess.style.left = (es.offsetLeft + 317) + 'px';
}

function showSub(elsub, elsubsub)
{
    hideAll();
    if (countChildElements(elsub,elsubsub) > 1)
    {
        var ess = document.getElementById(elsubsub);
        ess.style.display = 'block';
        StartTheTimer();
    }
    //var es = document.getElementById(elsub);
    //alert(es.style.height);
    //es.style.height = (ess.offsetHeight + 20) + 'px';    
   // alert(es.style.height);
}

function startHover()
{
    hovering = true;
}

function endHover(e, elsubsub)
{
    var ess = document.getElementById(elsubsub);
    //
    hovering = false;
  //  alert("endHover");   
    if (isMouseLeaveOrEnter(e, ess)) 
    { 
    //alert("endHover");
        hideAll();
    }
    StopTheClock();
}

function hideAll()
{
    for (var i=0; i<subsubMenu.length; i++)
    {
        subsubMenu[i].style.display = 'none';
    }
    StopTheClock();
    hovering = false;
}

function hideSub(e, elsub, elsubsub, direct)
{
    //alert('show el ' + el);
    var ess = document.getElementById(elsubsub);
    if (!e) var e = window.event;
    //ess.style.visibility = 'hidden';
    if (isMouseLeaveOrEnter(e, ess)) 
    {
    
        if (direct)
        {
            ess.style.display = 'none';
        }
        else
        {
            InitializeTimer();
        }
    }
}

function isMouseLeaveOrEnter(e, handler)
{		
    if (e.type != 'mouseout' && e.type != 'mouseover') return false;
	var reltg = e.relatedTarget ? e.relatedTarget :
	e.type == 'mouseout' ? e.toElement : e.fromElement;
	while (reltg && reltg != handler) reltg = reltg.parentNode;
	return (reltg != handler);
}



function InitializeTimer()
{
    // Set the length of the timer, in seconds
    secs = defaultSecs;
    StopTheClock();
    StartTheTimer();
}

function StopTheClock()
{
    if(timerRunning)
    {
        clearTimeout(timerID);
      //  document.getElementById('testDiv').innerHTML += 'clearTimeOut ' + timerID + '<br>';
        //alert('timerID stop ' + timerID);
        secs = defaultSecs;
    }
    timerRunning = false;
}

function StartTheTimer()
{
    //document.getElementById('testDiv').innerHTML += 'check ' + timerID + '<br>';
    if (secs<=0)
    {
        StopTheClock()
        // Here's where you put something useful that's
        // supposed to happen after the allotted time.
        // For example, you could display a message:
        //alert("You have just wasted 10 seconds of your life.")
        if (!hovering)
        {
            hideAll();
        }
    }
    else
    {
       // alert("ur life." + self.status + secs)
        self.status = secs
        secs = secs - 1
        timerRunning = true
        clearTimeout(timerID);
        //document.getElementById('testDiv').innerHTML += 'clearTimeOut ' + timerID + '<br>';
        timerID = self.setTimeout('StartTheTimer()', 1000)
        //document.getElementById('testDiv').innerHTML += 'setTimeOut ' + timerID + '<br>';
        //alert('timerID start ' + timerID);
    }
}

function countChildElements(elsub, elsubsub)
{
     //var parent = document.getElementById(elsub);
     //var childCount = parent.getElementsByTagName(elsubsub).length;
     return  document.getElementById(elsubsub).getElementsByTagName('*').length;
     //alert(childCount);

}