// page navigation and contextual infos
// (c) n.landsteiner mass:werk 2000-2002



// img window

function openImage(img, w, h) {
	var objectWin;
	var url='../show/'+img+'.html';
	w+=50;
	h+=80;
	if ((parent.ObjectDisplay) && (parent.ObjectDisplay.closed!=true)) parent.ObjectDisplay.close();
	if (self.innerWidth) {
		objectWin=window.open(url, 'Deteailansicht_'+img, 'innerWidth='+w+',innerHeight='+h+',status=1,scrollbars=0,menubar=1,resizable')
	}
	else {
		objectWin=window.open(url, 'Deteailansicht_'+img, 'width='+w+',height='+h+',status=1,menubar=1,scrollbars=0,resizable')
	};
	if (window.focus) objectWin.focus();
	parent.ObjectDisplay=objectWin;
}


// audio window

function openAudioPlayer(n) {
	var playerWin;
	var w=280;
	var h=116;
	var url='../../audio/player_'+n+'.html';
	if (self.innerWidth) {
		playerWin=window.open(url, 'audioplayer', 'innerWidth='+w+',innerHeight='+h+',status=0,scrollbars=0,menubar=0,resizable=0')
	}
	else {
		playerWin=window.open(url, 'audio', 'width='+w+',height='+h+',status=0,menubar=0,scrollbars=0,resizable=0')
	};
	if (window.focus) playerWin.focus();
}


// menu actions

function gotoObject(id) {
	var success=false;
	var targetFrame=parent.flashFrame;
	if ((targetFrame) && (targetFrame.resetBgColor)) targetFrame.resetBgColor();
	if ((targetFrame) && (targetFrame.setFlashVariable)) {
		success= targetFrame.setFlashVariable('remoteObject', id)
	}
}

function gotoTopics() {
	var targetFrame=parent.flashFrame;
	if ((targetFrame) && (targetFrame.resetBgColor)) targetFrame.resetBgColor();
	if ((targetFrame) && (targetFrame.setFlashVariable)) {
		setTimeout("self.location.replace('../pages/index.html')",10);
		var success= targetFrame.setFlashVariable('remoteTopicsSwitch', 1);
		if (success==false) parent.flashFrame.location.reload();
	}
}

function gotoTopic(id) {
	var success=false;
	var targetFrame=parent.flashFrame;
	if ((targetFrame) && (targetFrame.resetBgColor)) targetFrame.resetBgColor();
	if ((targetFrame) && (targetFrame.setFlashVariable)) {
		var success= targetFrame.setFlashVariable('remoteTopic', id)
	}
}

function gotoHome() {
	parent.location.replace('../../index.html')
}

function gotoAbout() {
	self.location.href='../pages/about.html'
}

function gotoBildnachweis() {
	self.location.href='../pages/bildnachweis.html'
}

function gotoAudiothek() {
	self.location.href='../pages/audiothek.html'
}

function gotoImpressum() {
	self.location.href='../pages/impressum.html'
}

function gotoTexte() {
	self.location.href='../pages/lesezone.html'
}

function gotoLinks() {
	self.location.href='../pages/linkliste.html'
}

function gotoSitemap() {
	self.location.href='../pages/sitemap.jsp'
}

function gotoSearch() {
	self.location.href='../pages/searchResult.jsp'
}


// menu navigation

var activeMenu='';
var colorActive='#D4EAA4';
var colorInactive='#fafafa';
var menuLeaveDelay=500;
var menuTimer;
var menuExists=false;
var menuContent;
var menuHeader='<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1"><TR><TD BGCOLOR="#777777"><TABLE BORDER="0" CELLSPACING="0" CELLPADDING="2">\n';
var menuTrail='<TR><TD HEIGHT="4" CLASS="menuItem"><IMG SR'+'C="../../images/leer.gif" WIDTH="1" HEIGHT="1" ALT=""></TD></TR>\n</TABLE></TD></TR></TABLE>\n';
var ns4MenuImages;
var ns4MenuPath='../../images/menu_ns4/';
var ns4MenuHeader='<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1"><TR><TD BGCOLOR="#777777"><TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" BGCOLOR="#fafafa">\n';

var preloadImages= new Array();
var preloadNames= new Array('context_arrow');

var menuData= new Array(
	['m1', 'Home', 'muSIEum - Home', 'gotoHome()'],
	['m2', 'Themen&uuml;bersicht', 'Themenübersicht', 'gotoTopics()'],
	['m3', '&Uuml;ber das Projekt', 'Informationen zum Projekt', 'gotoAbout()'],
	['m4', 'Imagothek / Bildnachweis', 'Bildnachweis', 'gotoBildnachweis()'],
	['m5', 'Audiothek', 'Liste der Audio-Kommentare', 'gotoAudiothek()'],
	['m6', 'Lesezone', 'Texte zum Nachlesen', 'gotoTexte()'],
	['m7', 'Linkliste', 'Kommentierte Linkliste', 'gotoLinks()'],
	//['m9', 'SiteMap', 'SiteMap', 'gotoSitemap()'],
	//['m10', 'Suche', 'Suche', 'gotoSearch()'],
	['m8', 'Impressum', 'Site-Impressum', 'gotoImpressum()']
);

function preLoad(path) {
	for (var i=0; i<preloadNames.length; i++) {
		var n =preloadNames[i];
		preloadImages[n]=new Image();
		preloadImages[n].src=path+n+'.gif'
	}
}

preLoad('../../images/');


// NS4 specific functions
function ns4PageSetup() {
 	// preload menu images
 	ns4MenuImages= new Array();
 	for (var i=0; i<menuData.length; i++) {
		var m=menuData[i][0];
		if ((self.pageCode) && (m==pageCode)) {
			ns4MenuImages[m+'_of']=new Image();
			ns4MenuImages[m+'_of'].src=ns4MenuPath+m+'_of.gif'
		}
		else {
			ns4MenuImages[m+'_lo']=new Image();
			ns4MenuImages[m+'_hi']=new Image();
			ns4MenuImages[m+'_lo'].src=ns4MenuPath+m+'_lo.gif';
			ns4MenuImages[m+'_hi'].src=ns4MenuPath+m+'_hi.gif'
		}
	}
}

function ns4SetMenuImage(m, s) {
	if ((document.layers.menuDiv) && (document.layers.menuDiv.document.images['menu_'+m])) {
		document.layers.menuDiv.document.images['menu_'+m].src=ns4MenuImages[m+'_'+s].src
	}
}

// general menu functions

function writeMenu() {
	if (menuExists) return;
	if (document.layers) {
		menuContent=ns4MenuHeader;
		for (var i=0; i<menuData.length; i++) {
			var m=menuData[i];
			if ((self.pageCode) && (m[0]==pageCode)) {
				menuContent+='<TR><TD><A HREF="javasc'+'ript://" onmouseover="holdMenu(); window.status=\'\'; return true" onmouseout="releaseMenu(); window.status=\'\'; return true" CLASS="menuLink"><IMG SRC="'+ns4MenuImages[m[0]+'_of'].src+'" WIDTH="138" HEIGHT="16" BORDER="0" ALT="'+m[1]+'"></A></TD></TR>\n';
			}
			else {
				menuContent+='<TR><TD><A HREF="javasc'+'ript:'+m[3]+'" onmouseover="setMenuHi(\''+m[0]+'\'); window.status=\''+m[2]+'\'; return true" onmouseout="setMenuLo(\''+m[0]+'\'); window.status=\'\'; return true" CLASS="menuLink"><IMG SRC="'+ns4MenuImages[m[0]+'_lo'].src+'" WIDTH="138" HEIGHT="16" BORDER="0" ALT="'+m[1]+'" NAME="menu_'+m[0]+'"></A></TD></TR>\n';
			}
		}
	}
	else {
		menuContent=menuHeader;
		for (var i=0; i<menuData.length; i++) {
			var m=menuData[i];
			if ((self.pageCode) && (m[0]==pageCode)) {
				menuContent+='<TR><TD CLASS="menuItemDimmed" ID="'+m[0]+'" NOWRAP onmouseover="holdMenu(); window.status=\'\'; return true" onmouseout="releaseMenu(); window.status=\'\'; return true">&nbsp;'+m[1]+'&nbsp;&nbsp;&nbsp;</TD></TR>\n';
			}
			else {
				menuContent+='<TR><TD CLASS="menuItem" ID="'+m[0]+'" NOWRAP onmouseover="setMenuHi(\''+m[0]+'\'); window.status=\''+m[2]+'\'; return true" onmouseout="setMenuLo(\''+m[0]+'\'); window.status=\'\'; return true" onclick="'+m[3]+'">&nbsp;'+m[1]+'&nbsp;&nbsp;&nbsp;</TD></TR>\n';
			}
		}
	};
	menuContent+=menuTrail;
	writeDiv('menuDiv',menuContent);
	menuExists=true
}

function showMenu() {
	holdMenu();
	writeMenu();
	if (document.layers) {
		for (var i=0; i<menuData.length; i++) {
			if (!((self.pageCode) && (menuData[i][0]==pageCode))) ns4SetMenuImage(menuData[i][0], 'lo');
		}
	}
	else {
		for (var i=0; i<menuData.length; i++) setColor(menuData[i][0],colorInactive);
	};
	setVisibility('menuDiv',1);
	activeMenu=''
}

function hideMenu() {
	holdMenu();
	setVisibility('menuDiv',0);
	activeMenu=''
}

function setMenuHi(m) {
	holdMenu();
	if (document.layers) {
		ns4SetMenuImage(m, 'hi');
		if (activeMenu) ns4SetMenuImage(activeMenu, 'lo');
	}
	else {
		setColor(m, colorActive);
		if (activeMenu) setColor('m'+activeMenu, colorInactive);
	}
	activeMenu=m
}

function setMenuLo(m) {
	if (activeMenu) {
		if (document.layers) {
			ns4SetMenuImage(activeMenu, 'lo');
		}
		else {
			setColor(m, colorInactive)
		};
		if (activeMenu==m) activeMenu='';
	};
	releaseMenu()
}

function holdMenu() {
	if (menuTimer) clearTimeout(menuTimer);
}

function releaseMenu() {
	menuTimer=setTimeout('hideMenu()',menuLeaveDelay)
}

function leaveMenu() {
	menuTimer=setTimeout('hideMenu()',150)
}


function setColor(node, color) {
	var obj;
	if (document.getElementById) {
		var obj=document.getElementById(node);
		if ((obj) && (obj.style)) obj.style.backgroundColor=color
	}
	else if (document.all) {
		var obj=document.all[node];
		if ((obj) && (obj.style)) obj.style.backgroundColor=color
	}
}


// page navigation

var pageWidth=0;
var navX=0;
var navRightOffset=25;
var navTopOffset=23;
var navLinkOffset=34;
var navLinkWidth=16;
var navLinkHeight=16;
var contextXOffset=2;
var contextYOffset=19;
var tableOpen= '<table border="0" cellspacing="0" cellpadding="1" bgcolor="#555555"><tr><td><table border="0" cellspacing="0" cellpadding="3" bgcolor="#D4EAA4"><tr><td class="context">';
var tableClose= '</td></tr></table></td></tr></table>\n';
var contextRightOffset=2;

function setPageNav() {
	pageWidth=getWinWidth();
	var divWidth= getDivWidth('navDiv');
	if ((pageWidth) && (divWidth)) {
		navX=pageWidth-divWidth-navRightOffset;
		setDivX('navDiv',navX);
		setVisibility('navDiv',1)
	}
}

function showContext(r,c,t) {
	if (!navX) return;
	setVisibility('contextDiv',0);
	var x=navX+navLinkOffset+(c*navLinkWidth)+contextXOffset;
	var y=navTopOffset+(r*navLinkHeight)+contextYOffset;
	var content=tableOpen+'<IMG SRC="../../images/context_arrow.gif" WIDTH="10" HEIGHT="10" ALT="" HSPACE="1">'+t+tableClose;
	writeDiv('contextDiv', content);
	var cw=getDivWidth('contextDiv');
	if ((cw) && (cw+x > pageWidth-contextRightOffset)) x=pageWidth-contextRightOffset-cw;
	setDivX('contextDiv',x);
	setDivY('contextDiv',y);
	setVisibility('contextDiv',1);
}

function hideContext() {
	setVisibility('contextDiv',0)
}


// audio tab

var audioTabHeight=37;
audioTabScrollFactor=.3
var audioTabTimer=null;
var audioTabLastY;

function audioTabActivate() {
	audioTabLastY=getWinHeight()+getScrollY()-audioTabHeight;
	setDivY('audioTab',audioTabLastY)
	setVisibility('audioTab',1);
	audioTabTimer=setInterval('audioTabReset()',20)
}

function audioTabReset() {
	var y=getWinHeight()+getScrollY()-audioTabHeight;
	var dy=(y-audioTabLastY)*audioTabScrollFactor;
	audioTabLastY+= (dy > 0)? Math.ceil(dy) : Math.floor(dy);
	//audioTabLastY+=Math.round(dy);
	setDivY('audioTab',audioTabLastY)
}


// basic dynamics & browser abstraction

function getWinWidth() {
	var w=0;
	if ((document.body) && (document.body.clientWidth)) w=parseInt(document.body.clientWidth)
	else if (self.innerWidth) w=parseInt(self.innerWidth)
	else if (document.width) w=parseInt(document.width);
	return w
}

function getWinHeight() {
	var h=0;
	if ((document.body) && (document.body.clientHeight)) h=parseInt(document.body.clientHeight)
	else if (self.innerHeight) h=parseInt(self.innerHeight)
	else if (document.height) h=parseInt(document.height);
	return h
}

function getScrollY() {
	var y=0;
	if ((document.body) && (document.body.scrollTop)) y=parseInt(document.body.scrollTop)
	else if (window.pageYOffset) y=parseInt(self.pageYOffset);
	return y
}

function getDivWidth(d) {
	if (document.layers) {
		return (document.layers[d])? parseInt(document.layers[d].clip.width) : 0;
	}
	else if (document.getElementById) {
		var obj=document.getElementById(d);
		return (obj)? parseInt(obj.offsetWidth) : 0;
	}
	else if (document.all) {
		return (document.all[d])? parseInt(document.all[d].children[0].offsetWidth) : 0;
	}
	else {
		return 0
	}
}

function setDivX(d,x) {
	if (document.layers) {
		if (document.layers[d]) document.layers[d].left=x
	}
	else if (document.getElementById) {
		var obj=document.getElementById(d);
		if (obj) obj.style.left=x+'px'
	}
	else if (document.all) {
		if (document.all[d]) document.all[d].style.left=x+'px'
	}
}

function setDivY(d,y) {
	if (document.layers) {
		if (document.layers[d]) document.layers[d].top=y
	}
	else if (document.getElementById) {
		var obj=document.getElementById(d);
		if (obj) obj.style.top=y+'px'
	}
	else if (document.all) {
		if (document.all[d]) document.all[d].style.top=y+'px'
	}
}

function setVisibility(d,v) {
	if (document.layers) {
		if (document.layers[d]) {
			document.layers[d].visibility= (v)? 'show':'hide';
		}
	}
	else if (document.getElementById) {
		var obj=document.getElementById(d);
		if (obj) {
			obj.style.visibility= (v)? 'visible':'hidden';
		}
	}
	else if (document.all) {
		if (document.all[d]) {
			document.all[d].visibility= (v)? 'visible':'hidden';
		}
	}
}

function writeDiv(d,t) {
	if (document.layers) {
		if (document.layers[d]) {
			document.layers[d].document.open();
			document.layers[d].document.write(t);
			document.layers[d].document.close()
		}
	}
	else if (document.getElementById) {
		var obj=document.getElementById(d);
		if (obj) obj.innerHTML=t
	}
	else if (document.all) {
		if (document.all[d]) document.all[d].innerHTML=t
	}
}


// end of script

