var logging = false;

var topmenuItems = new Array();

var pendingRevealId		= '';
var pendingReveal		= null;
var pendingRestoreId	= '';
var pendingRestore		= null;
var currentPulldownId	= '';
var section				= '';
var noPulldowns			= false;

function disablePulldowns() {
	noPulldowns = true;
}

function getQueryStringParams() {
	var params = new Array;
	
	var queryString = String (document.location).split ('?')[1];
	if (!queryString) return false;
	
	var pairs = queryString.split('&');
	
	for (var i = 0 ; i < pairs.length; i++) {
		var kv = pairs[i].split('=');
		params[kv[0]] = kv[1];
	}
	
	return params;
}

function findPos(obj) {
  var curleft = curtop = 0;
  if (obj.offsetParent) {
	 curleft = obj.offsetLeft
	 curtop = obj.offsetTop
	 while (obj = obj.offsetParent) {
		curleft += obj.offsetLeft
		curtop += obj.offsetTop
	 }
  }
  return [curleft,curtop];
}

function topMenuItem(id, off, on, over, shadow, shiftleft, dropdownshift, direction, alt, url) {
	// preload the images
	// var img_on = new Image(); img_on.src = '/newmenu/' + on;
	// var img_off = new Image(); img_off.src = '/newmenu/' + off;
	var img_over = new Image(); img_over.src = '/newmenu/' + over;
	var img_shadow = new Image(); img_shadow.src = '/newmenu/' + shadow;
	
	this.id 		= id;
	this.off 		= off;
	this.on 		= on;
	this.over 		= over;
	this.shadow 	= shadow;
	this.direction 	= direction;
	this.alt 		= alt;
	this.url 		= url;
	this.shiftleft	= shiftleft;
	this.dropdownshift	= dropdownshift;
	this.overImg 	= null;
	this.isOpen 	= false;
	this.openIt		= false;
	this.closeIt	= false;
	this.timeout    = 0;
}
	
function openIt(id) {
	if(noPulldowns) { return; }
	
	var event = openIt.caller.arguments[0] || window.event ;
	var theElement = event.srcElement || event.target;
	var theElementType = theElement.tagName;

	log('openIt ' + id + ',' + theElementType + ',' + theElement.id);
	item = findMenuItem(id);
	if(item) {
		item.openIt  = true;
		item.closeIt = false;
		var d = new Date();
		item.timeout = d.getTime() + 100;
	}
}

function closeIt(id) {
	if(noPulldowns) { return; }

	var event = closeIt.caller.arguments[0] || window.event ;
	var theElement = event.srcElement || event.target;
	var theElementType = theElement.tagName;

	log('closeIt ' + id + ',' + theElementType + ',' + theElement.id);
	item = findMenuItem(id);
	if(item) {
		item.openIt  = false;
		item.closeIt = true;
		var d = new Date();
		item.timeout = d.getTime() + 100;
	}
}
	
function findMenuItem(id) {
	for(var i = 0; i < topmenuItems.length; i++) {
		if(topmenuItems[i].id == id) {
			return topmenuItems[i];
		}
	}
	return undefined;
}

function revealMenu(id) {
	log('reveal ' + id);
	var item = findMenuItem(id);
	
	if(item) {
		if(!item.isOpen) {			
			var img = document.getElementById(id);
			var pos = findPos(img);
			var shiftleft = item.shiftleft;
			
			if(section == item.id) { shiftleft = 0; }
			
			var overImg = document.createElement('div'); 
			overImg.setAttribute('id',id + '-over');
			overImg.style.position	= 'absolute';
			overImg.style.zIndex	= img.style.zIndex + 1;
			overImg.style.left		= (pos[0] + shiftleft) + "px";
			overImg.style.top   	= pos[1] + "px";
			overImg.setAttribute('onmouseover', 'openIt(\'' + item.id + '\')');
			overImg.setAttribute('onmouseout', 'closeIt(\'' + item.id + '\')');
			overImg.setAttribute('onclick','document.location.href="' + item.url + '?navbar=' + section + '"');
			overImg.innerHTML = '<a href="' + item.url + '?navbar=' + section + '"><img src="/newmenu/' + item.over + '" border=0></a>';
			
			// ie
			overImg.onmouseover = function() { openIt(item.id); }
			overImg.onmouseout = function() { closeIt(item.id); }
			overImg.onclick = function() { document.location.href=item.url; }
			
			document.body.appendChild(overImg);
			
			item.overImg = overImg;
			item.isOpen  = true;
			
			var dropdown = document.getElementById('dropdown-' + item.id);
			if(dropdown) {
				var menuDiv = document.getElementById('topmenu');

				var menuPos = findPos(menuDiv);

				if(item.direction == 'right') {
					dropdown.style.left = (pos[0] + item.dropdownshift - menuPos[0]) + "px";
				}
				else {
					dropdown.style.left = (pos[0] + img.width - 428  + item.dropdownshift - menuPos[0]) + "px";
				}
				
				var shadow = document.getElementById('shadow-' + item.id);
				if(shadow) {
					shadow.innerHTML = '<img src="/newmenu/' + item.shadow + '" border=0>';
				}
				else {
					alert('could not find shadow_' + item.id);
				}
				
				dropdown.style.zIndex  = 10000;


				if(is_ie6) {
					// var mask = document.getElementById('mask-' + item.id)
					var mask = document.createElement('iframe');
					if(mask) {
						mask.style.display 		= 'block';
						mask.style.position		= 'absolute';
						mask.style.top			= 0;
						mask.style.zIndex 		= -1;
						mask.style.filter 		= 'mask();';
						mask.style.left 		= 0;
						mask.style.width  		= '430px';
						mask.style.height 		= '1000px';
						mask.frameBorder		= 0;
						dropdown.appendChild(mask);
					}
				}
				
				dropdown.style.display = '';
				
				currentPulldownId = id;
			}
			else {
				log('could not find the dropdown menu ' + 'dropdown-' + item.id);
			}
		}
	}
	else {
		alert('reveal could not find ' + id);
	}
}

function restore(id) {
	log('restore ' + id);
	var item = findMenuItem(id);
	
	if(item) {
			if(item.isOpen) {
			item.overImg.parentNode.removeChild(item.overImg);
			item.overImg = null;
				item.isOpen  = false;

			var dropdown = document.getElementById('dropdown-' + item.id);
			if(dropdown) {
				dropdown.style.display 	= 'none';
			}
			else {
				log('could not find the dropdown window ' + 'dropdown-' + item.id);
			}
		}
	}
	else {
		alert('restore could not find ' + id);
	}
}

function drawTopMenu() {
	log('drawTopMenu');
	
	var buffer = '';
	
	for(var i = 0; i < topmenuItems.length; i++) {
		var src;
		var noSpacer = false;
		if(i < topmenuItems.length - 1) {
			if(section == topmenuItems[i + 1].id) {
				noSpacer=true;
			}
		}
		
		if(section == topmenuItems[i].id) {
			src = topmenuItems[i].on;
			noSpacer=true;
		}
		else {
			src = topmenuItems[i].off;
		}
		buffer += '<td>';
		buffer += '<a href="' + topmenuItems[i].url + '?navbar=' + section + '">';
		buffer += '<img id="' + topmenuItems[i].id + '"';
		buffer += ' src="/newmenu/' + src + '"';
		buffer += ' onMouseOver="openIt(\'' + topmenuItems[i].id + '\');"';
		buffer += ' onMouseOut="closeIt(\'' + topmenuItems[i].id + '\');"';
		buffer += ' alt="' + topmenuItems[i].alt + '"';
		buffer += ' border="0"';
		buffer += '></a>';
		buffer += '</td>';
		
		if(i < topmenuItems.length - 1 && !noSpacer) {
			buffer += '<td><img src="/newmenu/nav_separator.png" width=1 height=26 border=0></td>';
		}
	}
	
	var div = document.getElementById('topmenu');
	if(div) {
		div.innerHTML = '<table cellpadding=0 cellspacing=0 border=0><tr>' + buffer + '</tr></table>';
	}
	else {
		alert('could not find topmenu div');
	}

}

function findMenuItem(id) {
	for(var i = 0; i < topmenuItems.length; i++) {
		if(topmenuItems[i].id == id) {
			return topmenuItems[i];
		}
	}
	return undefined;
}

function doMenus() {
	var d = new Date();
	var now = d.getTime();

	for(var i = 0; i < topmenuItems.length; i++) {
		if(topmenuItems[i].timeout < now) {
			if(topmenuItems[i].closeIt) {
				if(topmenuItems[i].isOpen) {
					restore(topmenuItems[i].id);
				}
				topmenuItems[i].closeIt = false;
			}
			if(topmenuItems[i].openIt) {
				if(!topmenuItems[i].isOpen) {
					revealMenu(topmenuItems[i].id);
				}
				topmenuItems[i].openIt = false;
			}
		}
	}
	window.setTimeout("doMenus()", 100);
}

function log(message) {
	if(logging) {
		div = document.getElementById('log');
		if(div) {
			div.innerHTML =  message + '<br>' + div.innerHTML;
		}
	}
}

window.setTimeout("doMenus()", 100);

/*
var page = document.location.href;
if(page.match(/\/content\/activitiesandevents\//)) {
	section = 'activities';
}
if(page.match(/\/content\/events\//)) {
	section = 'activities';
}
if(page.match(/\/content\/toys-gifts-gear\//)) {
	section = 'toys';
}
if(page.match(/\/content\/expert-advice\//)) {
	section = 'ea';
}
if(page.match(/\/content\/food\//)) {
	section = 'food';
}
if(page.match(/\/content\/travel\//)) {
	section = 'vacations';
}
if(page.match(/\/gptv\//)) {
	section = 'video';
}
if(page.match(/\/groups\//)) {
	section = 'groups';
}
if(page.match(/\/tools\//)) {
	section = 'tools';
}
if(page.match(/\/tools\/recipefinder\//)) {
	section = 'food';
}
if(page.match(/\/tools\/toyfinder\//)) {
	section = 'toys';
}
if(page.match(/\/home\/index.html/)) {
	section = 'home';
}
*/

var item = null;

item = new topMenuItem('menu-activities','activities_off.png','activities_on.png','activities_drop.png','activities_shadow.png',0,0,'right','Activities & Events','/gp/content/activitiesandevents/index.html');
topmenuItems.push(item);

item = new topMenuItem('menu-toys','tg_off.png','tg_on.png','tg_drop.png','tg_shadow.png',-1,-1,'right','Toys & Gifts','/gp/content/toys-gifts-gear/index.html');
topmenuItems.push(item);

item = new topMenuItem('menu-ea','ea_off.png','ea_on.png','ea_drop.png','ea_shadow.png',-1,-1,'right','Expert Advice','/gp/content/expert-advice/index.html');
topmenuItems.push(item);

item = new topMenuItem('menu-food','food_off.png','food_on.png','food_drop.png','food_shadow.png',-1,-1,'right','Food','/gp/content/food/index.html');
topmenuItems.push(item);

item = new topMenuItem('menu-vacations','vacations_off.png','vacations_on.png','vacations_drop.png','vacations_shadow.png',-1,-1,'left','Food','/gp/content/travel/index.html');
topmenuItems.push(item);

item = new topMenuItem('menu-video','video_off.png','video_on.png','video_drop.png','video_shadow.png',-1,-1,'left','Video','/gp/gptv/index.html');
topmenuItems.push(item);

item = new topMenuItem('menu-tools','tools_off.png','tools_on.png','tools_drop.png','tools_shadow.png',-1,-1,'left','Tools','/gp/tools/index.html');
topmenuItems.push(item);

item = new topMenuItem('menu-groups','groups_off.png','groups_on.png','groups_drop.png','groups_shadow.png',-1,-2,'left','Groups','/gp/groups/index/html');
topmenuItems.push(item);
