var W3CDOM = ((typeof (document.getElementsByTagName) != "undefined") && (typeof (document.createElement) != "undefined"));

function testFrameSet () {
	var test = true;
	test &= (typeof (window.top.topFrame) == "object");
	test &= (typeof (window.top.mainFrame) == "object");
	test &= (typeof (window.top.mainFrame.menuFrame) == "object");
	test &= (typeof (window.top.mainFrame.themaFrame) == "object");
	return (test);
}

function getParams () {
	var params = "";
	if (window.location.protocol == "http:")
		params = window.location.search;
	else {
		var url = window.location.href;
		var s = url.indexOf ("?");
		if (s >= 0)
			params = url.substring (s, url.length);
	}
	if (params.length > 0)
		// remove questionmark
		params = params.substring (1, params.length);
	return params;
}
function LoadSubFramePage (menuName, pageName, anchor, search, pageURL, lang) {
	if (!testFrameSet ()) return true;
	var mainFrame = window.top.mainFrame;
	// menu item in topmost menu
//	if (typeof (window.top.mainFrame.menuFrame.simulateClick) == "function")
//		window.top.mainFrame.menuFrame.simulateClick (menuName);
	// base path
	var baseURL = getHomeLink ();
	// menu item in nextmost menu
	mainFrame.menuItem = pageName;
	mainFrame.menuFrame.location.href = baseURL + menuName + "/"+menuName + "-menu.html";
	if (!pageURL)
		pageURL = pageName + ".html"
	// sub frame page
	if (lang) 
		baseURL += lang + "/";
	pageURL = baseURL + menuName + "/" + pageURL;
	if (search) {
		if (search.charAt(0) != "?")
			search = "?" + search;
		pageURL += search;
	}
	if (anchor) {
		if (anchor.charAt(0) != "#")
			anchor = "#" + anchor;
		pageURL += anchor;
	}
	mainFrame.themaFrame.location.href = pageURL;
	return false;
}

function getRelLink (relName, attribute) {
	if (!W3CDOM) return null;
	var links = document.getElementsByTagName ('link');
	for (var i = 0; i < links.length; i++) {
		if (links[i].getAttribute ('rel') == relName) 
			return links[i].getAttribute (attribute);
	}
	return null;
}

function getHomeLink (complete) {
	// find home page link
	var homeURL = getRelLink ("home", "href");
	if (!homeURL) {
		if (window.location.protocol == "file:") {
			homeURL = window.location.href;
			var s = homeURL.indexOf ("/o27/");
			homeURL = homeURL.substring (0, s+5);
			if (complete)
				homeURL += "index.html";
		} else
			homeURL = "/";
	}
	return homeURL;
}

if (W3CDOM) {
	var onloadChain = window.onload;
	window.onload = initialize;
}

function initialize () {
	if (window.self == window.parent) {
		// loaded as orphan	

		// base path
		var homeURL = getHomeLink (true) + "?";
		// add search parameters for the subframes to load
		var relLinks = new Array ();
		relLinks["langFrame"]    = "lang"; 
		relLinks["topFrame"]     = "menu"; 
		relLinks["menuFrame"]    = "thema"; 
		relLinks["contentFrame"] = "inhalt";
		for (var rel in relLinks) {
			var value = getRelLink (rel, "title");
			if (value)
				homeURL += relLinks[rel] + "=" + value + "&amp;";
			}
		// add original searchstring
		var params = getParams (); // search string without leading "?"
		if (params.length > 0)
			homeURL += params;

		// add anchor
		homeURL += window.location.hash;
		
		// create link
		var frameHintBlock = document.createElement ("div");
		frameHintBlock.className = "frameHint";
		frameHintBlock.innerHTML += 'Diese Seite ist Teil eines Framesets. F&uuml;r eine vollst&auml;ndige Darstellung bitte die <a href="' + homeURL + '" target="_top">Seite im Frameset</a> laden!';
		var elements = document.getElementsByTagName ("body");
		if (elements.length == 0) return;
		elements[0].insertBefore (frameHintBlock, elements[0].firstChild);
	} else {
		if (onloadChain)
			eval (onloadChain());
		if (testFrameSet ()  && (getRelLink ("home", "href") == null)) {// site is framed and on same server
			// set tab images
			var item = getRelLink ("menuFrame", "title");
			if (item && item.length && typeof (window.top.mainFrame.menuFrame.simulateClick) != "undefined") window.top.mainFrame.menuFrame.simulateClick (item);
			item = getRelLink ("topFrame", "title");
			if (item && item.length && typeof (window.top.topFrame.simulateClick) != "undefined") window.top.topFrame.simulateClick (item);
		}
	}	
}

