// Requires the following css class definitions somewhere:
//	.main_submenu {
//		padding:5px 20px;
//		background-color:#d8d8d8;
//		text-align:left;
//		white-space:nowrap;
//	}
//	/* .......................... */
//	/* . Gedimmter Hintergrund: . */
//	/* .......................... */
//	.dimmed_background {
//		height: 100%;
//		width: 100%;
//		position:fixed;
//		top: 0px;
//		left: 0px;
//		background-color: rgb(255, 255, 255);
//		background-repeat:repeat;
//		opacity: 0.7;
//		-moz-opacity: 0.70;
//		filter: alpha(opacity=70);
//		z-index: 20;
//	}
//////////////////////////////////////////////////////////////////////////////
// Requires   http://www.bildarchiv-ostpreussen.de/js/base.js
// Requires   http://www.bildarchiv-ostpreussen.de/js/sizes.js
// Requires   http://www.bildarchiv-ostpreussen.de/js/ajax.js
//////////////////////////////////////////////////////////////////////////////
// Requires <div class="dimmed_background" id="dimmed_div" style="display:none;"></div>
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// Upper menu line:
//////////////////////////////////////////////////////////////////////////////
function headmenu(parent_el, default_selected, with_lang_menu, lang_target, tbl_width) {
	var url_getmessages = '/ajax/ajax_getmessages.pl';
	var url_getmessagecount = '/ajax/ajax_getmessages.pl';
	var this_object = this;
	var loadedCallback = '';
	var loading = 2;	// star2.gif and dynamically generated content
	this.setLoadedCallback = function(lc) {
		loadedCallback = lc;
	}
	ajax_get2(url_getmessagecount +
			"?typ=user" +
			"&lang=en" +
			"&id=-2" +
			"&d=" + new Date().getTime(),
			init_mainmenu);
	function init_mainmenu(text) {
		text = text.substr(text.indexOf('\n')+1);
		var with_news = (text != "0");
		if (with_lang_menu && !lang_target) {
			lang_target = '/suche/index.html';
		} else if (!with_lang_menu) {
			lang_ext = '';
		}
		var lang_ext = '.en';
		// Hack fuer die Expertensuche, die nicht ueber Multiviews aufgerufen wird
		// (== Endung .de etc.), sondern ueber einen Parameter (?lang=de etc.):
		var lang_ext_langmenu = '.';
		if (lang_target && lang_target.charAt(lang_target.length - 1) == '=') {
			lang_ext_langmenu = '';
		} else if (!tbl_width) {
			tbl_width = "800";
		}
		var el_tbl = document.createElement('div');
		el_tbl.setAttribute("id","header_top");
//	el_tbl.setAttribute("width",tbl_width);
//	el_tbl.setAttribute("border","0");
//	el_tbl.setAttribute("bgcolor","#cccccc");
//	el_tbl.setAttribute("cellspacing","0");
//	el_tbl.setAttribute("cellpadding","5");
//	el_tbl.style.margin = "0 20px";
		var sel_text = 'bgcolor="#ededed"';
		var desel_text = 'onmouseover="getEl(\'search_window\').style.display=\'none\';' +
				(with_lang_menu ?
						'getEl(\'language_window\').style.display=\'none\';' :
						'') +
				'this.style.backgroundColor=\'#dddddd\';" onmouseout="this.style.backgroundColor=\'#cccccc\';"';
		var desel_text2 = 'onmouseover="' +
				(default_selected!=1?'':'getEl(\'search_window\').style.display=\'none\';') +
				(with_lang_menu ?
						'getEl(\'language_window\').style.display=\'none\';' :
						'') +
				'this.style.backgroundColor=\'#dddddd\';" onmouseout="this.style.backgroundColor=\'#cccccc\';"';
		var ih = '<table width="' + tbl_width + '" bgcolor="#cccccc" cellspacing="0" cellpadding="5" style="margin:0 20px;"><tbody><tr>\n' +
				// Startseite:
				'	<td width="220" align="center" valign="middle" style="display:table-cell;vertical-align:middle;" ' + (default_selected==0?sel_text:desel_text) + ' onclick="window.location.href=\'http://www.bildarchiv-ostpreussen.de/index.html'+lang_ext+'\';">\n' +
				'		<a href="http://www.bildarchiv-ostpreussen.de/index.html'+lang_ext+'">' + (false?'<span style="display:table-cell;vertical-align:middle;"><img src="/grafx/suche/24.gif" height="20">&nbsp;&nbsp;</span>':'') + '<span style="display:table-cell;vertical-align:middle;"><b>Homepage</b></span></a>\n' +
				'	</td>\n' +
				// Suche:
				'	<td width="220" id="open_search_win" ' + (default_selected==1?sel_text:desel_text2) + ' align="center" onclick="hideAllMenus();openSearchMenu();">\n' +
				'		<a href="javascript:"><b>Searches</b></a>\n' +
				'	</td>\n' +
				// Kontakt/Hilfe:
				'	<td width="220" align="center" ' + (default_selected==2?sel_text:desel_text) + ' onclick="window.location.href=\'http://www.bildarchiv-ostpreussen.de/hilfe.html'+lang_ext+'\';">\n' +
				'		<a href="http://www.bildarchiv-ostpreussen.de/hilfe.html'+lang_ext+'"><span style="white-space:nowrap;"><b>Contact / Help</b></span></a>\n' +
				'	</td>\n' +
				// Impressum:
				'	<td width="220" align="center" ' + (default_selected==3?sel_text:desel_text) + ' onclick="window.location.href=\'http://www.bildarchiv-ostpreussen.de/kontakt.html\';">\n' +
				'		<a href="http://www.bildarchiv-ostpreussen.de/kontakt.html"><span style="white-space:nowrap;"><b>Site notice</b></span></a>\n' +
				'	</td>\n';
		if (with_news) {
			// News:
			ih += '	<td id="td_news" width="220" align="center" ' + desel_text + '>\n' +
				'		<a id="a_news"><span style="white-space:nowrap;vertical-align:50%;"><img src="/grafx/star2.gif" alt="neu!" style="margin-right:-10px;border:none;" onload="imageLoaded();"><b style="vertical-align:50%;">News</b></span></a>\n' +
				'	</td>\n';
		} else {
			loading--;
		}
		if (with_lang_menu) {
			// Sprachmenu:
			ih += '	<td width="5" id="open_lang_win" align="center" onmouseover="this.style.backgroundColor=\'#dddddd\';" onmouseout="this.style.backgroundColor=\'#cccccc\';" onclick="hideAllMenus();openLanguageMenu();return false;">\n' +
				'		<span style="white-space:nowrap;">\n' +
				'			<img src="/grafx/detailsuche/fahnen/en10.png" alt="select language">\n' +
				'			&nbsp;&nbsp;<img src="/grafx/pfeil1.gif" alt="select language">\n' +
				'		</span>\n' +
				'	</td>\n';
		}
		ih += '</tr></tbody></table>';
		el_tbl.innerHTML = ih;
		parent_el.appendChild(el_tbl);
		//////////////////////////////////////////////////////////////////////////////
		// Main menu, search sub menu:
		//////////////////////////////////////////////////////////////////////////////
		var el_sw = document.createElement('div');
		el_sw.setAttribute("id", "search_window");
		el_sw.style.backgroundColor = "#d8d8d8";
		el_sw.style.position = "absolute";
		el_sw.style.left = "0";
		el_sw.style.top = "0";
		el_sw.style.zIndex = "30";
		el_sw.style.display = "none";
		el_sw.style.padding = "5px 0";
		if (document.all) {
			el_sw.onmouseout = function() { closeSearchMenu(el_sw, event); };
		} else {
			el_sw.onmouseout = function(event) { closeSearchMenu(el_sw, event); };
		}
		el_sw.innerHTML = '<div class="main_submenu" onmouseover="this.style.backgroundColor=\'#ededed\';" onmouseout="this.style.backgroundColor=\'#d8d8d8\';" onclick="window.location=\'/suche/index.html'+lang_ext+'\'">' +
			'	<a href="/suche/index.html'+lang_ext+'?v=1" target="_parent" style="width:100%;">' +
			'		<b>' + 'Default search queries'.replace(/ /g, '&nbsp;') + '</b>' +
			'	</a>' +
			'</div>' +
// Aehem: das ist noch nicht ganz korrekt: ein Klick auf den href oeffnet dei Detailsuche im eigenen Fenster, ein Klick daneben im gleichen Fenster...
			'<div class="main_submenu" onmouseover="this.style.backgroundColor=\'#ededed\';" onmouseout="this.style.backgroundColor=\'#d8d8d8\';" onclick="window.location=\'/cgi-bin/bildarchiv/detailsuche/detailsuche.cgi?' + (with_lang_menu?'lang=en&':'') + 'optionen=aX&v=1\';">' +
			'	<a href="/cgi-bin/bildarchiv/detailsuche/detailsuche.cgi?' + (with_lang_menu?'lang=en&':'') + 'optionen=aX&v=1" target="_parent" style="width:100%;">' +
			'		<b>' + 'Expert&nbsp;search&nbsp;queries&nbsp;with&nbsp;map'.replace(/ /g, '&nbsp;') + '</b>' +
			'	</a>' +
			'</div>' +
			'<div class="main_submenu" onmouseover="this.style.backgroundColor=\'#ededed\';" onmouseout="this.style.backgroundColor=\'#d8d8d8\';" onclick="window.location=\'/suche_volltext.html\';">' +
			'	<a href="/suche_volltext.html" target="_parent" style="width:100%;">' +
			'		<b>' + 'Extended search queries'.replace(/ /g, '&nbsp;') + '</b>' +
			'	</a>' +
			'</div>';
		getEl('open_search_win').appendChild(el_sw);
		//////////////////////////////////////////////////////////////////////////////
		// Main menu, language sub menu:
		//////////////////////////////////////////////////////////////////////////////
		if (with_lang_menu) {
			var el_lw = document.createElement('div');
			el_lw.setAttribute("id", "language_window");
			el_lw.style.backgroundColor = "#d8d8d8";
			el_lw.style.position = "absolute";
			el_lw.style.left = "0";
			el_lw.style.top = "0";
			el_lw.style.zIndex = "30";
			el_lw.style.display = "none";
			el_lw.style.padding = "5px 0";
			if (document.all) {
				el_lw.onmouseout = function() { closeLanguageMenu(el_lw, event); };
			} else {
				el_lw.onmouseout = function(event) { closeLanguageMenu(el_lw, event); };
			}
			el_lw.innerHTML = '<div class="main_submenu" onmouseover="this.style.backgroundColor=\'#ededed\';" onmouseout="this.style.backgroundColor=\'#d8d8d8\';" onclick="window.location=\'' + lang_target + lang_ext_langmenu + 'de\';">' +
				'	<a href="'+lang_target+lang_ext_langmenu+'de" target="_parent" style="width:100%;">' +
				'		<img border="0" src="/grafx/detailsuche/fahnen/de10.png" alt="Deutsch"><b>&nbsp;&nbsp;&nbsp;Deutsch</b>' +
				'	</a>' +
				'</div>' +
				'<div class="main_submenu" onmouseover="this.style.backgroundColor=\'#ededed\';" onmouseout="this.style.backgroundColor=\'#d8d8d8\';" onclick="window.location=\'' + lang_target + lang_ext_langmenu + 'en\';">' +
				'	<a href="'+lang_target+lang_ext_langmenu+'en" target="_parent" style="width:100%;">' +
				'		<img border="0" src="/grafx/detailsuche/fahnen/en10.png" alt="English"><b>&nbsp;&nbsp;&nbsp;English</b>' +
				'	</a>' +
				'</div>' +
				'<div class="main_submenu" onmouseover="this.style.backgroundColor=\'#ededed\';" onmouseout="this.style.backgroundColor=\'#d8d8d8\';" onclick="window.location=\'' + lang_target + lang_ext_langmenu + 'ru\';">' +
				'	<a href="'+lang_target+lang_ext_langmenu+'ru" target="_parent" style="width:100%;">' +
				'		<img border="0" src="/grafx/detailsuche/fahnen/ru10.png" alt="Русский"><b>&nbsp;&nbsp;&nbsp;Русский</b>' +
				'	</a>' +
				'</div>' +
				'<div class="main_submenu" onmouseover="this.style.backgroundColor=\'#ededed\';" onmouseout="this.style.backgroundColor=\'#d8d8d8\';" onclick="window.location=\'' + lang_target + lang_ext_langmenu + 'pl\';">' +
				'	<a href="'+lang_target+lang_ext_langmenu+'po" target="_parent" style="width:100%;">' +
				'		<img border="0" src="/grafx/detailsuche/fahnen/pl10.png" alt="Polski"><b>&nbsp;&nbsp;&nbsp;Polski</b>' +
				'	</a>' +
				'</div>' +
				'<div class="main_submenu" onmouseover="this.style.backgroundColor=\'#ededed\';" onmouseout="this.style.backgroundColor=\'#d8d8d8\';" onclick="window.location=\'' + lang_target + lang_ext_langmenu + 'lt\';">' +
				'	<a href="'+lang_target+lang_ext_langmenu+'lt" target="_parent" style="width:100%;">' +
				'		<img border="0" src="/grafx/detailsuche/fahnen/lt10.png" alt="Lietuvių">&nbsp;&nbsp;&nbsp;Lietuvių' +
				'	</a>' +
				'</div>';
			getEl('open_lang_win').appendChild(el_lw);
		}
		if (with_news) {
			// class subwindow:
			// position:fixed;
			// padding: 10px;
			// background-color:#dfdfdf;
			// border: none; /* 10px #7f7f7f solid; */
			// overflow: auto;
			// z-index: 100;
			var el_newsdiv = document.createElement('div');
			el_newsdiv.setAttribute("id", "window_messages");
			el_newsdiv.style.position = 'fixed';
			el_newsdiv.style.padding = '10px';
			el_newsdiv.style.backgroundColor = '#dfdfdf';
			el_newsdiv.style.border = 'none';
			el_newsdiv.style.overflow = 'auto';
			el_newsdiv.style.zIndex = '100';
			el_newsdiv.style.maxHeight = '90%';
			el_newsdiv.style.overflowY = 'scroll';
			el_newsdiv.style.display = 'none';
			ih = '		<table style="width:400px;border:0;" cellspacing="0">' +
					'			<tr bgcolor="#bbbbbb">' +
					'				<td style="background-color:#bbbbbb;padding:10px;text-align:left;"><img src="/grafx/star2.gif" alt="neu!"><b style="margin-left:-10px;">News</b></td>' +
					'				<td style="background-color:#bbbbbb;padding:10px;float:right;"><b id="b_close" style="border:1px solid black;padding:0 3px;cursor:pointer;">X</b></td>' +
					'			</tr>' +
					'			<tr>' +
					'				<td colspan="2" style="text-align:left;">' +
					'                			<div id="div_messages">' +
					'                			</div>' +
					'				</td>' +
					'			</tr>' +
					'		</table>';
			el_newsdiv.innerHTML = ih;
			parent_el.appendChild(el_newsdiv);
			if (document.addEventListener) {
				getEl('td_news').addEventListener('click', function() { this_object.initMessages(-1); }, false);
				getEl('b_close').addEventListener('click', function() { this_object.closeNews(); }, false);
			} else {
				// IE
				getEl('td_news').attachEvent('onclick', function() { this_object.initMessages(-1); } );
				getEl('b_close').attachEvent('onclick', function() { this_object.closeNews(); } );
			}
		}
		loading--;
		if (loadedCallback && loading == 0) {
			loadedCallback();
		}
	}
	openSearchMenu = function() {
		if (getEl('search_window').style.display != 'none') {
			getEl('search_window').style.display = 'none';
			return;
		}
		getEl('search_window').style.top = (absTop('open_search_win') + getHeight('open_search_win')) + "px";
		getEl('search_window').style.left = absLeft('open_search_win') + "px";
		getEl('search_window').style.display = '';
	}
	imageLoaded = function() {
		loading--;
		if (loadedCallback && loading == 0) {
			loadedCallback();
		}
	}
	openLanguageMenu = function() {
		if (!getEl('language_window')) {
			return;
		}
		if (getEl('language_window').style.display != 'none') {
			getEl('language_window').style.display = 'none';
			return;
		}
		getEl('language_window').style.top = (absTop('open_lang_win') + getHeight(getEl('open_lang_win'))) + "px";
		getEl('language_window').style.display = '';
		getEl('language_window').style.left = Math.min(
							getWidth() - getWidth('language_window'),
							absLeft('open_lang_win')
							) + "px";
	}
	hideAllMenus = function(exclude) {
		if (!getEl('search_window')) { return; }
		if (!exclude) {
			exclude = '';
		}
		getEl('search_window').style.display = (exclude == 'search_window'?'':'none');
		if (getEl('language_window')) {
			getEl('language_window').style.display = (exclude == 'language_window'?'':'none');
		}
		try {
			getEl('menu_sortorder').style.display = (exclude == 'menu_sortorder'?'':'none');
			getEl('menu_markpics').style.display = (exclude == 'menu_markpics'?'':'none');
			getEl('menu_markedpics').style.display = (exclude == 'menu_markedpics'?'':'none');
		} catch (e) { }
		document.onclick = (exclude?hideAllMenus:'');
		if (exclude == '') {
			document.onmousemove = '';
		}
	}
		this.initMessages = function(id) {
			ajax_get2(url_getmessages +
					"?typ=user" +
					"&lang=en" +
					"&id=" + id +
					"&d=" + new Date().getTime(),
					setMessages);
		}
		function setMessages(text) {
			getEl('dimmed_div').style.display = '';
			getEl('window_messages').style.display = '';
			var datum, ueberschrift, nachricht;
			var cnt = 0;
			var cnt1, cnt2, cnt3;
			var msg = '';
			var n = 0;
			text = text.substring(text.indexOf('\n') + 1);
			while(text.length > 0 && n < 20) {
				var key = text.substr(0, text.indexOf('='));
				text = text.substr(text.indexOf('=') + 1);
				var len = text.substr(0, text.indexOf(':'));
				text = text.substr(text.indexOf(':') + 1);
				var val = text.substr(0, len);
				text = text.substr(len);
				if (key == 'datum') {
					datum = val;
					cnt1 = 'd';
				} else if (key == 'ueberschrift') {
					ueberschrift = val;
					cnt2 = 'u';
				} else if (key == 'nachricht') {
					nachricht = val;
					cnt3 = 'n';
				}
				n++;
				if (cnt1 + cnt2 + cnt3 == 'dun') {
					n = 0;
					cnt1 = cnt2 = cnt3 = '';
					var even = ((cnt % 2) == 0);
					msg += '<div style="background-color:' + (even?'#dfdfdf':'#dfdfdf') + ';padding:10px;"><i>' + datum + '</i><br><h4 style="margin:0 0 5px 0;color:#af0000;font-size:110%;">' + ueberschrift + '</h4>' + nachricht.replace(/\r\n/g, '<br>').replace(/\n/g, '<br>') + '<hr></div>';
					ueberschrift = '';
					cnt++;
				}
			}
			getEl('div_messages').innerHTML = msg;
			var el = document.getElementsByTagName('a');
			for(var f = 0; f < el.length; f++) {
				if (el[f].getAttribute('id') && el[f].getAttribute('id').substr(0,10) == 'a_readmore') {
					el[f].setAttribute('href', 'javascript:');
					var index = el[f].getAttribute('id').substr(10);
					el[f].onclick = (function(index) { return function() { this_object.initMessages(index); }; })(index);
//
//					if (document.addEventListener) {
//						el[f].addEventListener('click', function() { this_object.initMessages(index); }, false);
//					} else {
//						// IE
//						el[f].attachEvent('onclick', function() { this_object.initMessages(index); } );
//					}
				}
			}
//			for(var f = 0; f < 100; f++) {
//				if (getEl('a_readmore'+f)) {
//					getEl('a_readmore'+f).setAttribute('href', 'javascript:');
//					if (document.addEventListener) {
//						var index = f;	// Komischerweise funktioniert es nicht, wenn 'index' frueher deklariert wird...?
//						getEl('a_readmore'+f).addEventListener('click', function() { this_object.initMessages(index); }, false);
//// Andere Methode, die generell gehen sollte:
//// (function(f) { return function() { this_object.initMessages(f); }; })(f);
//					} else {
//						// IE
//						var index = f;
//						getEl('a_readmore'+f).attachEvent('onclick', function() { this_object.initMessages(index); } );
//					}
//				}
//			}
			getEl('div_messages').style.display = '';
			getEl('window_messages').style.left = Math.floor((getWidth() - getWidth(getEl('window_messages'))) / 2) + "px";
			getEl('window_messages').style.top = Math.floor((getHeight() - getHeight(getEl('window_messages'))) / 2) + "px";
		}
		this.closeNews = function() {
			getEl('window_messages').style.display = 'none';
			getEl('dimmed_div').style.display = 'none';
		}
}
/*********************************************************************
 * No onMouseOut event if the mouse pointer hovers a child element
 * *** Please do not remove this header. ***
 * This code is working on my IE7, IE6, FireFox, Opera and Safari
 *
 * Usage:
 * <div onMouseOut="fixOnMouseOut(this, event, 'JavaScript Code');">
 *	So many childs
 * </div>
 *
 * @Author Hamid Alipour Codehead @ webmaster-forums.code-head.com
**/
function is_child_of(parent, child) {
	if( child != null ) {
		while( child.parentNode ) {
			if( (child = child.parentNode) == parent ) {
				return true;
			}
		}
	}
	return false;
}
function closeSearchMenu(element, event) {
	var current_mouse_target = null;
	if( event.relatedTarget ) {
		current_mouse_target = event.relatedTarget;
	} else if( event.toElement ) {
		current_mouse_target = event.toElement;
	}
	if( !is_child_of(element, current_mouse_target) && element != current_mouse_target ) {
		element.style.display = 'none';
	}
}
function closeLanguageMenu(element, event) {
	var current_mouse_target = null;
	if( event.relatedTarget ) {
		current_mouse_target = event.relatedTarget;
	} else if( event.toElement ) {
		current_mouse_target = event.toElement;
	}
	if( !is_child_of(element, current_mouse_target) && element != current_mouse_target ) {
		element.style.display = 'none';
	}
}
/*********************************************************************/

