
var reloadParam			= '';
var sid					= '';
var nid					= '';

// ****************************************************************
// START onready
// wird beim Laden der Seite ausgeführt (onready-Event)
// ****************************************************************
$(document).ready(function() {
	// -------------------------------------------------------------------------------------
	// Bereite alle Links auf, die im Layer aufgehen sollen
	// -------------------------------------------------------------------------------------
	$("a.layer").each(function(){
		// Click-Event zum Öffnen des Layer hinzufügen
		$(this).bind("click", function(){
			try {
				$(this).trigger('oeffneLayer');
			}
			catch (e) {
				alertException(e);	// nur localhost!!
			}
			return false;
		});
		$(this).iframebox({});

		// Speichere den Wert von href in tempHref, danach entferne href, damit der User den Link nicht in einem neuem Browser-Tab öffnen kann
		$(this).attr("tempHref", $(this).attr("href"));
		$(this).attr("href", "javascript:void(0)");

		// Link jetzt anzeigen, da er nur bei deaktiviertem JS nicht sichtbar sein soll
		$(this).show();
	});
	
	// -------------------------------------------------------------------------------------
	// Prüft ob der Aufruf aus einer eMail kommt
	// -------------------------------------------------------------------------------------	
	openDirectLink();

	// -------------------------------------------------------------------------------------
	// Javascript nachladen: ext.js
	// -------------------------------------------------------------------------------------
	$.getScript("/Allgemein/Scripts/extjs_minimiert/lib/ext.js", function(){
		isExtJsSchonDa = true;
	}, true);
});
// ****************************************************************
// ENDE onready
// ****************************************************************


// ****************************************************************
// START JS nachladen
// nicht sofort benötigte Javascript-Dateien werden bei ONREADY nachgeladen
// dies sind derzeit: /Allgemein/Scripts/extjs_minimiert/lib/ext.js
// ****************************************************************

var isExtJsSchonDa = false;

// das Gegenstück existiert auch in huk24_utils_layer.js
function getIsExtJsSchonDa(){
	return isExtJsSchonDa;
}

// ****************************************************************
// ENDE JS nachladen
// ****************************************************************


// ****************************************************************
// START Selfservice-Dialog
// Alles was in HP für den Selfservice-Dialog benötigt wird, weitere Dinge in huk24_utils.js
// ****************************************************************

var suchtext = "";
var kommeVomSuchfeld = false;
var kommeVomWeiterbutton = false;
var selfservice_data;

// das Gegenstück existiert auch in huk24_utils_layer.js
function setKommeVomSuchfeld(wert){
	kommeVomSuchfeld = wert;
}

// das Gegenstück existiert auch in huk24_utils_layer.js
function setSuchtext(wert){
	suchtext = wert;
}

function showSelfServiceDialog2(path, titleText, dialogWidth, dialogHeigth, footer, modal){
    var w = dialogWidth > 0 ? dialogWidth : 250;
	var h = dialogHeigth > 0 ? dialogHeigth : 300;
	var mod = modal > 0 ? modal : false;
	var buttonleiste = '';
	selfservice_data = new Object();
			   
	if(mod == true){
		hideOrClose = 'close';
	}else{
		hideOrClose = 'hide';		
	}
			   
	if($('#helpDialogDiv').length == 0){
		$("<div id='helpDialogDiv' style='display:none'></div>").insertAfter("#bodyhp");
	}
	
	if($('#helpDialogDiv')){    	          					
			
		// es wird immer geprüft ob ein Feld vorhanden ist, wenn ja wird der Wert daraus gelesen	
		// nur nötig wenn der Hilfe-Dialog derzeit sichtbar ist
		if (helpWindow && helpWindow.isVisible()) {

			if($('#TXT_SUCHTEXT_SS').length > 0){
				selfservice_data.TXT_SUCHTEXT = $('#TXT_SUCHTEXT_SS').val();
			}
			if($('#TXT_THEMA_1').length > 0){
				selfservice_data.TXT_THEMA_1 	= $('#TXT_THEMA_1').val();
			}			
			if($('#TXT_THEMA_2').length > 0){
				selfservice_data.TXT_THEMA_2 	= $('#TXT_THEMA_2').val();
			}			
			if($('#TXT_FRAGE_SS').length > 0){
				selfservice_data.TXT_FRAGE 	= $('#TXT_FRAGE_SS').val();
			}
			if($('#TXT_VSNR_SS').length > 0){
				selfservice_data.TXT_VSNR		= $('#TXT_VSNR_SS').val();	
			}			
			if($('#TXT_EMAIL_SS').length > 0){
				selfservice_data.TXT_EMAIL	= $('#TXT_EMAIL_SS').val();
			}
			if($('#TXT_EMAIL2_SS').length > 0){
				selfservice_data.TXT_EMAIL2	= $('#TXT_EMAIL2_SS').val();
			}
			if($('#TXT_NAME_SS').length > 0){
				selfservice_data.TXT_NAME	= $('#TXT_NAME_SS').val();
			}
			if($('#TXT_VORNAME_SS').length > 0){
				selfservice_data.TXT_VORNAME	= $('#TXT_VORNAME_SS').val();
			}
			if($('#TXT_TELEFON_SS').length > 0){
				selfservice_data.TXT_TELEFON	= $('#TXT_TELEFON_SS').val();
			}
			if($('#TXT_TELEFON2_SS').length > 0){
				selfservice_data.TXT_TELEFON2	= $('#TXT_TELEFON2_SS').val();
			}
			if($('#TXT_VN_EMAIL_SS').length > 0){
				selfservice_data.TXT_VN_EMAIL	= $('#TXT_VN_EMAIL_SS').val();
			}
			if($('#TXT_VN_NAME_SS').length > 0){
				selfservice_data.TXT_VN_NAME	= $('#TXT_VN_NAME_SS').val();
			}
			if($('#TXT_VN_VORNAME_SS').length > 0){
				selfservice_data.TXT_VN_VORNAME	= $('#TXT_VN_VORNAME_SS').val();
			}
			if($('#TXT_NACHRICHT_SS').length > 0){
				selfservice_data.TXT_NACHRICHT	= $('#TXT_NACHRICHT_SS').val();
			}
			if($('#DAT_DATUM_SS').length > 0){
				selfservice_data.DAT_DATUM	= $('#DAT_DATUM_SS').val();
			}
			if($('#SEL_USER_SYSTEM').length > 0){
				selfservice_data.SEL_USER_SYSTEM	= $('#SEL_USER_SYSTEM').val();
			}
			if($('#SEL_USER_BROWSER').length > 0){
				selfservice_data.SEL_USER_BROWSER	= $('#SEL_USER_BROWSER').val();
			}
			if($('#SEL_USER_FIREWALL').length > 0){
				selfservice_data.SEL_USER_FIREWALL	= $('#SEL_USER_FIREWALL').val();
			}
			if($('#CHK_KOPIE_UNVERSCHLUESSELT').length > 0){
				selfservice_data.CHK_KOPIE_UNVERSCHLUESSELT	= $('#CHK_KOPIE_UNVERSCHLUESSELT').val();
			}
			if($('#SEL_THEMA_SS').length > 0){
				selfservice_data.SEL_THEMA	= $('#SEL_THEMA_SS').val();
			}
				
			// Values aus Seite Antwort übernehmen
			if($("#KEZ_RATING_1:checked").val() == '1' || $("#KEZ_RATING_0:checked").val() == '0') {
				selfservice_data.KEZ_RATING = $("input:radio:checked[name='KEZ_RATING']").val();
			}
			else if (path.indexOf("page=Antwort") != -1 && path.indexOf("rating=true") != -1) {
				selfservice_data.KEZ_RATING = null;
			}
		
			// Values aus Seite Antwortvorschläge übernehmen			
			if($("#KEZ_TO_DO_1:checked").val() == '1' || $("#KEZ_TO_DO_0:checked").val() == '0') {
				selfservice_data.KEZ_TO_DO = $("input:radio:checked[name='KEZ_TO_DO']").val();
			}
		}
		
		// Wenn eine Vorbelegung des Themas gewünscht ist, hier eintragen
		// Achtung: Das gilt nicht bei Suche über das Suchfeld, in diesem Fall wird die ID nachher wieder überschrieben
		// Achtung: Das gilt auch nicht, wenn Parameter an der URL hängen (z.B. docid), dann würde die docid nämlich nicht angezeigt (id hat scheinbar Vorrang)
		if ($("#selfservice_id").length && path.indexOf('?') == -1) {
			selfservice_data.id = $("#selfservice_id").val();
		}
		
		// wenn der Aufruf über das Suchfeld der Infospalte kommt, den eingegeben Text übernehmen, Vorbelegung des Themas auf "Alle" setzen
		if (kommeVomSuchfeld) {
			selfservice_data.TXT_SUCHTEXT = suchtext;
			selfservice_data.id = "0";
			kommeVomSuchfeld = false;		// globale Variable zurücksetzen
		}

// Falls keine Session ID vorhanden ist eine dranhängen
/*if (document.title.indexOf('Sitzung abgelaufen') == -1) {	
	path = 	getNetMindId() + path.substr(1);
	console.info(path);
}*/
		
		if (footer)
				buttonleiste = '<div id=helpDialogButtons><table width="100%" cellspacing="0" cellpadding="0">' +
							'<tr>' +
								'<td colspan="2">' +
									'<img src="/Allgemein/Bilder/blind.gif" width="1" height="5" alt="">' +
								'</td>' +
							'</tr><tr class="l">' +
								'<td colspan="2">' +
									'<img src="/Allgemein/Bilder/blind.gif" width="1" height="2" alt="">' +
								'</td>' +
							'</tr><tr>' +
								'<td colspan="2">' +
									'<img src="/Allgemein/Bilder/blind.gif" width="1" height="8" alt="">' +
								'</td>' +
							'</tr><tr valign=top>' +
								'<td width=50% align=left>' + 
									'<a href="javascript:void(0)" onclick="closeSelfServiceDialog()"><img src="/Allgemein/Bilder/button_schliessen.gif" border="0"></a>' +
								'</td><td width=50% align=right>' + 
									'<a href="javascript:void(0)" onclick="printSelfServiceDialog()"><img src="/Allgemein/Bilder/button_drucken.gif" border="0"></a>' +
								'</td>' +
							'</tr></table></div>';			
		// Dialog erzeugen
		if (!helpWindow) {
			// Sicherheitsabfrage, ob ext.js schon geladen wurde
			// Bei Klick auf einen inaktiven Weiterbutton erst mal nichts tun, weil dort passiert eine eigene Fehlerbehandlung
			if (!isExtJsSchonDa && !kommeVomWeiterbutton) {
				alert("Es ist ein Fehler aufgetreten. Möglicherweise haben Sie eine langsame Internetverbindung. Bitte probieren Sie es in Kürze erneut.");
				return;
			}
			helpWindow = new Ext.Window({
	            el:'helpDialogDiv',
				title: 'Loading...',
        	    layout:'fit',
            	width:w,
	            autoHeight: 'auto',
				minWidth: 300,
    	    	minHeight: 200,
        		maximizable: true,
        		collapsible: true,
	        	autoScroll:true,
	            plain: true,
    	        modal: mod,
				x: (getClientWidth()- w -20),
				y: ($(window).scrollTop()+ 100),
		   		html: '<div width="100%" align="center"><img src="/Allgemein/Bilder/loading.gif" alt="Loading..."></div>',
		   		closeAction: hideOrClose,
		   		shadow: false
			});
			helpWindow.show();
		}
		// Dialog updaten, wenn vorhanden
		else {
			if (!helpWindow.isVisible())
				helpWindow.body.update('<div id="helpDialogContent" style="visibility:hidden"></div>');
		
			helpWindow.setTitle('Loading...');
			if(!helpWindow.maximized){
				helpWindow.setWidth(w);
			}

			if($(window).scrollTop() > helpWindow.getPosition()[1]){
				if((helpWindow.getPosition()[1] + helpWindow.getSize().height) > (getClientHeight()- $(window).scrollTop())){
					helpWindow.setPagePosition((getClientWidth()- w -20), ($(window).scrollTop()+ 5));
				}else{				
					helpWindow.setPagePosition((getClientWidth()- w -20), ($(window).scrollTop()+ 100));
				}
			}
			
			if($('#helpDialogLoading').length == 0){				
				$('<div id="helpDialogLoading" width="100%" align="center"><img src="/Allgemein/Bilder/loading.gif" alt="Loading..."></div>').insertBefore('#helpDialogContent');				
			}			
			helpWindow.show();		
		}		
		
		// wenn schon ein Ajax-Call gesendet wurde diesen abbrechen
		if (req) 
			req.abort();
		
		// Ajax-Call	
       	req = $.ajax({
				url: setNetMindIdInUrl(setSessionIdInUrl(path)),
				cache: true,
				async: true,
				type: 'POST',
				contentType: 'application/x-www-form-urlencoded;charset=UTF-8',
				data: selfservice_data,
				dataType: 'html',
				timeout: 30000,
				success: function(msg, testStatus){	
					// Seiteninhalte aufbereiten
					var content = '<div id="helpDialogContent" class="z43" style="padding:10px">' + msg + buttonleiste + '</div>';
					
					if (content.indexOf('SelfServiceError') != -1) {
						helpWindow.setTitle('Fehler');
						helpWindow.body.load('/selfservice/Error.jsp');						
					}
					else {
						helpWindow.setTitle(titleText);
						helpWindow.body.update(content);
					}
					
					// ist das Fenster klein (collapsed) dann wird es hier bei einer neuen Anfrage wieder geöffnet
					if(helpWindow.collapsed){
						helpWindow.toggleCollapse(true);
					}					
					helpWindow.setVisible(true);
					req = null;
	        	},
				error: function(xmlHttpRequest, textStatus, errorThrown){			
					// Im Fehlerfall Fehlerseite aufblenden
					helpWindow.setTitle('Fehler');
					helpWindow.body.load('/selfservice/Error.jsp');
					// ist das Fenster klein (collapsed) dann wird es hier bei einer neuen Anfrage wieder geöffnet
					if(helpWindow.collapsed){
						helpWindow.toggleCollapse(true);
					}
					helpWindow.setVisible(true);
					req = null;
				}
			});		
		
		if(mod == true){
			helpWindow.center();
			helpWindow.setPagePosition(helpWindow.getPosition()[0], 65);
			helpWindow.addListener('beforeclose', onBeforeClose);
		}					
	}      
}

function onBeforeClose(evt){
	helpWindow.removeListener('beforeclose', onBeforeClose);
	closeSelfServiceDialog();
}

function printSelfServiceDialog() {
	$('#helpDialogContent').print();
	return(false);
}

function populate_select(form) {
	if (form.TXT_THEMA_1.value == 'Versicherung') {
		form.TXT_THEMA_2.style.display = "inline";
	} else {
		form.TXT_THEMA_2.style.display = "none";
		form.TXT_THEMA_2.value = "";
	}
}
// ****************************************************************
// ENDE Selfservice-Dialog
// ****************************************************************



// ****************************************************************
// START Prüft ob die Freischalte-Seite geöffnet werden soll	
// ****************************************************************
function openFreischaltLayer(freischaltUrl){
	if(freischaltUrl != ''){
		
		if($('#freischaltLink').length == 0){
			$("<a href='#' id='freischaltLink' style='display:none'></a>").insertAfter("#bodyhp");
		}
			
		$('#freischaltLink').attr("tempHref", freischaltUrl);
		$('#freischaltLink').attr("href", "javascript:void(0)");	
		$('#freischaltLink').iframebox({'url':freischaltUrl});
		$('#freischaltLink').trigger('oeffneLayer');
	}
}
// ****************************************************************
// ENDE Prüft ob die Freischalte-Seite geöffnet werden soll	
// ****************************************************************


// ****************************************************************
// START jQuery.imframebox
// Funktionen zum Aufbau des Layers
// ****************************************************************
;(function($) {

	/**
	 * Variablen definition
	 */
	var elem;
	var opts;
	var busy 	= false;  // zeigt nur ob das Iframe gerade beim laden ist, so dass es nciht nochmals geladen wird
	var conLog 	= false; // varibale zum loggen, ist diese auf "true" kann ein Logging in der FireBug-Konsole durchgeführt werden, solte im Produktivsystem auf false gesetzt werden
	var loadingTimer= 0;
	var loadingFrame= 1;

	// prueft ob es sich um einen InternetExplorer in der Version < 8 handelt
	var isIElt8 = ($.browser.msie && parseInt($.browser.version.substr(0,1)) < 8);

	// falls isIElt8 wahr ist muss noch geprüft werden, ob der vom User dennoch einstellbare Dokumentenmodus ungleich IE8-Standards ist (dann wäre document.documentMode=8)
	if (isIElt8) {
		if (document.documentMode && document.documentMode >= 8) {
			isIElt8 = false;
		}
	}

	/**
	 * logs the current jQuery selection to the firebug console
	 * @param {Object} msg
	 */
	$.fn.log = function (msg) {
      		console.log("%s: %o", msg, this);
      		return this;
  	};

	/**
	 *
	 */
	$.fn.fixPNG = function() {
		return this.each(function () {
			var image = $(this).css('backgroundImage');

			if (image.match(/^url\(["']?(.*\.png)["']?\)$/i)) {
				image = RegExp.$1;
				$(this).css({
					'backgroundImage': 'none',
					'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=" + ($(this).css('backgroundRepeat') == 'no-repeat' ? 'crop' : 'scale') + ", src='" + image + "')"
				}).each(function () {
					var position = $(this).css('position');
					if (position != 'absolute' && position != 'relative')
						$(this).css('position', 'relative');
				});
			}
		});
	};

	/**
	 * wird bei der initialisierung der Seite aufgerufen, am ender der Methode wird ein event-handler definiert,
	 * mit dem das anzeigen und laden des IFrames gestartet wird. Diese Methode beinhaltete mehrere private Methoden.
	 * @param {Object} settings - ist ein Object, mit diesem koennen die default-werte ueberschrieben werden
	 */
	$.fn.iframebox = function(settings){
	
		if(conLog) $.fn.log('$.fn.iframebox');		
		// ermittelt die schnittmenge aus defaults und settings, wobei settings die defaults ueberschreibt, das ganze wird in settings gespeichert
		settings = $.extend({}, $.fn.iframebox.defaults, settings);

		/**
		 * zur Initialiesirung, nach dem click-event
		 */
		function _initialize() {
			if(conLog) $.fn.log('_initialize');
			elem = this;
			elem.tempHref = $(this).attr("tempHref");
			opts = settings;
			opts.frameHeight = $.fn.iframebox.getViewport()[1]-100; // hier wird zur laufzeit die Hoehe des sichtbaren bereiches ermittelt
			_start();
		};

		/**
		 *
		 */
		function _start() {
			if(conLog) $.fn.log('_start');
			if (busy) return;

			opts.itemArray		= [];
			opts.itemCurrent	= 0;

			var item = {};

			if (elem != null) {
				var item = {href: elem.tempHref, title: elem.title};
				opts.itemArray.push( item );
			}

			if (elem.tempHref == null && opts.url != null) {
				var item = {href : opts.url };
				opts.itemArray.push(item);
			}

			if (opts.overlayShow) {
				if (isIElt8) {
					$('embed, object, select').css('visibility', 'hidden');
				}
				$("#fancy_overlay").css('opacity', opts.overlayOpacity).show();
			}

			$("#fancy_right, #fancy_left, #fancy_close, #fancy_title").hide();

			var href = opts.itemArray[ opts.itemCurrent ].href;
			if (href == null) {
				href = opts.url;
			}

			// öffnet den IFrame
			$.fn.iframebox.showLoading();	
			_set_content('<iframe id="fancy_frame" name="fancy_frame" onload="$.fn.iframebox.showIframe();" frameborder="0" hspace="0" src="' + href + '"></iframe>', opts.frameWidth, opts.frameHeight);
		};
		
		/**
		 *
		 */
		function _set_content(value, width, height) {
			if(conLog) $.fn.log('_set_content');
			busy = true;

			var padTop = opts.paddingTop;
			var padRight = opts.paddingRight;
			var padBottom = opts.paddingBottom;
			var padLeft = opts.paddingLeft;

			if (isIElt8) {
				$("#fancy_content")[0].style.removeExpression("height");
				$("#fancy_content")[0].style.removeExpression("width");
			}

			if (padTop > 0 || padRight > 0 || padBottom > 0 || padLeft > 0) {
				width	+= padRight + padLeft;
				height	+= padTop + padBottom;

				$("#fancy_content").css({
					'top'		: padTop + 'px',
					'right'		: padRight + 'px',
					'bottom'	: padBottom + 'px',
					'left'		: padLeft + 'px',
					'width'		: 'auto',
					'height'	: 'auto'
				});

				if (isIElt8) {
					$("#fancy_content")[0].style.setExpression('height', '(this.parentNode.clientHeight - ' + (padTop + padBottom) + ')');
					$("#fancy_content")[0].style.setExpression('width',	 '(this.parentNode.clientWidth - ' + (padRight + padLeft) + ')');
				}

			} else {
				$("#fancy_content").css({
					'top'		: 0,
					'right'		: 0,
					'bottom'	: 0,
					'left'		: 0,
					'width'		: '100%',
					'height'	: '100%'
				});
			}

			//ermittelt den Sichbereich und berechnet die Mitte
			var w = $.fn.iframebox.getViewport();
			// ermitteln der Mitte des Sichbereiches, so das der IFrame in der Mitte des Sichtbereiches geoeffnet wird
			var itemLeft	= (width + 36)	> w[0] ? w[2] : (w[2] + Math.round((w[0] - width - 36) / 2));
			var itemTop		= (height + 50)	> w[1] ? w[3] : (w[3] + Math.round((w[1] - height - 50) / 2));

			var itemOpts = {
				'left':		itemLeft,
				'top':		itemTop,
				'width':	width + 'px',
				'height':	height + 'px'
			};

			if (opts.zoomSpeedIn > 0 && opts.itemArray[opts.itemCurrent].orig !== undefined) {
				$("#fancy_content").empty().append($(value));

				var orig_item	= opts.itemArray[opts.itemCurrent].orig;
				var orig_pos	= $.fn.iframebox.getPosition(orig_item);

				$("#fancy_outer").css({
					'left':		(orig_pos.left - 18) + 'px',
					'top':		(orig_pos.top  - 18) + 'px',
					'width':	$(orig_item).width(),
					'height':	$(orig_item).height()
				});

				if (opts.zoomOpacity) {
					itemOpts.opacity = 'show';
				}

				$("#fancy_outer").animate(itemOpts, opts.zoomSpeedIn, opts.easingIn, function() {
					_finish();				
				});
			} else {					
				$("#fancy_content").hide().empty().append($(value)).show();
				$("#fancy_outer").css(itemOpts).fadeIn("normal", _finish()); // ruft nachdem das IFrame eingeblendet ist die Methode _finish() auf				
			}			
		};

		/**
		 *
		 */
		function _finish() {
			if(conLog) $.fn.log('_finish');

			$(document).keydown(function(e) {
				// ESC Taste, dann wird das IFrame wieder geschlossen und ausgeblendet (gilt für das Eltern-Dokument, der Fokus muss also außerhalb vom Layer sein)
				if (e.keyCode == 27) {
					$.fn.iframebox.close();
					$(document).unbind("keydown");
				}
			});
			
			// oeffnet einen event-handler wenn "true", der bei resize oder scroll die entsprechenden Funktionen aufruft, in der das fenster dann wieder zentriert wird, ist der Wert "false", dann wird das IFrame in der linken oberen Ecke eingefuegt
			if (opts.centerOnScroll) {
				$(window).bind("scroll", $.fn.iframebox.onScroll);
				$(window).bind("resize", $.fn.iframebox.onResize);
			} else {
			
				$("div#fancy_outer").css("position", "absolute");
			}

			// ist dieser Wert "true", dann wird der IFrame geschlossen sobald jemand beliebig im sichtbereich clickt
			if (opts.hideOnContentClick) {
				$("#fancy_wrap").click($.fn.iframebox.close);
			}

			// event-handler, auf den button der zum schliessen angezeigt wird, rechts oben ein X
			$("#fancy_close").bind("click", $.fn.iframebox.close);
			$("#fancy_close").show(); // zeigt den schliessen-button an

			// prueft ob ein title angegeben wurde, wenn ja wird dieser angezeigt
			if (opts.itemArray[ opts.itemCurrent ].title !== undefined && opts.itemArray[ opts.itemCurrent ].title.length > 0) {
				$('#fancy_title div').html(opts.itemArray[ opts.itemCurrent ].title);
				$('#fancy_title').show();
			}

			if (opts.overlayShow && isIElt8) {
				$('embed, object, select', $('#fancy_content')).css('visibility', 'visible');
			}			

			// gebe dem body-Tag des Parents eine CSS-Klasse als Kennzeichen, dass ein offener Layer existiert
			$("body").addClass("layer_open");

			busy = false;
		};

		// für den Link, der im Layer aufgehen soll, wird ein clickevent registriert, der den Layer öffnet
		if(conLog) $.fn.log("this.unbind('oeffneLayer').bind('oeffneLayer', _initialize)");
		this.unbind('oeffneLayer').bind('oeffneLayer', _initialize);
	}	

	/**
	 *
	 */
	$.fn.iframebox.close = function() {
		if(conLog) $.fn.log('$.fn.iframebox.close');
		busy = true;

		$("#fancy_overlay, #fancy_close").unbind();

		if (opts.hideOnContentClick) {
			$("#fancy_wrap").unbind();
		}

		$("#fancy_close, .fancy_loading, #fancy_left, #fancy_right, #fancy_title").hide();

		if (opts.centerOnScroll) {
			$(window).unbind("resize scroll");
		}

		__cleanup = function() {
			$("#fancy_overlay, #fancy_outer").hide();

			if (opts.centerOnScroll) {
				$(window).unbind("resize scroll");
			}

			if (isIElt8) {
				$('embed, object, select').css('visibility', 'visible');
			}
			
			if ($.isFunction(opts.callbackOnClose)) {			   
				opts.callbackOnClose();
			}

			// laesst die parent-seite neu laden, wenn sich der user im Layer angemeldet hat. Ist "umfrageUrl" gefüllt wird vorher ein Umfragedialog angezeigt
			if(reloadUrl == '' && umfrageUrl.length > 0){
				openUmfrageWindow('');
			} else if(reloadUrl.length > 1 && umfrageUrl.length > 1){
				openUmfrageWindow('startReload');
			}else if(reloadUrl.length > 1 && umfrageUrl == ''){
				startParentReload();
			}

			busy = false;
		};

		if ($("#fancy_outer").is(":visible") !== false) {
			if (opts.zoomSpeedOut > 0 && opts.itemArray[opts.itemCurrent].orig !== undefined) {
				var orig_item	= opts.itemArray[opts.itemCurrent].orig;
				var orig_pos	= $.fn.iframebox.getPosition(orig_item);

				var itemOpts = {
					'left':		(orig_pos.left - 18) + 'px',
					'top': 		(orig_pos.top  - 18) + 'px',
					'width':	$(orig_item).width(),
					'height':	$(orig_item).height()
				};

				if (opts.zoomOpacity) {
					itemOpts.opacity = 'hide';
				}

				$("#fancy_outer").stop(false, true).animate(itemOpts, opts.zoomSpeedOut, opts.easingOut, __cleanup);
			} else {
				$("#fancy_outer").stop(false, true).fadeOut("fast", __cleanup);
			}

		} else {
			__cleanup();
		}		

		// entferne im body-Tag des Parents die zuvor einfügte CSS-Klasse (Kennzeichen, dass ein offener Layer existiert)
		$("body").removeClass("layer_open");

		return false;
	};


	// Alle Funktionen, die ausgeführt werden müssen, wenn der Nutzer im obersten Browserfenster scrollt
	$.fn.iframebox.onScroll = function() {
		// Layer an die richtige Stelle positionieren
		$.fn.iframebox.repositionLayer();
	};


	// Alle Funktionen, die ausgeführt werden müssen, wenn der Nutzer die Größe des Browserfensters verändert
	$.fn.iframebox.onResize = function() {
		// Layer an die neue Größe anpassen
		$.fn.iframebox.resizeLayer();
		// Layer an die richtige Stelle positionieren
		$.fn.iframebox.repositionLayer();
		// Funktionen innerhalb des Layers aufrufen (z.B. resize_div)
		// Der IE braucht eine Verzögerung von 1 ms
		window.setTimeout("$.fn.iframebox.doThingsInsideLayer()", 1);
	};


	// Layer an die richtige Stelle positionieren
	$.fn.iframebox.repositionLayer = function() {
		if(conLog) $.fn.log('$.fn.iframebox.onScroll');
		var pos = $.fn.iframebox.getViewport();

		if($("#fancy_outer").width() < getClientWidth()){
			$("#fancy_outer").css('left', (($("#fancy_outer").width() + 36) > pos[0] ? pos[2] : pos[2] + Math.round((pos[0] - $("#fancy_outer").width()	- 36)	/ 2)));
			$("#fancy_outer").css('top',  (($("#fancy_outer").height()+ 50) > pos[1] ? pos[3] : pos[3] + Math.round((pos[1] - $("#fancy_outer").height()	- 50)	/ 2)));
		}else{
			$("#fancy_outer").css('left', 0);
			$("#fancy_outer").css('top',  9);
		}
		if(isIElt8){
			if($("#fancy_outer").width() < getClientWidth()){
				$("#fancy_overlay").hide();
				$("#fancy_overlay").css('width', (getClientWidth()+$(window).scrollLeft()));
				$("#fancy_overlay").css('opacity', opts.overlayOpacity).show();
			}else{
				$("#fancy_overlay").hide();
				$("#fancy_overlay").css('width', ($("#fancy_outer").width() + 36));
				$("#fancy_overlay").css('opacity', opts.overlayOpacity).show();
			}
		}
	};


	// Funktionen innerhalb des Layers aufrufen
	$.fn.iframebox.doThingsInsideLayer = function() {
		if (document.getElementById("fancy_frame").contentWindow && document.getElementById("fancy_frame").contentWindow.resize_divs) {
			document.getElementById("fancy_frame").contentWindow.resize_divs()
		}
		else if (window.frames["fancy_frame"] && window.frames["fancy_frame"].resize_divs) {
			// für alte Browser
			window.frames["fancy_frame"].resize_divs();
		}
	};


	// Höhe des Layers neu berechnen
	$.fn.iframebox.resizeLayer = function() {
    	$("#fancy_outer").height(getClientHeight()-80);
	};


	// Hier alles definieren, was beim Schließem des Layers getan werden soll
	$.fn.iframebox.doThingsOnClose = function() {
		// es wird ein evtl. vorhandener SelfService-Dialog geschlossen (falls er auch vom Layer aus aufgrufen wurde, d.h. nicht vorher schon da war)
		if (dialogSource == "layer"){
			closeSelfServiceDialog();
		}
			
		if(isPostbank == true){
			parent.close();
		}

		// führt die Funktion onLayerClose aus, sofern im Layer vorhanden
		// es können somit für jede Layer-Seite eigene Dinge definiert werden, die ausgeführt werden, wenn der Layer geschlossen wird und gerade diese Seite angezeigt wird
		// für ein Beispiel siehe /WebContent/pvo/Quit_Stammdaten.jsp
		if (document.getElementById("fancy_frame").contentWindow && document.getElementById("fancy_frame").contentWindow.onLayerClose) {
			document.getElementById("fancy_frame").contentWindow.onLayerClose()
		}
		else if (window.frames["fancy_frame"] && window.frames["fancy_frame"].onLayerClose) {
			// für alte Browser
			window.frames["fancy_frame"].onLayerClose();
		}
	};

	/**
	 *
	 */
	$.fn.iframebox.showIframe = function() {
		if(conLog) $.fn.log('$.fn.iframebox.showIframe');
		$(".fancy_loading").hide();
		$("#fancy_frame").show();
		// Funktionen innerhalb des Layers aufrufen (z.B. resize_div)
		// Der IE braucht eine Verzögerung von 1 ms	
		window.setTimeout("$.fn.iframebox.doThingsInsideLayer()", 1);
	};

	/**
	 *
	 * @param {Object} el
	 * @param {Object} prop
	 */
	$.fn.iframebox.getNumeric = function(el, prop) {
		if(conLog) $.fn.log('$.fn.iframebox.getNumeric: el ' + el + ', prop: '+prop);
		return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;
	};

	/**
	 *
	 * @param {Object} el
	 */
	$.fn.iframebox.getPosition = function(el) {
		if(conLog) $.fn.log('$.fn.iframebox.getPosition: el ' + el);
		var pos = el.offset();

		pos.top	+= $.fn.iframebox.getNumeric(el, 'paddingTop');
		pos.top	+= $.fn.iframebox.getNumeric(el, 'borderTopWidth');

		pos.left += $.fn.iframebox.getNumeric(el, 'paddingLeft');
		pos.left += $.fn.iframebox.getNumeric(el, 'borderLeftWidth');
		if(conLog) $.fn.log('position: ' + pos);
		return pos;
	};

	/**
	 *
	 */
	$.fn.iframebox.animateLoading = function() {
		if(conLog) $.fn.log('$.fn.iframebox.animateLoading');
		if (!$("#fancy_loading").is(':visible')){
			clearInterval(loadingTimer);
			return;
		}
		$("#fancy_loading > div").css('top', (loadingFrame * -40) + 'px');
		loadingFrame = (loadingFrame + 1) % 12;
	};

	/**
	 *
	 */
	$.fn.iframebox.showLoading = function() {
		if(conLog) $.fn.log('$.fn.iframebox.showLoading');
		clearInterval(loadingTimer);
		var pos = $.fn.iframebox.getViewport();

		$("#fancy_loading").css({'left': ((pos[0] - 40) / 2 + pos[2]), 'top': ((pos[1] - 40) / 2 + pos[3])}).show();
		$("#fancy_loading").bind('click', $.fn.iframebox.close);

		loadingTimer = setInterval($.fn.iframebox.animateLoading, 66);
	};

	/**
	 *
	 */
	$.fn.iframebox.getViewport = function() {

		if(conLog) $.fn.log('$.fn.iframebox.getViewport');
		viewport = [$(window).width(), $(window).height(), $(document).scrollLeft(), $(document).scrollTop() ]
		if(conLog) $.fn.log('Viewport: ' + viewport);
		return viewport;
	};

	/**
	 * baut die eigentliche seite mit HTML zusammen, hier koennen Aenderungen vom aussehen vorgenommen werden
	 */
	$.fn.iframebox.build = function() {
		if(conLog) $.fn.log('$.fn.iframebox.build');
		var html = '';

		html += '<div id="fancy_overlay"></div>';						
		html += '<div id="fancy_wrap">';
		html += '  <div class="fancy_loading" id="fancy_loading">';
		html += '    <div>';
		html += '    </div>';
		html += '  </div>';		
		html += '  <div id="fancy_outer">';
		html += '    <div id="fancy_inner">';
		html += '      <div id="fancy_close"></div>';
		html += '      <div id="fancy_bg">';
		html += '        <div class="fancy_bg fancy_bg_n"></div>';
		html += '        <div class="fancy_bg fancy_bg_ne"></div>';
		html += '        <div class="fancy_bg fancy_bg_e"></div>';
		html += '        <div class="fancy_bg fancy_bg_se"></div>';
		html += '        <div class="fancy_bg fancy_bg_s"></div>';
		html += '        <div class="fancy_bg fancy_bg_sw"></div>';
		html += '        <div class="fancy_bg fancy_bg_w"></div>';
		html += '        <div class="fancy_bg fancy_bg_nw"></div>';
		html += '      </div>';
		html += '      <a href="javascript:;" id="fancy_left">';
		html += '        <span class="fancy_ico" id="fancy_left_ico"></span>';
		html += '      </a>';
		html += '      <a href="javascript:;" id="fancy_right">';
		html += '        <span class="fancy_ico" id="fancy_right_ico"></span>';
		html += '      </a>';
		html += '      <div id="fancy_content"></div>';
		html += '      <div id="fancy_title"></div>';
		html += '    </div>';
		html += '  </div>';
		html += '</div>';
		
		$(html).appendTo("body");

		$('<table cellspacing="0" cellpadding="0" border="0"><tr><td class="fancy_title" id="fancy_title_left"></td><td class="fancy_title" id="fancy_title_main"><div></div></td><td class="fancy_title" id="fancy_title_right"></td></tr></table>').appendTo('#fancy_title');

		if (isIElt8) {
			//$("#fancy_inner").prepend('<iframe class="fancy_bigIframe" id="myIFrame" scrolling="no" frameborder="0"></iframe>');
			$("#fancy_close, .fancy_bg, .fancy_title, .fancy_ico").fixPNG();
		}
	};

	/**
	 * default werte
	 */
	$.fn.iframebox.defaults = {
		paddingTop			:	10,
		paddingRight		:	10,
		paddingBottom		:	0,
		paddingLeft			:	10,
		imageScale			:	true,
		zoomOpacity			:	false,
		zoomSpeedIn			:	0,
		zoomSpeedOut		:	0,
		zoomSpeedChange		:	300,
		easingIn			:	'swing',
		easingOut			:	'swing',
		easingChange		:	'swing',
		frameWidth			:	950,
		frameHeight			:	350,
		overlayShow			:	true,
		overlayOpacity		:	0.8,
		hideOnContentClick	:	false,
		centerOnScroll		:	true,
		callbackOnClose		:	$.fn.iframebox.doThingsOnClose,
		url					:	null
	};

	/**
	 * wird aufgerufen, wenn das vater-dokument fertig geladen wurde
	 */
	$(document).ready(function() {
		if(conLog) $.fn.log('$(document).ready()');		
		$.fn.iframebox.build();
	});

})(jQuery);

// ****************************************************************
// ENDE jQuery.imframebox
// ****************************************************************


// ****************************************************************
// START jquery.easing
// Funktionen zum "schöneren" Ein- und Ausblenden des Layers
// ****************************************************************
/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 * 
 * Open source under the BSD License. 
 * 
 * Copyright Â© 2008 George McGinley Smith
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
*/

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		//alert(jQuery.easing.default);
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeInQuad: function (x, t, b, c, d) {
		return c*(t/=d)*t + b;
	},
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	},
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	},
	easeInQuart: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t + b;
	},
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuart: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	},
	easeInQuint: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t*t + b;
	},
	easeOutQuint: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	},
	easeInOutQuint: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	},
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	},
	easeOutSine: function (x, t, b, c, d) {
		return c * Math.sin(t/d * (Math.PI/2)) + b;
	},
	easeInOutSine: function (x, t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	},
	easeInElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	},
	easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	},
	easeInOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
	},
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	easeInOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158; 
		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
	},
	easeInBounce: function (x, t, b, c, d) {
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
	},
	easeOutBounce: function (x, t, b, c, d) {
		if ((t/=d) < (1/2.75)) {
			return c*(7.5625*t*t) + b;
		} else if (t < (2/2.75)) {
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
		} else if (t < (2.5/2.75)) {
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
		} else {
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
		}
	},
	easeInOutBounce: function (x, t, b, c, d) {
		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
	}
});
// ****************************************************************
// ENDE jquery.easing
// Funktionen zum "schöneren" Ein- und Ausblenden des Layers
// ****************************************************************


// ****************************************************************
// START jQuery.fn.print
// Funktion um den Inhalt des Hilfe-Layer ausdrucken zu können
// ****************************************************************
// Create a jquery plugin that prints the given element.
jQuery.fn.print = function(){
 // NOTE: We are trimming the jQuery collection down to the
 // first element in the collection.
 if (this.size() > 1){
  this.eq( 0 ).print();
  return;
 } else if (!this.size()){
  return;
 }
 
 // ASSERT: At this point, we know that the current jQuery
 // collection (as defined by THIS), contains only one
 // printable element.
 
 // Create a random name for the print frame.
 var strFrameName = ("printer-" + (new Date()).getTime());
 
 // Create an iFrame with the new name.
 var jFrame = $( "<iframe name='" + strFrameName + "'>" );
 
 // Hide the frame (sort of) and attach to the body.
 jFrame
  .css( "width", "1px" )
  .css( "height", "1px" )
  .css( "position", "absolute" )
  .css( "left", "-9999px" )
  .appendTo( $( "body:first" ) )
 ;
 
 // Get a FRAMES reference to the new frame.
 var objFrame = window.frames[ strFrameName ];
 
 // Get a reference to the DOM in the new frame.
 var objDoc = objFrame.document;
 
 // Grab all the style tags and copy to the new
 // document so that we capture look and feel of
 // the current document.
 
 // Create a temp document DIV to hold the style tags.
 // This is the only way I could find to get the style
 // tags into IE.
 var jStyleDiv = $( "<div>" ).append(
  $( "style" ).clone()
  );
 
 // Write the HTML for the document. In this, we will
 // write out the HTML of the current element.
 objDoc.open();
 objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
 objDoc.write( "<html>" );
 objDoc.write( "<body>" );
 objDoc.write( "<head>" );
 objDoc.write( "<title>" );
 objDoc.write( document.title );
 objDoc.write( "</title>" );
 objDoc.write( jStyleDiv.html() );
 objDoc.write( "</head>" );
 objDoc.write( this.html() );
 objDoc.write( "</body>" );
 objDoc.write( "</html>" );
 objDoc.close();
 
 // Print the document.
 objFrame.focus();
 objFrame.print();
 
 // Have the frame remove itself in about a minute so that
 // we don't build up too many of these frames.
 setTimeout(
  function(){
   jFrame.remove();
  },
  (60 * 1000)
  );
}
// ****************************************************************
// ENDE jQuery.fn.print
// ****************************************************************

// ****************************************************************
// --- Start Öffnen der Direktlinks z.B. aus einer Mail 
// ****************************************************************
function openDirectLink(){
	// ist eine docid in der url vorhanden, dann wird der Hilferatgeber modal aufgerufen
	if ($(document).getUrlParam("docid") != null && window.location.href.toLowerCase().indexOf("selfservice") == -1){
		var path = window.location.protocol + "//" + window.location.host + "/"+getNetMindId()+"start_selfservice.do"+getSessionId()+"?show=1&docid=" + $(document).getUrlParam("docid");
//		showSelfServiceDialog(path, 'Hilfe', 650, 450, false, true);
		warteAufExtJS(null,"showSelfServiceDialog('" + path + "', 'Hilfe', 650, 450, false, true)");
	}
	
	// ist eine page in der url vorhanden, dann wird diese als Hilfelayer modal aufgerufen
	if ($(document).getUrlParam("page") != null && window.location.href.toLowerCase().indexOf("selfservice") == -1 && window.location.href.toLowerCase().indexOf("kwk") == -1){
		var path = window.location.protocol + "//" + window.location.host + "/"+getNetMindId()+"start_selfservice.do"+getSessionId()+"?page=" + $(document).getUrlParam("page");
//		showSelfServiceDialog(path, 'Kontakt', 650, 450, false, true);
		warteAufExtJS(null,"showSelfServiceDialog('" + path + "', 'Kontakt', 650, 450, false, true)");
	}	
	
	// ist eine serviceid in der url vorhanden, dann wird diese als Hilfelayer modal aufgerufen
	if ($(document).getUrlParam("serviceid") != null && window.location.href.toLowerCase().indexOf("selfservice") == -1){
		var path = window.location.protocol + "//" + window.location.host + "/"+getNetMindId()+"start_selfservice.do"+getSessionId()+"?id=" + $(document).getUrlParam("serviceid");
//		showSelfServiceDialog(path, 'Hilfe', 650, 450, false, true);
		warteAufExtJS(null,"showSelfServiceDialog('" + path + "', 'Hilfe', 650, 450, false, true)");
	}		
}
// ****************************************************************
// --- Ende Öffnen der Direktlinks z.B. aus einer Mail
// ****************************************************************


// ***************************************************************
// START showSelfServiceDialog
// Basisfunktion zum Aufruf des Hilfe-Layes (ruft showSelfServiceDialog2 auf)
// [eine entsprechende Funktion existiert auch in huk24_utils_layer.js]
// ***************************************************************
function showSelfServiceDialog(path, titleText, dialogWidth, dialogHeigth, footer, modal){
	// Bin nicht im Layer, Aufruf von der aktuellen Seite aus
	dialogSource = "hp";
	showSelfServiceDialog2(path, titleText, dialogWidth, dialogHeigth, footer, modal);
}
// ***************************************************************
// ENDE showSelfServiceDialog
// ***************************************************************

// ***************************************************************
// START Funktionen fuer Umfragen
// ***************************************************************
function openUmfrageWindow(param){

		if($('#umfrageDialogDiv').length == 0){
			$("<div id='umfrageDialogDiv' style='display:none'></div>").insertAfter("#bodyhp");
		}
	
		if($('#umfrageDialogDiv')){    	          							
			umfrageWindow = new Ext.Window({
		            el:'umfrageDialogDiv',
					title: 'Umfrage',
		            layout:'fit',
		            width:600,
		            autoHeight: 'auto',
		        	minHeight: 400,
		        	maximizable: false,
		        	collapsible: false,
		        	autoScroll:true,
		            plain: true,
		            modal: true,
       		   		html: '<div width="100%" align="center"><img src="/Allgemein/Bilder/loading.gif" alt="Loading..."></div>',
			   		closeAction: 'close',			   		
			   		shadow: false
				});	
			setReloadParam(param);
			umfrageWindow.addListener('close', dialogClosed_event);											
		}
		
		// wenn schon ein Ajax-Call gesendet wurde diesen abbrechen
		if (req) 
			req.abort();
		
		// Ajax-Call	
       	req = $.ajax({
				url: setNetMindIdInUrl(setSessionIdInUrl(umfrageUrl)),
				cache: true,
				async: true,
				type: 'GET',
				contentType: 'application/x-www-form-urlencoded',
				data: {},
				dataType: 'html',
				timeout: 30000,
				success: function(msg, testStatus){	
					// Seiteninhalte aufbereiten					
					if (msg.length == 0) {
						umfrageWindow.close();
					} else {
						var content = '<div id="umfrageDialogContent" class="z43" style="padding:10px">' + msg + '</div>';
						umfrageWindow.body.update(content);
					}
					req = null;
	        	},
				error: function(xmlHttpRequest, textStatus, errorThrown){			
					// Im Fehlerfall wird nichts angezeigt					
					umfrageWindow.close();
					req = null;
				}
		});	
		
		umfrageWindow.show(); // das Umfrage-Window wird angezeigt
			
		// setzt das window in die Mitte und dann noch 65px nach oben
		umfrageWindow.center();
		umfrageWindow.setPagePosition(umfrageWindow.getPosition()[0], 65);	
}

function setReloadParam(param){
	this.reloadParam = param;
}

function getReloadParam(){
	return this.reloadParam;
}

function dialogClosed_event(){
	umfrageWindow.removeListener('close', dialogClosed_event);
	setOpenUmfrage('');	// loescht den Inhalt der Variable 'umfrageUrl', so dass die Umfrage nicht mehr geladen wird
	// wenn nach der Umfrage ein reload der Produktstartseite durchgeführt werden soll, wird hier ein EventListener definiert	
	if(getReloadParam() == 'startReload'){
		startParentReload();
	}
}

/**
 *	prueft ob in einer Umfrage die nötigen Felder ausgewählt wurden. 
 *  ist dies der Fall wird der Absenden-Button aktiv dargestellt
 */
function changeUmfrageSendButton(){	
	// die erste Frage wurde mit "nein" beantwortet
	if($("input[name='UMFRAGE_KEZ_VERGLEICH']:checked").length > 0 &&
	   $("#umfragePart2:visible").length == 0 	&& 
	   $("#umfragePart3:visible").length == 0 )
	{
		setUmfrageButton('active');
	}else if($("input[name='UMFRAGE_KEZ_VERGLEICH']:checked").length > 0 &&
			 $("input[name='UMFRAGE_KEZ_PLATTFORM']:checked").length > 0 &&
			 $("input[name='UMFRAGE_KEZ_VERHALTEN']:checked").length > 0)
	{
		setUmfrageButton('active');
	}else{
		setUmfrageButton('inactive');
	}	
}

// blendet Teile nach bestimmten kriterien ein - wird durch ein click-event auf einen checkbox ausgeloest
function showUmfrageParts(part){
	$("table#umfragePart"+part+":hidden").show();
}
// blendet Teile nach bestimmten kriterien aus - wird durch ein click-event auf einen checkbox ausgeloest
function hideUmfrageParts(part){	
	$("table#umfragePart"+part+":visible").each(function(){
		$(this).hide();
	});
}

function setUmfrageButton(val){
	if(val == 'active'){
		$("img[name='umfrage_absenden_inactive']").hide();
		$("img[name='umfrage_absenden_active']").show();	
	}else{
		$("img[name='umfrage_absenden_active']").hide();	
		$("img[name='umfrage_absenden_inactive']").show();
	}
}

function sendUmfrageDataToServer(gruppe){
		var data = "?GRUPPE=" + gruppe +"&UMFRAGE_KEZ_VERGLEICH="+$("input[name='UMFRAGE_KEZ_VERGLEICH']:visible:checked").val();
		if($("#umfragePart2:visible").length > 0){
			data += "&UMFRAGE_KEZ_PLATTFORM="+$("input[name='UMFRAGE_KEZ_PLATTFORM']:visible:checked").val();
		}
		if($("#umfragePart3:visible").length > 0){
			data += "&UMFRAGE_KEZ_VERHALTEN="+$("input[name='UMFRAGE_KEZ_VERHALTEN']:visible:checked").val();
		}

		// Ajax-Call	
      	req = $.ajax({
			url: setNetMindIdInUrl(setSessionIdInUrl(umfrageUrl)) + data,
			cache: true,
			async: true,
			type: 'GET',
			contentType: 'application/x-www-form-urlencoded',
			timeout: 5000,
			success: function(msg, testStatus){	
				setOpenUmfrage('');
				umfrageWindow.close();
				req = null;
        	},
			error: function(xmlHttpRequest, textStatus, errorThrown){					
				setOpenUmfrage('');
				umfrageWindow.close();
				req = null;
			}
	});	
}

/**
 *	setzt die Variable "umfrageUrl", wenn diese Gefuellt ist wird ein Umfragedialog geöffnet
 *	url - ist ein string (eine URL)
 */
function setOpenUmfrage(url){
	umfrageUrl = url;	
}
// ***************************************************************
// ENDE Funktionen fuer Umfragen
// ***************************************************************


// ***************************************************************
// START onbeforeprint/onafterprint
// Hilfsfunktionen für Druck des Layers über die Druckfunktionalität des Browsers
// relevant nur für IE (die anderen können das nicht)
// ***************************************************************

var cssText = "";

window.onbeforeprint = function() {
	return false;
	// nur ausführen, wenn ein Layer offen ist
	if ($("body").hasClass("layer_open")) {

		// DOM-Element des Layers
		var layer = document.getElementById("fancy_frame").contentWindow;

		// berechne die benötigte Höhe für den Layer (#fancy_frame), so dass er keine vertikalen Scrollbalken mehr braucht
		var hoeheLogoUndPadding = 42 + 5;								// Achtung, nehme das Logo das gedruckt wird
		var hoeheUeberschrift = layer.$(".ueberschrift").outerHeight();	// Höhe der Überschrift
		var hoeheTableiste = layer.$(".tableiste").outerHeight();		// Höhe der Tableiste
		var paddingBottom = 8;											// wird im print.css statt der Buttons gesetzt
		var border = 2;													// Rahmen von td_content
		var hoeheContent = layer.$(".main_content2").outerHeight();		// komplette Höhe des Contents inkl. Rahmen

		var summe = hoeheLogoUndPadding + hoeheUeberschrift + hoeheTableiste + paddingBottom + border + hoeheContent;

		// setze den errechneten Wert als inline-Style (mit !important damit die Angabe im Stylesheet überschrieben wird)
		// http://dev.jquery.com/ticket/2066
		cssText = $("#fancy_frame").css("cssText");		// alten Wert merken
		if (typeof cssText == "undefined") cssText = "";
		$("#fancy_frame").css("cssText", cssText + ";height: " + summe + "px !important;");
	}
};

window.onafterprint = function() {
	// alles wieder zurücksetzen
	if ($("body").hasClass("layer_open")) {
		if (typeof cssText == "undefined") cssText = "";
		$("#fancy_frame").css("cssText", cssText);
	}
};

// ***************************************************************
// ENDE onbeforeprint/onafterprint
// ***************************************************************


// ***************************************************************
// START Diverse Funktionen
// ***************************************************************

// Ändert den Inputtype des Passwort-Inputfeldes
function changeTypeToPassword(id_to_show, id_to_hide) {
    document.getElementById(id_to_show).style.display = '';
 	document.getElementById(id_to_show).focus();
    document.getElementById(id_to_hide).style.display = 'none';
}

/**
 *	setzen der aktuellen Session id, solange die Anzahl der Zeichen 30 ist,
 *  sonst wird die id auf '' zurückgesetzt
 */
function setSessionId(id){
	this.sid = id;
}

/**
 * übergeben der aktuellen Session id
 */
function getSessionId(){
	return this.sid;
}

/**
 *	setzen der aktuellen Netmind id
 */
function setNetMindId(id){	
	this.nid = id;
}

/**
 * übergeben der aktuellen Netmind id
 */
function getNetMindId(){
	return this.nid;
}

// Im November erhält die Startseite an jedem ein anderes Bild, welches hier ausgwählt wird
function showPicStartseite() {
	var heute = new Date();
	var tag = heute.getDate();
	var monat = heute.getMonth();

	// default Image
	var img = "/zz_resources/bilder/teaser/beitragserhoehung.jpg";
	var height = "294";

	// Wenn November, dann nehme das Bild des Tages (Achtung November=10!)
	if (monat == 10) {
		var rest = 30 - tag;
		if (rest < 10) rest = "0" + rest;
		img = "/zz_resources/bilder/teaser/countdown_" + rest + ".gif";
		height = "265";
	}

	document.writeln('<div class=teaser><a href="' + getNetMindId() + 'produkte/fahrzeuge/kfz/index.jsp' + getSessionId() + '?nmfrom=teaser_2009_kfz_01"><img src="' + img + '" width=560 height=' + height + ' border=0 alt="Jetzt zur HUK24 wechseln"></a></div>');
}
// ***************************************************************
// ENDE Diverse Funktionen
// ***************************************************************