if(!window.Hersheys) { window.Hersheys = new Object(); }
Hersheys.buildMenu = function() 
{	
	Window.disableImageCache();
	var menuTemplate =
	'<div id="dropdown">' +
		'<% menus.each(function(menu) { %>' +	
			'<div class="menu">' +
				'<a href="<%= menu.url ? encode(menu.url) : "javascript:void(0);" %>">' +
					'<img class="off" alt="<%= menu.title %>" ' +
						'src="<%= (window.location.pathname.indexOf(menu.url) == 0) ? ' +
						'menu.on_image : menu.off_image %>" />' +
					'<img class="on" src="<%= menu.on_image %>" alt="<%= menu.title %>" />' +
				'</a>' +
				'<% if(menu.menus && menu.menus.length > 0) { %>' +
					'<div class="submenu_container">' +
						'<div class="smc_inner1">' +
							'<div class="smc_inner2">' +
								'<% menu.menus.each(function(submenu) { %>' +
									'<% var has_children = (submenu.items && submenu.items.length > 0); %>' +
									'<div class="submenu<%= has_children ? " has_children" : "" %>">' +
										'<a class="submenu_title" href="<%= submenu.url ? encode(submenu.url) : "javascript:void(0);" %>">' +
											'<span class="smt_inner1">' +
												'<span class="smt_inner2">' +
													'<span class="title_cap"><%= submenu.title %></span>' + 
												'</span>' +
											'</span>' +
										'</a>' +
										'<% if(submenu.items && submenu.items.length > 0) { %>' +
											'<div class="items">' +
												'<div class="items_inner1">' +
													'<% submenu.items.each(function(item) { %>' +
														'<div class="menu_item">' +
															'<a href="<%= encode(item.url) %>"><%= item.title %></a>' +
														'</div>' +
													'<% }); %>' +
												'</div>' +
											'</div>' +
										'<% } %>' +
									'</div>' +
								'<% }); %>' +
							'</div>' +
						'</div>' +
					'</div>' +
				'<% } %>' +
			'</div>' +
		'<% }); %>' +
	'</div>';	
	
	

	document.write(new Bumble(menuTemplate).execute({ menus: Hersheys.menuData }));
                        
	function menuOn(menu)
	{
		menu.addClass("menu_hover");
	}
	
	function menuOff(menu)
	{		
		menu.removeClass("menu_hover");
	}
	
	function submenuOn(submenu)
	{
		submenu.parent.getElement(".smc_inner2").style.height = null;	

		if(submenu.items)
		{
			submenu.addClass("submenu_hover");
			submenu.parent.addClass("expanded");

			if(submenu.itemHeight > submenu.parent.height)
			{
				submenu.parent.getElement(".smc_inner2").style.height = (submenu.itemHeight - 15) + "px";				
 				//menu.submenus[menu.submenus.length-1].getElement(".smt_inner2").style.backgroundPosition = null;
			}
		}
		else
		{
			submenu.parent.getElement(".smc_inner2").style.height = null;	
			//submenu.parent.repairHighlights();
		}
	}
	
	function submenuOff(submenu)
	{
		submenu.removeClass("submenu_hover");
		submenu.parent.removeClass("expanded");
	}
	
	$$("#dropdown .menu").each(function(menu)
	{
		menu.onmouseover = menuOn.pass(menu);
		menu.onmouseout = menuOff.pass(menu);
		
		var containerBody = menu.getElement(".submenu_container");
		if(containerBody)
		{
			var containerTop = containerBody.getPosition().top;
			menu.height = containerBody.getPosition().height;
		}
		
		var submenus = menu.submenus = menu.getElements(".submenu");
		submenus.each(function(submenu)
		{
			submenu.items = submenu.getElement(".items");
			submenu.parent = menu;
			submenu.onmouseover = submenuOn.pass(submenu);
			submenu.onmouseout = submenuOff.pass(submenu);
			
			if(submenu.items)
			{
				submenu.itemHeight = submenu.items.getPosition().height;
				
				var itemsTop = submenu.items.getPosition().top;
				submenu.items.style.top = -(itemsTop - containerTop) + "px";				
				if(submenu.itemHeight < menu.height)
				{
					submenu.items.style.height = menu.height + "px";
				}
			}
		});
		
		// fix the background position of the first submenus
		menu.repairHighlights = function()
		{
			if(menu.submenus && menu.submenus.length > 0)
			{
				menu.submenus[0].getElement(".smt_inner1").style.backgroundPosition = "-500px -310px";		
				var liner2 = menu.submenus[menu.submenus.length-1].getElement(".smt_inner2");
				liner2.style.backgroundPosition = "-500px " + ((liner2.getPosition().height - 338) + 12) + "px";
			}
		};
		
		menu.repairHighlights();
	});
};





/*** Send to a Friend ***/


Window.onDomReady(function()
{
	var send_link = $E(".send_to_friend a");
	if(send_link) 
	{ 
		send_link.href = "javascript:void(0);";
		send_link.onclick = function() { Hersheys.openSendPopup(); return false; };		
		var sendContainer = $("send_container");
		sendContainer.link = send_link;
		sendContainer.style.display = "none";
		
		$$("#send_container input").each(function(input) 
		{ 
			input.originalValue = input.value;
			input.onfocus = function()
			{
				if(input.value == input.originalValue)
				{
					input.removeClass("error");
					input.value = "";
				}
			};
			
			input.onblur = function()
			{
				if(input.value.trim() == "")
				{					
					input.value = input.originalValue;
				}
			};
		});
		
		$("send_form").onsubmit = function()
		{
			Hersheys.sendToFriend();
			return false;
		}
	}
});

Hersheys.openSendPopup = function()
{
	var container = $("send_container");
	container.style.display = "block";	
	container.addClass("form");
	container.removeClass("opt_out");
	container.getElement("form h2").setHTML("Send to a Friend");

	var linkPosition = container.link.getPosition();
	container.style.left = (linkPosition.left + linkPosition.width) + "px";
	container.style.top = linkPosition.top + "px";
};

Hersheys.closeSendPopup = function()
{
	$$("#send_container input").each(function(input)
	{ 
		input.value = input.originalValue;
		input.removeClass("error");		
	});
	
	var container = $("send_container");
	container.style.display = "none";
};

Hersheys.sendToFriend = function()
{
	var yourName = $("send_your_name");
	var yourEmail = $("send_your_email");
	var list = $("send_friends_email");
	var incomplete = false;
	
	yourName.removeClass("error");
	yourEmail.removeClass("error");
	list.removeClass("error");
	
	var url = $("send_form").action + 
		"?fromName=" + 
		(yourName.value.trim() == yourName.originalValue ? "" : escape(yourName.value)) + 
		"&fromEmail=" +
		(yourEmail.value.trim() == yourEmail.originalValue ? "" : escape(yourEmail.value)) + 
		"&toEmail=" + 
		(list.value.trim() == list.originalValue ? "" : escape(list.value)) +
		"&link=" + escape(window.location.href);
		
	var options = 
	{
		method: "get",
		onComplete: function(json)
		{
			var response = null;
			try { response = Json.evaluate(json); } catch(error) { }
			
			if(!response || response.result == 2)	// server error
			{
				$E("#send_container h2").setHTML('<span class="error">Server Error</span>');
			}
			else if(response.result == -1)			// missing or invalid fields
			{
				$E("#send_container h2").setHTML('<span class="error">Error: </span><span class="details">Missing or Invalid Fields</span>');
				if(!yourEmail.value.match(/^([a-zA-Z0-9_+]|\-|\.)+@(([a-zA-Z0-9_]|\-)+\.)+[a-zA-Z]{2,4}$/))
				{
					yourEmail.addClass("error");
				}
				
				if(!list.value.match(/^([a-zA-Z0-9_+]|\-|\.)+@(([a-zA-Z0-9_]|\-)+\.)+[a-zA-Z]{2,4}$/))
				{
					list.addClass("error");
				}
			}
			else if(response.result == 1)			// opt-out
			{
				$("send_container").addClass("opt_out");
				$("send_container").removeClass("form");
			}
			else
			{
				$("send_container").removeClass("form");
			}
		}
	};
	
	new Ajax(url, options).request();
};