//  Unschoen: der Contextpath ist fest, irgendwie muss das noch variabel werden
//  Kommt ein Stueck JavaScript selber dahinter, woher es geladen worden ist?
var preloadImages = new Array(

	'/metzler/images/main/bg_nav1a.png',
	'/metzler/images/main/bg_nav2a.png',
	'/metzler/images/main/bg_nav.png',
	'/metzler/images/main/bg_navpfeil_a.png',

	'/metzler/images/buttons/button_fontsize_big_a.png',
	'/metzler/images/buttons/button_fontsize_standard_a.png',
	'/metzler/images/buttons/button_fontsize_small_a.png',
	'/metzler/images/buttons/button_rss_a.png',
	'/metzler/images/buttons/button_mail_a.png',
	'/metzler/images/buttons/button_print_a.png',
	'/metzler/images/buttons/button_submit_a.png',
	'/metzler/images/buttons/button_chart1.png',
	'/metzler/images/buttons/button_chart2a.png',
	'/metzler/images/buttons/button_chart3a.png'

	);

images = new Array();
for (i=0;i<preloadImages.length;i++) {
	var name1 = preloadImages[i].split("/");
	var name2 = name1[4].split(".");
	var name = name2[0];

	images[name] = new Image;
	images[name].src = preloadImages[i];
}


//Browser-Detection
function Browser() {
	var ua = navigator.userAgent.toLowerCase(); this.ua = ua;
	this.isIE = ( (ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1) );
	this.isIE7 = (ua.indexOf("msie 7") != -1);
	this.isGecko = (ua.indexOf('gecko') != -1);
}
var browser = new Browser();


//Mausposition für Tooltip
document.onmousemove = updateMousePos;
function updateMousePos(e) {
	var ref = document.getElementById('tooltip');
	if (ref && ref.style.visibility == 'visible') {
		xPos = (document.all) ? window.event.clientX + document.body.scrollLeft : e.pageX;
		yPos = (document.all) ? window.event.clientY + document.body.scrollTop  : e.pageY;
		ref.style.left = (xPos + 4) + "px";
		ref.style.top = (yPos + 11) + "px";
	}
}

//Tooltip
function tooltip(text) {
	var ref = document.getElementById('tooltip');
	if (text == '0') {
		ref.style.visibility = 'hidden';
	} else {
		if (!ref) {
			var ref = document.createElement("div");
			var id = document.createAttribute("id");
			id.nodeValue = "tooltip";
			ref.setAttributeNode(id);
			var body  = document.getElementsByTagName("body").item(0);
			body.appendChild(ref);
		}
		ref.innerHTML = text;
		ref.style.visibility = 'visible';
	}
}

//Sitemap
function toggleblende(status) {
	if (status==0) {
		display = 'none';
	} else {
		display = 'inline';
	}
	document.getElementById('blende').style.display=display;
	document.getElementById('blende_all').style.display=display;
	return false;
}

function createXMLHttpRequest()
{
	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
	try { return new XMLHttpRequest(); } catch(e) {}
	alert("XMLHttpRequest not supported");
	return null;
}

function show_sitemap(url)
{
	var ref = document.getElementById("blende_all");
	if (ref)
	{
		//  FIXME - für's debugging laden wir die Seite immer wieder neu
		if (true || ref.innerHTML.length < 100)
		{
			var xhr = createXMLHttpRequest();
			xhr.onreadystatechange = function()
				{
					if (xhr.readyState==4) // Request is finished
					{
						if (xhr.status==200)
						{
							ref.innerHTML = xhr.responseText;
							toggleblende(1);

							scroll(0,0);
						}
						else
						{
							alert("An error occurred.");
						}
					}
				}

			xhr.open("GET", url, true);
			xhr.send(null);
		}
		else
		{
			//  Sitemap already loaded, just activate it...
			toggleblende(1);

			scroll(0,0);
		}

		return false;
	}

	return true;
}

function show_search(baseurl)
{
	/*
		Aus
		"Funds Japan"
		wird
		"/metzler/servlets/search/?queryLang=de&query=Funds+Japan&results=10"
	*/

	var searchstring = document.form_suche.query.value;
	searchstring = searchstring.replace(/\s/g, "+");
	/* alert("2: " + searchstring); */
	var url = baseurl + searchstring;

	var ref = document.getElementById("blende_all");
	if (ref)
	{
		var content = '<iframe name="search_results" src="' + url + '"';
		content = content + ' width="1000" height="1200"';
		content = content + ' frameborder="0" align="middle" >';
		content = content + '<' + '/iframe>';

		/* alert("5: " + content); */

		ref.innerHTML = content;

		toggleblende(1);
	}

	return false;
}

function show_contact(url)
{
	var ref = document.getElementById("blende_all");
	if (ref)
	{
		//  FIXME - für's debugging laden wir die Seite immer wieder neu
		if (true || ref.innerHTML.length < 100)
		{
			var xhr = createXMLHttpRequest();
			xhr.onreadystatechange = function()
				{
					if (xhr.readyState == 4) // Request is finished
					{
						if (xhr.status == 200)
						{
							//  ref.className = "blende_klein";

							ref.innerHTML = xhr.responseText;
							toggleblende(1);

							scroll(0,0);
						}
						else
						{
							alert("An error occurred.");
						}
					}
				}

			xhr.open("GET", url, true);
			xhr.send(null);
		}
		else
		{
			//  Sitemap already loaded, just activate it...
			toggleblende(1);

			scroll(0,0);
		}

		return false;
	}

	return true;
}

function show_recommendation(url)
{
	var ref = document.getElementById("blende_all");
	if (ref)
	{
		//  FIXME - für's debugging laden wir die Seite immer wieder neu
		if (true || ref.innerHTML.length < 100)
		{
			var xhr = createXMLHttpRequest();
			xhr.onreadystatechange = function()
				{
					if (xhr.readyState == 4) // Request is finished
					{
						if (xhr.status == 200)
						{
							ref.className = "blende_klein";

							ref.innerHTML = xhr.responseText;
							toggleblende(1);

							scroll(0,0);
						}
						else
						{
							alert("An error occurred.");
						}
					}
				}

			xhr.open("GET", url, true);
			xhr.send(null);
		}
		else
		{
			//  Sitemap already loaded, just activate it...
			toggleblende(1);

			scroll(0,0);
		}

		return false;
	}

	return true;
}

function textCounter(field, countfield, maxlimit)
{
	if (field.value.length > maxlimit)
		field.value = field.value.substring(0, maxlimit);
	else
		countfield.innerHTML = maxlimit - field.value.length;
}

//Dax-Chart-Navigation
function chartswitch(element) {
	for (i=0;i<element.parentNode.childNodes.length;i++) {
		if(element.parentNode.childNodes[i].nodeName == "A")
		element.parentNode.childNodes[i].firstChild.src = element.parentNode.childNodes[i].firstChild.src.replace(/a.png/,".png");
	}
	element.firstChild.src = element.firstChild.src.replace(/.png/,"a.png");
}

//Menü-Funktion für IE6
function IE6hover() {
	var tags = document.getElementById("nav").getElementsByTagName("DIV");
	for (var i=0; i<tags.length; i++) {
		tags[i].onmouseover = function() {
			this.className = 'hover';
		}
		tags[i].onmouseout = function() {
			this.className = this.className.replace(/hover/, '');
		}
	}
}

//Init-Funktionen onLoad aufrufen
function init() {
	if (browser.isIE && !browser.isIE7) if (document.getElementById("nav")) IE6hover();
	if (getCookie('fontSize')) changeFontsize(getCookie('fontSize'));
}
if(window.addEventListener) window.addEventListener("load", init, false); else window.attachEvent("onload", init);


//FontSize-Funktionen
function getCookie(name){
  var cname = name + "=";
  var dc = document.cookie;
  if (dc.length > 0) {
    begin = dc.indexOf(cname);
    if (begin != -1) {
      begin += cname.length;
      end = dc.indexOf(";", begin);
      if (end == -1) end = dc.length;
        return unescape(dc.substring(begin, end));
    }
  }
  return null;
}

function setCookie(name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
  ((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
  ((path == null) ? "" : "; path=" + path) +
  ((domain == null) ? "" : "; domain=" + domain) +
  ((secure == null) ? "" : "; secure");
}

function changeFontsize(fSize) {
	if (document.getElementById("content_inner")) treeTraverseRecursion(document.getElementById("content_inner"), fSize);
	if (document.getElementById("blende_content_inner")) treeTraverseRecursion(document.getElementById("blende_content_inner"), fSize);
	setCookie('fontSize', fSize);
	return false;
}

function treeTraverseRecursion(currentElem, size) {
	var i = 0;
	var currentElemChild = currentElem.childNodes[i];

	if (currentElem) {
		while (currentElemChild) {
			if (currentElem.style && currentElem.className.search(/nozoom/) == -1 && currentElemChild.style && currentElemChild.className.search(/nozoom/) == -1) treeTraverseRecursion(currentElemChild,size);
			i++;
			currentElemChild = currentElem.childNodes[i];
		}
		visit(currentElem, size);
	}
}

function visit(eachElement, fSize) {
	if (eachElement.style){
	 	if (eachElement.nodeName == "H1") {
			newFontSize = Math.round(21*fSize);
		} else if (eachElement.nodeName == "H2") {
			newFontSize = Math.round(16*fSize);
		} else if (eachElement.nodeName == "TD") {
			newFontSize = Math.round(11*fSize);
		} else {
			newFontSize = Math.round(12*fSize);
		}
		if (newFontSize) eachElement.style.fontSize = newFontSize + "px";
	}
}