/*************************************************
* Code for the top menu
* Written by Christer Stenbrenden, Bjorn J. Kvande
* (C) 2005-2009, ObjectPlanet, Inc., http://www.objectplanet.com
**************************************************/

// the submenu for the products top menu item
var productmenu = new Array();
productmenu[0] = '<a href="http://objectplanet.com/opinio/">Opinio&nbsp;&nbsp;-&nbsp;&nbsp;online surveys</a>';
productmenu[1] = '<a href="http://objectplanet.com/polls/">EasyPolls&nbsp;&nbsp;-&nbsp;&nbsp;free online polls</a>';
productmenu[2] = '<a href="http://objectplanet.com/probe/">Network Probe&nbsp;&nbsp;-&nbsp;&nbsp;traffic monitor</a>';
productmenu[3] = '<a href="http://objectplanet.com/easycharts/">EasyCharts&nbsp;&nbsp;-&nbsp;&nbsp;java charts</a>';
productmenu[4] = '<a href="http://objectplanet.com/pngencoder/">PngEncoder&nbsp;&nbsp;-&nbsp;&nbsp;image encoder</a>';

// the submenu for the support top menu item
var supportmenu = new Array();
supportmenu[0] = '<a href="http://support.objectplanet.com/esupport/">Support center</a>';
supportmenu[1] = '<a href="http://support.objectplanet.com/forum/index.jspa">Forum</a>';
supportmenu[2] = '<a href="http://support.objectplanet.com/esupport/?_m=knowledgebase&_a=view">Knowledgebase</a>';
supportmenu[3] = '<a href="http://objectplanet.com/opinio/howto/">Survey How-To Documents</a>';

// the submenu for the purchase top menu item
var purchasemenu = new Array();
purchasemenu[0] = '<a href="https://support.objectplanet.com/licenser/purchase.jsp?families=13,10">Opinio</a>';
purchasemenu[1] = '<a href="https://support.objectplanet.com/licenser/purchase.jsp?families=12">Network Probe</a>';
purchasemenu[2] = '<a href="https://support.objectplanet.com/licenser/purchase.jsp?families=1,2">EasyCharts</a>';
purchasemenu[3] = '<a href="https://support.objectplanet.com/licenser/purchase.jsp?families=5">PngEncoder</a>';


// global variables
var menuHasFocus = 'no';
var menuDivTag = "menucontainer";
var menuHideDelay = 150;
var menuShowDelay = 150;
var defaultMenuWidth = 120;
var menuHeight = 32;
var currentSubMenu = null;


/**
 * Attach a menu to the top menu item td tag object. The menu attribute must 
 * have a value like this: menu="menuname;menuwidth" menuwidth is an integer.
 */
function attachMenuContent(topMenuItem) {
	var id = topMenuItem.getAttribute("id");
	if (id == "productMenu") {
		topMenuItem.menuContent = productmenu;
		topMenuItem.menuWidth = 200;
	}
	else if (id == "supportMenu") {
		topMenuItem.menuContent = supportmenu;
		topMenuItem.menuWidth = 165;
	}
	else if (id == "purchaseMenu") {
		topMenuItem.menuContent = purchasemenu;
		topMenuItem.menuWidth = 100;
	}
}


/**
 * Adds events to the top menu item
 */
function addTopMenuEventHandlers(menuItem) {
	// display the submenu when the mouse moves over it
	menuItem.onmouseover = function() {
		menuFocused();
		displaySubMenu(menuItem);
		menuItem.className = 'topMenuItemFocus';
	}
	// hide the submenu
	menuItem.onmouseout = function() {
		hideMenu(menuHideDelay);
		menuItem.className = 'topMenuItem';
	}
}


/**
 * This is called when the top menu has focus
 */
function menuFocused() {
	menuHasFocus = 'yes';
}


/**
 * Marks the menu as unfocused and hides the submenu.
 */
function menuUnfocused() {
	menuHasFocus = 'no';
	hideMenu(menuHideDelay);
}


/**
 * Displays the menu item.  
 */
function displaySubMenu(menuItem) {
	currentSubMenu = menuItem;
	setTimeout(_displaySubMenu, menuShowDelay);
}


/**
 * Displays the menu item.  
 */
function _displaySubMenu() {
	menuItem = currentSubMenu;
	// add the menu content, place it out of sight to avoid flicker
	var menu = document.getElementById(menuDivTag);
	menu.style.left = -1000;
	menu.innerHTML = menuItem.menuContent.join("");
	// set the position and width
	menu.style.top = findPosY(menuItem) + menuHeight + "px";
	menu.style.width = (menuItem.menuWidth ? menuItem.menuWidth : defaultMenuWidth) + "px";
	menu.style.left = findPosX(menuItem) + "px";
	// display the menu
	menu.style.visibility = 'visible';
}


/**
 * Hides the menu after a given delay
 */
function hideMenu(delay) {
	setTimeout(hide, delay);
}


/**
 * Hides the sub-menu when the set delay expires. This will only happen 
 * if the menu does not currently have the focus.
 */
function hide() {
	// hide it and put it out of sight to prevent flicker
	if (menuHasFocus == 'no') {
		var menu = document.getElementById(menuDivTag);
		menu.style.visibility = 'hidden';
		menu.style.left = -1000;
	}
}


/**
 * Find the correct position of the top edge of the submenu.
 */
function findPosY(menuItem) {
	var curtop = 0;
	while (menuItem && menuItem.offsetParent) {
		curtop += menuItem.offsetTop;
		menuItem = menuItem.offsetParent;
	}
	return curtop;
}


/**
 * Find the correct position of the left edge of the submenu.
 */
function findPosX(menuItem) {
	var curleft = 0;
	while (menuItem && menuItem.offsetParent) {
		curleft += menuItem.offsetLeft;
		menuItem = menuItem.offsetParent;
	}
	return curleft;
}


/**
 * A list of the banners to pick from.
 */
var banners = new Array(
"DSC_0024.jpg",
"DSC_0039.jpg",
"DSC_0081.jpg",
"DSC_0085.jpg",
"DSC_0091.jpg",
"DSC_0096.jpg",
"DSC_0097.jpg",
"DSC_0111.jpg",
"DSC_0111_1.jpg",
"DSC_0112.jpg",
"DSC_0114.jpg",
"DSC_0115.jpg",
"DSC_0116.jpg",
"DSC_0117_1.jpg",
"DSC_0119.jpg",
"DSC_0122.jpg",
"DSC_0153.jpg",
"DSC_0161.jpg",
"DSC_0164.jpg",
"DSC_0184.jpg",
"DSC_0186.jpg",
"DSC_0188.jpg",
"DSC_0203.jpg",
"DSC_0209.jpg",
"DSC_0211.jpg",
"DSC_0212.jpg",
"DSC_0255.jpg",
"DSC_0422.jpg",
"DSC_0431.jpg",
"DSC_0450.jpg",
"DSC_0597.jpg",
"DSC_0601.jpg",
"DSC_0801.jpg",
"DSC_0804.jpg",
"DSC_1147.jpg",
"DSC_1245.jpg",
"DSC_1465.jpg",
"DSC_1504.jpg",
"DSC_1505.jpg",
"DSC_1520.jpg",
"DSC_1538.jpg",
"DSC_1669.jpg",
"DSC_1758.jpg",
"DSC_1774.jpg",
"DSC_1779.jpg",
"DSC_1801.jpg",
"DSC_1813.jpg",
"DSC_1932.jpg",
"DSC_1946.jpg",
"DSC_1949.jpg",
"DSC_1977.jpg",
"DSC_1980.jpg",
"DSC_2093.jpg",
"DSC_2103.jpg",
"DSC_2105.jpg",
"DSC_2215.jpg",
"DSC_2265.jpg",
"DSC_2266.jpg",
"DSC_2302.jpg",
"DSC_2399.jpg",
"DSC_2607.jpg",
"DSC_2618.jpg",
"DSC_2630.jpg",
"DSC_2644.jpg",
"DSC_2652.jpg",
"DSC_2664.jpg",
"DSC_2848.jpg",
"DSC_2863.jpg",
"DSC_2864.jpg",
"DSC_2867.jpg",
"DSC_2921.jpg",
"DSC_3000.jpg",
"DSC_3023.jpg",
"DSC_3355.jpg",
"DSC_3356.jpg",
"DSC_3365.jpg",
"DSC_3740.jpg",
"DSC_3786.jpg",
"DSC_3822.jpg",
"DSC_3902.jpg",
"DSC_3926.jpg",
"DSC_3971.jpg",
"DSC_3993.jpg",
"DSC_4020.jpg",
"DSC_4067.jpg",
"DSC_4102.jpg",
"DSC_4138.jpg",
"DSC_4148.jpg",
"DSC_4150.jpg",
"DSC_4152.jpg",
"DSC_4354.jpg",
"DSC_4390.jpg",
"DSC_4475.jpg",
"DSC_4491.jpg",
"DSC_4509.jpg",
"DSC_4537.jpg",
"DSC_4544.jpg",
"DSC_4545.jpg",
"DSC_4577.jpg",
"DSC_4578.jpg",
"DSC_4973.jpg",
"DSC_4997.jpg",
"DSC_5196.jpg",
"DSC_5198.jpg",
"DSC_5204.jpg",
"DSC_5387.jpg",
"DSC_5483.jpg",
"DSC_5607.jpg",
"DSC_5679.jpg",
"DSC_5763.jpg",
"DSC_5836.jpg",
"DSC_5838.jpg",
"DSC_5997.jpg",
"DSC_6099.jpg",
"DSC_6143.jpg",
"DSC_6146.jpg",
"DSC_6147.jpg",
"DSC_6161.jpg",
"DSC_6165.jpg",
"DSC_6250.jpg",
"DSC_6251.jpg",
"DSC_6258.jpg",
"DSC_6287.jpg",
"DSC_6333.jpg",
"DSC_6393.jpg",
"DSC_6821.jpg",
"DSC_6829.jpg",
"DSC_7028.jpg",
"DSC_7030.jpg",
"DSC_7034.jpg",
"DSC_7091.jpg",
"DSC_7108.jpg",
"DSC_7110.jpg",
"DSC_7112.jpg",
"DSC_7117.jpg",
"DSC_7628.jpg",
"DSC_7830.jpg",
"DSC_7910.jpg",
"DSC_8378.jpg",
"DSC_8715.jpg",
"DSC_8743.jpg",
"DSC_9053.jpg",
"DSC_9272.jpg",
"DSC_9331.jpg",
"DSC_9343.jpg",
"DSC_9625.jpg",
"DSC_9627.jpg",
"DSC_9631.jpg",
"DSC_9757.jpg",
"DSC_9782.jpg",
"DSC_9810.jpg",
"DSC_9831.jpg",
"DSC_9914.jpg",
"DSC_9920.jpg",
"DSC_9939.jpg",
"IMG_0052.jpg",
"IMG_2905.jpg",
"IMG_2941.jpg",
"IMG_2945.jpg",
"IMG_2946.jpg",
"IMG_2961.jpg",
"IMG_2962.jpg",
"IMG_3014.jpg",
"IMG_3045.jpg",
"IMG_8202.jpg",
"IMG_8216.jpg",
"IMG_8518.jpg",
"IMG_8710.jpg",
"IMG_8929.jpg",
"IMG_8930.jpg",
"IMG_8936.jpg",
"IMG_8938.jpg",
"IMG_8939.jpg",
"IMG_8941.jpg",
"IMG_8962.jpg",
"P1000094.jpg",
"P1000101.jpg",
"P1000102.jpg",
"P1000103.jpg",
"P1000111.jpg",
"P1000112.jpg",
"P1000113.jpg",
"P1000129.jpg",
"P1000151.jpg",
"P1000152.jpg",
"P1000335.jpg",
"P1000386.jpg",
"P1000895.jpg",
"P1010239.jpg",
"P1010328.jpg",
"P1010420.jpg",
"P1010591.jpg",
"P1010682.jpg",
"P1010683.jpg",
"P1010724.jpg",
"P1010759.jpg",
"P1010760.jpg",
"P1010778.jpg",
"P1010791.jpg",
"P1010799.jpg",
"P3190152.jpg",
"Scan20012.jpg",
"Scan20014.jpg",
"Scan20024.jpg",
"Scan20055.jpg",
"Scan20071.jpg",
"Scan20072.jpg",
"Scan20076.jpg",
"_3011735.jpg",
"_3071763.jpg",
"_3071769.jpg",
"_5170334.jpg",
"_5170338.jpg",
"_5170339.jpg",
"_5170362.jpg",
"_5170363.jpg",
"_5170374.jpg",
"_5170384.jpg",
"_5180437.jpg",
"_5180439.jpg",
"_6221268.jpg",
"_DSC3963.jpg",
"_DSC5287.jpg",
"_MG_7911.jpg"
);


/**
 * Sets a random banner image.
 */
function setRandomBannerImage() {
	var index = Math.min(Math.round(Math.random() * banners.length), banners.length - 1);
	var name = banners[index];
	var topMenu = document.getElementById("topMenu");
	topMenu.style.backgroundImage = "url('http://objectplanet.com/skin/banner/" + name + "')";
}