var DDSPEED = 10;
var DDTIMER = 15;

// main function to handle the mouse events //
function ddMenu(id,d){
  var h = document.getElementById(id + '-ddheader');
  var c = document.getElementById(id + '-ddcontent');
	if (typeof c == 'object' && c == null ) return;
	clearInterval(c.timer);
	if(d == 1){
		clearTimeout(h.timer);
		if(c.maxh && c.maxh <= c.offsetHeight){return}
    else if(!c.maxh){
		c.style.display = 'block';
		c.style.height = 'auto';
		c.maxh = c.offsetHeight;
		c.style.height = '0px';
    }
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
  }else{
    h.timer = setTimeout(function(){ddCollapse(c)},50);
  }
}

// collapse the menu //
function ddCollapse(c){
  c.timer = setInterval(function(){ddSlide(c,-1)},DDTIMER);
}

// cancel the collapse if a user rolls over the dropdown //
function cancelHide(id){
  var h = document.getElementById(id + '-ddheader');
  var c = document.getElementById(id + '-ddcontent');
  clearTimeout(h.timer);
  clearInterval(c.timer);
  if(c.offsetHeight < c.maxh){
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
  }
}

// incrementally expand/contract the dropdown and change the opacity //
function ddSlide(c,d){
  var currh = c.offsetHeight;
  var dist;
  if(d == 1){
    dist = (Math.round((c.maxh - currh) / DDSPEED));
  }else{
    dist = (Math.round(currh / DDSPEED));
  }
  if(dist <= 1 && d == 1){
    dist = 1;
  }
  c.style.height = currh + (dist * d) + 'px';
  c.style.opacity = currh / c.maxh;
  c.style.filter = 'alpha(opacity=' + (currh * 100 / c.maxh) + ')';
  if((currh < 2 && d != 1) || (currh > (c.maxh - 2) && d == 1)){
    clearInterval(c.timer);
  }
}

$(document).ready(function(){
	$('.dropdownMenu').css('display', 'none');
	var content = '';
	var subFlag = true;
	var i = 0;
	$('.dropdownMenu >li').each(function(){
		i++;
		subFlag = true;
		content += '<dl class="dropdown">\n';
		var aTag = $(this).find('a');
		content += '<dt id="' + i + '-ddheader" onmouseover="ddMenu(' + i + ',1)" onmouseout="ddMenu(' + i + ',-1)" onclick="goPage(\'' + aTag.attr('href') + '\')">' + aTag.html() + '</dt>\n';
		var className = '';
		$(this).find('ul li').each(function(){
			if (subFlag){
				content += '<dd id="' + i + '-ddcontent" onmouseover="cancelHide(' + i + ')" onmouseout="ddMenu(' + i + ',-1)">\n';
				content += '<ul id="dropdown-ul"><p style="margin:1px;">&nbsp;</p>';
				subFlag = false;
			}
				var subA = $(this).find('a');
				content += '<li><a href="' + subA.attr('href') + '" >' + subA.html() + '</a></li>\n';
		})
		if (subFlag == false){
			content += '</li></ul><div class="dropdown-bottom"></div>';
		}
		content += '</dd>\n';
		content += '</dl>\n';
	})
	$('#header-nav').html(content);
	$('.dropdown li')
		.alternate( {
			odd : 'oddMenu'
			,even : 'evenMenu'
			,hover : false
		});
});

function goPage(url){
	window.open(url, '_self');
}
