var validhostname = top.location.protocol + "//" + top.location.hostname;

function framelink(urlStr) {
	var params = '' + parent.location;
	if(params.indexOf('?') > 0) {
		params = params.substring((params.indexOf('?')) + 1);

		if(urlStr.indexOf('?') > 0) {
			urlStr = urlStr + '&' + params;
		}
		else {
			urlStr = urlStr + "?" + params;
		}
	}
	var gbrPos = urlStr.indexOf('gbr');
	if (gbrPos == -1) {
		// Parameter gbr nicht uebergeben
		if(urlStr.indexOf('?') > 0) {
			urlStr = urlStr + '&gbr=VR';
		}
		else {
			urlStr = urlStr + '?gbr=VR';
		}
	}
	else {
		if( parent.gbr )
			urlStr = urlStr.replace(/gbr=../, 'gbr=' + parent.gbr);
		else {
			gbrStr = urlStr.substr(gbrPos + 4, 2);
			urlStr = urlStr.substring(0, gbrPos) + "gbr=" + gbrStr.toUpperCase() + urlStr.substring(gbrPos + 6);
		}
	}
	return urlStr;
}

function framefehleranzeigen() {
	top.location.href = framelink(top.doc_root + "/Framefehler.html");
}

function isvalid(currenthostname) {
	if (currenthostname.indexOf(validhostname) == 0)
		return true;
	else return false;
}

function checkframeset() {
	var framesetvalid = true;
	for (var i=0; i<window.frames.length; i++)
		try {
			if (!isvalid(window.frames[i].location.href))
				framesetvalid = false;
		} catch (e) {
			framesetvalid = false;
		}
	if (!framesetvalid) framefehleranzeigen();
}

// Replace each '_' in data string with a space.
function replaceUnderscore(strReplace) {
	if( ! strReplace ) return "";
	while (strReplace.indexOf('_') > -1) {
		strReplace = strReplace.substring(0,strReplace.indexOf('_')) + " "
			+ strReplace.substring(strReplace.indexOf('_') + 1);
	}
	return strReplace ;
}

function replaceExtras(urlStr) {
	if( ! urlStr ) return "";

	if(urlStr.indexOf("%E4")>-1)     {urlStr=urlStr.replace(/%E4/g, "228");}
	if(urlStr.indexOf("%e4")>-1)     {urlStr=urlStr.replace(/%e4/g, "228");}
	if(urlStr.indexOf("%F6")>-1)     {urlStr=urlStr.replace(/%F6/g, "246");}
	if(urlStr.indexOf("%f6")>-1)     {urlStr=urlStr.replace(/%f6/g, "246");}
	if(urlStr.indexOf("%FC")>-1)     {urlStr=urlStr.replace(/%FC/g, "252");}
	if(urlStr.indexOf("%fc")>-1)     {urlStr=urlStr.replace(/%fc/g, "252");}
	if(urlStr.indexOf("%DF")>-1)     {urlStr=urlStr.replace(/%DF/g, "223");}
	if(urlStr.indexOf("%df")>-1)     {urlStr=urlStr.replace(/%df/g, "223");}

    if(urlStr.indexOf("ä")>-1)     {urlStr=urlStr.replace(/ä/g, "&#228");}
    if(urlStr.indexOf("ö")>-1)     {urlStr=urlStr.replace(/ö/g, "&#246");}
    if(urlStr.indexOf("ü")>-1)     {urlStr=urlStr.replace(/ü/g, "&#252");}
    if(urlStr.indexOf("Ä")>-1)     {urlStr=urlStr.replace(/Ä/g, "&#196");}
    if(urlStr.indexOf("Ö")>-1)     {urlStr=urlStr.replace(/Ö/g, "&#214");}
    if(urlStr.indexOf("Ü")>-1)     {urlStr=urlStr.replace(/Ü/g, "&#220");}
    if(urlStr.indexOf("ß")>-1)     {urlStr=urlStr.replace(/ß/g, "&#223");}
	if(urlStr.indexOf("\xC3\xA4")>-1) {urlStr=urlStr.replace(/\xC3\xA4/g, "&#228");}
	if(urlStr.indexOf("\xC3\xBC")>-1) {urlStr=urlStr.replace(/\xC3\xBC/g, "&#252");}
	if(urlStr.indexOf("\xC3\xB6")>-1) {urlStr=urlStr.replace(/\xC3\xB6/g, "&#246");}
	if(urlStr.indexOf("\xC3\x1E")>-1) {urlStr=urlStr.replace(/\xC3\x1E/g, "&#196");}
	if(urlStr.indexOf("\xC3\x13")>-1) {urlStr=urlStr.replace(/\xC3\x13/g, "&#214");}
	if(urlStr.indexOf("\xC3S")>-1)    {urlStr=urlStr.replace(/\xC3S/g, "&#220");}
	if(urlStr.indexOf("\xC3x")>-1)    {urlStr=urlStr.replace(/\xC3x/g, "&#223");}

	// gefaehrliche Zeichen fuer Cross Site Scripting entfernen
	if(urlStr.indexOf("<")>-1)    {urlStr=urlStr.replace(/\</g, " ");}
	if(urlStr.indexOf("\x3C")>-1) {urlStr=urlStr.replace(/\x3C/g, " ");}
	if(urlStr.indexOf(">")>-1)    {urlStr=urlStr.replace(/\>/g, " ");}
	if(urlStr.indexOf("\x3E")>-1) {urlStr=urlStr.replace(/\x3E/g, " ");}
	if(urlStr.indexOf("(")>-1)    {urlStr=urlStr.replace(/\(/g, " ");}
	if(urlStr.indexOf("\x28")>-1) {urlStr=urlStr.replace(/\x28/g, " ");}
	if(urlStr.indexOf(")")>-1)    {urlStr=urlStr.replace(/\)/g, " ");}
	if(urlStr.indexOf("\x29")>-1) {urlStr=urlStr.replace(/\x29/g, " ");}

	return urlStr;
}

function getTitle() {
	var title;
	var par = '' + parent.frames["topR"].location;
	par = par.substring((par.indexOf('?')) + 1);

	if (par.length < 1) { }
	else {
		var keypairs = new Object();
		var numKP = 1;
		while (par.indexOf('&') > -1) {
			keypairs[numKP] = par.substring(0,par.indexOf('&'));
			par = par.substring((par.indexOf('&')) + 1);
			numKP++;
		}
		keypairs[numKP] = par;
		for (i in keypairs) {
			keyName  = keypairs[i].substring(0,keypairs[i].indexOf('='));
			keyValue = keypairs[i].substring((keypairs[i].indexOf('=')) + 1);
			keyValue = unescape(keyValue);
			if ((keyName == 'title') && (keyValue != "")) {
				title= replaceUnderscore(keyValue);
			}
		}
	}
	return title;
}

function setTitle( titel ) {
	try {
		parent.topR.location = top.doc_root + "/nav_title.html?title=" + escape(titel);
	} catch(ex) {
//		alert("Exception :" + ex);
	}
}

function checkNavUrl( urlStr ) {
	if( urlStr.indexOf("GAD") >= 0 ) {
		urlStr = top.doc_root + urlStr.substr(urlStr.indexOf("GAD") + 3);
	}
	else {
		if( (urlStr.indexOf("http") < 0)
		&&  (urlStr.indexOf("mailto") < 0)
		&&  (urlStr.indexOf("javascript") < 0) ) {
			urlStr = top.host_teledata + urlStr + "&LayoutIP=1&pe=1";
		}
	}
	if( urlStr.indexOf("http") >= 0 ) {
		ii = -1;
		for( i in top.allowedHosts ) {
			ii = urlStr.indexOf(top.allowedHosts[i]);
			if( ii >= 0 ) break;
		}
		if( ii != 0 ) urlStr = "";
	}
	return urlStr;
}

function nav(id0, id1, id2, titel, urlStr, newWindow) {
	urlStr = urlStr.replace(/^ +/, "").replace(/ +$/, "");
//alert("id0 = '" + id0 + "'\nid1 = '" + id1 + "'\nid2 = '" + id2 + "'\nTitel = '" + titel + "'\nurl = '" + urlStr + "'\nnewWindow = '" + newWindow + "'");

	if( urlStr.length > 0 ) {
		urlStr = checkNavUrl( urlStr );
	}

	if( (newWindow == "true") && (urlStr.length > 0) ) {
		f1 = window.open(urlStr, "_blank");
		f1.focus();
	}
	else {
		var navURL = top.app_root + "/Navigation?id0=" + id0 + "&id1=" + id1 + "&id2=" + id2;
//		parent.frames["menu"].location = framelink(navURL);
		parent.frames[1].location = framelink(navURL);
		if( (urlStr.length > 0) ) {
			parent.frames["main"].location = urlStr;
			setTitle(titel);
		}
	}
}

// Funktion berechnet u.a. den Pfad, aus dem die Headergrafik zu holen ist.
function getHeader() {
	var bild       = "privatkunden.jpg";
	var bildString = top.doc_root + "/l_images/default/" + bild;

	if (parent.ind != "0" && parent.bankid != 0) {
		bildString = top.doc_root + "/l_images/" + parent.bankid + parent.ind + "/" + bild;
	} else {
		document.write( '<div id="banklogo">');
		document.write( '<img src="' + top.doc_root + '/l_images/default/1.gif"/>&nbsp;');
		document.write( replaceExtras(replaceUnderscore(top.firma)) );
		document.write( '</div>');
	}
	document.write( '<div class="header" style="background-image: url(' + bildString + ');"></div>');
}

function getFavicon() {
	var icon = top.doc_root + "/favicon.ico";
	if( parent.ind != "0" && parent.bankid != 0) {
		icon = top.doc_root + "/l_images/" + parent.bankid + parent.ind + "/favicon.ico";
	}
	return icon;
}

// Funktion oeffnet die Sitemap-Seite.
function openSitemap() {
	setTitle("Sitemap");
	try {
		top.main.location = framelink(top.smap_url);
	} catch(ex) {
//		alert("Exception :" + ex);
	}
}

// Funktion oeffnet die Service-Seite
function openService() {
	var winSrc = '/module/service_1.html';
	if( parent.gbr == 'XG' || parent.gbr == 'XF' )
		winSrc = '/module/service.html';
	newWindow = window.open (
		framelink(top.doc_root + winSrc),
		'Service',
		'width=780,height=600,toolbar=0,location=0,'
		+ 'directories=0,status=0,menuBar=1,scrollBars=yes,'
		+ 'resizable=yes'
	);
	newWindow.focus();
	return;
}

// Funktion oeffnet die Homepage
function openHome() {
	newWindow = window.open("http://" + parent.homeUrl, "_blank");
	newWindow.focus();
	return;
}

function getWKN() {
	var wknStr = window.location.search;
	if( wknStr.indexOf("wkn=") > 0 ) {
		wknStr = wknStr.replace(/.+wkn=/, "");
		wknStr = wknStr.replace(/\&.+/, "");
	} else {
		wknStr = "";
	}
	if( wknStr == "" ) wknStr = "Kurssuche";
	return wknStr;
}

function openInfo(urlStr) {
	if( urlStr.indexOf("http") < 0 )
		urlStr = top.host_info + urlStr;
	newWindow = window.open
	(
		framelink(urlStr), "Boerseninfos"
	);
	newWindow.focus();
	return;
}
function openInfoplattform() {
	var urlStr = top.doc_root + "/index.html";
	top.location = framelink(urlStr);
}

function openHilfeInfo() {
	var idBank = parent.bankid;
	if( 0 == idBank ) idBank = "";

	hilfeUrl = parent.host_teledata + parent.hilfe_url
		+ "&RZKZ=" + parent.gbr + "&RZBK=" + idBank;
	newWindow = window.open
	(
		hilfeUrl,
		'Hilfe',
		'width=780,height=600,toolbar=0,location=0,'
		+ 'directories=0,status=0,menuBar=1,scrollBars=yes,'
		+ 'resizable=yes'
	);
	newWindow.focus();
	return;
}

function getNutzungsbedingungenUrl() {
	var idBank = parent.bankid;
	if( 0 == idBank ) idBank = "";

	retUrl = top.host_teledata + top.nutz_url
		+ "&RZKZ=" + top.gbr + "&RZBK=" + idBank;

	return retUrl;
}

function openPopup(urlStr, titel) {
	if( urlStr.indexOf("GAD") >= 0 ) {
		urlStr = top.doc_root + urlStr.substr(urlStr.indexOf("GAD") + 3);
	}
	newWindow = window.open
	(
		framelink(urlStr),
		titel,
		'width=780,height=600,toolbar=0,location=0,'
		+ 'directories=0,status=0,menuBar=1,scrollBars=yes,'
		+ 'resizable=yes'
	);
	newWindow.focus();
	return;
}

function openURL(URL, target) {
	switch (target) {
		case '_top':
			top.document.location = URL + document.location.search;
			break;
		case '_blank':
			window.open(URL + document.location.search);
			break;
		default:
			document.location = URL + document.location.search;
			break;
	}
}

