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
        if ($(this).attr('title').length > 0) {
            $(this).attr("tempHref", $(this).attr("href") + "&layerTitle=" + escape($(this).attr("title")));
        } else {
            $(this).attr("tempHref", $(this).attr("href"));
        }

        $(this).attr("href", "#");

        // Link jetzt anzeigen, da er nur bei deaktiviertem JS nicht sichtbar sein soll
        $(this).show();
    });

    // -------------------------------------------------------------------------------------
    // Objekte, die nur bei aktiviertem Javascript angezeigt werden sollen, jetzt anzeigen
    // -------------------------------------------------------------------------------------
    $("#schnell_login").css("top", 0);

    // -------------------------------------------------------------------------------------
    // 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 = {};

    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.selfid = $("#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.selfid = "0";
            kommeVomSuchfeld = false; // globale Variable zurücksetzen
        }

        // docid speichern, um im Fehlerfall die docid anzuzeigen
        var docid = '';
        if (path.indexOf('docid=') != -1) {
            if (path.indexOf('&', path.indexOf('docid=')) != -1) {
                docid = path.substring(path.indexOf('docid=') + 6, path.indexOf('&', path.indexOf('docid=')));
            } else {
                docid = path.substring(path.indexOf('docid=') + 6);
            }
        }

        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="/index.jsp' + sid + '" onclick="closeSelfServiceDialog(); return false;" class="schliessen_btn_kontakt"></a>' + '</td><td width=50% align=right>' + '<a href="#" onclick="printSelfServiceDialog()" class="drucken_btn_kontakt"></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();
        } else {
            // Dialog updaten, wenn vorhanden
            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();
        }

        // Probleme mit Umlauten bei newquery ("Meinten Sie") -> verwende POST
        if (path.indexOf("?newquery=") != -1) {
            var newquery = path.substring(path.indexOf("?") + 10); // optimistische Annahme: newquery ist der einzige Request-Parameter
            path = path.substring(0, path.indexOf("?"));
            selfservice_data.newquery = newquery;
        }

        // 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
                msg = msg.replace(/\.noJS \{display:none; \}/g, '.noJS {}');
                var content = '<div id="helpDialogContent" class="z43" style="padding:10px">' + msg + buttonleiste + '</div>';

                if (content.indexOf('SelfServiceError') != -1) {
                    if (location.href.indexOf("localhost") != -1 || location.href.indexOf("huk24-ts") != -1) {
                        helpWindow.setTitle('Fehler zu docid: ' + docid);
                    } else {
                        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').jqprint();
    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", "#");
        $('#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; // variable 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),10) < 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;
    };

    /**
     * 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) {
                item = {
                    href: elem.tempHref,
                    title: elem.title
                };
                opts.itemArray.push(item);
            }

            if (elem.tempHref === null && opts.url !== null) {
                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 (tarifrechner.length > 0 && umfrageUrl.length > 0) {
                // Umfrage Angebotsabbrecher
                openUmfrageWindow('');
            } else 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),10) || 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();
        showLayerAfterNPALogin();
        showLayerIdentity();
    });

})(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) {
        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 * 0.3; }
        if (a < Math.abs(c)) {
            a = c;
            s = p / 4;
        } else {
            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 * 0.3; }
        if (a < Math.abs(c)) {
            a = c;
            s = p / 4;
        } else {
            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 * ((0.3) * 1.5);
        }
        if (a < Math.abs(c)) {
            a = c;
            s = p / 4;
        } else {
            s = p / (2 * Math.PI) * Math.asin(c / a);
        }
        if (t < 1) { return -0.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) * 0.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 + 0.75) + b;
        } else if (t < (2.5 / 2.75)) {
            return c * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375) + b;
        } else {
            return c * (7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375) + b;
        }
    },
    easeInOutBounce: function (x, t, b, c, d) {
        if (t < d / 2) { return jQuery.easing.easeInBounce(x, t * 2, 0, c, d) * 0.5 + b; }
        return jQuery.easing.easeOutBounce(x, t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;
    }
});
// ****************************************************************
// ENDE jquery.easing
// Funktionen zum "schöneren" Ein- und Ausblenden des Layers
// ****************************************************************

//****************************************************************
//START jQuery.fn.jqprint
//Funktion um den Inhalt des Hilfe-Layer ausdrucken zu können
//****************************************************************
//-----------------------------------------------------------------------
//Eros Fratini - eros@recoding.it
//jqprint 0.3
//
//- 19/06/2009 - some new implementations, added Opera support
//- 11/05/2009 - first sketch
//
//Printing plug-in for jQuery, evolution of jPrintArea: http://plugins.jquery.com/project/jPrintArea
//requires jQuery 1.3.x
//
//Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
//------------------------------------------------------------------------
(function ($) {
    var opt, doc, tab, $iframe;

    $.fn.jqprint = function (options) {
        opt = $.extend({}, $.fn.jqprint.defaults, options);

        var $element = (this instanceof jQuery) ? this : $(this);

        if (opt.operaSupport && $.browser.opera) {
            tab = window.open("", "jqPrint-preview");
            tab.document.open();

            doc = tab.document;
        } else {
            $iframe = $("<iframe  />");

            if (!opt.debug) {
                $iframe.css({
                    position: "absolute",
                    width: "0px",
                    height: "0px",
                    left: "-600px",
                    top: "-600px"
                });
            }

            $iframe.appendTo("body");
            doc = $iframe[0].contentWindow.document;
        }

        if (opt.importCSS) {
            if ($("link[media=print]").length > 0) {
                $("link[media=print]").each(function () {
                    doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' media='print' />");
                });
            } else {
                $("link").each(function () {
                    doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' />");
                });
            }
        }

        if (opt.printContainer) {
            doc.write($element.outer());
        } else {
            $element.each(function () {
                doc.write($(this).html());
            });
        }

        doc.close();

        (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).focus();
        setTimeout(function () {
            (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print();
            if (tab) {
                tab.close();
            }
        }, 1000);
    };

    $.fn.jqprint.defaults = {
        debug: false,
        importCSS: true,
        printContainer: true,
        operaSupport: true
    };

    // Thanks to 9__, found at http://users.livejournal.com/9__/380664.html
    jQuery.fn.outer = function () {
        return $($('<div></div>').html(this.clone())).html();
    };
})(jQuery);

//****************************************************************
//ENDE jQuery.fn.jqprint
//****************************************************************
// ****************************************************************
// --- Start Öffnen der Direktlinks z.B. aus einer Mail 
// ****************************************************************


function openDirectLink() {
	var path;
	
    // 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) {
        path = window.location.protocol + "//" + window.location.host + "/" + getNetMindId() + "start_selfservice.do" + getSessionId() + "?show=1&docid=" + $(document).getUrlParam("docid");
        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) {
        path = window.location.protocol + "//" + window.location.host + "/" + getNetMindId() + "start_selfservice.do" + getSessionId() + "?page=" + $(document).getUrlParam("page");
        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) {
        path = window.location.protocol + "//" + window.location.host + "/" + getNetMindId() + "start_selfservice.do" + getSessionId() + "?id=" + $(document).getUrlParam("serviceid");
        warteAufExtJS(null, "showSelfServiceDialog('" + path + "', 'Hilfe', 650, 450, false, true)");
    }

    // ist eine umfrage in der url vorhanden, dann wird diese als Hilfelayer modal aufgerufen
    //if ($(document).getUrlParam("umfrage") != null && window.location.href.toLowerCase().indexOf("umfrage") == -1){
    if ($(document).getUrlParam("umfrage")) {
        if ($(document).getUrlParam("testuser")) {
            path = window.location.protocol + "//" + window.location.host + "/" + getNetMindId() + "start_umfrage.do" + getSessionId() + "?umfrage=" + $(document).getUrlParam("umfrage") + "&datum_versand=" + $(document).getUrlParam("datum_versand") + "&kd_id=" + $(document).getUrlParam("kd_id") + "&testuser=" + $(document).getUrlParam("testuser");
        } else {
            path = window.location.protocol + "//" + window.location.host + "/" + getNetMindId() + "start_umfrage.do" + getSessionId() + "?umfrage=" + $(document).getUrlParam("umfrage") + "&datum_versand=" + $(document).getUrlParam("datum_versand") + "&kd_id=" + $(document).getUrlParam("kd_id");
        }
        warteAufExtJS(null, "showSelfServiceDialog('" + path + "', 'Umfrage', 800, 450, false, true)");
    }

    // ist eine umfrage in der url vorhanden, dann wird diese als Hilfelayer modal aufgerufen
    if ($(document).getUrlParam("identitaet")) {
        path = window.location.protocol + "//" + window.location.host + "/" + getNetMindId() + "start_umfrage.do" + getSessionId() + "?umfrage=" + $(document).getUrlParam("umfrage") + "&datum_versand=" + $(document).getUrlParam("datum_versand") + "&kd_id=" + $(document).getUrlParam("kd_id");
        warteAufExtJS(null, "showSelfServiceDialog('" + path + "', 'Umfrage', 800, 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 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 = "";

// könnte auch rausgelöscht werden, dringeblieben weil es vllt noch verwendet wird.
window.onbeforeprint = function () {
    return false;
};

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 weiterbutton_info
// Klickt der User auf eine inaktiven(!) Weiter-Button, bekommt er einen Hinweis angezeigt, dass er runterscrollen muss
// ***************************************************************
function weiterbutton_info(hilfetext) {
    if (typeof hilfetext === "undefined") { hilfetext = "/Allgemein/Hilfe/Kurz/All_scr_01.jsp"; } // Default wenn nichts übergeben
    parent.kommeVomWeiterbutton = true;
    try {
        showSelfServiceDialog(hilfetext, 'Hinweis', 350);
    } catch (e) {
        // Sollte nur dann auftreten, wenn ext.js noch nicht geladen wurde, oder wenn der Layerinhalt als eigene Seite aufgeht (liegt daran, dass ext.js dann nicht eingebunden ist)
        alert("Bitte gehen Sie bis zum Ende der aktuellen Seite.");
    }
    parent.kommeVomWeiterbutton = false;
}
// ***************************************************************
// ENDE weiterbutton_info
// ***************************************************************
// ***************************************************************
// 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>');
}

// -------------------------------------------------------------------------------------
// Prüft ob der Aufruf vom eid-service kommt und im Layer geöffnet werden muss
// -------------------------------------------------------------------------------------	
function showLayerAfterNPALogin() {

    if ($(document).getUrlParam("layer") !== null && $(document).getUrlParam("layerTitle") !== null) {

        // entfernt alle '+' aus dem Titel. Sie kommen durch URLEncoding für die Leerzeichen
        var title = $(document).getUrlParam("layerTitle").toString();
        while (title.indexOf('+') > -1) {
            title = title.replace("+", '%20');
        }

        var layerUrl = unescape($(document).getUrlParam("layer"));
        // prueft ob die URL mit einem Slash beginnt
        if (layerUrl.indexOf("/") === 0) {
            layerUrl = layerUrl.substr(1); // entfernt den Slash am anfang		
            layerUrl = "/" + setNetMindIdInUrl(layerUrl); // fuegt den Slash und die NetMindId hinzu
        } else {
            layerUrl = setNetMindIdInUrl(layerUrl); // fuegt den Slash und die NetMindId hinzu
        }

        $('div.info_blockabstand').append("<a href='javascript:void(0)' tempHref='" + layerUrl + "' title='" + unescape(title) + "' id='test'></a>");

        $("a#test").iframebox({});
        $("a#test").trigger('oeffneLayer');
    }
}

// -------------------------------------------------------------------------------------
// Prüft, ob der Aufruf zur Identitätsprüfung erfolgt, welche im Layer geöffnet werden muss
// -------------------------------------------------------------------------------------	
function showLayerIdentity() {
    if ($(location).attr("href").indexOf("?identitaet") > -1) {
        var title = "Identitätsprüfung";
        var layerUrl = "/start_identitaet.do";
        layerUrl = setNetMindIdInUrl(layerUrl); // fuegt die NetMindId hinzu
        $('div.info_blockabstand').append("<a href='javascript:void(0)' tempHref='" + layerUrl + "' title='" + unescape(title) + "' id='identitaet'></a>");

        $("a#identitaet").iframebox({});
        $("a#identitaet").trigger('oeffneLayer');
    }
}
// ***************************************************************
// ENDE Diverse Funktionen
// ***************************************************************


// ***************************************************************
// START 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();
    }
}

// ******************************************************************************
// START Umfrage - Antragsteller/Abbrecher
// ******************************************************************************
/**
 *  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 lick-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;
        }
    });
}
// ******************************************************************************
// ENDE Umfrage - Antragsteller/Abbrecher
// ******************************************************************************

// ******************************************************************************
// START Umfrage zur Kundenzufriedenheit
// ******************************************************************************

function showHideQuestions(stufe) {

    if (stufe == '4' || stufe == '5') {
        $(".querys:hidden").each(function () {
            $(this).show();
        });
        $(".thema").show();
    } else {
        $(".querys:visible").each(function () {
            $(this).hide();
        });
        $(".thema").hide();
    }
    $('#errorALL193:visible').hide();
}

function convertValue2Zufriedenheit(value) {

    var z = "";
    if (value == "1") {
        z = "sehr zufrieden";
    } else if (value == "2") {
        z = "zufrieden";
    } else if (value == "3") {
        z = "neutral";
    } else if (value == "4") {
        z = "weniger zufrieden";
    } else if (value == "5") {
        z = "unzufrieden";
    }

    return z;
}


/**
 *	senden der Umfrage zur Kundenzufriedenheit
 */

function sendUmfrageKundenzufriedenheit(stufe) {

    if ($("input:radio:checked[name='KEZ_P1']").length === 0) {
        $('#errorALL193:hidden').show(); // zeigt den Fehlertext an
        return null;
    } else {

        if ($("input:radio:checked[name='KEZ_THEMA']").length === 0 && $("input:radio:checked[name='KEZ_P1']").val() > 3) {
            $('#errorALL204:hidden').show(); // zeigt den Fehlertext an
            return null;
        }
    }

    var path = window.location.protocol + "//" + window.location.host;

    // Ajax-Call	
    req = $.ajax({
        url: setNetMindIdInUrl(setSessionIdInUrl(path + "/start_umfrage.do")),
        cache: true,
        async: true,
        type: 'POST',
        dataType: 'json',
        data: collectKundenzufriedenheitData(stufe),
        contentType: 'application/x-www-form-urlencoded',
        timeout: 5000,
        success: function (msg, testStatus) {
            showStatusOK();
            req = null;
        },
        error: function (xmlHttpRequest, textStatus, errorThrown) {
            showStatusOK();
            req = null;
        }
    });
}

/**
 *	zusammenstellen aller Daten der Umfrage
 */

function collectKundenzufriedenheitData(stufe) {
    var myData = {};
    var thema = $("input[name='KEZ_THEMA']:radio:checked").val();


    myData.survey = stufe;
    myData.thema = thema;
    myData.datum_versand = $("input[name='datum_versand']:hidden").val();
    if ($("input[name='testuser']")) {
        myData.testuser = $("input[name='testuser']").val();
    }
    myData.kd_id = $("input[name='kd_id']:hidden").val();
    myData.p1_value = convertValue2Zufriedenheit($("input:radio:checked[name='KEZ_P1']").val());
    myData.p1 = "Zufriedenheit_" + $("input:radio:checked[name='KEZ_P1']").val();
    myData.mailSubject = "Kundenzufriedenheit";

    $("input:checkbox:checked").each(function () {
        if ($(this).attr('name') == 'KEZ_P7') {
            if (stufe == 'email' && thema == 'S') {
                myData[$(this).attr('name').substr(4).toLowerCase()] = "GRUND_" + $(this).val() + "_sch";
            } else {
                myData[$(this).attr('name').substr(4).toLowerCase()] = "GRUND_" + $(this).val();
            }
            myData.p7_value = escape($("input[name='TXT_P7_TEXT']:visible").val());
        } else if (stufe == 'email' && thema == 'S') {
            myData[$(this).attr('name').substr(4).toLowerCase()] = "GRUND_" + $(this).val() + "_sch";
        } else {
            myData[$(this).attr('name').substr(4).toLowerCase()] = "GRUND_" + $(this).val();
        }
    });
    return myData;
}

function enableTXT_P7_TEXT() {
    if ($("input:text[name='TXT_P7_TEXT']").attr('disabled') === true) {
        $("input:text[name='TXT_P7_TEXT']").removeAttr("disabled");
    } else {
        $("input:text[name='TXT_P7_TEXT']").attr("disabled", "false");
    }
}

function hideError(errorId) {
    $("#error" + errorId + ":visible").hide();
}

function showStatusOK() {
    $('.umfrageQuerys:visible').hide();
    $('.umfrageOK:hidden').show();
}
// *****************************************************************************
// ENDE Umfrage zur Kundenzufriedenheit
// *****************************************************************************


// *****************************************************************************
// START Umfrage zur Angebot-Abbruchgrund
// *****************************************************************************
/**
 *	senden der Umfrage
 */

function sendUmfrageAbbruchgrund(stufe) {
    if ($("input:checkbox:checked[name='KEZ_P2']").length === 0 && $("input:checkbox:checked[name='KEZ_P3']").length === 0 && $("input:checkbox:checked[name='KEZ_P4']").length === 0 && $("input:checkbox:checked[name='KEZ_P5']").length === 0 && $("input:checkbox:checked[name='KEZ_P6']").length === 0 && $("input:checkbox:checked[name='KEZ_P7']").length === 0 && $("input:checkbox:checked[name='KEZ_P8']").length === 0) {
        $('#errorALL193:hidden').show(); // zeigt den Fehlertext an
        return null;
    }

    var path = window.location.protocol + "//" + window.location.host;

    // Ajax-Call	
    req = $.ajax({
        url: setNetMindIdInUrl(setSessionIdInUrl(path + "/start_umfrage.do")),
        cache: true,
        async: true,
        type: 'POST',
        dataType: 'json',
        data: collectAbbruchgrundData(stufe),
        contentType: 'application/x-www-form-urlencoded',
        timeout: 5000,
        success: function (msg, testStatus) {
            showStatusOK();
            setTarifrechner('');
            req = null;
        },
        error: function (xmlHttpRequest, textStatus, errorThrown) {
            showStatusOK();
            setTarifrechner('');
            req = null;
        }
    });
}

/**
 *	zusammenstellen aller Daten der Umfrage
 */

function collectAbbruchgrundData(stufe) {
    var myData = {};

    myData.p1 = "Angebotsabbruch";
    myData.p10 = "Tarifrechner_" + tarifrechner.toLowerCase();
    myData.survey = "Angebotsabbruch";
    myData.datum_versand = "01.01.2011";
    myData.kd_id = "0";

    $("input:checkbox:checked").each(function () {
        if ($(this).attr('name') == 'KEZ_P7') {
            myData.p9 = "Abbruch_" + $(this).val();
            myData.p7 = "Abbruch_sonstiges-" + escape($("input[name='TXT_P7_TEXT']:visible").val());
        } else {
            myData[$(this).attr('name').substr(4).toLowerCase()] = "Abbruch_" + $(this).val();
        }
    });
    return myData;
}

// *****************************************************************************
// START Allgemeine Funktionen
// *****************************************************************************
/**
 *	setzt die Variable "umfrageUrl", wenn diese Gefuellt ist wird ein Umfragedialog geöffnet
 *	url - ist ein string (eine URL)
 */

function setOpenUmfrage(url) {
    umfrageUrl = url;
}

/**
 *
 */

function setTarifrechner(tr) {
    tarifrechner = tr;
}

// ***************************************************************
// ENDE Funktionen fuer Umfragen
// ***************************************************************
