﻿var SPEED = 100;
var FORGIVENESS = 250;
var POS_X = -2;
var POS_Y = -2;

window.addEvent('domready', function(){
});

function initMenus()
{
    $$('li.tml-menu').each(function(item){
        setupMenu(item);
    });
    
	$$('li.tml-menu').addEvents({
		mouseenter: function(){
		    var ul = this.childNodes[0].childNodes[0];
		    expandMenu(ul);
//		    setupMenu(this);
		},
		mouseleave: function(){
		    var ul = this.childNodes[0].childNodes[0];
		    setTimeout(function() { collapseMenu(ul); }, FORGIVENESS);
		}
	});
	
	$$('a.tml-sub-menu-item').addEvents({
		mouseenter: function(){
		    this.set('tween', {
    	        duration: 300
		    }).tween('color', '#FFF');
		},
		mouseleave: function(){
		    this.set('tween', {
		        duration: 300
		    }).tween('color', '#09367A');
		}
	});
}

function Menu(div, ul, height)
{
    ul.height = height;
    ul.div = div;
    ul.busy = false;
}

function setupMenu(li)
{
    var div = li.childNodes[0];
    var ul = div.childNodes[0];
    var height = gH(ul);
    var menu = new Menu(div, ul, height, true)

    if (div.style.top == '')    
        positionMenu(li, div);
        
    //expandMenu(ul);
}

function positionMenu(li, div)
{
    var x = gL(li);
    var y;
    var h = gH(li);
    var oX = POS_X;
    var oY = POS_Y;
    var pn = $('primary-nav');
    var pnX = gL(pn);
    var pnY = gT(pn);

    x -= pnX;
    x += oX;
    
    if (isIE())
    {
        y = 0;
        y += h;
        y += oY;
    }
    else
    {
        y = gT(div) - pnY;
        y += oY;
    }

    sT(div, y);
    sL(div, x);
}

function expandMenu(ul)
{
    var height = ul.height;
    var div = ul.div;

    if (!ul.busy && (gH(div) == 0))
    {
        ul.busy = true;

        var e1 = new Fx.Morph(ul, {duration: SPEED, transition: Fx.Transitions.Sine.easeOut}).start({'margin-top': [0-height, 0]});
        var e2 = new Fx.Morph(div, {duration: SPEED, transition: Fx.Transitions.Sine.easeOut}).start({'height': [0, height]}).chain(function() { ul.busy=false });
    }
}

function collapseMenu(ul)
{
    var height = ul.height;
    var div = ul.div;

    if (!ul.busy && (gH(div) == height))
    {
        ul.busy = true;
        
        var e1 = new Fx.Morph(ul, {duration: SPEED, transition: Fx.Transitions.Sine.easeOut}).start({'margin-top': [0, 0-height]});
        var e2 = new Fx.Morph(div, {duration: SPEED, transition: Fx.Transitions.Sine.easeOut}).start({'height': [height, 0]}).chain(function() {ul.busy=false});
    }
}