﻿
function addEvent(elm, evType, fn, useCapture) {
    
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else {
		elm['on' + evType] = fn;
	}
}

function menu_init(menu)
{
    var li = $(menu);
    var uls = li.getElementsByTagName("ul");
    
    for(var it=0,len=uls.length; it < len; it++)
    {
        var ul = uls[it];
        menu_closertimer(ul);
        addEvent(li, 'click', function(){ ul.open(); }, true);
    }
}

function menu_closertimer(box)
{   
    box.open = function() {
        if(box.style.display=="none") new Effect.BlindRight(box,{duration:1});
        box.resetTimer();
    }
    
    box.resetTimer = function(stop) {
        if(box._closertimer) { 
            clearTimeout(box._closertimer);
            box._closertimer = null;
        }
        
        if(!stop)    
            box._closertimer = setTimeout(function(){box.close();} ,3000);
    }
    
    box.close = function(time) {
        
        box.resetTimer(true);
    
        
        if(time == 0)
            Element.hide(box);
        else
            new Effect.BlindLeft(box,{duration:1});
    }
    
    Event.observe(box, 'mouseover', function(event) {
        Event.stop(event);
        box.resetTimer(true);
    });
    
    Event.observe(box, 'mouseout', function(event) {
        Event.stop(event);
        var sender = Event.findElement(event,'ul');
        if(box == sender)
            box.resetTimer();
    });
}

