var appMenuItems = Array()
var delayedImgID = Array(), delayedImgSrc = Array()
var openMenu = null, timerID = null
var mouseX = 0, mouseY = 0

/************** insert HTML *************************************************/

function insertHTML(text) {
	document.open()
	document.write(text)
	document.close()
	}

/************** window opener ***********************************************/

function popup(url,name,width,height) {
	var features = [
		['toolbar',	0],
		['directories',	0],
		['menubar',	0],
		['status',	0],
		['resizable',	1],
		['location',	0],
		['scrollbars',	0],
		['copyhistory',	0]
		]
	for (var nr = 4; nr < popup.arguments.length; nr++) {
		var param = popup.arguments[nr].split('=')
		for (var i = 0; i < features.length; i++)
			if (features[i][0] == param[0]) {
				features[i][1] = param[1]
				break
				}
		if (i == features.length)
			features[i] = param
		}
	var featureString = 'width=' + width + ',height=' + height
	for (var i = 0; i < features.length; i++)
		featureString += ',' + features[i][0] + '=' + features[i][1]
	window.open(url,name,featureString)
	}
	
/************** submitForm **************************************************/

function submitForm(id) {
	for (var i=1; i<submitForm.arguments.length; i++) {
		var url = document.forms[id].action
		url += url.indexOf('?') == -1 ? '?' : '&'
		url += submitForm.arguments[i] + '=1'
		document.forms[id].action = url
		}
	document.forms[id].submit()
	}

/************** menu template ***********************************************/

var menufwkTop =
  '<table cellpadding=0 cellspacing=0 border=0>' +
  '  <tr>' +
  '    <td bgcolor="#009999" rowspan=3><tpix height=1 width=1></td>' +
  '    <td bgcolor="#009999"><tpix height=1 width=1></td>' +
  '    <td bgcolor="#009999" rowspan=3><tpix height=1 width=1></td>' +
  '    <td><tpix height=1 width=1></td>' +
  '  </tr>' +
  '  <tr>' +
  '    <td>' +
  '      <table cellpadding=0 cellspacing=0 border=0>' +
  '        <tr>' +
  '          <td bgcolor="#ffffff"><tpix height=1 width=4></td>' +
  '          <td bgcolor="#ffffff"><tpix height=7 width=1></td>' +
  '          <td bgcolor="#ffffff"><tpix height=1 width=10></td>' +
  '        </tr>' +
  '        <tr>' +
  '          <td bgcolor="#ffffff"><tpix height=1 width=4></td>' +
  '          <td bgcolor="#ffffff" class="menu">'

var menufwkBot =
  '          </td>' +
  '          <td bgcolor="#ffffff"><tpix height=1 width=4></td>' +
  '        </tr>' +
  '        <tr>' +
  '          <td bgcolor="#ffffff"><tpix height=1 width=4></td>' +
  '          <td bgcolor="#ffffff"><tpix height=7 width=1></td>' +
  '          <td bgcolor="#ffffff"><tpix height=1 width=4></td>' +
  '        </tr>' +
  '      </table>' +
  '    </td>' +
  '    <td bgcolor="#333333"><tpix height=1 width=1></td>' +
  '  </tr>' +
  '  <tr>' +
  '    <td bgcolor="#009999"><tpix height=1 width=1></td>' +
  '    <td bgcolor="#333333" rowspan=2><tpix height=1 width=1></td>' +
  '  </tr>' +
  '  <tr>' +
  '    <td><tpix height=2 width=1></td>' +
  '    <td bgcolor="#333333" colspan=2><tpix height=2 width=1></td>' +
  '  </tr>' +
  '</table>'

/************** showMenu ****************************************************/

function showMenu(entries) {
	// assign default arguments: x, y, isRelative, mask
	var argv = showMenu.arguments
	var argc = argv.length
	var x = (argc > 1) ? argv[1] : 0
	var y = (argc > 2) ? argv[2] : 0
	var isRelative = (argc > 3) ? argv[3] : false
	var mask = (argc > 4) ? argv[4] : ''
	// assemble menuEntries string
	var menuEntries = ''
	for (var i = 0; entries && i < entries.length; i++) {
		var nameurl = entries[i].split('¤')
		if (nameurl[0] == 'autoexec') {
			window.location = nameurl[1]
			return
			}
		if (mask.charAt(i) != '0')
			menuEntries += '<a href="' + nameurl[1] + '" onclick="showMenu(null)">' + nameurl[0] + '</a><br>'
		  else
			menuEntries += nameurl[0].fontcolor('a0a0a0') + '<br>'
		}
	// apply parameters to menuentires
	for (var i = 5; i < argc; i++) {
		var splitpos = argv[i].indexOf('=')
		if (splitpos != -1) {
			re = new RegExp(argv[i].slice(0, splitpos), 'g')
			menuEntries = menuEntries.replace(re, argv[i].slice(splitpos+1))
			}
		}
	// calculate correct position
	if (isRelative) {
		x += mouseX
		y += mouseY
		}
	  else
		x += getMargin('x')
	// add menu framework
	var menuContent = menufwkTop + menuEntries + menufwkBot
	menuContent = menuContent.replace(/tpix/g, 'img src="' + imagePath + 't.gif" alt=""')
	// display menu
	var newMenu = menuEntries
	if (entries && newMenu != openMenu) {
		setLayer('menu', menuContent)
		showLayer('menu', x, y)
		openMenu = newMenu
		}
	  else {
		hideLayer('menu')
		openMenu = null
		}
	}

function delayedClosemenu(activate) {
	// if activate==true activate timer that closes open menu in 10ms
	// if activate==false deactivate that timer
	if (activate)
		timerID = setTimeout(showMenu,10,null)
	  else {
		if (timerID)
			clearTimeout(timerID)
		timerID = null
		}
	}

/************** delayed images **********************************************/

function insertDelayedImg(src, width, height, alt) {
	var align = insertDelayedImg.arguments.length > 4 ? insertDelayedImg.arguments[4] : null
	var nr = delayedImgID.length
	var id = 'dimg' + nr
	var imgSrc = '<img name="' + id + '" border="0" src="' + imagePath + 't.gif"'
	if (width) imgSrc += ' width="' + width + '"'
	if (height) imgSrc += ' height="' + height + '"'
	if (align) imgSrc += ' align="' + align + '"'
	imgSrc += ' alt="' + alt + '">'
	insertHTML(imgSrc)
	delayedImgID[nr] = id
	delayedImgSrc[nr] = src
	}

function showDelayedImages() {
	for (var i = 0; i < delayedImgID.length; i++)
		document.images[delayedImgID[i]].src = delayedImgSrc[i]
	}

/************** onload handler **********************************************/

function handlePageLoadEvent() {
	if (appMenuItems.length)
		showAppMenuDelayed()
	showDelayedImages()
	}
