/*                         A C H T U N G                                  */
/* !!! BITTE KEINE UMLAUTE UND SONDERZEICHEN IN DIESES FILE SCHREIBEN !!! */
/*  (da das Einbinden des Files sonst in NS6 und IE5 nicht funktioniert)  */

/****************************************************************
* NOeV Utilitys
*
* Beinhaltet allgemeine JavaScript-Funktionen die
* auf jeder Seite oder auf vielen Seiten benoetigt werden.
* Diese werden hierher ausgelagert, damit sie nicht jedes mal
* neu geladen werden muessen
*****************************************************************/

/*
	mailUrl
	-------

	Die Standardfunktion zum Versenden einer Seite
*/
function mailUrl()
{
	var mail=""; // Adresse "To"
	var subject="Die Nieder%F6sterreichische Versicherung"; // Betreff
	var url=escape(document.URL); // Die URL
	var beforeMsg="Dieser Link zum Internet-Portal der Nieder%F6sterreichischen Versicherung k%F6nnte Sie interessieren: "; // Text vor der URL
	var afterMsg=""; // Text nach der URL
	var linebreak=escape("\n\n");

	document.location.href="mailto:"+mail+"?subject="+subject+"&body="+beforeMsg+url+linebreak+afterMsg;
}


/*
	printTable
	----------
	
	Diese Funktion holt sich die Tabelle mit der angegebenen ID
	und stellt diese auf einer eigenen "Druckseite" dar.
	
	Parameter:
		id ................ ID der Tabelle, die gedruckt werden soll
		NeededStyles ...... Alle benoetigte Stylesheets zum Einbinden werden hier angegeben
		VirtualPath ....... der aktuelle virtuelle Pfad der Web-Applikation
		ExternalHeader .... Flag, ob ein "externer" Header gelesen werden soll oder nicht
							(fuer Popups wichtig)
*/
function printTable(id, NeededStyles, VirtualPath, ExternalHeader)
{
	var headertr = 'tr_pagetitle'; // Name der Tabellenzeile, in welcher sich die Ueberschrift befindet
	var stylesheets=NeededStyles.split(','); // Das Array fuer die Stylesheets
	var styles_line = '';
	var i;
	var newWidth = 0;
		
	// Druckfenster aufmachen
	var width = 540;
	var height = 550;
	
	var l=(screen.width)?(screen.width-width)/2:0;
	// Vertikal zentriert: Nicht gewuenscht
	// var t=(screen.height)?(screen.height-height)/2:0; 
	// Deshalb: Einrichtung auf IE6 (Standardsymbolleisten), WinXP
	var t=118;

	var w = window.open('', 'printoutwindow', 'left=' + l + ', top=' + t + ', width=' + width + ', height=' + height + ', scrollbars=yes');

	// Die Stylesheets richtig zusammensetzen
	for(i = 1; i < stylesheets.length; i++) // das 1. Stylesheet wird absichtlich weggelassen, da hier der stoerende Hintergrund definiert wird
	{
		styles_line = styles_line + "<link href='" + stylesheets[i].replace(/\.css$/, '_print.css') + "' type='text/css' rel='stylesheet'>";
	}
	
	w.document.open();
	w.document.writeln('<html><head><title>Seite drucken</title>');
	w.document.writeln(styles_line);
	w.document.writeln('<style type=\'text/css\'>');
	w.document.writeln('	@media print{.printcommand{display:none;}}');
	w.document.writeln('</style>');
	w.document.writeln('</head>');
	w.document.writeln('<body>');
	// w.document.writeln('<div class=\'printcommand\'><a href=\'javascript:window.print()\'>Seite drucken</a><br>&nbsp;</div>');
	w.document.writeln('<img src=\'' + VirtualPath + '/Images/logo_sw.gif\' alt=\'Die Nieder&ouml;sterreichische Versicherung\'><br><br>');
	w.document.writeln('<table id=\'information\' width=' + document.getElementById(id).width + ' border=0>');
	
	if (ExternalHeader)
	{
		w.document.writeln('<tr>');
		w.document.writeln(document.getElementById(headertr).innerHTML.replace(/\n/g, '').replace(/^(.*)\<td\ id\=headline\>/i, '<td id=headline>').replace(/\<\/td\>(.*)$/i, '</TD>'));		
		w.document.writeln('</tr>');
	}
	w.document.writeln('<tr>');
	w.document.writeln('<td>');
	
	// Breite der Content-Tabelle ermitteln und um 4 erhoehen
	newWidth = parseInt(document.getElementById(id).width);
	newWidth = newWidth + 4;
		
	w.document.writeln('<table id=\'content\' width=' + newWidth + ' cellspacing=0 cellpadding=0 border=0>');
	
	// Im folgenden Befehl wird der HTML-Code der Tabelle ausgelesen
	// und alles zwischen den Kommentaren '__BOTTOMCONTROLS_BEGIN__'
	// und '__BOTTOMCONTROLS_END__' entfernt.
	// Somit wird gewaehrleistet dass die "BottomControls" nicht angezeigt werden.
	//	 replace(/\n/g, ''): ersetzt die Zeilenumbrueche durch nichts.
	//						 Das CarriageReturn-Zeichen (13) bleibt aber bestehen,
	//						 wodurch der Browser es noch als Zeilenumbruch erkennt,
	//						 das 10er-Zeichen (LineFeed) jedoch beim folgenden Ersetzen nicht stoert.
	// replace(/__BOTTOMCONTROLS_BEGIN__(.*)__BOTTOMCONTROLS_END__/,''):
	//						 Ersetzt alles was zwischen den beiden eben angesprochenen
	//						 Kommentaren steht durch nichts.
	w.document.writeln(document.getElementById(id).innerHTML.replace(/\n/g, '').replace(/\<!\-\-\[ONLYPRINT_BEGIN\:/g, '').replace(/\:ONLYPRINT_END\]\-\-\>/g,'').replace(/__BOTTOMCONTROLS_BEGIN__(.*)__BOTTOMCONTROLS_END__/i,'').replace(/__BUTTONS_BEGIN__(.*)__BUTTONS_END__/i,'').replace(/__FORMBUTTONS_BEGIN__(.*)__FORMBUTTONS_END__/i,''));  
	w.document.writeln('</table>');
	w.document.writeln('</td>');
	w.document.writeln('</tr>');
	
	// Druck-Button
	w.document.writeln('<tr>');
	w.document.writeln('	<td id=printbutton>');
	w.document.writeln('		<div class=\'printcommand\'><a href=\'javascript:window.print()\'>Seite drucken</a><br>&nbsp;</div>');	
	w.document.writeln('	</td>');
	w.document.writeln('</tr>');
	
	w.document.writeln('</table>');	
	w.document.writeln('</body></html>');
	w.document.close();
	
	w.focus();
}

/*
	openPopup
	---------
	
	Diese Funktion oeffnet die angegebenen URL in einem neuen Fenster
	als Popup-Fenster.
	Diese Funktion wird bei allen Links aufgerufen die als 'Popup'
	definiert wurden.	
	
	Parameter:
		sURL .............. URL der Seite die im Popup-Fenster geoeffnet werden soll
		sTitle ............ Titel des Fensters
*/
function openPopup(sURL, sTitle)
{
	var width = 500;
	var height = 550;
	
	var l=(screen.width)?(screen.width-width)/2:0;
	// Vertikal zentriert: Nicht gewuenscht
	// var t=(screen.height)?(screen.height-height)/2:0; 
	// Deshalb: Einrichtung auf IE6 (Standardsymbolleisten), WinXP
	var t=118;

	if (sURL.indexOf('?') >= 0)
		window.open(sURL + '&popup=true', sTitle, 'left=' + l + ', top=' + t + ', width=' + width + ', height=' + height + ', scrollbars=yes');
	else
		window.open(sURL + '?popup=true', sTitle, 'left=' + l + ', top=' + t + ', width=' + width + ', height=' + height + ', scrollbars=yes');
}

function openImagePopup(sURL, sTitle, width, height)
{
	var l=(screen.width)?(screen.width-width)/2:0;
	// Vertikal zentriert: Nicht gewuenscht
	// var t=(screen.height)?(screen.height-height)/2:0; 
	// Deshalb: Einrichtung auf IE6 (Standardsymbolleisten), WinXP
	var t=118;

	window.open(sURL, sTitle, 'left=' + l + ', top=' + t + ', width=' + width + ', height=' + height + ', scrollbars=no');
}

/*
	printEntirePageWithPopups
	-------------------------

	Druckt die aktuelle Seite mit den (bereits generierten) Popupbereichen.

	Parameter:
		id ................ ID der Tabelle mit dem Hauptcontent
		popupid ........... ID der Tabelle mit dem Popup-Content
		NeededStyles ...... Alle benoetigte Stylesheets zum Einbinden werden hier angegeben
		VirtualPath ....... der aktuelle virtuelle Pfad der Web-Applikation
*/		
function printEntirePageWithPopups(id, popupid, NeededStyles, VirtualPath)
{
	var headertr = 'tr_pagetitle'; // Name der Tabellenzeile, in welcher sich die Ueberschrift befindet
	var stylesheets=NeededStyles.split(','); // Das Array fuer die Stylesheets
	var styles_line = '';
	var i;
	var newWidth;
	
	// Druckfenster aufmachen
	var width = 540;
	var height = 550;
	
	var l=(screen.width)?(screen.width-width)/2:0;
	// Vertikal zentriert: Nicht gewuenscht
	// var t=(screen.height)?(screen.height-height)/2:0; 
	// Deshalb: Einrichtung auf IE6 (Standardsymbolleisten), WinXP
	var t=118;

	var w = window.open('', 'printoutwindow', 'left=' + l + ', top=' + t + ', width=' + width + ', height=' + height + ', scrollbars=yes');
		
	// Die Stylesheets richtig zusammensetzen
	for(i = 1; i < stylesheets.length; i++) // das 1. Stylesheet wird absichtlich weggelassen, da hier der stoerende Hintergrund definiert wird
	{
		styles_line = styles_line + "<link href='" + stylesheets[i].replace(/\.css$/, '_print.css') + "' type='text/css' rel='stylesheet'>";
	}
	
	w.document.open();
	w.document.writeln('<html><head><title>Seite drucken</title>');
	w.document.writeln(styles_line);
	w.document.writeln('<style type=\'text/css\'>');
	w.document.writeln('	@media print{.printcommand{display:none;}}');
	w.document.writeln('</style>');
	w.document.writeln('</head>');
	w.document.writeln('<body>');

	// w.document.writeln('<div class=\'printcommand\'><a href=\'javascript:window.print()\'>Seite drucken</a><br>&nbsp;</div>');
	w.document.writeln('<img src=\'' + VirtualPath + '/Images/logo_sw.gif\' alt=\'Die Nieder&ouml;sterreichische Versicherung\'><br><br>');

	w.document.writeln('<table id=\'information\' width=' + document.getElementById(id).width + ' border=0>');
	w.document.writeln('<tr><td id=headline width=' + document.getElementById(id).width + '>');
	// w.document.writeln(document.getElementById(headertr).innerHTML.replace(/\n/g, '').replace(/^(.*)\<td\ id\=headline\>/i, '<td id=headline>').replace(/\<\/td\>(.*)$/i, '</TD>'));		
	w.document.writeln(document.getElementById('headline').innerHTML);
	w.document.writeln('</td></tr><tr>');
	w.document.writeln('<td>');
	
	newWidth = parseInt(document.getElementById(id).width);
	newWidth = newWidth + 4;
	
	w.document.writeln('<table id=\'content\' width=' + document.getElementById(id).width + ' cellpadding=0 cellspacing=0 border=0>');
	
	// Im folgenden Befehl wird der HTML-Code der Tabelle ausgelesen
	// und alles zwischen den Kommentaren '__BOTTOMCONTROLS_BEGIN__'
	// und '__BOTTOMCONTROLS_END__' entfernt.
	// Somit wird gewaehrleistet dass die "BottomControls" nicht angezeigt werden.
	//	 replace(/\n/g, ''): ersetzt die Zeilenumbrueche durch nichts.
	//						 Das CarriageReturn-Zeichen (13) bleibt aber bestehen,
	//						 wodurch der Browser es noch als Zeilenumbruch erkennt,
	//						 das 10er-Zeichen (LineFeed) jedoch beim folgenden Ersetzen nicht stoert.
	// replace(/__BOTTOMCONTROLS_BEGIN__(.*)__BOTTOMCONTROLS_END__/,''):
	//						 Ersetzt alles was zwischen den beiden eben angesprochenen
	//						 Kommentaren steht durch nichts.
	w.document.writeln(document.getElementById(id).innerHTML.replace(/\n/g, '').replace(/__BOTTOMCONTROLS_BEGIN__(.*)__BOTTOMCONTROLS_END__/i,'').replace(/\<\TBODY\>/i, '').replace(/\<\/TBODY\>/i, ''));  
	
	w.document.writeln(document.getElementById(popupid).innerHTML.replace(/\n/g, '').replace(/(.*)\<\!\-\- __POPUP__CONTENTBEGIN__/,'').replace(/__POPUP__CONTENTEND__(.*)/i,'').replace(/\<\TBODY\>/i, '').replace(/\<\/TBODY\>/i, ''));
	
	w.document.writeln('</table>');
	
	w.document.writeln('</td>');
	w.document.writeln('</tr>');
	
	// Druck-Button
	w.document.writeln('<tr>');
	w.document.writeln('	<td id=printbutton>');
	w.document.writeln('		<div class=\'printcommand\'><a href=\'javascript:window.print()\'>Seite drucken</a><br>&nbsp;</div>');	
	w.document.writeln('	</td>');
	w.document.writeln('</tr>');
	
	w.document.writeln('</table>');	
	w.document.writeln('</body></html>');
	w.document.close();
}