/* Minification failed. Returning unminified contents.
(4916,17-18): run-time warning JS1004: Expected ';': c
(4917,17-18): run-time warning JS1004: Expected ';': c
(4918,17-18): run-time warning JS1004: Expected ';': c
(4919,17-18): run-time warning JS1004: Expected ';': c
 */
/* Gesamtes InsoPortal */
var InsoPortal = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    initHandlers: function () {
        var self = this;

        $('.date').each(function () {
            var options = {
                format: 'dd.mm.yyyy',
                weekStart: 1,
                autoclose: true,
                language: 'de'
            };

            if ($(this).attr("data-startdate")) {
                options["startDate"] = $(this).data("startdate");
            }

            if ($(this).attr("data-enddate")) {
                options["endDate"] = $(this).data("enddate");
            }

            $(this).datepicker(options);
        });

        $('.alert-expiration .close').on('click', function () {
            $.ajax({
                url: Base64.decode(self.settings.alertDismissUrl),
                success: function (msg) {
                    if (!msg.success) {
                        bootbox.alert('Ein Fehler ist aufgetreten. Die Erinngerungsmeldung konnte nicht deaktiviert werden.');
                    }
                }
            });
        });

        $('.tipNewsletter .closeTipNewsletter').on('click', function () {
            $.ajax({
                url: Base64.decode(self.settings.disableNewsletterReminderUrl)
            });
        });

        $('.tipNewsletter .redirectTipNewsletter').on('click', function () {
            $('.tipNewsletter').modal('hide');
            $('.subscribeNewsletter').modal('show');
            $.ajax({
                url: Base64.decode(self.settings.disableNewsletterReminderUrl)
            });
        });

        $('#mc-embedded-subscribe').on('click', function () {
            $('.subscribeNewsletter').modal('hide');
        });

        $('#MaintenanceAlert .close').on('click', function () {
            $.ajax({
                url: Base64.decode(self.settings.maintenanceAlertDismissUrl),
                success: function (msg) {
                    if (!msg.success) {
                        bootbox.alert('Ein Fehler ist aufgetreten. Die Meldung konnte nicht deaktiviert werden.');
                    }
                }
            });
        });

        $.each($(".modal"), function (index, element) {
            if (element.id) {
                InsoPortal.refreshModalBodyHeight($('#' + element.id));
            }
        });

        $(window).resize(function () {
            $.each($(".modal.in"), function (index, element) {
                if (element.id) {
                    InsoPortal.refreshModalBodyHeight($('#' + element.id));
                }
            });
        });

        initDisablePasteInInputField();

        $('#require-details-form').submit(function (event) {
            if ($(this).valid()) {
                $.ajax({
                    type: 'POST',
                    dataType: 'json',
                    url: $(this).attr('action'),
                    data: $(this).serialize(),
                    success: function (msg) {
                        if (msg.success) {
                            $(".modal").modal('hide');
                            bootbox.alert("Die Nachricht wurde erfolgreich gesendet.");

                            $('#require-details-form').clearForm();
                        } else {
                            if (msg.hasEmail != undefined && !msg.hasEmail) {
                                $(".modal").modal('hide');
                                bootbox.alert("Es stehen uns leider keine Kontaktdaten zur Verfügung.");
                            } else {
                                bootbox.alert("Bitte überprüfen Sie Ihre Eingaben.");

                                var botDetectCaptcha = $("#CaptchaCode").get(0).Captcha;
                                if (botDetectCaptcha != null) {
                                    botDetectCaptcha.ReloadImage();
                                }

                            }
                        }
                    },
                    error: function () {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                });
            }

            event.preventDefault();

            return false;
        });
    },

    tourInit: function (currArr) {
        InsoPortal.settings.tourCurrentPos = 0;
        InsoPortal.settings.tourCurrentArr = currArr;

        $('#TourBackBtn').hide();

        if (InsoPortal.settings.tourUrls[InsoPortal.settings.tourCurrentArr].length <= 1) {
            $('#TourNextBtn').hide();
            $('#TourStartBtn').show();
        } else {
            $('#TourNextBtn').show();
            $('#TourStartBtn').hide();
        }

        if (InsoPortal.settings.tourUrls[InsoPortal.settings.tourCurrentArr].length > 0) {
            $('#TourFrame').load(InsoPortal.settings.tourUrls[InsoPortal.settings.tourCurrentArr][InsoPortal.settings.tourCurrentPos]);
        }
    },

    tourBack: function () {
        if (InsoPortal.settings.tourCurrentPos > 0) {
            $('#TourFrame').load(InsoPortal.settings.tourUrls[InsoPortal.settings.tourCurrentArr][--InsoPortal.settings.tourCurrentPos]);
            $('#TourNextBtn').show();
            $('#TourStartBtn').hide();

            if (InsoPortal.settings.tourCurrentPos == 0) {
                $('#TourBackBtn').hide();
            }
        }
    },

    tourNext: function () {
        if (InsoPortal.settings.tourCurrentPos < InsoPortal.settings.tourUrls[InsoPortal.settings.tourCurrentArr].length - 1) {
            $('#TourFrame').load(InsoPortal.settings.tourUrls[InsoPortal.settings.tourCurrentArr][++InsoPortal.settings.tourCurrentPos]);
            $('#TourBackBtn').show();

            if (InsoPortal.settings.tourCurrentPos == InsoPortal.settings.tourUrls[InsoPortal.settings.tourCurrentArr].length - 1) {
                $('#TourNextBtn').hide();
                $('#TourStartBtn').show();
            }
        }
    },

    refreshModalBodyHeight: function (modal) {
        var windowheight = $(window).height();

        var modalheader = $(".modal-header", modal);
        var headerpadding = parseInt(modalheader.css("padding-top")) + parseInt(modalheader.css("padding-bottom"));
        var headerheight = modalheader.height() + headerpadding;

        var modalbody = $(".modal-body", modal);
        var bodypadding = parseInt(modalbody.css("padding-top")) + parseInt(modalbody.css("padding-bottom"));
        var bodyheight = modalbody[0].scrollHeight + bodypadding;

        var modalfooter = $(".modal-footer", modal);
        var footerpadding = parseInt(modalfooter.css("padding-top")) + parseInt(modalfooter.css("padding-bottom"));
        var footerheight = modalfooter.height() + footerpadding;

        var toppadding = parseInt(modal.css('top')) - parseInt(modalheader.css('height'));

        if (windowheight < toppadding + headerheight + bodyheight + footerheight) {
            modal.css({ top: '0%' });

            var maxbodyheight = windowheight - headerheight - bodypadding - footerheight;

            if (maxbodyheight > 0) {
                modalbody.css("max-height", maxbodyheight + "px");
            }
        } else {
            modalbody.css("max-height", "none");

            if (windowheight > parseInt(windowheight * 0.1) + headerheight + bodyheight + footerheight) {
                modal.css({ top: '10%' });
            }
        }
    },

    getUrlParams: function (link, options) {
        var defaultOptions = { 'unescape': true, 'convert_num': true };

        if (typeof options !== "object")
            options = defaultOptions;
        else {
            for (var index in defaultOptions) {
                if (typeof options[index] === "undefined")
                    options[index] = defaultOptions[index];
            }
        }

        var params = {};
        var vars = link.search.substring(1).split('&');

        if (vars[0].length > 1) {
            for (var i = 0; i < vars.length; i++) {
                var pair = vars[i].split("=");
                var key = (options['unescape']) ? unescape(pair[0]) : pair[0];
                var val = (options['unescape']) ? unescape(pair[1]) : pair[1];

                if (options['convert_num']) {
                    if (val.match(/^\d+$/))
                        val = parseInt(val);

                    else if (val.match(/^\d+\.\d+$/))
                        val = parseFloat(val);
                }

                if (typeof params[key] === "undefined")
                    params[key] = val;
                else if (typeof params[key] === "string")
                    params[key] = [params[key], val];
                else
                    params[key].push(val);
            }
        }

        return params;
    },

    showNewsletterReminder: function () {
        var newsletterTimer;

        function poll() {
            $.post(Base64.decode(InsoPortal.settings.showNewsletterReminderUrl), function (data) {
                if (data.showReminder) {
                    $('.tipNewsletter').modal('show');
                    clearInterval(newsletterTimer);
                }
            });
        };

        newsletterTimer = setInterval(function () { poll(); }, 5000);
    },

    initPasswordCheck: function () {
        $(".password-check-row").html('<div class="span3">'
            + '<div class="password-check-progress progress" style="height: 10px; margin-bottom: 0">'
            + '<div class="password-check-bar bar" style="width: 0%"></div>'
            + '</div>'
            + '<span class="password-check-msg text-error"></span>'
            + '</div>');

        $(".password-check").keyup(function () {
            var passwordCheckRow = $(".password-check-row");
            var passwordMsgField = $(".password-check-msg");
            var passwordCheckProgress = $(".password-check-progress");
            var passwordCheckBar = $(".password-check-bar");

            var password = $(this).val();
            var strength = InsoPortal.validatePasswordStrength(password);

            if (strength == 1) {
                passwordMsgField.html("Passwort unsicher");
                passwordMsgField.removeClass().addClass("password-check-msg text-error");
                passwordCheckProgress.removeClass().addClass("password-check-progress progress progress-danger");
                passwordCheckBar.animate({ width: '25%' }, 50);
            }
            else if (strength == 2) {
                passwordMsgField.html("Passwort unsicher");
                passwordMsgField.removeClass().addClass("password-check-msg text-error");
                passwordCheckProgress.removeClass().addClass("password-check-progress progress progress-warning");
                passwordCheckBar.animate({ width: '50%' }, 50);
            }
            else if (strength == 3) {
                passwordMsgField.html("Passwort unsicher");
                passwordMsgField.removeClass().addClass("password-check-msg text-warning");
                passwordCheckProgress.removeClass().addClass("password-check-progress progress progress-warning");
                passwordCheckBar.animate({ width: '75%' }, 50);
            }
            else if (strength == 4) {
                passwordMsgField.html("Passwort sicher");
                passwordMsgField.removeClass().addClass("password-check-msg text-success");
                passwordCheckProgress.removeClass().addClass("password-check-progress progress progress-success");
                passwordCheckBar.animate({ width: '100%' }, 50);
            }
            else if (strength == 0) {
                passwordMsgField.html("Passwort eingeben");
                passwordMsgField.removeClass().addClass("password-check-msg text-error");
                passwordCheckBar.animate({ width: '0%' }, 50);
            }

            if (strength != 4 && passwordCheckRow.hasClass("hidden")) {
                passwordCheckRow.removeClass("hidden");
            }
        });
    },

    initPasswordCheckBootstrap4: function () {
        $(".password-check-row").html(
              '<div class="span3">'
                + '<div class="password-check-progress progress" style="height: 10px; margin-bottom: 0">'
                    + '<div class="password-check-bar progress-bar" style="width: 0%"></div>'
                + '</div>'
                + '<span class="password-check-msg text-danger"></span>'
            + '</div>');

        $(".password-check").keyup(function () {
            var passwordCheckRow = $(".password-check-row");
            var passwordMsgField = $(".password-check-msg");
            var passwordCheckProgress = $(".password-check-progress");
            var passwordCheckBar = $(".password-check-bar");

            var password = $(this).val();
            var strength = InsoPortal.validatePasswordStrength(password);

            if (strength == 1) {
                passwordMsgField.html("Passwort unsicher");
                passwordMsgField.removeClass().addClass("password-check-msg text-danger");
                passwordCheckBar.removeClass().addClass("password-check-bar progress-bar bg-danger");
                passwordCheckBar.animate({ width: '25%' }, 50);
            }
            else if (strength == 2) {
                passwordMsgField.html("Passwort unsicher");
                passwordMsgField.removeClass().addClass("password-check-msg text-danger");
                passwordCheckBar.removeClass().addClass("password-check-bar progress-bar bg-warning");
                passwordCheckBar.animate({ width: '50%' }, 50);
            }
            else if (strength == 3) {
                passwordMsgField.html("Passwort unsicher");
                passwordMsgField.removeClass().addClass("password-check-msg text-warning");
                passwordCheckBar.removeClass().addClass("password-check-bar progress-bar bg-warning");
                passwordCheckBar.animate({ width: '75%' }, 50);
            }
            else if (strength == 4) {
                passwordMsgField.html("Passwort sicher");
                passwordMsgField.removeClass().addClass("password-check-msg text-success");
                passwordCheckBar.removeClass().addClass("password-check-bar progress-bar bg-success");
                passwordCheckBar.animate({ width: '100%' }, 50);
            }
            else if (strength == 0) {
                passwordMsgField.html("Passwort eingeben");
                passwordMsgField.removeClass().addClass("password-check-msg text-danger");
                passwordCheckBar.animate({ width: '0%' }, 50);
            }

            if (strength != 4 && passwordCheckRow.hasClass("d-none")) {
                passwordCheckRow.removeClass("d-none");
            }
        });
    },
    
    validatePasswordStrength: function(password) {
        var strength = 0;

        if (password.length > 5) {
            strength += 1;
        }

        if (password.match(/([a-z]|[A-Z])/)) {
            strength += 1;
        }

        if (password.match(/([0-9])/)) {
            strength += 1;
        }

        if (password.match(/(\W)/)) {
            strength += 1;
        }

        return strength;
    }
};

function initDisablePasteInInputField() {
    $(".disablePaste").bind('paste', function (e) {
        e.preventDefault();
    });
};/* Insolvency Search */
var InsolvencySearch = {
    settings: {},
    assignedInsolvenciesArray: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    initializeHandlers: function () {
        $('#DataTable .pagination a').unbind();
        $('#DataTable .pagination a').on('click', function () {
            var link = $(this).attr('href');

            var linkRegex = new RegExp('page=(\\d+)');
            var linkResult = linkRegex.exec(link);

            if (linkResult.length >= 1) {
                $('#ResultsTable').addClass('table-inactive');
                $(this).addClass('loading');
                $(this).html('&nbsp;');

                InsolvencySearch.settings.page = linkResult[1];
                InsolvencySearch.getSearchResults(InsolvencySearch.settings.page, this);
            }

            return false;
        });

        $('#ResultsTable thead a').unbind();
        $('#ResultsTable thead a').click(function () {
            var link = $(this).attr('href');

            var linkRegex = new RegExp('sortcolumn=([^&]*)&sortorder=(.*)');
            var linkResult = linkRegex.exec(link);

            if (linkResult.length >= 2) {
                $('#ResultsTable').addClass('table-inactive');
                $($('#ResultsTable thead tr:first-child th:first-child')[0]).addClass('loading');

                InsolvencySearch.settings.sortColumn = linkResult[1];
                InsolvencySearch.settings.sortOrder = linkResult[2];
                InsolvencySearch.settings.page = 1;
                InsolvencySearch.getSearchResults(InsolvencySearch.settings.page);
            }

            return false;
        });

        $('#ResultsTable .verfahrensname a').live('click', function () {
            $('#detailsForm').attr('action', $(this).attr('href'));
            $('#detailsForm input[name=searchValue]').val(InsolvencySearch.getJson(InsolvencySearch.settings.page));
            $('#detailsForm').submit();

            return false;
        });

        InsolvencySearch.bindAssignedInsolvencies();
        InsolvencySearch.bindStatus();
    },

    bindAssignedInsolvencies: function () {
        $('#ResultsTable div.assignedInsolvencies').bind('mouseleave', function () {
            $('#ResultsTable span.assignedInsolvenciesLink').popover('destroy');
        });

        $('#ResultsTable span.assignedInsolvenciesLink').bind('hover', function () {
            var self = $(this);

            var currentId = self.children().attr('rel');

            if (currentId == '') {
                return;
            }

            if (InsolvencySearch.assignedInsolvenciesArray[currentId] != undefined) {
                InsolvencySearch.showPopover(currentId, self);
                return;
            }

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencySearch.settings.getGetAssignedInsolvenciesUrl),
                data: {
                    publicInsolvencyId: currentId
                },
                success: function (data) {
                    if (data.id == currentId) {
                        if (data.html.length == 0) {
                            InsolvencySearch.assignedInsolvenciesArray[data.id] = 'Es wurden keine verbundenen Verfahren gefunden.';
                        } else {
                            InsolvencySearch.assignedInsolvenciesArray[data.id] = data.html;
                        }

                        InsolvencySearch.showPopover(data.id, self);
                    }
                }
            });
        });
    },

    bindStatus: function () {
        $("#ResultsTable span.statusNa").popover({
            trigger: 'manual',
            animation: false,
            html: true,
            placement: 'left',
            template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(\'span.statusNa\').popover(\'hide\'); });"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
        }).click(function (e) {
            e.preventDefault();
        }).mouseenter(function () {
            $("span.statusNa").each(function () {
                $(this).popover('hide');
            });

            $(this).popover('show');
        });
    },

    showPopover: function (currentId, obj) {
        obj.popover({
            content: InsolvencySearch.assignedInsolvenciesArray[currentId],
            title: 'Konzerninsolvenzen',
            animation: false,
            html: true,
            trigger: 'manual',
            template: '<div class="popover" style="max-width:575px;"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>'
        }).click(function (e) {
            e.preventDefault();
        });

        obj.popover('show');
    },

    getSearchResults: function (page) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencySearch.settings.getJsonResultsUrl),
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            data: InsolvencySearch.getJson(page),
            success: function (msg) {
                $('#filterSearchActive').hide();
                $('#DataTable').html(msg.Data);
                $('html, body').animate({ scrollTop: $('#Searchresult').position().top }, 'fast');
            },
            error: function () {
                $('#filterSearchActive').hide();
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    getJson: function (page, saveAs) {
        var searchParameter = {
            SearchQuery: $('#searchQueryField').val() != 'null' ? $('#searchQueryField').val() : '',
            SelectedAdmins: InsolvencySearch.getMultiselectValues('SearchParameter-SelectedAdmins'),
            SelectedCourts: InsolvencySearch.getMultiselectValues('SearchParameter-SelectedCourts'),
            SelectedCorporateForms: InsolvencySearch.getMultiselectValues('SearchParameter-SelectedCorporateForms'),
            SelectedOffices: InsolvencySearch.getMultiselectValues('SearchParameter-SelectedOffices'),
            SelectedState: $('#SearchParameter_SelectedState').val(),
            SelectedFederateStates: InsolvencySearch.getMultiselectValues('SearchParameter-SelectedFederateStates'),
            DomicileQuery: $('#SearchParameter_DomicileQuery').val(),
            DateFrom: $('#beginDateField').val(),
            DateTo: $('#endDateField').val(),
            Page: page,
            ResultsPerPage: $('#SearchParameter_ResultsPerPage').val(),
            TotalResults: $('#TotalResults').val(),
            PublicationType: $('#SearchParameter_PublicationType').val(),
            TimeFrame: $('#SearchParameter_TimeFrame').val(),
            InsolvencyType: $('#SearchParameter_InsolvencyType').val(),
            GisOnly: $('#SearchParameter_GisOnly:checked').val(),
            SelectInsolvency: $('#SearchParameter_SelectInsolvency').val(),
            IsManual: $('#SearchParameter_IsManual:checked').val(),
            IsSelfEmployed: $('#SearchParameter_IsSelfEmployed:checked').val(),
            Insolvency270Type: $('#SearchParameter_Insolvency270Type:checked').val(),
            SaveAs: saveAs,
            SortColumn: InsolvencySearch.settings.sortColumn,
            SortOrder: InsolvencySearch.settings.sortOrder,
            MinAnnualTurnover: $("#SearchParameter_MinAnnualTurnover").val(),
            MaxAnnualTurnover: $("#SearchParameter_MaxAnnualTurnover").val(),
            MinEmployees: $("#SearchParameter_MinEmployees").val(),
            MaxEmployees: $("#SearchParameter_MaxEmployees").val(),
            Branches: InsolvencySearch.getBranchIds("#branchTree"),
            StateCodeId: $("#SearchParameter_StateCodeId").val()
        };

        return JSON.stringify(searchParameter);
    },

    getMultiselectValues: function (name) {
        var selected = [];

        $("#" + name + " input:checked").each(function () {
            selected.push(this.value);
        });

        var element = $("#preselected-" + name);

        if (element != null && element.val() != undefined && element.val() != "") {
            $.each(element.val().split(","), function (index, value) {
                selected.push(value);
            });
        }

        return selected;
    },

    getBranchIds: function (tree) {
        var checked = $(tree).jstree('get_checked');

        if (checked.length == 0) {
            return 'null';
        } else {
            var ids = [];

            checked.each(function () {
                ids.push(this.id);
            });

            return ids;
        }
    },

    addInsolvencyCookie: function (publicInsolvencyId) {
        document.cookie = "cookie-insolvencyId=" + publicInsolvencyId + "; path=/";
    },

    clearList: function (multiselectName) {
        $('#' + multiselectName + ' input[type=checkbox]:checked').removeAttr('checked');
        $('#input-' + multiselectName + ' option').html('Alle');
    },

    filterList: function (multiselectName, value) {
        if (InsolvencySearch.settings.filterRows[multiselectName] === undefined
            || InsolvencySearch.settings.filterRows[multiselectName].length === 0) {
            InsolvencySearch.settings.filterRows[multiselectName] = $('#' + multiselectName + ' li');
        }

        var term = $.trim(value.toLowerCase());

        if (InsolvencySearch.settings.searchTerm[multiselectName] == term) {
            return;
        }

        InsolvencySearch.settings.searchTerm[multiselectName] = term;

        if (!term) {
            InsolvencySearch.settings.filterRows[multiselectName].removeClass('hide');
        } else {
            var rEscape = /[\-\[\]{}()*+?.,\\\^$|#\s]/g;
            var regex = new RegExp(term.replace(rEscape, "\\$&"), 'gi');

            InsolvencySearch.settings.filterRows[multiselectName].each(function (index, val) {
                if (val.title.search(regex) !== -1) {
                    InsolvencySearch.settings.filterRows[multiselectName].eq(index).removeClass('hide');
                } else {
                    InsolvencySearch.settings.filterRows[multiselectName].eq(index).addClass('hide');
                }
            });
        }
    },

    checkboxChange: function (originalMultiselectName, multiselectName) {
        var numChecked = $('input[name="' + originalMultiselectName + '"]:checked').length;

        if (numChecked == 0) {
            $('#input-' + multiselectName + ' option').html('Alle');
        } else if (numChecked == 1) {
            $('#input-' + multiselectName + ' option').html($('input[name="' + originalMultiselectName + '"]:checked').attr("title"));
        } else {
            $('#input-' + multiselectName + ' option').html(numChecked + ' ausgewählt');
        }
    }
};

var InsolvencySearchFilter = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);

        $('#MinAnnualTurnover, #MaxAnnualTurnover').autoNumeric('init', { aSep: '', aDec: ',', pSign: 's', vMax: '9999999999999.99' });

        $('#MinEmployeeCount, #MaxEmployeeCount').autoNumeric('init', {
            aSep: '',
            pSign: 's',
            vMax: '9999999999999',
            mDec: 0
        });

        $('#branchTree').bind("check_node.jstree", function (e, data) {
            $('#WzBranchId').val(data.rslt.obj.attr("id"));
        }).bind("uncheck_node.jstree", function () {
            $('#WzBranchId').val('');
        }).bind("uncheck_all.jstree", function () {
            $('#WzBranchId').val('');
        });
    },

    initializeHandlers: function () {
        if (InsolvencySearchFilter.settings.authIsAuthenticated && InsolvencySearchFilter.settings.authInsolvencySearch) {
            $('#searchNow').unbind();

            $('#searchNow').submit(function () {
                if (InsolvencySearchFilter.settings.authDontSearchEmpty) {
                    if ($('#searchQueryField').val().trim().replace(/\s+/g, '').length > 2) {
                        if ($.inArray($('#searchQueryField').val().trim().replace(/\s+/g, ''), InsolvencySearchFilter.settings.corpForms) >= 0) {
                            $('#DataTable').html('<div class="alert alert-attention">Bitte geben Sie einen Firmen- oder Personennamen ein.</div>');

                            return false;
                        }
                    } else {
                        $('#DataTable').html('<div class="alert alert-attention">Bitte geben Sie mindestens 3 Zeichen in die Suche ein.</div>');

                        return false;
                    }
                }

                InsolvencySearch.settings.page = 1;
                InsolvencySearch.getSearchResults(InsolvencySearch.settings.page);

                $('#filterSearchActive').show();

                return false;
            });
        }

        $('#savedFiltersModal').modal({
            show: false
        });

        $('#searchQueryField').focus();

        $('#MinAnnualTurnover').bind('blur focusout keypress keyup', function () {
            var val = $('#MinAnnualTurnover').autoNumeric('get').replace('.', ',');
            $('#SearchParameter_MinAnnualTurnover').val(val);
        });

        $('#MaxAnnualTurnover').bind('blur focusout keypress keyup', function () {
            var val = $('#MaxAnnualTurnover').autoNumeric('get').replace('.', ',');
            $('#SearchParameter_MaxAnnualTurnover').val(val);
        });

        InsolvencySearchFilter.enableDisableDates();

        if (InsolvencySearchFilter.settings.authShowPrivateInsolvencies) {
            $('#SearchParameter_InsolvencyType').change(function () {
                InsolvencySearchFilter.enableDisableType();
            });

            InsolvencySearchFilter.enableDisableType();
        }

        if (!InsolvencySearchFilter.settings.authIsAuthenticated) {
            $("#SearchParameter_IsSelfEmployed").attr('disabled', 'disabled').attr('title', 'Nur für registrierte Benutzer einsehbar');
            $("#IsSelfEmployedSpan").attr('title', 'Nur für registrierte Benutzer einsehbar');
        }

        if (!InsolvencySearchFilter.settings.authShowManuelInsolvenciesFilter || !InsolvencySearchFilter.settings.authIsAuthenticated) {
            $("#SearchParameter_IsManual").attr('disabled', 'disabled').attr('title', 'Nur für registrierte Benutzer einsehbar');
        }

        if (!InsolvencySearchFilter.settings.authShowIs270BFilter || !InsolvencySearchFilter.settings.authShowIs270AFilter || !InsolvencySearchFilter.settings.authIsAuthenticated) {
            $("#SearchParameter_Insolvency270Type[value=Is270AOr270B]").attr('disabled', 'disabled').attr('title', 'Nur für registrierte Benutzer einsehbar');
        }

        if (!InsolvencySearchFilter.settings.authShowIs270BFilter || !InsolvencySearchFilter.settings.authIsAuthenticated) {
            $("#SearchParameter_Insolvency270Type[value=Is270B]").attr('disabled', 'disabled').attr('title', 'Nur für registrierte Benutzer einsehbar');
        }

        if (!InsolvencySearchFilter.settings.authShowIs270AFilter || !InsolvencySearchFilter.settings.authIsAuthenticated) {
            $("#SearchParameter_Insolvency270Type[value=Is270A]").attr('disabled', 'disabled').attr('title', 'Nur für registrierte Benutzer einsehbar');
        }

        if (!InsolvencySearchFilter.settings.authShowIsSelfAdministrationFilter || !InsolvencySearchFilter.settings.authIsAuthenticated) {
            $("#SearchParameter_Insolvency270Type[value=IsSelfAdministration]").attr('disabled', 'disabled').attr('title', 'Nur für registrierte Benutzer einsehbar');
            $("#SearchParameter_Insolvency270Type[value=IsNotSelfAdministration]").attr('disabled', 'disabled').attr('title', 'Nur für registrierte Benutzer einsehbar');
        }

        if (!InsolvencySearchFilter.settings.authShowGisFilter || !InsolvencySearchFilter.settings.authIsAuthenticated) {
            $("#SearchParameter_GisOnly").attr('disabled', 'disabled').attr('title', 'Nur für registrierte Benutzer einsehbar');
        }

        if (!InsolvencySearchFilter.settings.authShowOfficeFilter || !InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#input-SearchParameter-SelectedOffices").attr("disabled", "disabled");

            $('#Office-hitarea').mouseenter(function () {
                if ($('#Office-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#Office-hitarea').detach();
        }

        if (InsolvencySearchFilter.settings.authDontShowAdmins || !InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#input-SearchParameter-SelectedAdmins").attr("disabled", "disabled");

            $('#Admins-hitarea').mouseenter(function () {
                if ($('#Admins-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#Admins-hitarea').detach();
        }

        if (!InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#SearchParameter_DomicileQuery").attr("disabled", "disabled");

            $('#DomicileQuery-hitarea').mouseenter(function () {
                if ($('#DomicileQuery-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#DomicileQuery-hitarea').detach();
        }

        if (!InsolvencySearchFilter.settings.authShowFederateStateFilter || !InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#input-SearchParameter-SelectedFederateStates").attr("disabled", "disabled");

            $('#FederateStates-hitarea').mouseenter(function () {
                if ($('#FederateStates-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#FederateStates-hitarea').detach();
        }

        if (!InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#input-SearchParameter-SelectedCourts").attr("disabled", "disabled");

            $('#Courts-hitarea').mouseenter(function () {
                if ($('#Courts-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#Courts-hitarea').detach();
        }

        if (InsolvencySearchFilter.settings.authDontShowCorporateForm || !InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#input-SearchParameter-SelectedCorporateForms").attr('disabled', 'disabled');

            $('#CorporateForms-hitarea').mouseenter(function () {
                if ($('#CorporateForms-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#CorporateForms-hitarea').detach();
        }

        if (!InsolvencySearchFilter.settings.authShowPrivateInsolvencies || InsolvencySearchFilter.settings.authDontShowCorporateForm || InsolvencySearchFilter.settings.authShowInInsolvencies || !InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#SearchParameter_InsolvencyType").attr("disabled", "disabled");

            $('#InsolvencyType-hitarea').mouseenter(function () {
                if ($('#InsolvencyType-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#InsolvencyType-hitarea').detach();
        }

        if (InsolvencySearchFilter.settings.authDontShowStatus || !InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#SearchParameter_SelectedState").attr("disabled", "disabled");

            $('#State-hitarea').mouseenter(function () {
                if ($('#State-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#State-hitarea').detach();
        }

        if (!InsolvencySearchFilter.settings.authShowAnnualTurnoverData || !InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#MinAnnualTurnover").attr("disabled", "disabled");
            $("#MaxAnnualTurnover").attr("disabled", "disabled");

            $('#MinAnnualTurnover-hitarea').mouseenter(function () {
                if ($('#MinAnnualTurnover-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });

            $('#MaxAnnualTurnover-hitarea').mouseenter(function () {
                if ($('#MaxAnnualTurnover-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#MinAnnualTurnover-hitarea').detach();
            $('#MaxAnnualTurnover-hitarea').detach();
        }

        if (!InsolvencySearchFilter.settings.authShowEmployeeData || !InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#SearchParameter_MinEmployees").attr("disabled", "disabled");
            $("#SearchParameter_MaxEmployees").attr("disabled", "disabled");

            $('#MinEmployees-hitarea').mouseenter(function () {
                if ($('#MinEmployees-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });

            $('#MaxEmployees-hitarea').mouseenter(function () {
                if ($('#MaxEmployees-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#MinEmployees-hitarea').detach();
            $('#MaxEmployees-hitarea').detach();
        }

        if (!InsolvencySearchFilter.settings.authShowBranchInformation || !InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#Branch").attr("disabled", "disabled");

            $('#Branch-hitarea').mouseenter(function () {
                if ($('#Branch-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#Branch-hitarea').detach();
        }

        if (InsolvencySearchFilter.settings.authPublicationLast14Days) {
            var today1 = new Date();
            var tempDate1 = new Date();
            tempDate1.setDate(today1.getDate() - 14);
            $("#beginDateField, #endDateField").datepicker("option", "minDate", tempDate1);
            $("#SearchParameter_TimeFrame option[value='DiesenMonat']").remove();
            $("#SearchParameter_TimeFrame option[value='LetztenMonat']").remove();
            $("#SearchParameter_TimeFrame option[value='DiesesJahr']").remove();
            $("#SearchParameter_TimeFrame option[value='DiesesUndLetztesJahr']").remove();
            $("#SearchParameter_TimeFrame option[value='Gesamt']").remove();
        }

        if (InsolvencySearchFilter.settings.authOnlyThisAndLastYearOpenedInsolvencies) {
            var today2 = new Date();
            $("#beginDateField, #endDateField").datepicker("option", "minDate", new Date((today2.getFullYear() - 1), 0, 1));
            $("#SearchParameter_TimeFrame option[value='Gesamt']").remove();
        }

        if (!InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#SearchParameter_PublicationType").attr("disabled", "disabled");

            $('#PublicationType-hitarea').mouseenter(function () {
                if ($('#PublicationType-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#PublicationType-hitarea').detach();
        }

        if (!InsolvencySearchFilter.settings.authIsAuthenticated || !InsolvencySearchFilter.settings.authInsolvencySearch) {
            $("#SearchParameter_TimeFrame").attr("disabled", "disabled");

            $('#TimeFrame-hitarea').mouseenter(function () {
                if ($('#TimeFrame-container .popover').length == 0) {
                    $(this).popover({
                        trigger: 'manual',
                        animation: false,
                        html: true,
                        placement: 'top',
                        template: '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });">' +
                            '<div class="arrow"></div>' +
                            '<h3 class="popover-title"></h3>' +
                            '<div class="popover-content"></div>' +
                            '<div style="position: absolute; display: block; left: -' + (1 + ($(this).outerWidth() <= 280 ? 0 : ($(this).outerWidth() - 280) / 2)) + 'px; width: ' + $(this).outerWidth() + 'px; height: ' + ($(this).outerHeight() + 15) + 'px;"></div>' +
                            '</div>'
                    });
                }

                $(this).popover('show');
            });
        } else {
            $('#TimeFrame-hitarea').detach();

            if (InsolvencySearchFilter.settings.authShow4DaysDelayed || InsolvencySearchFilter.settings.authShow30DaysDelayed) {
                $('#SearchParameter_TimeFrame').children('option').each(function () {
                    var attr = $(this).attr('value');
                    if (typeof attr !== typeof undefined && attr !== false) {
                        if (attr === 'Heute' || attr === 'Gestern' || attr === 'SiebenTage') {
                            $(this).attr("disabled", "disabled");
                        }

                        if (InsolvencySearchFilter.settings.authShow30DaysDelayed && !InsolvencySearchFilter.settings.authShow4DaysDelayed && (attr === 'DiesenMonat' || attr === 'VierzehnTage' || attr === 'LetzteWoche')) {
                            $(this).attr("disabled", "disabled");
                        }
                    }
                });
            }
        }

        if (InsolvencySearchFilter.settings.authOnlyThisYearOpenedInsolvencies) {
            var today3 = new Date();
            var yesterday = new Date();
            yesterday.setDate(today3.getDate() - 1);

            if (!InsolvencySearchFilter.settings.dateLastWeek) {
                $("#SearchParameter_TimeFrame option[value='LetzteWoche']").remove();
            }

            if (!InsolvencySearchFilter.settings.dateLastMonth) {
                $("#SearchParameter_TimeFrame option[value='LetztenMonat']").remove();
            }

            if (!InsolvencySearchFilter.settings.dateSevenDays) {
                $("#SearchParameter_TimeFrame option[value='SiebenTage']").remove();
            }

            if (!InsolvencySearchFilter.settings.dateFourteenDays) {
                $("#SearchParameter_TimeFrame option[value='VierzehnTage']").remove();
            }

            if (today3.getFullYear() != yesterday.getFullYear()) {
                $("#SearchParameter_TimeFrame option[value='Gestern']").remove();
            }

            $("#beginDateField, #endDateField").datepicker("option", "minDate", new Date(today3.getFullYear(), 0, 1));

            $("#SearchParameter_TimeFrame option[value='DiesesUndLetztesJahr']").remove();
            $("#SearchParameter_TimeFrame option[value='Gesamt']").remove();
        }

        if (InsolvencySearchFilter.settings.authOnlyOpenedInsolvencies) {
            $("#SearchParameter_SelectedState").attr('disabled', 'disabled');
        }

        if (InsolvencySearchFilter.settings.authShowInInsolvencies) {
            $("#SearchParameter_InsolvencyType option[value='Consumer']").remove();
            $("#SearchParameter_InsolvencyType option[value='Business']").remove();
            $("#SearchParameter_InsolvencyType option[value='Wvp']").remove();
        }

        $('#MinAnnualTurnover, #MaxAnnualTurnover').autoNumeric('init', {
            aSep: '.',
            aDec: ',',
            aSign: ' Mio. €',
            pSign: 's',
            vMax: '9999999999999.99'
        });

        $('#SearchParameter_MinEmployees, #SearchParameter_MaxEmployees').autoNumeric('init', {
            aSep: '',
            pSign: 's',
            vMax: '9999999999999',
            mDec: 0
        });

        var endDate = new Date();
        if (InsolvencySearchFilter.settings.authShow30DaysDelayed || InsolvencySearchFilter.settings.authShow4DaysDelayed) {
            endDate.setDate(endDate.getDate() - InsolvencySearchFilter.settings.endDateOffset);
        }
        var currday = endDate.getDate();
        var currmonth = endDate.getMonth() + 1;
        var curryear = endDate.getFullYear();

        $('#beginDateField, #endDateField').datepicker({
            format: 'dd.mm.yyyy',
            weekStart: 1,
            autoclose: true,
            language: 'de',
            startDate: '01.01.2007',
            endDate: currday + "." + currmonth + "." + curryear
        });

        $('#SearchParameter_TimeFrame').change(function () {
            InsolvencySearchFilter.enableDisableDates();
        });

        if (!InsolvencySearchFilter.settings.authShowSelfEmployedInsolvenciesFilter) {
            $("#SearchParameter_IsSelfEmployed").attr('disabled', 'disabled').attr('title', 'Sie haben nicht das Recht nach Selbstständigen zu filtern.');
            $('#IsSelfEmployedSpan').attr('title', 'Sie haben nicht das Recht nach Selbstständigen zu filtern.');
        } else {
            if ($('#SearchParameter_InsolvencyType').val() != 'Person') {
                $('#SearchParameter_IsSelfEmployed').prop("checked", false);
                $('#SearchParameter_IsSelfEmployed').attr('disabled', 'disabled').attr('title', 'Nur bei natürlichen Personen auswählbar.');
                $('#IsSelfEmployedSpan').attr('title', 'Nur bei natürlichen Personen auswählbar.');
            }

            $('#SearchParameter_InsolvencyType').change(function () {
                if ($('#SearchParameter_InsolvencyType').val() == 'Person') {
                    $('#SearchParameter_IsSelfEmployed').removeAttr('disabled');
                    $('#SearchParameter_IsSelfEmployed').removeAttr('title');
                    $('#IsSelfEmployedSpan').removeAttr('title');
                } else {
                    $('#SearchParameter_IsSelfEmployed').prop("checked", false);
                    $('#SearchParameter_IsSelfEmployed').attr('disabled', 'disabled').attr('title', 'Nur bei natürlichen Personen auswählbar.');
                    $('#IsSelfEmployedSpan').attr('title', 'Nur bei natürlichen Personen auswählbar.');
                }
            });
        }

        $('#SearchParameter_PublicationType').change(function () {
            if ($('#SearchParameter_PublicationType').val() == "State") {
                $('#SearchParameter_StateCodeId').removeAttr('disabled');
            } else {
                $('#SearchParameter_StateCodeId').attr('disabled', 'disabled');
                $('#SearchParameter_StateCodeId').val(0);
            }
        });
    },

    initializeFilterList: function () {
        var global = this;

        $('select.multiselect').live('click', function () {
            var self = this;

            var parameterName = $(self).attr('id').replace(/^input-/i, '');
            var searchFilter = parameterName.replace(/^searchparameter-/i, '');

            if ($('#' + parameterName).find('.filterlist-loading').length > 0) {
                $.ajax({
                    url: Base64.decode(global.settings.getFilterDataUrl),
                    type: 'POST',
                    dataType: 'json',
                    data: {
                        searchFilter: searchFilter
                    },
                    success: function (msg) {
                        $('#' + parameterName).find('.filterlist-loading').each(function () {
                            $(this).remove();
                        });

                        if (msg == undefined || msg.length == 0) {
                            return;
                        }

                        var selected = [];

                        if ($("#preselected-" + parameterName).val() != "") {
                            $.each($("#preselected-" + parameterName).val().split(","), function (index, value) {
                                selected.push(parseInt(value));
                            });

                            $("#preselected-" + parameterName).val("");
                        }

                        var ulItem = '';
                        for (var x = 0; x < msg.length; x++) {
                            var item = msg[x];

                            ulItem += '<li title="' + item.Text + '">';
                            ulItem += '<label class="checkbox"><input id="multiselect-' + parameterName + '-option-' + x + '" name="' + parameterName.replace('-', '.') + '" title="' + item.Text + '" type="checkbox" value="' + item.Value + '" onclick="InsolvencySearch.checkboxChange(\'' + parameterName.replace('-', '.') + '\', \'' + parameterName + '\');" ' + ($.inArray(item.Value, selected) != -1 ? 'checked="checked"' : '') + '/>';
                            ulItem += '<span>' + item.Text + '</span></label></li>';
                        }
                        $('#' + parameterName).html(ulItem);
                    }
                });
            }
        });
    },

    initializeBranchDropDown: function (allowMultiple) {
        if (InsolvencySearchFilter.settings.authShowBranchInformation && InsolvencySearchFilter.settings.authIsAuthenticated) {
            $('#branchTree').jstree({
                plugins: ["themes", "json_data", "checkbox", "ui", "search"],
                core: {
                    animation: 0,
                    strings: { loading: "Lade Daten..." }
                },
                themes: {
                    "theme": "custom",
                    "icons": false,
                    "dots": false,
                    "url": "/Scripts/frameworks/themes/custom/style.css"
                },
                ui: {
                    select_limit: 1
                },
                checkbox: {
                    real_checkboxes_names: function (n) { return ["SearchParameter.Branches", n[0].id]; },
                    two_state: false
                },
                search: {
                    case_insensitive: true,
                    skip_async: false,
                    ajax: {
                        url: Base64.decode(InsolvencySearchFilter.settings.getGetSearchedSubCategoriesUrl),
                        type: 'POST',
                        traditional: true,
                        data: function (val) {
                            if (typeof val == "number") {
                                return { branchDescription: null, branchIds: [val] };
                            } else if (typeof val == "string") {
                                return { branchDescription: val, branchIds: [] };
                            } else if (typeof val == "object") {
                                return { branchDescription: null, branchIds: val };
                            } else {
                                return { branchDescription: null, branchIds: [] };
                            }
                        }
                    }
                },
                json_data: {
                    ajax: {
                        type: 'POST',
                        url: function () {
                            if ($('#branchSearchActive').val() == 'true') {
                                return Base64.decode(InsolvencySearchFilter.settings.getGetSearchedSubCategoriesUrl);
                            } else {
                                return Base64.decode(InsolvencySearchFilter.settings.getGetSubCategoryUrl);
                            }
                        },
                        data: function (n) {
                            if ($('#branchSearchActive').val() == 'true') {
                                return { branchDescription: $('#branchSearch').val(), branchIds: [] };
                            } else {
                                return { branchId: n.attr ? n.attr("id") : 'null' };
                            }
                        },
                        success: function (res) {
                            if ($('#branchSearchActive').val() == 'true') {
                                $('#branchSearchActive').val('false');

                                if (res.length == 0) {
                                    $('#branchSearchError').text('Es wurden keine Ergebnisse gefunden.');
                                }
                            }
                        },
                        error: function () {
                            if ($('#branchSearchActive').val() == 'true') {
                                $('#branchSearchActive').val('false');

                                $('#branchSearchError').text('Es ist ein Fehler aufgetreten.');
                            }
                        }
                    }
                }
            }).bind("select_node.jstree", function (e, data) {
                $("#branchTree").jstree("toggle_node", "#" + data.rslt.obj[0]["id"]);
            }).bind("check_node.jstree", function (e, data) {
                if (!allowMultiple) {
                    var currentNode = data.rslt.obj.attr("id");

                    $("#branchTree").jstree("get_checked", null, true).each(function () {
                        var checkedId = this.id;

                        if (currentNode != checkedId) {
                            var isChild = false;
                            var isParent = false;
                            var parents = $("#branchTree").jstree("get_path", $("#" + currentNode), true);

                            $.each(parents, function (key, val) {
                                if (val == checkedId) {
                                    isParent = true;
                                }
                            });

                            if (!isParent) {
                                parents = $("#branchTree").jstree("get_path", $("#" + checkedId), true);

                                $.each(parents, function (key, val) {
                                    if (val == currentNode) {
                                        isChild = true;
                                    }
                                });

                                if (!isChild) {
                                    $("#branchTree").jstree("uncheck_node", "#" + checkedId);
                                }
                            }
                        }
                    });
                }

                var checked = $('#branchTree').jstree('get_checked');

                if (checked.length == 0) {
                    $('#Branch').html("<option>Alle</option>");
                    $("#SelectedWzBranchId").val("");
                } else if (checked.length == 1) {
                    $('#Branch').html("<option>" + checked.children('a').text().trim() + "</option>");
                    $("#SelectedWzBranchId").val(checked[0].id);
                } else if (checked.length > 1) {
                    var amountOfBranches = 0;
                    $.each(checked, function () { amountOfBranches++; });
                    $('#Branch').html("<option>" + amountOfBranches + " ausgewählt</option>");
                }
            }).bind("uncheck_node.jstree", function () {
                if (!allowMultiple) {
                    if ($('#branchTree').jstree('get_checked').length > 1) {
                        $('#branchTree').jstree('uncheck_all');
                    }
                }

                var checked = $('#branchTree').jstree('get_checked');

                if (checked.length == 0) {
                    $('#Branch').html("<option>Alle</option>");
                    $("#SelectedWzBranchId").val("");
                } else if (checked.length == 1) {
                    $('#Branch').html("<option>" + checked.children('a').text().trim() + "</option>");
                    $("#SelectedWzBranchId").val(checked[0].id);
                } else if (checked.length > 1) {
                    var amountOfBranches = 0;
                    $.each(checked, function () { amountOfBranches++; });
                    $('#Branch').html("<option>" + amountOfBranches + " ausgewählt</option>");
                }
            }).bind("loaded.jstree", function () {
                if (InsolvencySearchFilter.settings.branchIds != undefined && InsolvencySearchFilter.settings.branchIds != null && (typeof InsolvencySearchFilter.settings.branchIds == "number" || InsolvencySearchFilter.settings.branchIds.length > 0)) {
                    $('#branchTree').jstree('search', InsolvencySearchFilter.settings.branchIds);
                }
            }).bind("search.jstree", function (e, data) {
                if (typeof data.rslt.str == "number") {
                    data.rslt.nodes.removeClass('jstree-search');
                    $("#branchTree").jstree("check_node", "#" + data.rslt.str);
                } else if (typeof data.rslt.str == "object") {
                    data.rslt.nodes.removeClass('jstree-search');
                    $.each(data.rslt.str, function (key, val) {
                        $("#branchTree").jstree("check_node", "#" + val);
                    });
                }
            }).bind("uncheck_all.jstree", function () {
                $('#Branch').html('<option>Alle</option>');
            });

            $('#branchTree').on('mouseenter', function () { $('#branchTree').jstree("show_dots"); });
            $('#branchTree').on('mouseleave', function () { $('#branchTree').jstree("hide_dots"); });

            $('#Branch').mousedown(function (e) {
                e.preventDefault();

                $('#multiselect-div-branch').css({
                    top: $('#Branch').offset().top + $('#Branch').outerHeight(),
                    left: $('#Branch').offset().left
                });

                if ($('#multiselect-div-branch').is(":visible")) {
                    $('#multiselect-div-branch').hide();
                } else {
                    $('#multiselect-div-branch').show();
                }
            });

            $(document).bind('mousedown.multiselect', function (e) {
                if ($('#multiselect-div-branch').is(":visible") && !$.contains($('#multiselect-div-branch')[0], e.target) && !$.contains($('#Branch')[0], e.target) && e.target !== $('#Branch')[0]) {
                    $('#multiselect-div-branch').hide();
                }
            });
        }
    },

    branchSearch: function () {
        if ($('#branchSearch').val().length < 3) {
            $('#branchSearchError').text('Bitte geben Sie mindestens 3 Zeichen für die Suche ein!');
        } else {
            $('#branchSearchError').text('');
            $('#branchSearchActive').val('true');
            $('#branchSearchOpen').val('true');
            $('#Branch').html('<option>Alle</option>');
            jQuery.jstree._reference($('#branchTree'))._set_settings({ checkbox: { two_state: true } });
            $('#branchTree').jstree('refresh');
        }
    },

    clearBranchSearch: function () {
        $('#branchSearch').val('');
        $('#branchSearchError').text('');

        if ($('#branchSearchOpen').val() == 'true') {
            $('#branchSearchOpen').val('false');
            $('#Branch').html('<option>Alle</option>');
            $('#branchTree').jstree('close_all');
            jQuery.jstree._reference($('#branchTree'))._set_settings({ checkbox: { two_state: false } });
            $('#branchTree').jstree('refresh');
        }
    },

    enableDisableDates: function () {
        if ($('#SearchParameter_TimeFrame option:selected')[0] != null && $('#SearchParameter_TimeFrame option:selected')[0].value == 'Individuell') {
            $('#beginDateField').removeAttr('disabled');
            $('#endDateField').removeAttr('disabled');
        } else {
            $('#beginDateField').attr('disabled', 'disabled');
            $('#beginDateField').val('');
            $('#endDateField').attr('disabled', 'disabled');
            $('#endDateField').val('');
        }
    },

    enableDisableType: function () {
        if ($('#SearchParameter_InsolvencyType').val() == 'Company') {
            $("#input-SearchParameter-SelectedCorporateForms").removeAttr('disabled');
        } else {
            InsolvencySearch.clearList('SearchParameter-SelectedCorporateForms');
            $("#input-SearchParameter-SelectedCorporateForms").attr('disabled', 'disabled');
        }
    },

    saveFilter: function () {
        var self = this;

        bootbox.prompt("Unter welchem Namen möchten Sie die Suche speichern?", function (name) {
            if (name != null && name != "") {
                $.ajax({
                    type: 'POST',
                    url: Base64.decode(self.settings.saveFilterUrl),
                    dataType: 'json',
                    contentType: 'application/json; charset=utf-8',
                    data: InsolvencySearch.getJson(1, name),
                    success: function () {
                        bootbox.alert('Ihre Suche wurde erfolgreich gespeichert!');
                    },
                    error: function () {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                });
            }
        });
    },

    deleteFilter: function (filterId) {
        var self = this;

        bootbox.confirm('Möchten Sie die gespeicherte Suche wirklich löschen?', function (answer) {
            if (answer) {
                $.ajax({
                    type: 'POST',
                    url: Base64.decode(self.settings.deleteFilterUrl),
                    dataType: 'json',
                    data: {
                        id: filterId
                    },
                    success: function () {
                        $('#filter-' + filterId).remove();
                    },
                    error: function () {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                });
            }
        });
    },

    getSavedFilters: function () {
        $('#savedFiltersModal .modal-body').load(Base64.decode(InsolvencySearchFilter.settings.getSavedFiltersUrl));
        $('#savedFiltersModal').modal('show');
    },

    resetFilter: function () {
        $('#searchQueryField').val('');
        InsolvencySearch.clearList('SearchParameter-SelectedAdmins');
        InsolvencySearch.clearList('SearchParameter-SelectedCourts');
        InsolvencySearch.clearList('SearchParameter-SelectedOffices');
        InsolvencySearch.clearList('SearchParameter-SelectedFederateStates');
        InsolvencySearch.clearList('SearchParameter-SelectedCorporateForms');
        $('#SearchParameter_DomicileQuery').val('');
        $("#SearchParameter_PublicationType").attr("value", "LastPublication");

        if (InsolvencySearchFilter.settings.authPublicationLast14Days) {
            $("#SearchParameter_TimeFrame").attr("value", "VierzehnTage");
        } else if (InsolvencySearchFilter.settings.authOnlyThisYearOpenedInsolvencies) {
            $("#SearchParameter_TimeFrame").attr("value", "DiesesJahr");
        } else if (InsolvencySearchFilter.settings.authOnlyThisAndLastYearOpenedInsolvencies) {
            $("#SearchParameter_TimeFrame").attr("value", "DiesesUndLetztesJahr");
        } else {
            $("#SearchParameter_TimeFrame").attr("value", "Gesamt");
        }

        $('#beginDateField').attr('disabled', 'disabled');
        $('#beginDateField').val('');
        $('#endDateField').attr('disabled', 'disabled');
        $('#endDateField').val('');
        $("#SearchParameter_Insolvency270Type[value=AllInsolvencies]").attr('checked', 'checked');
        $('#SearchParameter_IsManual').removeAttr('checked');
        $('#SearchParameter_GisOnly').removeAttr('checked');
        $('#SearchParameter_IsSelfEmployed').removeAttr('checked');
        $("#SearchParameter_SelectedState").attr("value", "All");

        $('#SearchParameter_MaxAnnualTurnover').val('');
        $('#MaxAnnualTurnover').val('');
        $('#SearchParameter_MinAnnualTurnover').val('');
        $('#MinAnnualTurnover').val('');
        $('#SearchParameter_MinEmployees').val('');
        $('#SearchParameter_MaxEmployees').val('');
        $('#branchTree').jstree('uncheck_all');
        $('#branchTree').jstree('close_all');

        if (InsolvencySearchFilter.settings.authShowPrivateInsolvencies) {
            $("#SearchParameter_InsolvencyType").attr("value", "All");
        }

        InsolvencySearchFilter.enableDisableType();
    }
};

/* InsolvencyListFavorites */
var InsolvencyListFavorites = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    initializeHandlers: function () {
        var self = this;

        $('div.facorite').live({
            mouseenter: function () {
                $(this).removeClass('changed');
                self.switchFavoriteIcons(this);
            },
            mouseleave: function () {
                if ($(this)[0].classList != undefined && $(this)[0].classList.length > 1) {
                    for (var x = 0; x < $(this)[0].classList.length; x++) {
                        if ($(this)[0].classList[x].toUpperCase() == 'CHANGED') {
                            $(this).removeClass('changed');
                            return;
                        }
                    }
                }

                self.switchFavoriteIcons(this);
            },
            click: function () {
                self.toggleFavorite(this);
                return false;
            }
        });
    },

    switchFavoriteIcons: function (obj) {
        var icon = $(obj).find('i')[0];
        var iconClass = icon.className;

        if (iconClass.toUpperCase() == 'ICON-STAR') {
            $(icon).addClass('icon-star-empty');
        } else {
            $(icon).addClass('icon-star');
        }
        $(icon).removeClass(iconClass);
    },

    toggleFavorite: function (obj) {
        var self = this;
        var icon = $(obj).find('i')[0];
        var publicInsolvencyId = $(icon).attr('id');

        $.ajax({
            type: 'POST',
            url: Base64.decode(self.settings.getToggleFavoriteUrl),
            dataType: 'json',
            data: {
                publicInsolvencyId: publicInsolvencyId
            },
            success: function (msg) {
                if (msg.Success) {
                    if (msg.IsFavorite) {
                        $(icon).addClass('icon-star');
                        $(icon).removeClass('icon-star-empty');
                    } else {
                        $(icon).addClass('icon-star-empty');
                        $(icon).removeClass('icon-star');
                    }
                    $(obj).addClass('changed');
                } else if (!msg.Success && msg.msg) {
                    bootbox.alert(msg.msg);
                } else {
                    bootbox.alert('Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    }
};;var traderegistersearch = {
    settings: {},

    init: function () {
        var options = $('#courtList').data('marker');
        $.extend(this.settings, options);

        $('#Registerart').addClass('span2');
        $('#Sitz').addClass('span2');
        $('#Strasse').addClass('span2');
        $('#PLZ').addClass('span1');
    },

    initializeHandlers: function () {
        var self = this;

        $('#bundeslanddiv input[type=checkbox]').click(function () {
            $('#Registergericht > option').remove();
            $('#Registergericht').append('<option value="">Alle</option>');

            var showAll = $('#bundeslanddiv input[type=checkbox]:checked').length == 0;

            $('#bundeslanddiv input[type=checkbox]').each(function () {
                if ($(this).is(':checked') || showAll) {
                    var stateName = $(this).attr('name').replace('Bundeslaender.', '');
                    var state = self.settings.states.filter(function (s) { return s.key == stateName })[0];

                    for (var x = 0; x < state.courts.length; x++) {
                        var court = state.courts[x];
                        $('#Registergericht').append('<option value="' + court.hrid + '">' + court.name + '</option>');
                    }
                }
            });

            $('#Registergericht > option').tsort();
        });
    }
};;/* InsolvencyDetails */
var InsolvencyDetails = {
    settings: {},

    init: function(options) {
        $.extend(this.settings, options);

        $("#ChangedStreet").on("keyup",
            function() {
            var value = $(this).val();

            var matches = value.match(/\d+/g);

            if (matches != null) {
                if ($("#errorMessageChangedStreet").hasClass("hidden")) {
                    $("#errorMessageChangedStreet").removeClass("hidden");
                }
            } else {
                if (!$("#errorMessageChangedStreet").hasClass("hidden")) {
                    $("#errorMessageChangedStreet").addClass("hidden");
                }
            }
        });

        if (history.length == 1) {
            $('#mHistoryBackbutton').hide();
        }
    },

    initFunctions: function() {
        jQuery().modal.Constructor.prototype.enforceFocus = function() {};

        if (!this.settings.showDataroomOnStartup) {
            $('#mInsolvency').click();
        } else {
            $('#mDataroomView').click();
        }

        InsolvencyDetails.loadAssignedInsolvencies();

        $('#assignedInsolvenciesNews').live('change',
            function() {
            InsolvencyDetails.refreshShowAssignedInsolvencies();

            InsolvencyDetails.loadNews();

            if (InsolvencyDetails.settings.isNews) {
                InsolvencyDetails.activateInsolvencyRegion('News');
            } else {
                InsolvencyDetails.activateInsolvencyRegion('Press');
                $('#News').show();
            }
        });

        if (!this.settings.isAuthenticated || this.settings.dontShowStatus) {
            $('.locked-hitarea').popover({
                trigger: 'manual',
                animation: false,
                html: true,
                placement: 'top',
                container: 'body',
                template:
                    '<div class="popover" onmouseover="$(this).mouseleave(function() {$(this).hide(); });"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div><div style="position: absolute; display: block; width: 278px; height: 35px;"></div></div></div>'
            }).click(function(e) {
                e.preventDefault();
            }).mouseenter(function() {
                $(this).popover('show');
            });
        }

        $('#branchenModalCheckbox').change(function() {
            if ($('#branchenModalCheckbox').attr('checked')) {
                $('#branchenModalBtn').removeAttr('disabled');
            } else {
                $('#branchenModalBtn').attr('disabled', 'disabled');
            }
        });

        $('#employeeModalCheckbox').change(function() {
            if ($('#employeeModalCheckbox').attr('checked')) {
                $('#employeeModalBtn').removeAttr('disabled');
            } else {
                $('#employeeModalBtn').attr('disabled', 'disabled');
            }
        });

        $('#consultantIsStpAdmin').change(function() {
            if ($('#consultantIsStpAdmin').attr('checked')) {
                $('#addConsultantModal .consultant').hide();
                $('#addConsultantModal .stpAdmin').show();
            } else {
                $('#addConsultantModal .consultant').show();
                $('#addConsultantModal .stpAdmin').hide();
            }
        });

        $(".showPublication").popover({
            placement: 'top',
            container: 'body',
            trigger: 'hover'
        });
    },

    initHandlers: function() {
        var endDate = new Date();
        var currday = endDate.getDate();
        var currmonth = endDate.getMonth() + 1;
        var curryear = endDate.getFullYear();

        $('#editInsolvencyModal').modal({
            show: false
        }).css({
            width: 'auto',
            'margin-left': function() {
                return -($(this).width() / 2);
            }
        });

        $('#mEditInsolvency a').click(function() {
            $('#editInsolvencyModal').modal('show');

            if (!InsolvencyDetails.settings.editWasClicked) {
                InsolvencyDetails.loadLocations(true);
                InsolvencySearchFilter.initializeBranchDropDown(false);
                InsolvencyDetails.settings.editWasClicked = true;
            }
        });

        $('#createStateModal').modal({
            show: false
        });

        $('#createTotalAssetModal').modal({
            show: false
        });

        $('#createTotalRevenueModal').modal({
            show: false
        });

        $('#createLocationModal').modal({
            show: false
        });

        $('#selectInsolvencyModal').modal({
            show: false
        }).css({
            width: 'auto',
            height: '550px',
            'margin-left': function() {
                return -($(this).width() / 2);
            }
        });

        $('#addState').click(function() {
            $('#createStateForm #publicInsolvencyId').val(InsolvencyDetails.settings.notSlaveInsolvencyId);
            $('#createStateForm #stateCodeId').val('');
            $('#createStateForm #publicationDate').val('');
            $('#createStateForm #effectDate').val('');
            $('#createStateModal').modal('show');
        });

        $('#createStateModal').on('shown',
            function() {
            var stateCodeId = $("#createStateModal #stateCodeId").val();

            InsolvencyDetails.updateStateDatePicker(stateCodeId);
        });

        $("#createStateModal #stateCodeId").change(function() {
            var selectedValue = $(this).val();
            InsolvencyDetails.updateStateDatePicker(selectedValue);
        });

        $('#createStateForm').submit(function() {
            if ($('#createStateForm #publicationDate').val().length == 0) {
                bootbox.alert('Bitte geben Sie ein PublicationDate ein!');
                return false;
            }

            if ($('#createStateForm #effectDate').val().length == 0) {
                bootbox.alert('Bitte geben Sie ein EffectDate ein!');
                return false;
            }

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getCreateStateUrl),
                data: {
                    publicInsolvencyId: $('#createStateForm #publicInsolvencyId').val(),
                    stateCodeId: $('#createStateForm #stateCodeId').val(),
                    publicationDate: $('#createStateForm #publicationDate').val(),
                    effectDate: $('#createStateForm #effectDate').val()
                },
                success: function(msg) {
                    if (msg.success) {
                        $('#tableState tbody').append('<tr id="state-' +
                            msg.stateId +
                            '"><td><a href="#" onclick="InsolvencyDetails.removeState(' +
                            msg.stateId +
                            ');"><i class="icon-trash"></i></a></td><td>' +
                            msg.description +
                            '</td><td><input id="' +
                            msg.stateId +
                            '" onchange="$(\'#showchanges-' +
                            msg.stateId +
                            '\').attr(\'checked\', true);" name="States" type="text" value="' +
                            msg.date +
                            '" /><input type="hidden" name="StateIds" value="' +
                            msg.stateId +
                            '" /></td><td></td><td><input type="checkbox" name="StateShowChanges" id="showchanges-' +
                            msg.stateId +
                            '" value="' +
                            msg.stateId +
                            '" /></td><td></td></tr>');
                        $('#createStateModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#addAnnualTurnover').click(function() {
            $('#createAnnualTurnoverForm #publicInsolvencyId').val(InsolvencyDetails.settings.notSlaveInsolvencyId);
            $('#createAnnualTurnoverForm #companyAnnualTurnoverId').val('');
            $('#createAnnualTurnoverForm #year').val('');
            $('#createAnnualTurnoverForm #value').val('');
            $('#createAnnualTurnoverForm #valueRevenue').val('');
            $('#createAnnualTurnoverForm #CompanyAnnualTurnoverTypeEnum option:first-child')
                .attr('selected', 'selected');
            $('#createAnnualTurnoverForm #companyAnnualTurnoverShowEditingTag').prop('checked', false);
            $('#createAnnualTurnoverForm #companyAnnualTurnoverShowEditingTag').val('');
            $('#createAnnualTurnoverModal').modal('show');
        });

        $('#createAnnualTurnoverForm').submit(function() {
            var dateValid = moment($('#createAnnualTurnoverForm #year').val(), 'DD.MM.YYYY').isValid();

            if (!dateValid) {
                $('#createAnnualTurnoverForm #year').addClass('input-validation-error');
                $('#createAnnualTurnoverForm span[data-valmsg-for=year]').show();
                return false;
            } else {
                $('#createAnnualTurnoverForm #year').removeClass('input-validation-error');
                $('#createAnnualTurnoverForm span[data-valmsg-for=year]').hide();
            }

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getCreateAnnualTurnoverUrl),
                data: {
                    companyAnnualTurnoverId: $('#createAnnualTurnoverForm #companyAnnualTurnoverId').val(),
                    publicInsolvencyId: $('#createAnnualTurnoverForm #publicInsolvencyId').val(),
                    year: $('#createAnnualTurnoverForm #year').val(),
                    value: $('#createAnnualTurnoverForm #value').val(),
                    companyAnnualTurnoverType: $(
                        '#createAnnualTurnoverForm #CompanyAnnualTurnoverTypeEnum option:selected').val(),
                    IsEditoriallyChecked: $('#createAnnualTurnoverForm #companyAnnualTurnoverShowEditingTag')
                        .prop('checked')
                },
                success: function(msg) {
                    if (msg.success) {
                        var year = moment(msg.item.BusinessYear).format('DD.MM.YYYY');

                        if (!msg.update) {
                            $('#tableAnnualTurnover tbody').append('<tr id="' +
                                msg.item.AnnualTurnoverId +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeAnnualTurnover(' +
                                msg.item.AnnualTurnoverId +
                                ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="InsolvencyDetails.editAnnualTurnover(' +
                                msg.item.AnnualTurnoverId +
                                ');"><i class="icon-pencil"></i></a></td><td>' +
                                year +
                                '</td><td>' +
                                msg.item.Value +
                                ' Mio. €</td><td>' +
                                msg.annualTurnoverType +
                                '</td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsManual +
                                '" ' +
                                (msg.item.IsManual ? 'checked="checked"' : '') +
                                ' /></td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsEditoriallyChecked +
                                '" ' +
                                (msg.item.IsEditoriallyChecked ? 'checked="checked"' : '') +
                                ' /></td></tr>');
                        } else {
                            $('#tableAnnualTurnover tr#' + msg.item.AnnualTurnoverId).replaceWith('<tr id="' +
                                msg.item.AnnualTurnoverId +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeAnnualTurnover(' +
                                msg.item.AnnualTurnoverId +
                                ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="InsolvencyDetails.editAnnualTurnover(' +
                                msg.item.AnnualTurnoverId +
                                ');"><i class="icon-pencil"></i></a></td><td>' +
                                year +
                                '</td><td>' +
                                msg.item.Value +
                                'Mio. €</td><td>' +
                                msg.annualTurnoverType +
                                '</td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsManual +
                                '" ' +
                                (msg.item.IsManual ? 'checked="checked"' : '') +
                                ' /></td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsEditoriallyChecked +
                                '" ' +
                                (msg.item.IsEditoriallyChecked ? 'checked="checked"' : '') +
                                ' /></td></tr>');
                        }
                        $('#createAnnualTurnoverModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#addEmployees').click(function() {
            $('#createEmployeesForm #publicInsolvencyId').val(InsolvencyDetails.settings.notSlaveInsolvencyId);
            $('#createEmployeesForm #employeesId').val('');
            $('#createEmployeesForm #year').val('');
            $('#createEmployeesForm #value').val('');

            $('#createEmployeesForm #employeeShowEditingTag').val('');
            $('#createEmployeesForm #employeeShowEditingTag').prop('checked', false);

            $('#createEmployeesForm #employeeHasApproximatelyPrefix').val('');
            $('#createEmployeesForm #employeeHasApproximatelyPrefix').prop('checked', false);

            $('#createEmployeesModal').modal('show');
        });

        $('#createEmployeesForm').submit(function() {
            var dateValid = moment($('#createEmployeesForm #year').val(), 'DD.MM.YYYY').isValid();

            if (!dateValid) {
                $('#createEmployeesForm #year').addClass('input-validation-error');
                $('#createEmployeesForm span[data-valmsg-for=year]').show();
                return false;
            } else {
                $('#createEmployeesForm #year').removeClass('input-validation-error');
                $('#createEmployeesForm span[data-valmsg-for=year]').hide();
            }

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getCreateEmployeesUrl),
                data: {
                    companyEmployeeId: $('#createEmployeesForm #employeesId').val(),
                    publicInsolvencyId: $('#createEmployeesForm #publicInsolvencyId').val(),
                    year: $('#createEmployeesForm #year').val(),
                    value: $('#createEmployeesForm #value').val(),
                    IsEditoriallyChecked: $('#createEmployeesForm #employeeShowEditingTag').prop('checked'),
                    hasApproximatelyPrefix: $('#createEmployeesForm #employeeHasApproximatelyPrefix').prop('checked')
                },
                success: function(msg) {
                    if (msg.success) {
                        var year = moment(msg.item.BusinessYear).format('DD.MM.YYYY');

                        if (!msg.update) {
                            $('#tableEmployees tbody').append('<tr id="' +
                                msg.item.EmployeeId +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeEmployee(' +
                                msg.item.EmployeeId +
                                ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="InsolvencyDetails.editEmployee(' +
                                msg.item.EmployeeId +
                                ');"><i class="icon-pencil"></i></a></td><td>' +
                                year +
                                '</td><td>' +
                                msg.item.Value +
                                '</td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.HasApproximatelyPrefix +
                                '" ' +
                                (msg.item.HasApproximatelyPrefix ? 'checked="checked"' : '') +
                                ' /></td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsManual +
                                '" ' +
                                (msg.item.IsManual ? 'checked="checked"' : '') +
                                ' /></td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsEditoriallyChecked +
                                '" ' +
                                (msg.item.IsEditoriallyChecked ? 'checked="checked"' : '') +
                                ' /></td></tr>');
                        } else {
                            $('#tableEmployees tr#' + msg.item.EmployeeId).replaceWith('<tr id="' +
                                msg.item.EmployeeId +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeEmployee(' +
                                msg.item.EmployeeId +
                                ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="InsolvencyDetails.editEmployee(' +
                                msg.item.EmployeeId +
                                ');"><i class="icon-pencil"></i></a></td><td>' +
                                year +
                                '</td><td>' +
                                msg.item.Value +
                                '</td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.HasApproximatelyPrefix +
                                '" ' +
                                (msg.item.HasApproximatelyPrefix ? 'checked="checked"' : '') +
                                ' /></td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsManual +
                                '" ' +
                                (msg.item.IsManual ? 'checked="checked"' : '') +
                                ' /></td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsEditoriallyChecked +
                                '" ' +
                                (msg.item.IsEditoriallyChecked ? 'checked="checked"' : '') +
                                ' /></td></tr>');
                        }
                        $('#createEmployeesModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#addWzBranch').click(function() {
            $('#createWzBranchForm #publicInsolvencyId').val(InsolvencyDetails.settings.notSlaveInsolvencyId);
            $('#createWzBranchForm #branchId').val('');
            $('#branchTree').jstree('uncheck_all');
            $('#branchTree').jstree('close_all');

            $('#createWzBranchForm #branchShowEditingTag').prop('checked', false);
            $('#createWzBranchForm #branchShowEditingTag').val('');

            $('#createWzBranchModal').modal('show');
        });

        $('#createWzBranchForm').submit(function() {
            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getCreateBranchUrl),
                data: {
                    publicInsolvencyId: $('#createEmployeesForm #publicInsolvencyId').val(),
                    branchId: $('#createEmployeesForm #branchId').val(),
                    wzBranchId: $('#branchTree').jstree('get_checked').length == 0
                        ? '0'
                        : $('#branchTree').jstree('get_checked')[0].id,
                    IsEditoriallyChecked: $('#createWzBranchForm #branchShowEditingTag').prop('checked')
                },
                success: function(msg) {
                    if (msg.success) {
                        if (!msg.update) {
                            $('#tablewzBranch tbody').append('<tr id="' +
                                msg.item.BranchId +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeBranch(' +
                                msg.item.BranchId +
                                ');"><i class="icon-trash"></i></a></td><td>' +
                                msg.item.WzBranch.WzCode +
                                '</td><td>' +
                                msg.item.WzBranch.Description +
                                '</td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsManual +
                                '" ' +
                                (msg.item.IsManual ? 'checked="checked"' : '') +
                                ' /></td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsEditoriallyChecked +
                                '" ' +
                                (msg.item.IsEditoriallyChecked ? 'checked="checked"' : '') +
                                ' /></td></tr>');
                        } else {
                            $('#tablewzBranch tr#' + msg.item.BranchId).replaceWith('<tr id="' +
                                msg.item.BranchId +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeBranch(' +
                                msg.item.BranchId +
                                ');"><i class="icon-trash"></i></a></td><td>' +
                                msg.item.WzBranch.WzCode +
                                '</td><td>' +
                                msg.item.WzBranch.Description +
                                '</td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsManual +
                                '" ' +
                                (msg.item.IsManual ? 'checked="checked"' : '') +
                                ' /></td><td><input type="checkbox" disabled="disabled" value="' +
                                msg.item.IsEditoriallyChecked +
                                '" ' +
                                (msg.item.IsEditoriallyChecked ? 'checked="checked"' : '') +
                                ' /></td></tr>');
                        }
                        $('#createWzBranchModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#addLocation').click(function() {
            $('#createLocationForm #publicInsolvencyId').val(InsolvencyDetails.settings.notSlaveInsolvencyId);
            $('#createLocationForm #insolvencyLocationId').val('0');
            $('#createLocationForm #name').val('');
            $('#createLocationForm #street').val('');
            $('#createLocationForm #zip').val('');
            $('#createLocationForm #city').val('');
            $('#createLocationForm #country').val('');
            $('#createLocationModal').modal('show');
        });

        $('#createLocationForm').submit(function() {
            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getCreateLocationUrl),
                data: {
                    insolvencyLocationId: $('#createLocationForm #insolvencyLocationId').val(),
                    publicInsolvencyId: $('#createLocationForm #publicInsolvencyId').val(),
                    name: $('#createLocationForm #name').val(),
                    street: $('#createLocationForm #street').val(),
                    zip: $('#createLocationForm #zip').val(),
                    city: $('#createLocationForm #city').val(),
                    country: $('#createLocationForm #country').val()
                },
                success: function(msg) {
                    if (msg.success) {
                        if (!msg.update) {
                            $('#tableLocations tbody').append('<tr id="' +
                                msg.insolvencyLocationId +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeLocation(' +
                                msg.insolvencyLocationId +
                                ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="InsolvencyDetails.editLocation(' +
                                msg.insolvencyLocationId +
                                ');"><i class="icon-pencil"></i></a></td><td>' +
                                msg.name +
                                '</td><td>' +
                                msg.street +
                                '</td>><td>' +
                                msg.zip +
                                '</td><td>' +
                                msg.city +
                                '</td><td>' +
                                msg.country +
                                '</td></tr>');
                        } else {
                            $('#tableLocations tr#' + msg.insolvencyLocationId).replaceWith('<tr id="' +
                                msg.insolvencyLocationId +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeLocation(' +
                                msg.insolvencyLocationId +
                                ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="InsolvencyDetails.editLocation(' +
                                msg.insolvencyLocationId +
                                ');"><i class="icon-pencil"></i></a></td><td>' +
                                msg.name +
                                '</td><td>' +
                                msg.street +
                                '</td><td>' +
                                msg.zip +
                                '</td><td>' +
                                msg.city +
                                '</td>><td>' +
                                msg.country +
                                '</td></tr>');
                        }
                        $('#createLocationModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#addBusinessInformations').click(function() {
            $('#createBusinessInformationsForm #publicInsolvencyId')
                .val(InsolvencyDetails.settings.notSlaveInsolvencyId);
            $('#createBusinessInformationsForm #businessInformationId').val('');
            $('#createBusinessInformationsForm #text').val('');
            $('#createBusinessInformationsModal').modal('show');
        });

        $('#createBusinessInformationsForm').submit(function() {
            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getCreateBusinessInformationUrl),
                data: {
                    businessInformationId: $('#createBusinessInformationsForm #businessInformationId').val(),
                    publicInsolvencyId: $('#createBusinessInformationsForm #publicInsolvencyId').val(),
                    text: $('#createBusinessInformationsForm #text').val()
                },
                success: function(msg) {
                    if (msg.success) {
                        if (!msg.update) {
                            $('#tableBusinessInformation tbody').append('<tr id="' +
                                msg.item.BusinessInformationId +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeBusinessInformation(' +
                                msg.item.BusinessInformationId +
                                ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="InsolvencyDetails.editBusinessInformation(' +
                                msg.item.BusinessInformationId +
                                ');"><i class="icon-pencil"></i></a></td><td>' +
                                msg.item.Text +
                                '</td></tr>');
                        } else {
                            $('#tableBusinessInformation tr#' + msg.item.BusinessInformationId).replaceWith('<tr id="' +
                                msg.item.BusinessInformationId +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeEmployee(' +
                                msg.item.BusinessInformationId +
                                ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="InsolvencyDetails.editBusinessInformation(' +
                                msg.item.BusinessInformationId +
                                ');"><i class="icon-pencil"></i></a></td><td>' +
                                msg.item.Text +
                                '</td></tr>');
                        }
                        $('#createBusinessInformationsModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#valueAsset').autoNumeric('init',
            { aSep: '.', aDec: ',', aSign: ' €', pSign: 's', vMax: '9999999999999.99' });
        $('#valueRevenue').autoNumeric('init',
            { aSep: '.', aDec: ',', aSign: ' Mio. €', pSign: 's', vMax: '9999999999999.99' });

        $('#selectInsolvencyButton').click(function() {
            updateMessage();
            $('#selectInsolvencyModal').modal('show');
            $('#selectInsolvencyIFrame').attr('src', Base64.decode(InsolvencyDetails.settings.getInsolvenzenUrl));
            return false;
        });

        $('#checkMoveId').change(function(o) {
            if (o.target.checked) {
                $('#startMoveId').removeAttr('disabled');
            } else {
                $('#startMoveId').attr('disabled', 'disabled');
            }
        });

        $('#startMoveId').click(function() {
            if ($('#moveId').val() == '') {
                bootbox.alert('Bitte geben Sie eine Insolvenz-ID ein!');
                return false;
            }

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getMoveInsolvencyUrl),
                data: {
                    srcId: InsolvencyDetails.settings.notSlaveInsolvencyId,
                    destId: $('#moveId').val()
                },
                success: function(msg) {
                    if (msg.success) {
                        window.location.href = msg.url;
                    } else {
                        bootbox.alert(msg.msg);
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#ReorganisationCompanyId').change(InsolvencyDetails.loadReorganisationConsultants);
        $('#InsolvencyModel_StpAdminId').change(InsolvencyDetails.loadLocations);
        $('#ReorganisationConsultantId').change(InsolvencyDetails.loadReorganisationLocations);
        $('#ReorganisationStpAdminId').change(InsolvencyDetails.loadStpAdminLocations);
        $('#ReorganisationOfficeId').change(InsolvencyDetails.loadStpAdmins);

        $('#addSearchTerm').click(function() {
            $('#createSearchTermForm #searchTerm').val('');
            $('#createSearchTermModal').modal('show');
        });

        $('#createSearchTermForm').submit(function() {
            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getAddTermUrl),
                data: {
                    publicInsolvencyId: $('#createSearchTermForm #publicInsolvencyId').val(),
                    searchTerm: $('#createSearchTermForm #searchTerm').val()
                },
                success: function(msg) {
                    if (msg.success) {
                        $('#tableSearchTerms tbody').append('<tr id="' +
                            msg.item.TermId +
                            '"><td><a href="#" onclick="InsolvencyDetails.removeTerm(' +
                            $('#createSearchTermForm #publicInsolvencyId').val() +
                            ',' +
                            msg.item.TermId +
                            ');"><i class="icon-trash"></i></a></td><td>' +
                            msg.item.Term +
                            '</td></tr>');
                        $('#createSearchTermModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#addConsultant').click(function() {
            $('#addConsultantForm #ReorganisationConsultantId').val('0');
            $('#addConsultantForm #ReorganisationLocationId').val('0');
            $('#addConsultantForm #ReorganisationStpAdminId').val('0');
            $('#addConsultantForm #stpAdminLocationId').val('0');
            $('#addConsultantForm #ReorganisationConsultantFunctionId').val('0');
            $('#addConsultantModal').modal('show');
        });

        $('#addConsultantForm').submit(function() {
            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getAddConsultantUrl),
                data: {
                    publicInsolvencyId: $('#addConsultantForm #PublicInsolvencyId').val(),
                    consultantIsStpAdmin: $('#addConsultantForm #consultantIsStpAdmin').is(':checked'),
                    reorganisationConsultantId: $('#addConsultantForm .consultant #ReorganisationConsultantId').val(),
                    reorganisationLocationId: $('#addConsultantForm .consultant #ReorganisationLocationId').val(),
                    officeId: $('#addConsultantForm .stpAdmin #ReorganisationOfficeId').val(),
                    stpAdminId: $('#addConsultantForm .stpAdmin #ReorganisationStpAdminId').val(),
                    stpAdminLocationId: $('#addConsultantForm .stpAdmin #stpAdminLocationId').val(),
                    reorganisationConsultantFunctionId: $('#addConsultantForm #ReorganisationConsultantFunctionId')
                        .val(),
                    reorganisationCompanyId: $('#addConsultantForm #ReorganisationCompanyId').val()
                },
                success: function(msg) {
                    if (msg.success) {
                        $('#tableConsultants tbody').append('<tr id="' +
                            msg.item.ReorganisationConsultantId +
                            '"><td><a href="#" onclick="InsolvencyDetails.removeConsultant(' +
                            msg.item.PublicInsolvencyId +
                            ',' +
                            msg.item.consultantId +
                            ',' +
                            msg.item.locationId +
                            ',' +
                            msg.item.isStpAdmin +
                            ');"><i class="icon-trash"></i></a></td><td>' +
                            msg.item.name +
                            '</td><td>' +
                            (msg.item.companyName != "" ? msg.item.companyName : msg.item.officeName) +
                            '</td><td>' +
                            msg.item.city +
                            '</td><td>' +
                            msg.item.functionName +
                            '</td></tr>');
                        $('#addConsultantModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#addManager').click(function() {
            $("#addManagerForm").find("input[type=text], textarea").val("");
            $('#addManagerModal').modal('show');
        });

        $('#addManagerForm').submit(function() {
            if ($(this).valid()) {
                $.ajax({
                    type: 'POST',
                    url: $("#addManagerForm").attr('action'),
                    data: $("#addManagerForm").serialize(),
                    success: function(msg) {
                        if (msg.success) {
                            $('#tableManager tbody').append('<tr data-mangerid="' +
                                msg.item.id +
                                '"><td><a href="#" onclick="InsolvencyDetails.removeManager(' +
                                msg.item.id +
                                ');"><i class="icon-trash"></i></a></td><td>' +
                                msg.item.name +
                                '</td><td>' +
                                msg.item.role +
                                '</td><td>' +
                                msg.item.address +
                                '</td></tr>');
                            $('#addManagerModal').modal('hide');
                        } else {
                            bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    },
                    error: function() {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                });
            }
            return false;
        });

        $('#editInsolvencyModal').on('shown',
            function() {
            InsoPortal.refreshModalBodyHeight($('#editInsolvencyModal'));
        });

        $("#buyHandelsregisterauszug").click(function() {

            $(".modal").modal("hide");

            var dialog =
                bootbox.dialog(
                    '<p class="text-center">Bitte warten... <br/><img src="/Content/bizstrap/img/spinner_32x32.gif" style="margin:0" alt="Daten werden geladen"></p>');

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getBuyHandelsregisterauszugUrl),
                success: function(msg) {

                    dialog.modal("hide");

                    bootbox.dialog(msg,
                        [
                            {
                        "label": "Schließen",
                        "class": "btn",
                                "callback": function() {
                            location.reload();
                        }
                            }
                        ]);

                },
                error: function() {
                    dialog.modal("hide");
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

        });

        $("#buyHistoricalHandelsregisterauszug").click(function() {

            $(".modal").modal("hide");

            var dialog =
                bootbox.dialog(
                    '<p class="text-center">Bitte warten... <br/><img src="/Content/bizstrap/img/spinner_32x32.gif" style="margin:0" alt="Daten werden geladen"></p>');

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getBuyHistoricalHandelsregisterauszugUrl),
                success: function(msg) {

                    dialog.modal("hide");

                    bootbox.dialog(msg,
                        [
                            {
                                "label": "Schließen",
                                "class": "btn",
                        "callback": function() {
                            location.reload();
                        }
                            }
                        ]);
                },
                error: function() {
                    dialog.modal("hide");
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

        });

        $(".buyGeslDocumentButton").click(function() {

            var documentId = $(this).attr("data-document-id");

            $("#buyGeslDocumentId").val(documentId);

            $("#buyGeslDocumentModal").modal("show");
        });

        $("#buyGeslDocument").click(function() {

            $(".modal").modal("hide");

            var dialog =
                bootbox.dialog(
                    '<p class="text-center">Bitte warten... <br/><img src="/Content/bizstrap/img/spinner_32x32.gif" style="margin:0" alt="Daten werden geladen"></p>');

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getBuyGeslDocumentUrl),
                data: {
                    documentId: $("#buyGeslDocumentId").val()
                },
                success: function(msg) {

                    dialog.modal("hide");

                    bootbox.dialog(msg,
                        [
                            {
                        "label": "Schließen",
                        "class": "btn",
                                "callback": function() {
                            location.reload();
                        }
                            }
                        ]);

                },
                error: function() {
                    dialog.modal("hide");
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

        });
    },

    initFehlerMelden: function() {
        $('#fehlerMeldenForm').submit(function() {
            if ($('#fehlerbeschreibung').val().length == 0) {
                bootbox.alert("Bitte geben Sie eine Fehlerbeschreibung ein.");
                return false;
            }

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getFehlerMeldenUrl),
                data: {
                    verfahren: $('#fehlerMeldenForm #verfahren').val(),
                    fehlerart: $('#fehlerMeldenForm #fehlerart').val(),
                    fehlerbeschreibung: $('#fehlerMeldenForm #fehlerbeschreibung').val(),
                    publicInsolvencyId: $('#fehlerMeldenForm #publicInsolvencyId').val(),
                    firstname: $('#fehlerMeldenForm #firstname').val(),
                    lastname: $('#fehlerMeldenForm #lastname').val(),
                    mail: $('#fehlerMeldenForm #mail').val()
                },
                success: function(msg) {
                    if (msg.success) {
                        bootbox.alert(
                            'Vielen Dank für Ihre Unterstützung!\r\nWir haben Ihren Hinweis erhalten und kümmern uns umgehend darum.\r\nIhr Insolvenz-Portal.de Team!');
                        $('#fehlerMeldenModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });
    },

    initNavigationHandlers: function() {
        $('#mInsolvency').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('Insolvency');
            initInsolvencyMap();
        });

        $('#mAdmin').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('Admin');
            initAdminMap();
        });

        $('#mConsultant').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('Consultant');
            initConsultantMap();
        });

        $('#mCourts').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('Courts');
            initCourtMap();
        });

        $('#mAppointment').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('Appointment');
        });

        $('#mPublications').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('Publications');
        });

        $('#mNews').live('click',
            function() {
            InsolvencyDetails.settings.isNews = true;

            InsolvencyDetails.refreshShowAssignedInsolvencies();

            InsolvencyDetails.loadNews();
            InsolvencyDetails.activateInsolvencyRegion('News');
        });

        $('#mPress').live('click',
            function() {
            InsolvencyDetails.settings.isNews = false;

            InsolvencyDetails.refreshShowAssignedInsolvencies();

            InsolvencyDetails.loadNews();
            InsolvencyDetails.activateInsolvencyRegion('Press');
            $('#News').show();
        });

        $('#mCompany').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('Company');
        });

        $('#mGisInformation').live('click',
            function() {
            InsolvencyDetails.loadGisInformation();
            InsolvencyDetails.activateInsolvencyRegion('GisInformation');
        });

        $('#mForderungsanmeldung').live('click',
            function() {
            InsolvencyDetails.loadForderungsanmeldung();
            InsolvencyDetails.activateInsolvencyRegion('Forderungsanmeldung');
        });

        $('#mWatchInsolvency').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('WatchInsolvency');
        });

        $('#mDataroom').live('click',
            function() {
            InsolvencyDetails.loadDataroomAdmin();
            InsolvencyDetails.activateInsolvencyRegion('Dataroom');
        });

        $('#mDataroomView').live('click',
            function() {
            InsolvencyDetails.loadDataroomView();
            InsolvencyDetails.activateInsolvencyRegion('DataroomView');
        });

        $('#mMoreNews').live('click',
            function() {
            InsolvencyDetails.initiFrame(InsolvencyDetails.settings.iFrame_NewsUrl, "#iframe_MoreNews");

            InsolvencyDetails.activateInsolvencyRegion('MoreNews');
        });

        $('#mTradeRegister').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('TradeRegister');
        });

        $('#mFinancial').live('click',
            function () {             
            InsolvencyDetails.activateInsolvencyRegion('Financial');
        });

        $('#mCompanyNetwork').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('CompanyNetwork');
        });

        $('#mParticipant').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('Participant');
        });

        $('#mEmployee').live('click',
            function() {
            InsolvencyDetails.initiFrame(InsolvencyDetails.settings.iFrame_EmployeesUrl, "#iframe_Employee");

            InsolvencyDetails.activateInsolvencyRegion('Employee');
        });

        $('#mDebitor').live('click',
            function() {
            InsolvencyDetails.activateInsolvencyRegion('Debitor');
            initDebitorMap();
        });
    },

    initiFrame: function(url, id) {
        if (url != undefined && $(id).is(':empty')) {
            var url = Base64.decode(url);
            var iFrame = "<iframe src=\"" +
                url +
                "\" style=\"" +
                InsolvencyDetails.settings.iFrame_BaseStyle +
                "\"></iframe>";

            $(id).append(iFrame);
        }
    },

    initializeMap: function(containerId, address) {
        if (!InsolvencyDetails.mapsArrContainsId(containerId) && typeof google !== 'undefined') {
            InsolvencyDetails.settings.mapsArr.push(containerId);

            var geocoder = new google.maps.Geocoder();

            var latlng = new google.maps.LatLng(48.989, 8.379);

            var options = {
                zoom: 9,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };

            var map = new google.maps.Map(document.getElementById(containerId), options);

            geocoder.geocode({ 'address': address },
                function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);

                    var marker = new google.maps.Marker({
                        map: map,
                        position: results[0].geometry.location
                    });
                }
            });
        }
    },

    initShow: function() {
        if (InsolvencyDetails.GetURLParameter('show') == 'news') {
            $('#mNews').click();
        } else if (InsolvencyDetails.GetURLParameter('show') == 'publications') {
            $('#mPublications').click();
        }
    },

    mapsArrContainsId: function(containerId) {
        for (var i = 0; i < InsolvencyDetails.settings.mapsArr.length; i++) {
            if (InsolvencyDetails.settings.mapsArr[i] == containerId) {
                return true;
            }
        }

        return false;
    },

    fehlerMelden: function(item) {
        if (item !== undefined) {
            $('#fehlerart').val(item);
        }

        $('#fehlerMeldenModal').modal('show');
    },

    loadAssignedInsolvencies: function() {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getAssignedInsolvenciesUrl),
            dataType: 'html',
            data: {
                publicInsolvencyId: InsolvencyDetails.settings.insolvencyId
            },
            success: function(msg) {
                $('#assignedInsolvenciesContent').html(msg);
            }
        });
    },

    activateInsolvencyRegion: function(region) {
        $('#insolvenzdetails > div').hide();
        $('#' + region).show();
        $('#navigation > li').removeClass('active');
        $('#m' + region).addClass('active');
    },

    printPublication: function(publicInsolvencyId, publicationId) {
        var printdocument =
            window.open(
                Base64.decode(InsolvencyDetails.settings.getPublicationPrintUrl) +
                '?publicInsolvencyId=' +
                publicInsolvencyId +
                "&publicationId=" +
                publicationId,
                'Beschluss',
                'width=800, height=600');
    },

    refreshShowAssignedInsolvencies: function() {
        if (document.getElementById('assignedInsolvenciesNews') != null) {
            InsolvencyDetails.settings.showAssignedInsolvencies =
                document.getElementById('assignedInsolvenciesNews').checked;
        } else {
            InsolvencyDetails.settings.showAssignedInsolvencies = true;
        }
    },

    toggleFavorite: function() {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getToggleFavoriteUrl),
            dataType: 'json',
            data: {
                publicInsolvencyId: InsolvencyDetails.settings.insolvencyId
            },
            success: function(msg) {
                InsolvencyDetails.toggleFavoriteButton(msg);
            },
            error: function() {
                bootbox.alert(
                    'Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    togglePublicationObserved: function() {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getTogglePublicationObservedUrl),
            dataType: 'json',
            data: {
                publicInsolvencyId: InsolvencyDetails.settings.insolvencyId
            },
            success: function(msg) {
                InsolvencyDetails.toggleCheckImage(msg);
            },
            error: function() {
                bootbox.alert(
                    'Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    toggleNewsObserved: function() {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getToggleNewsObservedUrl),
            dataType: 'json',
            data: {
                publicInsolvencyId: InsolvencyDetails.settings.insolvencyId
            },
            success: function(msg) {
                InsolvencyDetails.toggleCheckImage(msg);
            },
            error: function() {
                bootbox.alert(
                    'Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    toggleAllObserved: function(publicationsObserved, newsObserved) {
        if (!newsObserved || !publicationsObserved) {
            if (!publicationsObserved) {
                InsolvencyDetails.togglePublicationObserved();
            }
            if (!newsObserved) {
                InsolvencyDetails.toggleNewsObserved();
            }
        } else {
            InsolvencyDetails.togglePublicationObserved();
            InsolvencyDetails.toggleNewsObserved();
        }
    },

    toggleFavoriteButton: function(msg) {
        if (msg.success == false) {
            bootbox.alert(msg.msg);
        } else {
            if (msg.IsFavorite) {
                $('#favoriteButton').addClass('btn-success');
                $('#favoriteButton').attr('title', "Verfahren aus \"Meine Verfahren\" entfernen.");
            } else if (!msg.IsFavorite) {
                $('#favoriteButton').removeClass('btn-success');
                $('#favoriteButton').attr('title', "Verfahren unter \"Meine Verfahren\" speichern.");
            }
        }
    },

    toggleCheckImage: function(msg) {
        if (msg.ObserveNews) {
            $('#newsObservedImage').removeClass('icon-check-empty');
            $('#newsObservedImage').addClass('icon-check');
        } else {
            $('#newsObservedImage').removeClass('icon-check');
            $('#newsObservedImage').addClass('icon-check-empty');
        }

        if (msg.IsObserved) {
            $('#publicationObservedImage').removeClass('icon-check-empty');
            $('#publicationObservedImage').addClass('icon-check');
        } else {
            $('#publicationObservedImage').removeClass('icon-check');
            $('#publicationObservedImage').addClass('icon-check-empty');
        }
    },

    loadNews: function() {
        $('#News').html(InsolvencyDetails.settings.loaderHtml);

        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getInsolvencyNewsUrl),
            dataType: 'html',
            data: {
                publicInsolvencyId: InsolvencyDetails.settings.insolvencyId,
                assignedInsolvencies: InsolvencyDetails.settings.showAssignedInsolvencies,
                isPress: !InsolvencyDetails.settings.isNews
            },
            success: function(msg) {
                $('#News').html(msg);
            },
            error: function() {
                $('#News').html(
                    '<div class="alert alert-danger">Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.</div>');
            }
        });
    },

    loadGisInformation: function() {
        if ($('#GisInformation').html().trim() != "") {
            return;
        }

        $('#GisInformation').html(InsolvencyDetails.settings.loaderHtml);

        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getAdminUrl),
            dataType: 'html',
            data: {
                publicInsolvencyId: InsolvencyDetails.settings.insolvencyId
            },
            success: function(msg) {
                $('#GisInformation').html(msg);
            },
            error: function() {
                $("#GisInformation").empty();
                InsolvencyDetails.activateInsolvencyRegion('Error');
            }
        });
    },

    loadForderungsanmeldung: function() {
        $('#Forderungsanmeldung').html(InsolvencyDetails.settings.loaderHtml);

        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getForderungsanmeldungUrl),
            dataType: 'html',
            data: {
                publicInsolvencyId: InsolvencyDetails.settings.insolvencyId
            },
            success: function(msg) {
                $('#Forderungsanmeldung').html(msg);
            },
            error: function() {
                $('#Forderungsanmeldung')
                    .html(
                        '<div class="alert alert-danger">Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.</div>');
            }
        });
    },

    loadLocations: function(firstRun) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getGetLocationsUrl),
            data: {
                id: $('#InsolvencyModel_StpAdminId').val()
            },
            success: function(res) {
                $("#Location").empty();
                $("<option/>").val("0").text("").appendTo("#Location");

                if (res.success) {
                    $.each(res.data,
                        function(i, item) {
                            if (firstRun !== undefined &&
                                firstRun &&
                                item.LocationId == InsolvencyDetails.settings.locationId) {
                                $("<option/>").val(item.LocationId).text(item.City).attr("selected", "selected")
                                    .appendTo("#Location");
                        } else {
                            $("<option/>").val(item.LocationId).text(item.City).appendTo("#Location");
                        }
                    });
                }
            },
            error: function() {
                $("#Location").empty();
                $("<option/>").val("0").text("").appendTo("#Location");

                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },
    loadReorganisationConsultants: function() {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getGetReorganisationConsultantsUrl),
            data: {
                reorganisationCompanyId: $('#ReorganisationCompanyId').val()
            },
            success: function(msg) {
                $("#ReorganisationConsultantId").empty();
                $("<option/>").val("0").text("").appendTo("#ReorganisationConsultantId");

                $.each(msg.res,
                    function(i, item) {
                        $("<option/>").val(item.reorganisationConsultantId).text(item.lastnameFirstname)
                            .appendTo("#ReorganisationConsultantId");
                });

                $("#ReorganisationLocationId").empty();
                $("<option/>").val("0").text("").appendTo("#ReorganisationLocationId");

                $.each(msg.locations,
                    function(i, item) {
                    var locationName = item.City;
                    if (item.Street && item.Street != "") {
                        locationName = locationName + ", " + item.Street;
                    }
                    if (item.StreetNumber && item.StreetNumber != "") {
                        locationName = locationName + " " + item.StreetNumber;
                    }
                        $("<option/>").val(item.ReorganisationLocationId).text(locationName)
                            .appendTo("#ReorganisationLocationId");
                });
            },
            error: function() {
                $("#ReorganisationConsultantId").empty();
                $("<option/>").val("0").text("").appendTo("#ReorganisationConsultantId");

                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    loadStpAdmins: function() {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getStpAdminsUrl),
            data: {
                officeId: $('#ReorganisationOfficeId').val()
            },
            success: function(msg) {
                $("#ReorganisationStpAdminId").empty();
                $("<option/>").val("0").text("").appendTo("#ReorganisationStpAdminId");

                $.each(msg.res,
                    function(i, item) {
                        $("<option/>").val(item.stpAdminId).text(item.lastnameFirstname)
                            .appendTo("#ReorganisationStpAdminId");
                });

                $("#stpAdminLocationId").empty();
                $("<option/>").val("0").text("").appendTo("#stpAdminLocationId");

                $.each(msg.locations,
                    function(i, item) {
                    $("<option/>").val(item.LocationId).text(item.City).appendTo("#stpAdminLocationId");
                });
            },
            error: function() {
                $("#ReorganisationStpAdminId").empty();
                $("<option/>").val("0").text("").appendTo("#ReorganisationStpAdminId");

                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    loadReorganisationLocations: function() {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getGetReorganisationLocationsUrl),
            data: {
                reorganisationConsultantId: $('#ReorganisationConsultantId').val(),
                reorganisationCompanyId: null
            },
            success: function(msg) {
                $("#ReorganisationLocationId").empty();
                $("<option/>").val("0").text("").appendTo("#ReorganisationLocationId");

                $.each(msg.res,
                    function(i, item) {
                    var locationName = item.city;
                    if (item.street && item.street != "") {
                        locationName = locationName + ", " + item.street;
                    }
                    if (item.streetNumber && item.streetNumber != "") {
                        locationName = locationName + " " + item.streetNumber;
                    }
                        $("<option/>").val(item.reorganisationLocationId).text(locationName)
                            .appendTo("#ReorganisationLocationId");
                });
            },
            error: function() {
                $("#ReorganisationLocationId").empty();
                $("<option/>").val("0").text("").appendTo("#ReorganisationLocationId");

                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },
    loadStpAdminLocations: function() {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getGetStpAdminLocationsUrl),
            data: {
                id: $('#ReorganisationStpAdminId').val()
            },
            success: function(msg) {
                $("#stpAdminLocationId").empty();
                $("<option/>").val("0").text("").appendTo("#stpAdminLocationId");

                $.each(msg.data,
                    function(i, item) {
                    $("<option/>").val(item.LocationId).text(item.City).appendTo("#stpAdminLocationId");
                });
            },
            error: function() {
                $("#stpAdminLocationId").empty();
                $("<option/>").val("0").text("").appendTo("#stpAdminLocationId");

                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },
    loadDataroomView: function() {
        var self = this;

        $('#DataroomView').html(InsolvencyDetails.settings.loaderHtml);

        $.ajax({
            type: 'POST',
            dataType: 'html',
            url: Base64.decode(self.settings.getDataroomViewUrl),
            data: {
                id: self.settings.insolvencyId
            },
            success: function(msg) {
                $("#DataroomView").html(msg);
            },
            error: function() {
                $('#DataroomView')
                    .html(
                        '<div class="alert alert-danger">Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.</div>');
            }
        });
    },

    loadDataroomAdmin: function() {
        var self = this;

        $('#Dataroom').html(InsolvencyDetails.settings.loaderHtml);

        $.ajax({
            type: 'POST',
            dataType: 'html',
            url: Base64.decode(self.settings.getDataroomAdminUrl),
            data: {
                id: self.settings.insolvencyId
            },
            success: function(msg) {
                $("#Dataroom").html(msg);
            },
            error: function() {
                $('#Dataroom')
                    .html(
                        '<div class="alert alert-danger">Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.</div>');
            }
        });
    },

    removeState: function(stateId) {
        bootbox.confirm('Möchten Sie den Termin löschen?',
            function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getRemoveStateUrl),
                data: {
                    stateId: stateId
                },
                    success: function(msg) {
                    if (msg.success) {
                        $('#tableState #state-' + stateId).remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                    error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    toggleEffectDateChanged: function(stateId, minDate, maxDate) {
        $('#showchanges-' + stateId).attr('checked', true);

        var lower = InsolvencyDetails.parseDate(minDate);
        var upper = InsolvencyDetails.parseDate(maxDate);
        var val = $('#' + stateId).attr('value');
        var date = InsolvencyDetails.parseDate(val);

        if (date < lower) {
            $('#warn-lower-' + stateId).show();
        } else {
            $('#warn-lower-' + stateId).hide();
        }

        if (date > upper) {
            $('#warn-upper-' + stateId).show();
        } else {
            $('#warn-upper-' + stateId).hide();
        }
    },

    parseDate: function(input) {
        var parts = input.match(/(\d+)/g);
        return new Date(parts[2], parts[1] - 1, parts[0]);
    },

    removeAnnualTurnover: function(annualTurnoverId) {
        bootbox.confirm('Möchten Sie den Umsatz löschen?',
            function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getRemoveAnnualTurnoverUrl),
                data: {
                    companyAnnualTurnoverId: annualTurnoverId
                },
                    success: function(msg) {
                    if (msg.success) {
                        $('#tableAnnualTurnover #' + annualTurnoverId).remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                    error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    editAnnualTurnover: function(annualTurnoverId) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getReadAnnualTurnoverUrl),
            data: {
                annualTurnoverId: annualTurnoverId
            },
            success: function(msg) {
                if (msg.success) {
                    $('#createAnnualTurnoverForm #publicInsolvencyId').val(InsolvencyDetails.settings.insolvencyId);
                    $('#createAnnualTurnoverForm #companyAnnualTurnoverId').val(msg.item.AnnualTurnoverId);
                    $('#createAnnualTurnoverForm #year').val(moment(msg.item.BusinessYear).format('DD.MM.YYYY'));
                    $('#createAnnualTurnoverForm #value').val(msg.item.Value);
                    $('#createAnnualTurnoverForm #valueRevenue').val(msg.item.Value);

                    $('#createAnnualTurnoverForm #companyAnnualTurnoverShowEditingTag')
                        .prop('checked', msg.item.IsEditoriallyChecked);
                    $('#createAnnualTurnoverForm #companyAnnualTurnoverShowEditingTag')
                        .val(msg.item.IsEditoriallyChecked);

                    $('#createAnnualTurnoverForm #CompanyAnnualTurnoverTypeEnum option[value="' +
                        msg.annualTurnoverType +
                        '"]').attr('selected', 'selected');
                    $('#createAnnualTurnoverModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function() {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    removeEmployee: function(employeeId) {
        bootbox.confirm('Möchten Sie die Mitarbeiter löschen?',
            function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getRemoveEmployees),
                data: {
                    companyEmployeeId: employeeId
                },
                    success: function(msg) {
                    if (msg.success) {
                        $('#tableEmployees #' + employeeId).remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                    error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    editEmployee: function(employeeId) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getReadEmployees),
            data: {
                companyEmployeeId: employeeId
            },
            success: function(msg) {
                if (msg.success) {
                    $('#createEmployeesForm #publicInsolvencyId').val(InsolvencyDetails.settings.insolvencyId);
                    $('#createEmployeesForm #employeesId').val(msg.item.EmployeeId);
                    $('#createEmployeesForm #year').val(moment(msg.item.BusinessYear).format('DD.MM.YYYY'));
                    $('#createEmployeesForm #value').val(msg.item.Value);

                    $('#createEmployeesForm #employeeShowEditingTag').val(msg.item.IsEditoriallyChecked);
                    $('#createEmployeesForm #employeeShowEditingTag').prop('checked', msg.item.IsEditoriallyChecked);

                    $('#createEmployeesForm #employeeHasApproximatelyPrefix').val(msg.item.HasApproximatelyPrefix);
                    $('#createEmployeesForm #employeeHasApproximatelyPrefix')
                        .prop('checked', msg.item.HasApproximatelyPrefix);

                    $('#createEmployeesModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function() {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    removeBranch: function(branchId) {
        bootbox.confirm('Möchten Sie die Branche löschen?',
            function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getRemoveBranch),
                data: {
                    branchId: branchId
                },
                    success: function(msg) {
                    if (msg.success) {
                        $('#tablewzBranch #' + branchId).remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                    error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    removeLocation: function(insolvencyLocationId) {
        bootbox.confirm('Möchten Sie den Standort löschen?',
            function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getRemoveLocationUrl),
                data: {
                    insolvencyLocationId: insolvencyLocationId
                },
                    success: function(msg) {
                    if (msg.success) {
                        $('#tableLocations #' + insolvencyLocationId).remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                    error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    editLocation: function(insolvencyLocationId) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getReadLocationUrl),
            data: {
                insolvencyLocationId: insolvencyLocationId
            },
            success: function(msg) {
                if (msg.success) {
                    $('#createLocationForm #publicInsolvencyId').val(InsolvencyDetails.settings.insolvencyId);
                    $('#createLocationForm #insolvencyLocationId').val(insolvencyLocationId);
                    $('#createLocationForm #name').val(msg.name);
                    $('#createLocationForm #street').val(msg.street);
                    $('#createLocationForm #zip').val(msg.zip);
                    $('#createLocationForm #city').val(msg.city);
                    $('#createLocationForm #country').val(msg.country);
                    $('#createLocationModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function() {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    removeTerm: function(publicInsolvencyId, termId) {
        bootbox.confirm('Möchten Sie das Suchwort löschen?',
            function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getRemoveTermUrl),
                data: {
                    publicInsolvencyId: publicInsolvencyId,
                    termId: termId
                },
                    success: function(msg) {
                    if (msg.success) {
                        $('#tableSearchTerms #' + termId).remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                    error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    removeConsultant: function(publicInsolvencyId, insolvencyReorganisationId) {
        bootbox.confirm('Möchten Sie den Berater/Dienstleister löschen?',
            function(answer) {
            if (!answer) return;
            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getRemoveConsultantUrl),
                data: {
                    publicInsolvencyId: publicInsolvencyId,
                    insolvencyReorganisationId: insolvencyReorganisationId
                },
                    success: function(msg) {
                    if (msg.success) {
                        $('#tableConsultants #' + insolvencyReorganisationId).remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                    error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },
    removeManager: function(managerId) {
        bootbox.confirm('Möchten Sie den Gesetzlichen Vertreter löschen?',
            function(answer) {
            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getRemoveManagerUrl),
                data: {
                    stpManagerId: managerId
                },
                    success: function(msg) {
                    if (msg.success) {
                        $('#tableManager tr[data-mangerid="' + msg.id + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                    error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    removeBusinessInformation: function(businessInformationId) {
        bootbox.confirm('Möchten Sie die Wirtschaftsinformation löschen?',
            function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getRemoveBusinessInformation),
                data: {
                    businessInformationId: businessInformationId
                },
                    success: function(msg) {
                    if (msg.success) {
                        $('#tableBusinessInformation #' + businessInformationId).remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                    error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    editBusinessInformation: function(businessInformationId) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getReadBusinessInformation),
            data: {
                businessInformationId: businessInformationId
            },
            success: function(msg) {
                if (msg.success) {
                    $('#createBusinessInformationsForm #publicInsolvencyId')
                        .val(InsolvencyDetails.settings.insolvencyId);
                    $('#createBusinessInformationsForm #businessInformationId').val(msg.item.BusinessInformationId);
                    $('#createBusinessInformationsForm #text').val(msg.item.Text);
                    $('#createBusinessInformationsModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function() {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    showPublicationModal: function(publicationId) {
        var title = $(".publicationContent[data-id='" + publicationId + "'] h2").html();
        var content = $(".publicationContent[data-id='" + publicationId + "'] p").html();

        $("#publicationModal .modal-header h3").html(title);
        $("#publicationModal .modal-body").html(content);

        $("#publicationModal").modal("show");

        $('#publicationModal .modal-body').css("maxHeight", "400px");
    },

    sendGisAdminMail: function(publicInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getUrlSendGisAdminMessage),
            dataType: 'json',
            data: {
                publicInsolvencyId: publicInsolvencyId
            },
            success: function(msg) {
                bootbox.alert(msg.message);
            },
            error: function() {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    showGisPinRequiredMail: function (publicInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getUrlShowGisPinRequiredMessage),
            dataType: 'html',
            data: {
                publicInsolvencyId: publicInsolvencyId
            },
            success: function (msg) {

                if (msg === '') {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                } else {
                    $("#showGisPinRequiredMailModal #modalContent").html(msg);
                    $("btnSendPinRequestMail").on('click',
                        function() {
                            alert(publicInsolvencyId);
                            alert($('#personalMessage').text);
                        });
                    $("#showGisPinRequiredMailModal").modal('show').css({
                        'min-width': '800px',
                        width: 'auto',
                        'margin-left': function() {
                            return -($(this).width() / 2);
                        }
                    });
                }
            },
            error: function () {
                
            }
        });
    },

    sendGisPinRequiredMail: function (publicInsolvencyId) {
            $.ajax({
                type: 'POST',
                url: Base64.decode(InsolvencyDetails.settings.getUrlSendGisPinRequiredMessage),
                dataType: 'json',
                data: {
                    publicInsolvencyId: publicInsolvencyId,
                    additionalMessage: $('#personalMessage').val()
                },
                success: function (msg) {

                    $("#showGisPinRequiredMailModal").modal('hide');
                    $('#personalMessage').val('');
                    bootbox.alert(msg.message);
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
    },

    sendCreditorInformationRequestMail: function (publicInsolvencyId, administratorHasGis) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getUrlSendCreditorRequestMail),
            dataType: 'json',
            data: {
                publicInsolvencyId: publicInsolvencyId,
                administratorHasGis: administratorHasGis
            },
            success: function (msg) {
                bootbox.alert(msg.message);
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    SendCreditorInformationDataRequestMail: function (publicInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getUrlSendCreditorInformationDataRequestMail),
            dataType: 'json',
            data: {
                publicInsolvencyId: publicInsolvencyId
            },
            success: function(msg) {
                bootbox.alert(msg.message);
            },
            error: function() {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    sendClaimInformationRequestMail: function(publicInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getUrlClaimInformationRequestMessage),
            dataType: 'json',
            data: {
                publicInsolvencyId: publicInsolvencyId
            },
            success: function (msg) {
                bootbox.alert(msg.message);
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    SendRequirementsInformationDataRequestMail: function (publicInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: Base64.decode(InsolvencyDetails.settings.getUrlSendRequirementsInformationDataRequestMail),
            dataType: 'json',
            data: {
                publicInsolvencyId: publicInsolvencyId
            },
            success: function (msg) {
                bootbox.alert(msg.message);
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    initGisForm: function () {
        $("#adminPinForm").submit(function (e) {
            e.preventDefault();

            var validationMessage = {
                id: "#pinValidationMessage",
                show: function () {
                    if ($(validationMessage.id).hasClass("hidden")) {
                        $(validationMessage.id).removeClass("hidden");
                    }
                },
                hide: function () {
                    if (!$(validationMessage.id).hasClass("hidden")) {
                        $(validationMessage.id).addClass("hidden");
                    }
                }
            };

            if (!($("#adminPinModel_PIN").val() == "" || $("#adminPinModel_PIN").val() == undefined)) {
                validationMessage.hide();

                $('#loaderGisInformationPrivate').html('<img src="/Content/bizstrap/img/spinner_64x64.gif" width="30" style="padding-left: 5px" alt="Lade...">');

                var formData = $(this).serialize();

                $.ajax({
                    url: $(this).attr('action'),
                    type: "POST",
                    data: formData,
                    success: function (msg) {
                        $('#loaderGisInformationPrivate').html("");

                        if (msg.success) {
                            validationMessage.hide();
                            $(".gisPin-gaeubigerinfos").addClass("hidden");
                            $('#GisCreditorDetails').html(InsolvencyDetails.settings.loaderHtml);

                            if (InsolvencyDetails.settings.showDemands) {
                                $(".gisPin-forderungen").addClass("hidden");
                                $('#GisClaims').html(InsolvencyDetails.settings.loaderHtml);
                            }

                            $('#GisCreditorDetails').load(Base64.decode(InsolvencyDetails.settings.getUrlAdminPinDetails), formData);
                            if (InsolvencyDetails.settings.showDemands) {
                                $('#GisClaims').load(Base64.decode(InsolvencyDetails.settings.getUrlForderungDetails), formData);
                            }

                            $("#gisTabNavigation li").each(function () {
                                var currentTabId = $(this).find("a").data("href");
                                var currentTab = $("#gisTabNavigation li a[data-href=\"" + currentTabId + "\"]");

                                currentTab.attr("href", currentTabId);

                                if ($(this).hasClass("active")) {
                                    $(this).removeClass("active");

                                    currentTab.tab("show");
                                }
                            });
                        } else {
                            validationMessage.show();
                        }
                    }
                });
            } else {
                validationMessage.show();
            }
        });

        if (!$("#adminPinModel_PIN").val() == "") {
            $("#adminPinForm").submit();
        }
    },

    updateStateDatePicker: function (stateCodeId) {
        var stateCode = { startDate: "01.01.2000", endDate: "01.01.2030" };

        $.each(InsolvencyDetails.settings["stateCodes"], function (i, v) {
            if (v.stateCodeId == stateCodeId) {
                stateCode = v;
            }
        });

        var options = {
            format: 'dd.mm.yyyy',
            weekStart: 1,
            autoclose: true,
            language: 'de',
            startDate: stateCode.startDate,
            endDate: stateCode.endDate
        };

        $("#createStateModal #publicationDate").datepicker(options);
        $("#createStateModal #effectDate").datepicker(options);

        $("#createStateModal #publicationDate").datepicker("setStartDate", options.startDate);
        $("#createStateModal #publicationDate").datepicker("setEndDate", options.endDate);
        $("#createStateModal #effectDate").datepicker("setStartDate", options.startDate);
        $("#createStateModal #effectDate").datepicker("setEndDate", options.endDate);
    },

    GetURLParameter: function (sParam) {
        var sPageUrl = window.location.search.substring(1);
        var sUrlVariables = sPageUrl.split('&');
        for (var i = 0; i < sUrlVariables.length; i++) {
            var sParameterName = sUrlVariables[i].split('=');
            if (sParameterName[0] == sParam) {
                return sParameterName[1];
            }
        }
    },

    showForderungDetails: function (id) {
        $(".forderungDetails").each(function () {
            if (!$(this).hasClass("hidden")) {
                $(this).addClass("hidden");
            }

            if ($(id).hasClass("hidden")) {
                $(id).removeClass("hidden");
            }
        });
    },

    initAannualTurnoverModalCheckbox: function () {
        $('#annualTurnoverModalCheckbox').change(function () {
            if ($('#annualTurnoverModalCheckbox').attr('checked')) {
                $('#annualTurnoverModalBtn').removeAttr('disabled');
            } else {
                $('#annualTurnoverModalBtn').attr('disabled', 'disabled');
            }
        });
    }
};;var CompanyAlert = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    documentReady: function () {
        var self = this;

        $('#addCompanyAlert').live('click', function () {
            if (!$('#addCompanyAlert').hasClass('disabled')) {
                $.ajax({
                    type: 'POST',
                    url: self.settings.getCompanyAlertUrl,
                    dataType: 'html',
                    success: function (msg) {
                        $('#modalHeader').text('Neue Überwachung erstellen');
                        $('#modalAlertDetailsContent').html(msg);
                        var form = $('#companyAlertForm').removeData("validator").removeData("unobtrusiveValidation");
                        $.validator.unobtrusive.parse(form);
                        $('#detailsModal').modal('show').css({
                            width: 'auto',
                            'margin-left': function () {
                                return -($(this).width() / 2);
                            }
                        });
                    }
                });
            }
        });

        $('#detailsModal').on('hide', function () {
            $('#btnSave').unbind('click');
        });

        $('#btnSave').live('click', function () {
            if (CompanyAlert.validateConsumerAlertForm()) {
                $('#detailsModal').modal('hide');
            }
            return false;
        });

        $('#CompanyName').live('keyup', function () {
            if ($('#CompanyName').val().length > 3) {
                $('span[data-valmsg-for="Domicile"]').html('');
                $('span[data-valmsg-for="Domicile"]').closest('.control-group').removeClass("error");
            }
        });

        $('.modal').on('shown', function() {
            $('.modal .modal-body').css('max-height', ($(window).height() - 140) + 'px');
            $('.modal').css('top', '0%');
        });

        $("#hr-search-CompanyName").live('keyup', function () {
            if (!$("#companyNameValidationField").hasClass("hidden")) {
                $("#companyNameValidationField").addClass("hidden");
            }
        });
    },

    setCompanyAlertsRest: function (allowedCompanyAlertRest) {
        $('#companyAlertsRest').html(allowedCompanyAlertRest);

        if (allowedCompanyAlertRest == 0) {
            $('#addCompanyAlert').addClass('disabled');
        } else if ($('#addCompanyAlert').hasClass('disabled')) {
            $('#addCompanyAlert').removeClass('disabled');
        }
    },

    validateConsumerAlertForm: function () {
        var returnValue = $("#companyAlertForm").valid();

        if ($.inArray($.trim($('#CompanyName').val()).replace(/\s+/g, ''), CompanyAlert.settings.corpForms) >= 0) {
            $('span[data-valmsg-for="CompanyName"]').html('<span for="CompanyName" generated="true">Bitte geben Sie einen Firmen- oder Personennamen ein.</span>');
            $('span[data-valmsg-for="CompanyName"]').closest('.control-group').addClass("error");
            returnValue = false;
        } else {
            if ($("#companyAlertForm").valid()) {
                $('span[data-valmsg-for="CompanyName"]').html('');
                $('span[data-valmsg-for="CompanyName"]').closest('.control-group').removeClass("error");
                if ($('#CompanyName').val().length <= 3 && $('#Domicile').val().length <= 0) {
                    $('span[data-valmsg-for="Domicile"]').closest('.control-group').addClass("error");
                    $('span[data-valmsg-for="Domicile"]').html('<span for="Domicile" generated="true">Wenn Sie Firmennamen mit weniger als 4 Zeichen überwachen wollen, müssen Sie zusätzlich den Sitz der Gesellschaft angeben, die Sie überwachen wollen.</span>');
                    returnValue = false;
                } else {
                    $('span[data-valmsg-for="Domicile"]').html('');
                    $('span[data-valmsg-for="Domicile"]').closest('.control-group').removeClass("error");
                }
            }
        }

        return returnValue;
    },

    resetFilter: function () {
        $('#CompanyName').val('');
        $('#Domicile').val('');
        $('#TradeRegisterCourt').val('');
        $('#TradeRegisterNumber').val('');
        $('#SelectedTradeRegisterForm').val('');
        $('#NewsAlert').removeAttr('checked');
        $('#CorporateFormId').val('0');
    },

    editCompanyAlert: function (companyAlertId) {
        var self = this;

        $.ajax({
            type: 'POST',
            url: self.settings.getCompanyAlertUrl,
            dataType: 'html',
            data: { companyAlertId: companyAlertId },
            success: function (msg) {
                $('#modalHeader').text('Überwachung bearbeiten');
                $('#modalAlertDetailsContent').html(msg);
                var form = $('#companyAlertForm').removeData("validator").removeData("unobtrusiveValidation");
                $.validator.unobtrusive.parse(form);
                $('#detailsModal').modal('show');
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    deleteCompanyAlert: function (alertId) {
        var self = this;

        bootbox.confirm(('Möchten Sie den ausgewählten Firmen-Alarm löschen?'), function (confirm) {
            if (confirm == false) return;

            $.ajax({
                type: 'POST',
                url: self.settings.removeCompanyAlertUrl,
                data: { companyAlertId: alertId },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableCompanyAlerts #' + alertId).remove();
                        $('#tableCompanyAlerts>tbody>tr').tsort('td:eq(0)', { order: 'asc' });
                        CompanyAlert.setCompanyAlertsRest(msg.allowedCompanyAlertsRest);
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    createCompanyAlert: function (button) {

        if ($(button).attr("data-userFormData") == "false") {

            $("#CompanyName").val($(button).attr("data-companyName"));
            $("#Domicile").val($(button).attr("data-domicile"));
            $("#SelectedTradeRegisterForm").val($(button).attr("data-tradeRegisterForm"));
            $("#TradeRegisterCourt").val($(button).attr("data-tradeRegisterCourt"));
            $("#TradeRegisterNumber").val($(button).attr("data-tradeRegisterNumber"));
            $("#CorporateFormId").val($(button).attr("data-corporateFormId"));
        }

        $.ajax({
            type: "POST",
            url: CompanyAlert.settings.createCompanyAlertUrl,
            data: $("#companyAlertForm").serialize(),
            success: function (msg) {
                $("#handelsregisterResultModal").modal("hide");
                CompanyAlert.createCompanyAlertResultHandler(msg);
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    createCompanyAlertResultHandler: function (msg) {
        if (msg.success) {
            var ucDate = msg.item.UpdateDate ? msg.item.UpdateDate : msg.item.CreateDate;
            var companyAlertLine = '<tr id="' + msg.item.CompanyAlertId + '"><td>' + msg.item.Name + '</td><td class="columnAlignRight">' + moment(ucDate).format('DD.MM.YYYY') + '</td><td>&nbsp;</td><td><a href="javascript:CompanyAlert.editCompanyAlert(' + msg.item.CompanyAlertId + ')"><i class="icon-edit"></i></a></td><td><a href="javascript:CompanyAlert.deleteCompanyAlert(' + msg.item.CompanyAlertId + ')"><i class="icon-remove"></i></a></td></tr>';

            if (!msg.update) {
                $('#tableCompanyAlerts tbody').append(companyAlertLine);
                $('#tableCompanyAlerts>tbody>tr').tsort('td:eq(0)', { order: 'asc' });
            } else {
                $('#tableCompanyAlerts tr#' + msg.item.CompanyAlertId).replaceWith(companyAlertLine);
            }

            CompanyAlert.setCompanyAlertsRest(msg.allowedCompanyAlertsRest);

            $('#detailsModal').modal('hide');
        } else {

            if (msg.errorMsg != undefined) {
                bootbox.alert(msg.errorMsg);
            } else {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        }
    },

    showLoading: function () {
        $(".createAlertLoading").show();
    },

    hideLoading: function () {
        $(".createAlertLoading").hide();
    },

    searchHandelsregister: function () {

        if ($.inArray($.trim($('#hr-search-CompanyName').val()).replace(/\s+/g, ''), CompanyAlert.settings.corpForms) >= 0) {
            var fieldCompanyNameValidation = $("#companyNameValidationField");
            if (fieldCompanyNameValidation.hasClass("hidden")) {
                fieldCompanyNameValidation.removeClass("hidden");
            }
            return;
        }

        $("#CompanyName").val($("#hr-search-CompanyName").val());
        $("#Domicile").val($("#hr-search-Domicile").val());
        $("#SelectedTradeRegisterForm").val($("#hr-search-SelectedTradeRegisterForm").val());
        $("#TradeRegisterCourt").val($("#hr-search-TradeRegisterCourt").val());
        $("#TradeRegisterNumber").val($("#hr-search-TradeRegisterNumber").val());
        $("#CorporateFormId").val($("#hr-search-CorporateFormId").val());

        CompanyAlert.showLoading();
        $('#btnSave').click();
    },

    changePageHandelsregisterSearch: function(page) {

        CompanyAlert.showLoading();

        $.ajax({
            type: "POST",
            url: CompanyAlert.settings.getHandelsregisterResultUrl,
            data: {
                jSessionId: $("#JSessionId").val(),
                page: page
            },
            success: function (msg) {
                CompanyAlert.hideLoading();
                $("#handelsregisterResultContent").html(msg);
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    }
};

var ExtendedCompanyAlert = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    documentReady: function () {
        var self = this;

        $('#addExtendedAlert').live('click', function () {
            if (!$('#addExtendedAlert').hasClass('disabled')) {
                $.ajax({
                    type: 'POST',
                    url: self.settings.getExtendedAlertDetailsUrl,
                    dataType: 'html',
                    success: function (msg) {
                        $('#modalHeader').text('Neue Überwachung erstellen');
                        $('#modalAlertDetailsContent').html(msg);
                        var form = $('#extendedAlertForm').removeData("validator").removeData("unobtrusiveValidation");
                        $.validator.unobtrusive.parse(form);
                        $('#detailsModal').modal('show');
                    }
                });
            }
        });

        $('#btnSave').click(function () {
            self.saveExtendedAlert();
        });

        $('.modal').on('shown', function () {
            $('.modal .modal-body').css('max-height', ($(window).height() - 140) + 'px');
            $('.modal').css('top', '0%');
        });
    },

    reloadExtendedCompanyAlertContent: function () {
        $("#extendedAlertsContent").load(this.settings.getExtendedCompanyAlertsUrl);
    },

    editExtendedCompanyAlert: function (extendedAlertId) {
        var self = this;

        $.ajax({
            type: 'POST',
            url: self.settings.getExtendedAlertDetailsUrl,
            dataType: 'html',
            data: { extendedAlertId: extendedAlertId },
            success: function (msg) {
                $('#modalHeader').text('Überwachung bearbeiten');
                $('#modalAlertDetailsContent').html(msg);
                var form = $('#extendedAlertForm').removeData("validator").removeData("unobtrusiveValidation");
                $.validator.unobtrusive.parse(form);
                $('#detailsModal').modal('show');
            }
        });
    },

    deleteExtendedCompanyAlert: function (extendedCompanyAlertId) {
        var self = this;

        bootbox.confirm(('Möchten Sie den ausgewählten Alarm löschen?'), function (confirm) {
            if (confirm == false) return;

            $.ajax({
                type: 'POST',
                url: self.settings.removeExtendedCompanyAlertUrl,
                data: { extendedCompanyAlertId: extendedCompanyAlertId },
                success: function (msg) {
                    if (msg.success) {
                        self.reloadExtendedCompanyAlertContent();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    saveExtendedAlert: function () {
        var self = this;

        if (this.validateForm()) {
            $.ajax({
                type: "POST",
                url: self.settings.saveExtendedFilterUrl,
                data: $("#extendedAlertForm").serialize(),
                success: function (msg) {
                    if (msg.success) {
                        self.reloadExtendedCompanyAlertContent();
                        $('#detailsModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        }
    },

    validateForm: function () {
        var returnValue = false;

        if ($('#SelectedAdmins').val() != "null" || $('#SelectedCourts').val() != 'null' ||
            $('#SelectedOffices').val() != 'null' || $('#SelectedCorporateForms').val() != 'null' ||
            $('#SelectedFederateStates').val() != 'null' || $('#OriginLocationHash').val() != 'null')
        {
            $('#filterValidation').hide();
            $('#filterValidationSpan').removeClass('field-validation-error');
            returnValue = true;
        } else {
            $('#filterValidation').show();
            $('#filterValidationSpan').addClass('field-validation-error');
        }

        var form = $('#extendedAlertForm');

        if (!form.valid()) {
            returnValue = false;
        }
        return returnValue;
    },

    resetFilter: function () {
        $('#SelectedAdmins').val('null');
        $('#SelectedCourts').val('null');
        $('#SelectedOffices').val('null');
        $('#SelectedCorporateForms').val('null');
        $('#SelectedFederateStates').val('null');
    }
};

var ExtendedCompanyAlertDetails = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    initializeHandlers: function () {
        var self = this;

        $('#SelectedAdmins').removeAttr("multiple");
        $('#SelectedCourts').removeAttr("multiple");
        $('#SelectedOffices').removeAttr("multiple");
        $('#SelectedCorporateForms').removeAttr("multiple");
        $('#SelectedFederateStates').removeAttr("multiple");

        $('#SelectedAdmins').prepend(new Option('Alle', 'null', false, false));
        $('#SelectedCourts').prepend(new Option('Alle', 'null', false, false));
        $('#SelectedOffices').prepend(new Option('Alle', 'null', false, false));
        $('#SelectedCorporateForms').prepend(new Option('Alle', 'null', false, false));
        $('#SelectedFederateStates').prepend(new Option('Alle', 'null', false, false));

        if (this.settings.extendedCompanyAlertId == 0) {
            $('#SelectedAdmins').val('null');
            $('#SelectedCourts').val('null');
            $('#SelectedOffices').val('null');
            $('#SelectedCorporateForms').val('null');
            $('#SelectedFederateStates').val('null');
        }
        else {
            if (!this.settings.hasSelectedAdmins) {
                $('#SelectedAdmins').val('null');
            }
            if (!this.settings.hasSelectedCourts) {
                $('#SelectedCourts').val('null');
            }
            if (!this.settings.hasSelectedOffices) {
                $('#SelectedOffices').val('null');
            }
            if (!this.settings.hasSelectedCorporateForms) {
                $('#SelectedCorporateForms').val('null');
            }
            if (!this.settings.hasSelectedFederateStates) {
                $('#SelectedFederateStates').val('null');
            }
        }

        $('#SelectedOffices').change(function () {
            $.ajax({
                type: 'POST',
                url: self.settings.getAdminsUrl,
                dataType: 'html',
                data: { id: $(this).val() },
                success: function (msg) {
                    var items = '<option value="null">Alle</option>';
                    $.each($.parseJSON(msg), function (i, admin) {
                        items += "<option value='" + admin.StpAdminId + "'>" + admin.LastnameFirstname + "</option>";
                    });
                    $('#SelectedAdmins').html(items);
                }
            });

            if ($(this).val() != 'null') {
                $('#filterValidation').hide();
            }
        });

        $('#SelectedFederateStates').change(function () {
            $.ajax({
                type: 'POST',
                url: self.settings.getCourtsUrl,
                dataType: 'html',
                data: { id: $(this).val() },
                success: function (msg) {
                    var items = '<option value="null">Alle</option>';
                    $.each($.parseJSON(msg), function (i, court) {
                        items += "<option value='" + court.CourtId + "'>" + court.Name + "</option>";
                    });
                    $('#SelectedCourts').html(items);
                }
            });

            if ($(this).val() != 'null') {
                $('#filterValidation').hide();
            }
        });

        $('#SelectedCorporateForms').change(function () {
            if ($(this).val() != 'null') {
                $('#filterValidation').hide();
            }
        });

        $('#SelectedCourts').change(function () {
            if ($(this).val() != 'null') {
                $('#filterValidation').hide();
            }
        });

        $('span.field-validation-valid, span.field-validation-error').each(function () {
            $(this).addClass('help-inline');
        });

        $('.modal').on('shown', function () {
            $('.modal .modal-body').css('max-height', ($(window).height() - 140) + 'px');
            $('.modal').css('top', '0%');
        });
    }
};

var ConsumerAlert = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    documentReady: function () {
        var self = this;

        $('#btnSave').click(function () {
            if ($("#consumerAlertForm").valid()) {
                $.ajax({
                    type: "POST",
                    url: self.settings.createConsumerAlertUrl,
                    data: $("#consumerAlertForm").serialize(),
                    success: function (msg) {
                        if (msg.success) {
                            var ucDate = msg.item.UpdateDate ? msg.item.UpdateDate : msg.item.CreateDate;
                            var consumerAlertLine = '<tr id="' + msg.item.ConsumerAlertId + '"><td>' + msg.item.Name + '</td><td>' + moment(ucDate).format('DD.MM.YYYY') + '</td><td><a href="javascript:ConsumerAlert.editConsumerAlert(' + msg.item.ConsumerAlertId + ')"><i class="icon-edit"></i></a></td><td><a href="javascript:ConsumerAlert.deleteConsumerAlert(' + msg.item.ConsumerAlertId + ')"><i class="icon-remove"></i></a></td></tr>';

                            if (!msg.update) {
                                $('#tableConsumerAlerts tbody').append(consumerAlertLine);
                                $('#tableConsumerAlerts>tbody>tr').tsort('td:eq(0)', { order: 'asc' });
                            } else {
                                $('#tableConsumerAlerts tr#' + msg.item.ConsumerAlertId).replaceWith(consumerAlertLine);
                            }

                            self.setConsumerAlertsRest(msg.allowedConsumerAlertsRest);

                            $('#detailsModal').modal('hide');
                        } else {
                            bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    },
                    error: function () {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                });
            }
        });

        $('#addConsumerAlert').live('click', function () {
            if (!$('#addConsumerAlert').hasClass('disabled')) {
                $.ajax({
                    type: 'POST',
                    url: self.settings.getConsumerAlertUrl,
                    dataType: 'html',
                    success: function (msg) {
                        $('#modalHeader').text('Neue Überwachung erstellen');
                        $('#modalAlertDetailsContent').html(msg);
                        var form = $('#consumerAlertForm').removeData("validator").removeData("unobtrusiveValidation");
                        $.validator.unobtrusive.parse(form);
                        $('#detailsModal').modal('show');
                    }
                });
            }
        });

        $('.modal').on('shown', function () {
            $('.modal .modal-body').css('max-height', ($(window).height() - 140) + 'px');
            $('.modal').css('top', '0%');
        });
    },

    setConsumerAlertsRest: function (allowedConsumerAlertsRest) {
        $('#consumerAlertsRest').html(allowedConsumerAlertsRest);

        if (allowedConsumerAlertsRest == 0) {
            $('#addConsumerAlert').addClass('disabled');
        } else if ($('#addConsumerAlert').hasClass('disabled')) {
            $('#addConsumerAlert').removeClass('disabled');
        }
    },

    resetFilter: function () {
        $('#FirstName').val('');
        $('#LastName').val('');
        $('#BirthDate').val('');
    },

    addConsumerInsolvency: function (values) {
        var self = this;

        $.ajax({
            type: 'POST',
            url: self.settings.createConsumerAlertUrl,
            data: values,
            success: function (msg) {
                if (msg.success) {
                    location.reload();
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    editConsumerAlert: function (consumerAlertId) {
        var self = this;

        $.ajax({
            type: 'POST',
            url: self.settings.getConsumerAlertUrl,
            dataType: 'html',
            data: { consumerAlertId: consumerAlertId },
            success: function (msg) {
                $('#modalHeader').text('Überwachung bearbeiten');
                $('#modalAlertDetailsContent').html(msg);
                var form = $('#consumerAlertForm').removeData("validator").removeData("unobtrusiveValidation");
                $.validator.unobtrusive.parse(form);
                $('#detailsModal').modal('show');
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    deleteConsumerAlert: function (consumerAlertId) {
        var self = this;

        bootbox.confirm(('Möchten Sie den ausgewählten Personen-Alarm löschen?'), function (confirm) {
            if (confirm == false) return;

            $.ajax({
                type: 'POST',
                url: self.settings.removeConsumerAlertUrl,
                data: { consumerAlertId: consumerAlertId },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableConsumerAlerts #' + consumerAlertId).remove();
                        $('#tableConsumerAlerts>tbody>tr').tsort('td:eq(0)', { order: 'asc' });
                        self.setConsumerAlertsRest(msg.allowedConsumerAlertsRest);
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    }
};

var EconomyAlert = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    documentReady: function () {
        var self = this;

        $('#btnSave').click(function () {
            if (EconomyAlert.validateForm()) {
                $.ajax({
                    type: 'POST',
                    url: self.settings.createUpdateEconomyAlertUrl,
                    data: {
                        economyAlertId: $('#economyAlertForm input[name=EconomyAlertId]').val(),
                        wzBranchId: $('#branchTree').jstree('get_checked').length == 0 ? 'null' : $('#branchTree').jstree('get_checked')[0].id,
                        newsAlert: $('#economyAlertForm #NewsAlert').prop('checked'),
                        minEmployeeCountValue: $('#economyAlertForm #MinEmployeeCount').val(),
                        maxEmployeeCountValue: $('#economyAlertForm #MaxEmployeeCount').val(),
                        minAnnualTurnoverValue: $('#economyAlertForm #MinAnnualTurnover').val(),
                        maxAnnualTurnoverValue: $('#economyAlertForm #MaxAnnualTurnover').val(),
                        considerEmptyEconomyData: $('#economyAlertForm #ConsiderEmptyEconomyData').prop('checked'),
                        name: $('#economyAlertForm #Name').val(),
                        originLocationHash: $("#OriginLocationHash").val(),
                        originPostCodeRange: $("#OriginPostCodeRange").val()
                    },
                    success: function (msg) {
                        if (msg.success) {

                            var economyAlertLine = '<tr id="' + msg.economyAlert.EconomyAlertId + '"><td>' + msg.economyAlert.Name + '</td><td>' + moment(msg.economyAlert.CreateDate).format('DD.MM.YYYY') + '</td><td><a href="javascript:EconomyAlert.editEconomyAlert(' + msg.economyAlert.EconomyAlertId + ')"><i class="icon-edit"></i></a></td><td><a href="javascript:EconomyAlert.deleteEconomyAlert(' + msg.economyAlert.EconomyAlertId + ')"><i class="icon-remove"></i></a></td></tr>';

                            if (!msg.update) {
                                $('#tableEconomyAlerts tbody').append(economyAlertLine);
                                $('#tableEconomyAlerts>tbody>tr').tsort('td:eq(0)', { order: 'asc' });
                            } else {
                                $('#tableEconomyAlerts tr#' + msg.economyAlert.EconomyAlertId).replaceWith(economyAlertLine);
                            }

                            self.setEconomyAlertsRest(msg.allowedEconomyAlertRest);

                            $('#detailsModal').modal('hide');
                        } else {
                            bootbox.alert(msg.error != undefined && msg.error != '' ? msg.error : 'Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    },
                    error: function () {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                });
            }
            return false;
        });

        $('#addEconomyAlert').click(function () {
            if (!$('#addEconomyAlert').hasClass('disabled')) {
                $.ajax({
                    type: 'POST',
                    url: self.settings.getEconomyAlertUrl,
                    dataType: 'html',
                    success: function (msg) {
                        $('#modalHeader').text('Neue Überwachung erstellen');
                        $('#modalAlertDetailsContent').html(msg);

                        var form = $('#economyAlertForm').removeData("validator").removeData("unobtrusiveValidation");
                        $.validator.unobtrusive.parse(form);

                        $('#detailsModal').modal('show').css({
                            width: 'auto',
                            'margin-left': function () {
                                return -($(this).width() / 2);
                            }
                        });
                    }
                });
            }

            return false;
        });

        $('.modal').on('shown', function () {
            $('.modal .modal-body').css('max-height', ($(window).height() - 140) + 'px');
            $('.modal').css('top', '0%');
        });
    },

    deleteEconomyAlert: function (economyAlertId) {
        var self = this;

        bootbox.confirm('Möchten Sie die Wirtschaftsdaten-Überwachung löschen?', function (answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: self.settings.removeEconomyAlertUrl,
                data: {
                    economyAlertId: economyAlertId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableEconomyAlerts #' + economyAlertId).remove();
                        $('#tableEconomyAlerts>tbody>tr').tsort('td:eq(0)', { order: 'asc' });
                        self.setEconomyAlertsRest(msg.allowedEconomyAlertRest);
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    setEconomyAlertsRest: function (allowedEconomyAlertRest) {
        $('#economyAlertsRest').html(allowedEconomyAlertRest);

        if (allowedEconomyAlertRest == 0) {
            $('#addEconomyAlert').addClass('disabled');
        } else if ($('#addEconomyAlert').hasClass('disabled')) {
            $('#addEconomyAlert').removeClass('disabled');
        }
    },

    editEconomyAlert: function (economyAlertId) {
        var self = this;

        $.ajax({
            type: 'POST',
            url: self.settings.getEconomyAlertUrl,
            dataType: 'html',
            data: { economyAlertId: economyAlertId },
            success: function (msg) {
                $('#modalHeader').text('Überwachung bearbeiten');
                $('#modalAlertDetailsContent').html(msg);
                var form = $('#economyAlertForm').removeData("validator").removeData("unobtrusiveValidation");
                $.validator.unobtrusive.parse(form);
                $('#detailsModal').modal('show').css({
                    width: 'auto',
                    'margin-left': function () {
                        return -($(this).width() / 2);
                    }
                });
            }
        });
    },

    validateForm: function () {
        var self = this;
        var returnValue = false;

        if ($('#branchTree').jstree('get_checked').length > 0) {
            returnValue = true;
        } else if (self.settings.canFilterEmployee == "True" && $('#economyAlertForm #MinEmployeeCount').val() != "") {
            returnValue = true;
        } else if (self.settings.canFilterEmployee == "True" && $('#economyAlertForm #MaxEmployeeCount').val() != "") {
            returnValue = true;
        } else if (self.settings.canFilterAnnualTurnover == "True" && $('#economyAlertForm #MinAnnualTurnover').val() != "") {
            returnValue = true;
        } else if (self.settings.canFilterAnnualTurnover == "True" && $('#economyAlertForm #MaxAnnualTurnover').val() != "") {
            returnValue = true;
        } else if ($('#OriginLocationHash').val() != "") {
            returnValue = true;
        }

        if (returnValue) {
            $('#filterValidation').hide();
            $('#filterValidationSpan').removeClass('field-validation-error');
        } else {
            if (self.settings.canFilterEmployee == "False" && self.settings.canFilterAnnualTurnover == "False") {
                $('#filterValidationSpan').text('Bitte wählen Sie eine Branche aus.');
            }

            $('#filterValidation').show();
            $('#filterValidationSpan').addClass('field-validation-error');
        }
        if (!$("#economyAlertForm").valid()) {
            returnValue = false;
        }

        return returnValue;
    }
};

var EconomyAlertDetails = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    initializeHandlers: function () {

        $('#MinAnnualTurnover, #MaxAnnualTurnover').autoNumeric('init', { aSep: '', aDec: ',', pSign: 's', vMax: '9999999999999.99' });

        $('#MinEmployeeCount, #MaxEmployeeCount').autoNumeric('init', {
            aSep: '',
            pSign: 's',
            vMax: '9999999999999',
            mDec: 0
        });
        
        $('#economyAlertForm').click(function () {
            EconomyAlertDetails.checkCriteria();
        });
        
        EconomyAlertDetails.checkCriteria();

        $('.modal').on('shown', function () {
            $('.modal .modal-body').css('max-height', ($(window).height() - 140) + 'px');
            $('.modal').css('top', '0%');
        });
    },

    checkCriteria: function () {
        if ($('#ConsiderEmptyEconomyData').length) {
            let criteria1 = false;
            let criteria2 = false;
            let criteria3 = false;
            let criteriaCounter = 0;
            
            criteria1 = $('#MinAnnualTurnover').val() != "" || $('#MaxAnnualTurnover').val() != "";
            criteria2 = $('#MinEmployeeCount').val() != "" || $('#MaxEmployeeCount').val() != "";
            criteria3 = $('#OriginLocationHash').val() != "";
            
            if (criteria1) {
                EconomyAlertDetails.manageEmptyEconomyData(criteriaCounter += 1);
            }

            if (criteria2) {
                EconomyAlertDetails.manageEmptyEconomyData(criteriaCounter += 1);
            }

            if (criteria3) {
                EconomyAlertDetails.manageEmptyEconomyData(criteriaCounter += 1);
            }

            if ($("#SelectedWzBranchId").val()) {
                EconomyAlertDetails.manageEmptyEconomyData(criteriaCounter += 1);
            }
        }

    },

    manageEmptyEconomyData: function (criteriaCounter) {
        if (criteriaCounter > 1) {
            if ($('#ConsiderEmptyEconomyData').is(':disabled')) {
                $('#ConsiderEmptyEconomyData').removeAttr('disabled');
            }
        } else {
            $('#ConsiderEmptyEconomyData').attr('disabled', 'disabled');
        }
    }
};

var AssetAlert = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    initializeHandlers: function () {
        var self = this;

        $('#addAssetAlert').click(function () {
            self.addAssetAlert();
        });

        $('#assetAlertResetFilter').click(function () {
            self.resetAssetAlertFilter();
        });

        $('#assetAlertForm').submit(function () {
            self.submitAssetAlert(this);

            return false;
        });

        $('.modal').on('shown', function () {
            $('.modal .modal-body').css('max-height', ($(window).height() - 140) + 'px');
            $('.modal').css('top', '0%');
        });
    },

    addAssetAlert: function () {
        if ($('#addAssetAlert').hasClass('disabled')) {
            return false;
        }

        $('#assetAlertForm #Name').val('');
        $('#assetAlertForm #AssetAlertId').val('');
        this.resetAssetAlertFilter();
        $('#detailsModal').modal('show').css({
            width: 'auto',
            'margin-left': function () {
                return -($(this).width() / 2);
            }
        });

        return false;
    },

    resetAssetAlertFilter: function () {
        $('#branchTree').jstree('uncheck_all');
        $('#branchTree').jstree('close_all');
        $('#assetAlertForm #AnnualTurnoverValue').val(1);
        $('#MinAnnualTurnover').val(null);
        $('#MaxAnnualTurnover').val(null);
        $('#MinEmployeeCount').val(null);
        $('#MaxEmployeeCount').val(null);
        $('#ConsiderEmptyAnnualTurnover').attr('checked', true);
        $('#ConsiderEmptyEmployeeCount').attr('checked', true);
    },

    editAssetAlert: function (assetAlertId) {
        var self = this;

        InsolvencySearchFilter.clearBranchSearch();

        $.ajax({
            type: 'POST',
            url: self.settings.getAssetAlertUrl,
            data: {
                assetAlertId: assetAlertId
            },
            success: function (msg) {
                if (msg.success) {
                    $('#AssetAlertId').val(msg.assetAlert.AssetAlertId);
                    $('#Name').val(msg.assetAlert.Name);
                    $('#MinAnnualTurnover').val(msg.assetAlert.MinAnnualTurnover);
                    $('#MaxAnnualTurnover').val(msg.assetAlert.MaxAnnualTurnover);
                    $('#MinEmployeeCount').val(msg.assetAlert.MinEmployeeCount);
                    $('#MaxEmployeeCount').val(msg.assetAlert.MaxEmployeeCount);
                    $('#ConsiderEmptyAnnualTurnover').attr('checked', msg.assetAlert.ConsiderEmptyAnnualTurnover);
                    $('#ConsiderEmptyEmployeeCount').attr('checked', msg.assetAlert.ConsiderEmptyEmployeeCount);
                    $('#branchTree').jstree('search', [msg.assetAlert.WzBranchId]);
                    $('#detailsModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    deleteAssetAlert: function (assetAlertId) {
        var self = this;

        bootbox.confirm(('Möchten Sie die ausgewählte Überwachung löschen?'), function (confirm) {
            if (confirm == false) return;

            $.ajax({
                type: 'POST',
                url: self.settings.removeAssetAlertUrl,
                data: { assetAlertId: assetAlertId },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableAssetAlert tr#' + assetAlertId).remove();
                        $('#tableAssetAlert>tbody>tr').tsort('td:eq(0)', { order: 'asc' });
                        self.setAssetAlertsAllowed(msg.assetAlertsAllowed);
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    submitAssetAlert: function (obj) {
        var self = this;

        if ($('#WzBranchId').val() == '0' || $('#WzBranchId').val() == '') {
            $('span[data-valmsg-for=Branch]').show();
            $('#Branch').addClass('input-validation-error');
            return false;
        } else if ($('span[data-valmsg-for=Branch]').css('style') != 'none') {
            $('span[data-valmsg-for=Branch]').hide();
            $('#Branch').removeClass('input-validation-error');
        }

        $.ajax({
            type: 'POST',
            url: $(obj).attr('action'),
            data: {
                AssetAlertId: $('#AssetAlertId').val(),
                Name: $('#Name').val(),
                WzBranchId: $('#WzBranchId').val(),
                MinEmployeeCount: $('#assetAlertForm #MinEmployeeCount').val(),
                MaxEmployeeCount: $('#assetAlertForm #MaxEmployeeCount').val(),
                MinAnnualTurnover: $('#assetAlertForm #MinAnnualTurnover').val(),
                MaxAnnualTurnover: $('#assetAlertForm #MaxAnnualTurnover').val(),
                ConsiderEmptyEmployeeCount: $('#assetAlertForm #ConsiderEmptyEmployeeCount').prop('checked'),
                ConsiderEmptyAnnualTurnover: $('#assetAlertForm #ConsiderEmptyAnnualTurnover').prop('checked'),
            },
            success: function (msg) {
                if (msg.success) {
                    var ucDate = msg.assetAlert.UpdateDate ? msg.assetAlert.UpdateDate : msg.assetAlert.CreateDate;
                    var assetAlertLine = '<tr id="' + msg.assetAlert.AssetAlertId + '"><td><a href="' + self.settings.assetAlertListUrl.replace('/99/', '/' + msg.assetAlert.AssetAlertId + '/') + '">' + msg.assetAlert.Name + '</a></td><td>' + moment(ucDate).format('DD.MM.YYYY') + '</td><td><a href="#" onclick="AssetAlert.editAssetAlert(' + msg.assetAlert.AssetAlertId + ');"><i class="icon-edit"></i></a></td><td><a href="#" onclick="AssetAlert.deleteAssetAlert(' + msg.assetAlert.AssetAlertId + ');"><i class="icon-remove"></i></a></td></tr>';

                    if (!msg.update) {
                        $('#tableAssetAlert tbody').append(assetAlertLine);
                        $('#tableAssetAlert>tbody>tr').tsort('td:eq(0)', { order: 'asc' });
                    } else {
                        $('#tableAssetAlert tr#' + msg.assetAlert.AssetAlertId).replaceWith(assetAlertLine);
                    }


                    self.setAssetAlertsAllowed(msg.assetAlertsAllowed);

                    $('#detailsModal').modal('hide');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });

        return false;
    },

    setAssetAlertsAllowed: function (assetAlertsAllowed) {
        $('#assetAlertsField').html(assetAlertsAllowed);

        if (assetAlertsAllowed == 0) {
            $('#addAssetAlert').addClass('disabled');
        } else if ($('#addAssetAlert').hasClass('disabled')) {
            $('#addAssetAlert').removeClass('disabled');
        }
    }
};;/* My Insolvencies */
var MyInsolvencies = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    toggleFavorite: function (publicInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: MyInsolvencies.settings.getToggleFavoriteUrl,
            dataType: 'json',
            data: {
                publicInsolvencyId: publicInsolvencyId
            },
            success: function (msg) {
                if (msg.IsFavorite) {
                    $('#fav-' + publicInsolvencyId + ' img').attr('src', MyInsolvencies.settings.favoriteImage);
                } else if (!msg.IsFavorite && !msg.IsFavoriteOrganisation && !msg.HasClaim && !msg.HasClaimOrganisation && !msg.IsObserved && !msg.ObserveNews) {
                    $($('#fav-' + publicInsolvencyId).parents('tr')[0]).remove();
                } else {
                    $('#fav-' + publicInsolvencyId + ' img').attr('src', MyInsolvencies.settings.notFavoriteImage);
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });

        MyInsolvencies.getAvailableAlerts();
    },

    toggleFavoriteShared: function (publicInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: MyInsolvencies.settings.getToggleSharedUrl,
            dataType: 'json',
            data: {
                publicInsolvencyId: publicInsolvencyId
            },
            success: function (msg) {
                if (msg.IsFavoriteOrganisation) {
                    $('#favOrg-' + publicInsolvencyId + ' img').attr('src', MyInsolvencies.settings.sharedImage);
                } else if (!msg.IsFavorite && !msg.IsFavoriteOrganisation && !msg.HasClaim && !msg.HasClaimOrganisation && !msg.IsObserved && !msg.ObserveNews) {
                    $($('#favOrg-' + publicInsolvencyId).parents('tr')[0]).remove();
                } else {
                    $('#favOrg-' + publicInsolvencyId + ' img').attr('src', MyInsolvencies.settings.notSharedImage);
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });

        MyInsolvencies.getAvailableAlerts();
    },

    toggleObserved: function (publicInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: MyInsolvencies.settings.getToggleObservedUrl,
            dataType: 'json',
            data: {
                publicInsolvencyId: publicInsolvencyId
            },
            success: function (msg) {
                if (msg.success == false) {
                    if (msg.msg) {
                        bootbox.alert(msg.msg);
                    } else {
                        bootbox.alert('Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten.');
                    }
                } else if (msg.IsObserved) {
                    $('#obs-' + publicInsolvencyId + ' img').attr('src', MyInsolvencies.settings.observeImage);
                    if (msg.IsFavorite) {
                        $('#fav-' + publicInsolvencyId + ' img').attr('src', MyInsolvencies.settings.favoriteImage);
                    }
                } else if (!msg.IsFavorite && !msg.IsFavoriteOrganisation && !msg.HasClaim && !msg.HasClaimOrganisation && !msg.IsObserved && !msg.ObserveNews) {
                    $($('#obs-' + publicInsolvencyId).parents('tr')[0]).remove();
                } else {
                    $('#obs-' + publicInsolvencyId + ' img').attr('src', MyInsolvencies.settings.notObserveImage);
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });

        MyInsolvencies.getAvailableAlerts();
    },

    toggleNews: function (publicInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: MyInsolvencies.settings.getToggleNewsUrl,
            dataType: 'json',
            data: {
                publicInsolvencyId: publicInsolvencyId
            },
            success: function (msg) {
                if (msg.success == false) {
                    if (msg.msg) {
                        bootbox.alert(msg.msg);
                    } else {
                        bootbox.alert('Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten.');
                    }
                } else if (msg.ObserveNews) {
                    $('#news-' + publicInsolvencyId + ' img').attr('src', MyInsolvencies.settings.newsImage);
                } else if (!msg.IsFavorite && !msg.IsFavoriteOrganisation && !msg.HasClaim && !msg.HasClaimOrganisation && !msg.IsObserved && !msg.ObserveNews) {
                    $($('#news-' + publicInsolvencyId).parents('tr')[0]).remove();
                } else {
                    $('#news-' + publicInsolvencyId + ' img').attr('src', MyInsolvencies.settings.notNewsImage);
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist beim Hinzufügen der Insolvenz zu Ihrer Beobachtenliste aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });

        MyInsolvencies.getAvailableAlerts();
    },

    getAvailableAlerts: function () {
        $.ajax({
            type: 'POST',
            url: MyInsolvencies.settings.getAvailableAlertsUrl,
            dataType: 'json',
            success: function (msg) {
                if ($('#consumerAlertField').length > 0) {
                    $('#consumerAlertField').text(msg.consumerAlertsAvailable);
                }
                if ($('#companyAlertField').length > 0) {
                    $('#companyAlertField').text(msg.companyAlertsAvailable);
                }
                if ($('#bookmarkField').length > 0) {
                    $('#bookmarkField').text(msg.bookmarksAvailable);
                }
            }
        });
    }
};;/* Office */
var Office = {
    settings: {},

    init: function(options) {
        $.extend(this.settings, options);
    },

    initFunctions: function() {
        $('.officeProfile').readmore({
            substr_len: 200
        });

        $('.flexslider').flexslider({
            pauseOnHover: true,
            animation: "slide",
            animationLoop: false
        });

        jQuery().modal.Constructor.prototype.enforceFocus = function() {};
    },

    printOffice: function(officeId) {
        window.open(Office.settings.getPrintUrl + '?officeId=' + officeId, 'Kanzlei', 'width=800, height=600');
    },

    showLocations: function(stpAdminId) {
        $('#insolvencies-' + stpAdminId).hide();
        $('#locations-' + stpAdminId).show();
    },

    showInsolvencies: function(stpAdminId) {
        $('#locations-' + stpAdminId).hide();
        $('#insolvencies-' + stpAdminId).show();

        if (!Office.settings.publicationArray[stpAdminId] && stpAdminId !== undefined) {
            $.ajax({
                type: 'GET',
                url: Office.settings.getvCardUrl,
                dataType: 'html',
                contentType: 'application/json; charset=utf-8',
                data: {
                    stpAdminId: stpAdminId
                },
                success: function(msg) {
                    Office.settings.publicationArray[stpAdminId] = msg;
                    $('#insolvencies-' + stpAdminId).html(msg);
                },
                error: function() {
                    $('#insolvencies-' + stpAdminId).html('Ein Fehler ist aufgetreten.<br/>Bitte versuchen Sie es erneut.');
                }
            });
        } else {
            $('#insolvencies-' + stpAdminId).html(Office.settings.publicationArray[stpAdminId]);
        }
    },

    initHandlers: function (assignProduct, editP3License) {
        $('#editOfficeModal').on('shown', function () {
            InsoPortal.refreshModalBodyHeight($('#editOfficeModal'));
        });

        $('#editOfficeModal').modal({
            show: false
        }).css({
            width: 'auto',
            'margin-left': function() {
                return -($(this).width() / 2);
            }
        });

        $('#changeLocationModal').modal({
            show: false
        });

        $('#createCertificationModal').modal({
            show: false
        });

        $('#createEntryModal').modal({
            show: false
        });

        var uploader = new qq.FileUploader({
            element: document.getElementById('fileUpload'),
            action: Office.settings.getUploadLogoUrl,
            params: {
                officeId: Office.settings.officeId
            },
            template: '<div class="qq-uploader">' +
                '<div class="qq-upload-drop-area"><span>Datei zum hochladen hier ablegen</span></div>' +
                '<button class="qq-upload-button btn">Logo hochladen*</button>' +
                '<ul class="qq-upload-list"></ul>' +
                '</div>'
        });

        $('#addFocus').click(function() {
            $('#createEntryForm #entryType').val(1);
            $('#createEntryForm #entryId').val('');
            $('#createEntryForm #name').val('');
            $('#createEntryForm #entryDescription').val('');
            $('#createEntryForm #link').val('');
            $('#createEntryModal').modal('show');
        });

        $('#addCertification').click(function() {
            $('#createCertificationForm #entryType').val(3);
            $('#createCertificationForm #entryId').val('');
            $('#createCertificationForm #name').val('');
            $('#createCertificationForm #entryDescription').val('');
            $('#createCertificationForm #link').val('');
            $('#createCertificationForm #imageUrl').val('');
            $('#createCertificationModal').modal('show');
        });

        $('#createCertificationForm').submit(function() {
            $.ajax({
                type: 'POST',
                url: Office.settings.getCreateEntryTypeUrl,
                data: {
                    entryType: $('#createCertificationForm #entryType').val(),
                    entryId: $('#createCertificationForm #entryId').val(),
                    name: $('#createCertificationForm #name').val(),
                    description: $('#createCertificationForm #entryDescription').val(),
                    link: $('#createCertificationForm #link').val(),
                    imageUrl: $('#createCertificationForm #imageUrl').val()
                },
                success: function(msg) {
                    if (msg.success) {
                        if (msg.entryId != $('#createCertificationForm #entryId').val()) {
                            if (msg.entryType == 3) {
                                $('#tableCertifications tbody').append('<tr id="' + msg.entryId + '"><td><input type="checkbox" name="Certifications" value="' + msg.entryId + '"></td><td><a href="#" onclick="Office.removeCertification(' + msg.entryId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="Office.editEntryType(3, ' + msg.entryId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.name + '</td><td>' + (msg.imageUrl ? '<img src="' + msg.imageUrl + '" alt="' + msg.name + '" title="' + msg.name + '" style="max-height:32px;" />' : '') + '</td></tr>');
                            }
                        } else {
                            if (msg.entryType == 3) {
                                $('#tableCertifications tr[id="' + msg.entryId + '"]').html('<td><input type="checkbox" name="Certifications" value="' + msg.entryId + '"></td><td><a href="#" onclick="Office.removeCertification(' + msg.entryId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="Office.editEntryType(3, ' + msg.entryId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.name + '</td><td>' + (msg.imageUrl ? '<img src="' + msg.imageUrl + '" alt="' + msg.name + '" title="' + msg.name + '" style="max-height:32px;" />' : '') + '</td>');
                            }
                        }

                        $('#createCertificationModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#createEntryForm').submit(function() {
            $.ajax({
                type: 'POST',
                url: Office.settings.getCreateEntryTypeUrl,
                data: {
                    entryType: $('#createEntryForm #entryType').val(),
                    entryId: $('#createEntryForm #entryId').val(),
                    name: $('#createEntryForm #name').val(),
                    description: $('#createEntryForm #entryDescription').val(),
                    link: $('#createEntryForm #link').val()
                },
                success: function(msg) {
                    if (msg.success) {
                        if (msg.entryId != $('#createEntryForm #entryId').val()) {
                            if (msg.entryType == 1) {
                                $('#tableFoci tbody').append('<tr id="' + msg.entryId + '"><td><input type="checkbox" name="Foci" value="' + msg.entryId + '"></td><td><a href="#" onclick="Office.removeFoci(' + msg.entryId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="Office.editEntryType(1, ' + msg.entryId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.name + '</td></tr>');
                            }
                        } else {
                            if (msg.entryType == 1) {
                                $('#tableFoci tr[id="' + msg.entryId + '"]').html('<td><input type="checkbox" name="Foci" value="' + msg.entryId + '"></td><td><a href="#" onclick="Office.removeFoci(' + msg.entryId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="Office.editEntryType(1, ' + msg.entryId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.name + '</td>');
                            }
                        }

                        $('#createEntryModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        if (assignProduct !== undefined && assignProduct == true) {
            if (Office.settings.officeProductId == '') {
                var officeOfficeProductId = document.getElementById('Office_OfficeProductId');

                for (var x = 0; x < officeOfficeProductId.options.length; x++) {
                    if (officeOfficeProductId.options[x].value == 0) {
                        officeOfficeProductId.selectedIndex = x;
                        break;
                    }
                }
            }
        }

        if (editP3License !== undefined && editP3License == true) {
            $('#createLicenseModal').modal({
                show: false
            });

            $('#addP3License').click(function() {
                $('#createLicenseForm #OfficeLicenseId').val('');
                $('#createLicenseForm #LicenseId').val('');
                $('#createLicenseForm #Description').val('');
                $('#createLicenseModal').modal('show');
            });

            $('#createLicenseForm').submit(function() {
                if ($('#createLicenseForm #LicenseId').val().length == 0) {
                    bootbox.alert('Bitte geben Sie eine Lizenz-Nummer ein!');
                    return false;
                }

                $.ajax({
                    type: 'POST',
                    url: Office.settings.getEditP3LicenseUrl,
                    data: {
                        OfficeLicenseId: $('#createLicenseForm #OfficeLicenseId').val(),
                        OfficeId: $('#createLicenseForm #OfficeId').val(),
                        LicenseId: $('#createLicenseForm #LicenseId').val(),
                        Description: $('#createLicenseForm #Description').val(),
                        WZ99: $('#createLicenseForm #WZ99').is(':checked')
                    },
                    success: function(msg) {
                        if (msg.LicenseId == null && msg.OfficeId == 0) {
                            bootbox.alert(msg.Description);
                        } else {
                            var line = '<tr id="' + msg.OfficeLicenseId + '"><td><a href="#" onclick="Office.removeLicense(' + msg.OfficeLicenseId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="Office.editLicense(' + msg.OfficeLicenseId + ', \'' + msg.LicenseId + '\', \'' + (msg.Description == null ? '' : msg.Description) + '\', ' + msg.WZ99 + ');"><i class="icon-pencil"></i></a></td><td>' + msg.LicenseId + '</td><td>' + (msg.Description == null ? '' : msg.Description) + '</td><td><i class="' + (msg.WZ99 ? 'icon-check' : 'icon-check-empty') + '"></i></td></tr>';
                            var oldLine = $('#p3Licenses tr[id="' + $('#createLicenseForm #OfficeLicenseId').val() + '"]')[0];

                            if (oldLine == undefined) {
                                $('#p3Licenses tbody').append(line);
                            } else {
                                $(oldLine).replaceWith(line);
                            }

                            $('#createLicenseModal').modal('hide');
                        }
                    }
                });

                return false;
            });
        }

        $('#addGisId').click(function () {
            $('#createOfficeGisForm #GisId').val('');
            
            $('#createOfficeGisModal').modal('show');
        });

        $('#createOfficeGisForm').submit(function () {
            if ($('#createOfficeGisForm #GisId').val().length == 0) {
                bootbox.alert('Bitte geben Sie eine GIS id ein!');
                return false;
            }

            $.ajax({
                type: 'POST',
                url: Office.settings.getCreateOfficeGisUrl,
                data: {
                    OfficeId: $('#createOfficeGisForm #OfficeId').val(),
                    GisId: $('#createOfficeGisForm #GisId').val()
                },
                success: function (msg) {
                    if (msg.msg.length != 0) {
                        bootbox.alert(msg.msg);
                    } else {
                        var line = '<tr id="' + msg.data.OfficeGisId + '"><td><a href="#" onclick="Office.removeOfficeGis(' + msg.data.OfficeGisId + ');"><i class="icon-trash"></i></a></td><td>' + msg.data.GisId + '</td></tr>';

                        $('#gisIdsTable tbody').append(line);

                        $('#createOfficeGisModal').modal('hide');
                    }
                }
            });

            return false;
        });
    },

    editLocation: function(locationId, street, streetnumber, zip, city, phone, fax, email) {
        $('#changeLocationForm #locationId').val(locationId);
        $('#changeLocationForm #street').val(street);
        $('#changeLocationForm #streetnumber').val(streetnumber);
        $('#changeLocationForm #zip').val(zip);
        $('#changeLocationForm #city').val(city);
        $('#changeLocationForm #phone').val(phone);
        $('#changeLocationForm #fax').val(fax);
        $('#changeLocationForm #email').val(email);
        $('#changeLocationModal').modal('show');
    },

    removeCertification: function(officeCertificationId) {
        bootbox.confirm('Möchten Sie das ausgewählte Zertifikat löschen?', function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: Office.settings.getRemoveCertificationUrl,
                data: {
                    officeCertificationId: officeCertificationId
                },
                success: function(msg) {
                    if (msg.success) {
                        $('#tableCertifications tr[id="' + officeCertificationId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    removeFoci: function(officeFocusId) {
        bootbox.confirm('Möchten Sie den ausgewählten Schwerpunkt löschen?', function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: Office.settings.getRemoveFociUrl,
                data: {
                    officeFocusId: officeFocusId
                },
                success: function(msg) {
                    if (msg.success) {
                        $('#tableFoci tr[id="' + officeFocusId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    editEntryType: function(entryType, entryId) {
        $.ajax({
            type: 'POST',
            url: Office.settings.getReadEntryTypeUrl,
            data: {
                entryType: entryType,
                entryId: entryId
            },
            success: function(msg) {
                if (msg.success) {
                    if (entryType == 3) {
                        $('#createCertificationForm #entryType').val(entryType);
                        $('#createCertificationForm #entryId').val(entryId);
                        $('#createCertificationForm #name').val(msg.name);
                        $('#createCertificationForm #entryDescription').val(msg.description);
                        $('#createCertificationForm #link').val(msg.link);
                        $('#createCertificationForm #imageUrl').val(msg.imageUrl);
                        $('#createCertificationModal').modal('show');
                    } else {
                        $('#createEntryForm #entryType').val(entryType);
                        $('#createEntryForm #entryId').val(entryId);
                        $('#createEntryForm #name').val(msg.name);
                        $('#createEntryForm #entryDescription').val(msg.description);
                        $('#createEntryForm #link').val(msg.link);
                        $('#createEntryModal').modal('show');
                    }
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function() {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    editLicense: function(officeLicenseId, licenseId, description, wz99) {
        $('#createLicenseForm #OfficeLicenseId').val(officeLicenseId);
        $('#createLicenseForm #LicenseId').val(licenseId);
        $('#createLicenseForm #Description').val(description);
        $('#createLicenseForm #WZ99').attr('checked', wz99);
        $('#createLicenseModal').modal('show');
    },

    removeLicense: function(officeLicense) {
        bootbox.confirm('Möchten Sie die ausgewählte Lizenz löschen?', function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: Office.settings.getRemoveP3LicenseUrl,
                data: {
                    officeLicenseId: officeLicense
                },
                success: function(msg) {
                    if (msg.success) {
                        $('#p3Licenses tr[id="' + officeLicense + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function() {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    loadInsolvencies: function (url, officeId, spinContent) {
        $('#NewInsolvencies').html('<img src="' + spinContent + '" alt="Daten werden geladen" />');

        $.ajax({
            type: 'POST',
            url: url,
            dataType: 'json',
            data: {
                officeId: officeId
            },
            success: function(msg) {
                if (msg.success) {
                    if (msg.insolvencies.length > 0) {
                        var table = $('<table />').addClass('table table-striped table-hover');
                        table.append($('<thead />').append($('<tr />').append(
                            '<th scope="col">Schuldnername</th>' +
                            '<th scope="col">Gericht</th>' +
                            '<th scope="col">Vorl. Verf.</th>' +
                            '<th scope="col">Umsatz</th>')));
                        var tbody = table.append($('<tbody />'));

                        $.each(msg.insolvencies, function(index, item) {
                            var row = $('<tr />').append(
                                '<td><a href="' + item.Url + '">' + item.DebitorName + '</a>' + Office.setHtmlTags(item.EsugState, item.SelfAdministration) + '</td>' +
                                '<td>' + item.CourtName + '</td>' +
                                '<td>' + (item.TempInsolvencyOpeningDate != null ? item.TempInsolvencyOpeningDate : "") + '</td>' +
                                '<td>' + Office.getAnnualTurnover(item.CurrentAnnualTurnover) + '</td>');
                            tbody.append(row);
                        });

                        $('#NewInsolvencies').html(table);
                    } else {
                        $('#NewInsolvencies').html('<div class="alert">Keine Verfahren gefunden.</div>');
                    }
                } else {
                    $('#NewInsolvencies').html('<div class="alert">' + msg.error + '</div>');
                }
            },
            error: function() {
                $('#NewInsolvencies').html('<div class="alert">Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.</div>');
            }
        });
    },
    
    setHtmlTags: function (EsugState, SelfAdministration) {
            var whiteSpace = "&nbsp;";

            var returnString = "";

            if (EsugState == 2)
                returnString += whiteSpace + "<span class=\"label label-selfadministration\" title=\"Schutzschirmverfahren nach § 270b\">§ 270b</span>";

            if (EsugState == 4)
                returnString += whiteSpace + "<span class=\"label\" title=\"Früheres Schutzschirmverfahren nach § 270b\">§ 270b</span>";

            if (EsugState == 3)
                returnString += whiteSpace + "<div class=\"inline-block\"><div class=\"line-diagonal-red\"></div><span class=\"label\" title=\"Frühere vorläufige Eigenverwaltung nach § 270a\">§ 270a</span></div>";

            if (EsugState == 1)
                returnString += whiteSpace + "<span class=\"label label-selfadministration\" title=\"Vorläufige Eigenverwaltung nach § 270a\">§ 270a</span>";

            if (SelfAdministration)
                returnString += whiteSpace + "<span class=\"label label-selfadministration\" title=\"Eigenverwaltung\">EV</span>";

            return returnString;
    },

    getAnnualTurnover: function (annualTurnover) {
        if (annualTurnover) {
            return '<span class="label label-warning" title="Umsatz des Unternehmens: ' + annualTurnover + '">' + annualTurnover + '</span>';
        }

        return '';
    },

    initLocation: function (isMapInitialized) {
        
        $('#LocationsAlphabetical').hide();

        $("input[name=locationsRadio]:radio").change(function () {
            if ($("input[name=locationsRadio]:checked").val() == 'alphabetical') {
                $('#LocationsMap').hide();
                $('#LocationsAlphabetical').show();
            } else if ($("input[name=locationsRadio]:checked").val() == 'map') {
                $('#LocationsAlphabetical').hide();
                $('#LocationsMap').show();
            }
        });

        $('a[href="#locationsTab"]').on('shown.bs.tab', function (e) {
            if (!isMapInitialized) {
                initializeMap();
            }
        });

    },

    initPrintOfficeProfilePopover: function(url) {
        
        $(".kanzleiProfilDrucken").popover({
            content: "Um das Kanzleiprofil zu drucken, müssen Sie sich <a data-toggle=\"modal\" href=\"#LoginModal\">einloggen</a>. <br/><br/> Noch kein Login, dann hier kostenfrei <a href=\"" + url +"\">registrieren</a>",
            title: "",
        trigger: "hover",
        html: true,
        placement: "top",
        delay: { show: 100, hide: 1300 }
    });

    },

    printEnterprise: function (url) {
        var params = [
            'height=' + (screen.height - 100),
            'width=' + (screen.width - 15),
            'left=0',
            'top=0',
            'fullscreen=yes'
        ].join(',');

        var printWindow = window.open(url, 'Kanzleiprofil', params);

        printWindow.focus();
        printWindow.print();
    },

    removeOfficeGis: function(officeGisId) {
        
        $.ajax({
            type: 'POST',
            url: Office.settings.getRemoveOfficeGisUrl,
            data: {
                officeGisId: officeGisId
            },
            success: function (msg) {
                if (msg.success) {
                    $('#gisIdsTable #' + officeGisId).remove();

                } else {
                    bootbox.alert("Beim löschen der GisId ist ein Fehler aufgetreten.");
                }
            }
        });

    }
};;/* StpAdmin */
var StpAdmin = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },
    
    initFunctions: function() {
        $('.stpAdminProfile').readmore({
            substr_len: 200
        });

        $('.flexslider').flexslider({
            pauseOnHover: true,
            animation: "slide",
            animationLoop: false
        });
        
        jQuery().modal.Constructor.prototype.enforceFocus = function () { };
    },
    
    loadInsolvencies: function (stpAdminId) {
        $.ajax({
            type: 'GET',
            url: StpAdmin.settings.getvCardUrl,
            dataType: 'html',
            contentType: 'application/json; charset=utf-8',
            data: {
                stpAdminId: stpAdminId
            },
            success: function (msg) {
                $('#adminInsolvencies').html(msg);
            },
            error: function () {
                $('#adminInsolvencies').html('Ein Fehler ist aufgetreten.<br/>Bitte versuchen Sie es erneut.');
            }
        });
    },
    
    loadNewInsolvencies: function (url, adminId, contentUrl) {
        $('#NewInsolvencies').html('<img src="' + contentUrl + '" alt="Daten werden geladen" />');

        $.ajax({
            type: 'POST',
            url: url,
            dataType: 'json',
            data: {
                stpAdminId: adminId,
                insolvencyType: $("input[name=typeRadio]:checked").val()
            },
            success: function(msg) {
                if (msg.success) {
                    if (msg.insolvencies.length > 0) {
                        var table = $('<table />').addClass('table table-striped table-hover');
                        table.append($('<thead />').append($('<tr />').append(
                            '<th scope="col">Schuldnername</th>' +
                            '<th scope="col">Gericht</th>' +
                            '<th scope="col">' + ($("input[name=typeRadio]:checked").val() == '@InsolvencyTypeEnum.Company' ? 'Vorl. Verf.' : 'Eröffnung') + '</th>' +
                            ($("input[name=typeRadio]:checked").val() != '@InsolvencyTypeEnum.Person' ? '<th scope="col">Umsatz</th>' : ''))));
                        var tbody = table.append($('<tbody />'));

                        $.each(msg.insolvencies, function(index, item) {
                            var row = $('<tr />').append(
                                '<td><a href="' + item.Url + '">' + item.DebitorName + '</a>' + StpAdmin.setHtmlTags(item.EsugState, item.SelfAdministration) + '</td>' +
                                '<td>' + item.CourtName + '</td>' +
                                '<td>' + ($("input[name=typeRadio]:checked").val() == '@InsolvencyTypeEnum.Company' ? (item.TempInsolvencyOpeningDate != null ? item.TempInsolvencyOpeningDate : "") : (item.InsolvencyOpeningDate != null ? item.InsolvencyOpeningDate : "")) + '</td>' +
                                ($("input[name=typeRadio]:checked").val() != '@InsolvencyTypeEnum.Person' ? '<td>' + StpAdmin.getAnnualTurnover(item.CurrentAnnualTurnover) + '</td>' : ''));
                            tbody.append(row);
                        });

                        $('#NewInsolvencies').html(table);
                    } else {
                        $('#NewInsolvencies').html('<div class="alert">Keine Verfahren gefunden.</div>');
                    }
                } else {
                    $('#NewInsolvencies').html('<div class="alert">' + msg.error + '</div>');
                }
        },
        error: function() {
            $('#NewInsolvencies').html('<div class="alert">Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.</div>');
        }
        });
    },

    getAnnualTurnover: function (annualTurnover) {
        if (annualTurnover) {
            return '<span class="label label-warning" title="Umsatz des Unternehmens: ' + annualTurnover + '">' + annualTurnover + '</span>';
        }

        return '';
    },

    setHtmlTags: function (EsugState, SelfAdministration) {
        var whiteSpace = "&nbsp;";

        var returnString = "";

        if (EsugState == 2)
            returnString += whiteSpace + "<span class=\"label label-selfadministration\" title=\"Schutzschirmverfahren nach § 270b\">§ 270b</span>";

        if (EsugState == 4)
            returnString += whiteSpace + "<span class=\"label\" title=\"Früheres Schutzschirmverfahren nach § 270b\">§ 270b</span>";

        if (EsugState == 3)
            returnString += whiteSpace + "<div class=\"inline-block\"><div class=\"line-diagonal-red\"></div><span class=\"label\" title=\"Frühere vorläufige Eigenverwaltung nach § 270a\">§ 270a</span></div>";

        if (EsugState == 1)
            returnString += whiteSpace + "<span class=\"label label-selfadministration\" title=\"Vorläufige Eigenverwaltung nach § 270a\">§ 270a</span>";

        if (SelfAdministration)
            returnString += whiteSpace + "<span class=\"label label-selfadministration\" title=\"Eigenverwaltung\">EV</span>";

        return returnString;
    },

    initHandlers: function () {
        $('#editAdminModal').modal({
            show: false
        }).css({
            width: 'auto',
            'margin-left': function () {
                return -($(this).width() / 2);
            }
        });
        
        $('#editAdminModal').on('shown', function () {
            InsoPortal.refreshModalBodyHeight($('#editAdminModal'));
        });

        var uploader = new qq.FileUploader({
            element: document.getElementById('fileUpload'),
            action: StpAdmin.settings.getUpdatePortraitUrl,
            params: {
                stpAdminId: StpAdmin.settings.stpAdminId
            },
            template: '<div class="qq-uploader">' +
                        '<div class="qq-upload-drop-area"><span>Datei zum hochladen hier ablegen</span></div>' +
                        '<button class="qq-upload-button btn">Portrait hochladen*</div>' +
                        '<ul class="qq-upload-list"></ul>' +
                        '</div>'
        });
            
        if (StpAdmin.settings.adminProductId == '') {
            var stpAdminAdminProductId = document.getElementById('StpAdmin_AdminProductId');

            for (var x = 0; x < stpAdminAdminProductId.options.length; x++) {
                if (stpAdminAdminProductId.options[x].value == 0) {
                    stpAdminAdminProductId.selectedIndex = x;
                    break;
                }
            }
        }
            
        $('#createReferenceModal').modal({
            show: false
        });
            
        $('#createOrganisationModal').modal({
            show: false
        });
            
        $('#createFocusModal').modal({
            show: false
        });
            
        $('#createLanguageModal').modal({
            show: false
        });

        $('#createQualificationModal').modal({
            show: false
        });

        $('#selectInsolvencyModal').modal({
            show: false
        }).css({
            width: 'auto',
            height: '550px',
            'margin-left': function () {
                return -($(this).width() / 2);
            }
        });

        $('#addReference').click(function () {
            $('#createReferenceForm #stpAdminId').val(StpAdmin.settings.stpAdminId);
            $('#createReferenceForm #publicInsolvencyId').val('');
            $('#createReferenceForm #publicInsolvencyId').removeAttr('disabled');
            $('#createReferenceForm #note').val('');
            $('#createReferenceModal').modal('show');
        });

        $('#addOrganisation').click(function () {
            $('#createOrganisationForm #adminOrganisationId').val('');
            $('#createOrganisationForm #name').val('');
            $('#createOrganisationForm #description').val('');
            $('#createOrganisationForm #link').val('');
            $('#createOrganisationForm #imageUrl').val('');
            $('#createOrganisationModal').modal('show');
        });

        $('#addFocus').click(function () {
            $('#createFocusForm #adminFocusId').val('');
            $('#createFocusForm #focus').val('');
            $('#createFocusForm #link').val('');
            $('#createFocusModal').modal('show');
        });

        $('#addLanguage').click(function () {
            $('#createLanguageForm #adminLanguageId').val('');
            $('#createLanguageForm #language').val('');
            $('#createLanguageModal').modal('show');
        });

        $('#addQualification').click(function () {
            $('#createQualificationForm #adminQualificationId').val('');
            $('#createQualificationForm #qualification').val('');
            $('#createQualificationForm #link').val('');
            $('#createQualificationModal').modal('show');
        });

        $('#selectInsolvencyButton').click(function () {
            updateMessage();
            $('#selectInsolvencyModal').modal('show');
            $('#selectInsolvencyIFrame').attr('src', StpAdmin.settings.getSearchUrl);
            return false;
        });
            
        $('#createReferenceForm').submit(function () {
            $.ajax({
                type: 'POST',
                url: StpAdmin.settings.getCreateReferenceUrl,
                data: {
                    stpAdminId: $('#createReferenceForm #stpAdminId').val(),
                    publicInsolvencyId: $('#createReferenceForm #publicInsolvencyId').val(),
                    note: $('#createReferenceForm #note').val()
                },
                success: function (msg) {
                    if (msg.success) {
                        if (!msg.update) {
                            $('#tableReference tbody').append('<tr id="' + msg.adminReferenceProcedureId + '"><td><input type="checkbox" name="ReferenceProcedures" value="' + msg.adminReferenceProcedureId + '"></td><td><a href="#" onclick="StpAdmin.removeReference(' + msg.publicInsolvencyId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="StpAdmin.editReference(' + msg.publicInsolvencyId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.publicInsolvencyId + '</td><td>' + msg.debitorName + '</td></tr>');
                        } else {
                            $('#tableReference #' + msg.publicInsolvencyId + ' td:last').text('' + msg.debitorName + '');
                        }
                        $('#createReferenceModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#createOrganisationForm').submit(function () {
            $.ajax({
                type: 'POST',
                url: StpAdmin.settings.getCreateOrganisationUrl,
                data: {
                    adminOrganisationId: $('#createOrganisationForm #adminOrganisationId').val(),
                    name: $('#createOrganisationForm #name').val(),
                    description: $('#createOrganisationForm #description').val(),
                    link: $('#createOrganisationForm #link').val(),
                    imageUrl: $('#createOrganisationForm #imageUrl').val()
                },
                success: function (msg) {
                    if (msg.success) {
                        if (!msg.update) {
                            $('#tableOrganisations tbody').append('<tr id="' + msg.entry.AdminOrganisationId + '"><td><input type="checkbox" name="Organisations" value="' + msg.entry.AdminOrganisationId + '" checked = "checked" /></td><td><a href="#" onclick="StpAdmin.removeOrganisation(' + msg.entry.AdminOrganisationId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="StpAdmin.editOrganisation(' + msg.entry.AdminOrganisationId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.entry.Name + '</td><td>' + (msg.entry.ImageUrl ? '<img src="' + msg.entry.ImageUrl + '" alt="' + msg.entry.Name + '" title="' + msg.entry.Name + '" style="max-height:32px;" />' : '') + '</td></tr>');
                        } else {
                            $('#tableOrganisations tr[id="' + msg.entry.AdminOrganisationId + '"]').html('<td><input type="checkbox" name="Organisations" value="' + msg.entry.AdminOrganisationId + '" checked = "checked" /></td><td><a href="#" onclick="StpAdmin.removeOrganisation(' + msg.entry.AdminOrganisationId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="StpAdmin.editOrganisation(' + msg.entry.AdminOrganisationId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.entry.Name + '</td><td>' + (msg.entry.ImageUrl ? '<img src="' + msg.entry.ImageUrl + '" alt="' + msg.entry.Name + '" title="' + msg.entry.Name + '" style="max-height:32px;" />' : '') + '</td>');
                        }
                        $('#createOrganisationModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#createFocusForm').submit(function () {
            $.ajax({
                type: 'POST',
                url: StpAdmin.settings.getCreateFocusUrl,
                data: {
                    adminFocusId: $('#createFocusForm #adminFocusId').val(),
                    focus: $('#createFocusForm #focus').val(),
                    link: $('#createFocusForm #link').val()
                },
                success: function (msg) {
                    if (msg.success) {
                        if (!msg.update) {
                            $('#tableFoci tbody').append('<tr id="' + msg.adminFocusId + '"><td><input type="checkbox" name="Foci" value="' + msg.adminFocusId + '" /></td><td><a href="#" onclick="StpAdmin.removeFocus(' + msg.adminFocusId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="StpAdmin.editFocus(' + msg.adminFocusId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.focus + '</td></tr>');
                        } else {
                            $('#tableFoci #' + msg.adminFocusId + ' td:last').text('' + msg.focus + '');
                        }
                        $('#createFocusModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#createLanguageForm').submit(function () {
            $.ajax({
                type: 'POST',
                url: StpAdmin.settings.getCreateLanguageUrl,
                data: {
                    adminLanguageId: $('#createLanguageForm #adminLanguageId').val(),
                    language: $('#createLanguageForm #language').val()
                },
                success: function (msg) {
                    if (msg.success) {
                        if (!msg.update) {
                            $('#tableLanguages tbody').append('<tr id="' + msg.adminLanguageId + '"><td><input type="checkbox" name="Languages" value="' + msg.adminLanguageId + '" /></td><td><a href="#" onclick="StpAdmin.removeLanguage(' + msg.adminLanguageId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="StpAdmin.editLanguage(' + msg.adminLanguageId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.language + '</td></tr>');
                        } else {
                            $('#tableLanguages #' + msg.adminLanguageId + ' td:last').text('' + msg.language + '');
                        }
                        $('#createLanguageModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#createQualificationForm').submit(function () {
            $.ajax({
                type: 'POST',
                url: StpAdmin.settings.getCreateQualificationUrl,
                data: {
                    adminQualificationId: $('#createQualificationForm #adminQualificationId').val(),
                    qualification: $('#createQualificationForm #qualification').val(),
                    link: $('#createQualificationForm #link').val()
                },
                success: function (msg) {
                    if (msg.success) {
                        if (!msg.update) {
                            $('#tableQualifications tbody').append('<tr id="' + msg.adminQualificationId + '"><td><input type="checkbox" name="Qualifications" value="' + msg.adminQualificationId + '" /></td><td><a href="#" onclick="StpAdmin.removeQualification(' + msg.adminQualificationId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="StpAdmin.editQualification(' + msg.adminQualificationId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.qualification + '</td></tr>');
                        } else {
                            $('#tableQualifications #' + msg.adminQualificationId + ' td:last').text('' + msg.qualification + '');
                        }
                        $('#createQualificationModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });
    },
    
    editReference: function (publicInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: StpAdmin.settings.getReadReferenceUrl,
            data: {
                stpAdminId: StpAdmin.settings.stpAdminId,
                publicInsolvencyId: publicInsolvencyId
            },
            success: function (msg) {
                if (msg.success) {
                    $('#createReferenceForm #stpAdminId').val(StpAdmin.settings.stpAdminId);
                    $('#createReferenceForm #publicInsolvencyId').val(msg.publicInsolvencyId);
                    $('#createReferenceForm #publicInsolvencyId').attr('disabled', 'disabled');
                    $('#createReferenceForm #note').val(msg.note);
                    $('#createReferenceModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },
    
    removeReference: function (publicInsolvencyId) {
        bootbox.confirm('Möchten Sie den Referenzeintrag löschen?', function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: StpAdmin.settings.getRemoveReferenceUrl,
                data: {
                    stpAdminId: StpAdmin.settings.stpAdminId,
                    publicInsolvencyId: publicInsolvencyId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableReference tr[id="' + publicInsolvencyId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },
    
    editOrganisation: function (adminOrganisationId) {
        $.ajax({
            type: 'POST',
            url: StpAdmin.settings.getReadOrganisationUrl,
            data: {
                adminOrganisationId: adminOrganisationId
            },
            success: function (msg) {
                if (msg.success) {
                    $('#createOrganisationForm #adminOrganisationId').val(adminOrganisationId);
                    $('#createOrganisationForm #name').val(msg.name);
                    $('#createOrganisationForm #description').val(msg.description);
                    $('#createOrganisationForm #link').val(msg.link);
                    $('#createOrganisationForm #imageUrl').val(msg.imageUrl);
                    $('#createOrganisationModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },
    
    removeOrganisation: function (adminOrganisationId) {
        bootbox.confirm('Möchten Sie die Organisation löschen?', function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: StpAdmin.settings.getRemoveOrganisationUrl,
                data: {
                    adminOrganisationId: adminOrganisationId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableOrganisations tr[id="' + adminOrganisationId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },
    
    editFocus: function (adminFocusId) {
        $.ajax({
            type: 'POST',
            url: StpAdmin.settings.getReadFocusUrl,
            data: {
                adminFocusId: adminFocusId
            },
            success: function (msg) {
                if (msg.success) {
                    $('#createFocusForm #adminFocusId').val(adminFocusId);
                    $('#createFocusForm #focus').val(msg.focus);
                    $('#createFocusForm #link').val(msg.link);
                    $('#createFocusModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },
    
    removeFocus: function (adminFocusId) {
        bootbox.confirm('Möchten Sie den Schwerpunkt löschen?', function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: StpAdmin.settings.getRemoveFocusUrl,
                data: {
                    adminFocusId: adminFocusId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableFoci tr[id="' + adminFocusId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },
    
    editLanguage: function (adminLanguageId) {
        $.ajax({
            type: 'POST',
            url: StpAdmin.settings.getReadLanguageUrl,
            data: {
                adminLanguageId: adminLanguageId
            },
            success: function (msg) {
                if (msg.success) {
                    $('#createLanguageForm #adminLanguageId').val(adminLanguageId);
                    $('#createLanguageForm #language').val(msg.language);
                    $('#createLanguageModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },
    
    removeLanguage: function (adminLanguageId) {
        bootbox.confirm('Möchten Sie die Sprache löschen?', function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: StpAdmin.settings.getRemoveLanguageUrl,
                data: {
                    adminLanguageId: adminLanguageId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableLanguages tr[id="' + adminLanguageId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },
    
    editQualification: function (adminQualificationId) {
        $.ajax({
            type: 'POST',
            url: StpAdmin.settings.getReadQualificationUrl,
            data: {
                adminQualificationId: adminQualificationId
            },
            success: function (msg) {
                if (msg.success) {
                    $('#createQualificationForm #adminQualificationId').val(adminQualificationId);
                    $('#createQualificationForm #qualification').val(msg.qualification);
                    $('#createQualificationForm #link').val(msg.link);
                    $('#createQualificationModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },
    
    removeQualification: function (adminQualificationId) {
        bootbox.confirm('Möchten Sie die Qualifikation löschen?', function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: StpAdmin.settings.getRemoveQualificationUrl,
                data: {
                    adminQualificationId: adminQualificationId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableQualifications tr[id="' + adminQualificationId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    }
};;/* Reorganisation Company */
var ReorganisationCompany = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);

        $('.referenceNote').popover({ trigger: "hover" });
    },
    
    initFunctions: function() {
        $('.companyProfile').readmore({
            substr_len: 200
        });

        $('.flexslider').flexslider({
            pauseOnHover: true,
            animation: "slide",
            animationLoop: false
        });
        
        jQuery().modal.Constructor.prototype.enforceFocus = function () { };
    },
    
    printCompany: function (reorganisationCompanyId) {
        window.open(ReorganisationCompany.settings.getPrintUrl + '?reorganisationCompanyId=' + reorganisationCompanyId, 'Unternehmen', 'width=800, height=600');
    },
    
    showLocations: function (reorganisationConsultantId) {
        $('#insolvencies-' + reorganisationConsultantId).hide();
        $('#locations-' + reorganisationConsultantId).show();
    },
    
    showInsolvencies: function (reorganisationConsultantId) {
        $('#locations-' + reorganisationConsultantId).hide();
        $('#insolvencies-' + reorganisationConsultantId).show();
        
        if (!ReorganisationCompany.settings.publicationArray[reorganisationConsultantId] && reorganisationConsultantId !== undefined) {
            $.ajax({
                type: 'GET',
                url: ReorganisationCompany.settings.getConsultantInsolvenciesUrl,
                dataType: 'html',
                contentType: 'application/json; charset=utf-8',
                data: {
                    reorganisationConsultantId: reorganisationConsultantId
                },
                success: function (msg) {
                    ReorganisationCompany.settings.publicationArray[reorganisationConsultantId] = msg;
                    $('#insolvencies-' + reorganisationConsultantId).html(msg);
                },
                error: function () {
                    $('#insolvencies-' + reorganisationConsultantId).html('Ein Fehler ist aufgetreten.<br/>Bitte versuchen Sie es erneut.');
                }
            });
        } else {
            $('#insolvencies-' + reorganisationConsultantId).html(ReorganisationCompany.settings.publicationArray[reorganisationConsultantId]);
        }
    },
    createReferenceInsolvencyForm: function () {
        $.ajax({
            type: 'POST',
            url: ReorganisationCompany.settings.getCreateReferenceInsolvencyUrl,
            data: {
                reorganisationCompanyId: ReorganisationCompany.settings.reorganisationCompanyId,
                publicInsolvencyId: $('#publicInsolvencyId').val(),
                note: $('#note').val()
            },
            success: function (msg) {
                if (msg.success) {

                    $('#tableReferenceInsolvency tbody').append('<tr id="' + msg.reorganisationCompanyReferenceInsolvencyId + '"><td><a href="#" onclick="ReorganisationCompany.removeReferenceInsolvency(' + msg.reorganisationCompanyReferenceInsolvencyId + ');"><i class="icon-trash"></i></a></td><td><a href="#" class="updateCompanyReferenceInsolvency" data-reorganisationcompanyreferenceinsolvencyid="' + msg.reorganisationCompanyReferenceInsolvencyId + '" data-publicinsolvencyid="' + msg.publicInsolvencyId + '" data-note="' + ((msg.note == undefined) ? '' : msg.note) + '"><i class="icon-pencil"></i></a></td><td>' + msg.publicInsolvencyId + '</td><td>' + msg.debitorName + '</td></tr>');

                    ReorganisationCompany.initHandlers();

                    $('#createCompanyReferenceInsolvencyModal').modal('hide');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });

        return false;
    },
    updateReferenceInsolvencyForm: function () {
        $.ajax({
            type: 'POST',
            url: ReorganisationCompany.settings.getUpdateReferenceInsolvencyUrl,
            data: {
                reorganisationCompanyReferenceInsolvencyId: $('#reorganisationcompanyreferenceinsolvencyid').val(),
                publicInsolvencyId: $('#publicInsolvencyId').val(),
                note: $('#note').val()
            },
            success: function (msg) {
                if (msg.success) {
                    $('#tableReferenceInsolvency #' + msg.reorganisationCompanyReferenceInsolvencyId + ' td:nth-child(2) .updateCompanyReferenceInsolvency').attr('data-reorganisationcompanyreferenceinsolvencyid', msg.reorganisationCompanyReferenceInsolvencyId);
                    $('#tableReferenceInsolvency #' + msg.reorganisationCompanyReferenceInsolvencyId + ' td:nth-child(2) .updateCompanyReferenceInsolvency').attr('data-publicinsolvencyid', msg.publicInsolvencyId);
                    $('#tableReferenceInsolvency #' + msg.reorganisationCompanyReferenceInsolvencyId + ' td:nth-child(2) .updateCompanyReferenceInsolvency').attr('data-note', msg.note);

                    $('#tableReferenceInsolvency #' + msg.reorganisationCompanyReferenceInsolvencyId + ' td:nth-child(3)').text('' + msg.publicInsolvencyId + '');
                    $('#tableReferenceInsolvency #' + msg.reorganisationCompanyReferenceInsolvencyId + ' td:last').text('' + msg.debitorName + '');

                    $('#createCompanyReferenceInsolvencyModal').modal('hide');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });

        return false;
    },
    removeReferenceInsolvency: function (reorganisationCompanyReferenceInsolvencyId) {
        bootbox.confirm('Möchten Sie den ausgewählten Eintrag löschen?', function (answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: ReorganisationCompany.settings.getRemoveReferenceInsolvencyUrl,
                data: {
                    reorganisationCompanyReferenceInsolvency: reorganisationCompanyReferenceInsolvencyId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableReferenceInsolvency tr[id="' + reorganisationCompanyReferenceInsolvencyId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },
    initHandlers: function () {
        var uploader = new qq.FileUploader({
            element: document.getElementById('fileUpload'),
            action: ReorganisationCompany.settings.getUpdateLogoUrl,
            params: {
                reorganisationCompanyId: ReorganisationCompany.settings.reorganisationCompanyId
            },
            template: '<div class="qq-uploader">' +
                        '<div class="qq-upload-drop-area"><span>Datei zum hochladen hier ablegen</span></div>' +
                        '<button class="qq-upload-button btn">Logo hochladen</button>' +
                        '<ul class="qq-upload-list"></ul>' +
                        '</div>'
        });
        
        $('#editCompanyModal').modal({
            show: false
        }).css({
            width: 'auto',
            'margin-left': function () {
                return -($(this).width() / 2);
            }
        });
        
        $('#createEntryModal').modal({
            show: false
        });
        
        $('#addCertification').click(function () {
            $('#createEntryForm #entryType').val(0);
            $('#createEntryForm #entryId').val('');
            $('#createEntryForm #name').val('');
            $('#createEntryForm #description').val('');
            $('#createEntryForm #link').val('');
            $('#createEntryModal').modal('show');
        });

        $('#addCompanyReferenceInsolvency').click(function () {
            $('#publicInsolvencyId').val('');
            $('#note').val('');
            $("#updateButton").hide();
            $("#createButton").show();
            $('#createCompanyReferenceInsolvencyModal').modal('show');
        });

        $('.updateCompanyReferenceInsolvency').click(function () {
            $('#reorganisationcompanyreferenceinsolvencyid').val($(this).attr("data-reorganisationcompanyreferenceinsolvencyid"));
            $('#publicInsolvencyId').val($(this).attr("data-publicinsolvencyid"));
            $('#note').val($(this).attr("data-note"));
            $("#updateButton").show();
            $("#createButton").hide();
            $('#createCompanyReferenceInsolvencyModal').modal('show');
        });

        $('#selectInsolvencyButton').click(function () {
            updateMessageCompany();
            $('#selectInsolvencyModal').modal('show');
            $('#selectInsolvencyIFrame').attr('src', ReorganisationCompany.settings.getSearchUrl);
            return false;
        });

        $('#addFocus').click(function () {
            $('#createEntryForm #entryType').val(1);
            $('#createEntryForm #entryId').val('');
            $('#createEntryForm #name').val('');
            $('#createEntryForm #description').val('');
            $('#createEntryForm #link').val('');
            $('#createEntryModal').modal('show');
        });

        $('#createEntryForm').submit(function () {
            $.ajax({
                type: 'POST',
                url: ReorganisationCompany.settings.getCreateEntryTypeUrl,
                data: {
                    entryType: $('#createEntryForm #entryType').val(),
                    entryId: $('#createEntryForm #entryId').val(),
                    name: $('#createEntryForm #name').val(),
                    description: $('#createEntryForm #description').val(),
                    link: $('#createEntryForm #link').val()
                },
                success: function (msg) {
                    if (msg.success) {
                        if (msg.entryId != $('#createEntryForm #entryId').val()) {
                            if (msg.entryType == 0) {
                                $('#tableCertifications tbody').append('<tr id="' + msg.entryId + '"><td><input type="checkbox" name="Certifications" value="' + msg.entryId + '"></td><td><a href="#" onclick="ReorganisationCompany.removeEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="ReorganisationCompany.editEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.name + '</td></tr>');
                            } else if (msg.entryType == 1) {
                                $('#tableFoci tbody').append('<tr id="' + msg.entryId + '"><td><input type="checkbox" name="Foci" value="' + msg.entryId + '"></td><td><a href="#" onclick="ReorganisationCompany.removeEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="ReorganisationCompany.editEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.name + '</td></tr>');
                            }
                        } else {
                            if (msg.entryType == 0) {
                                $('#tableCertifications #' + msg.entryId + ' td:last').text('' + msg.name + '');
                            } else if (msg.entryType == 1) {
                                $('#tableFoci #' + msg.entryId + ' td:last').text('' + msg.name + '');
                            }
                        }

                        $('#createEntryModal').modal('hide');
                    }
                    else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('.setConsultantPositionForm').submit(function (e) {

            if ($(this).valid()) {
                $.ajax({
                    type: 'POST',
                    url: $(this).attr("action"),
                    data: {
                        consultantId: $("input[name='consultant.ReorganisationConsultantId']", this).val(),
                        position: $("input[name='consultant.Position']", this).val()
                    },
                    success: function (msg) {
                        bootbox.alert("Position gespeichert");
                    }
                });
            }

            e.preventDefault();
        });
    },
    
    removeEntry: function (entryType, entryId) {
        bootbox.confirm('Möchten Sie den ausgewählten Eintrag löschen?', function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: ReorganisationCompany.settings.getRemoveEntryTypeUrl,
                data: {
                    entryType: entryType,
                    entryId: entryId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#table' + ReorganisationCompany.settings.reorganisationEntryTypeEnum[entryType] + ' tr[id="' + entryId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },
    
    editEntry: function (entryType, entryId) {
        $.ajax({
            type: 'POST',
            url: ReorganisationCompany.settings.getReadEntryTypeUrl,
            data: {
                entryType: entryType,
                entryId: entryId
            },
            success: function (msg) {
                if (msg.success) {
                    $('#createEntryForm #entryType').val(entryType);
                    $('#createEntryForm #entryId').val(entryId);
                    $('#createEntryForm #name').val(msg.name);
                    $('#createEntryForm #description').val(msg.description);
                    $('#createEntryForm #link').val(msg.link);
                    $('#createEntryModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },

    loadInsolvencies: function (url, reorganisationCompanyId, loadImgSource) {
        $('#NewInsolvencies').html('<img src="' + loadImgSource + '" alt="Daten werden geladen" />');

        $.ajax({
            type: 'POST',
            url: url,
            dataType: 'json',
            data: {
                reorganisationCompanyId: reorganisationCompanyId
            },
            success: function (msg) {
                if (msg.success) {
                    if (msg.insolvencies.length > 0) {
                        var table = $('<table />').addClass('table table-striped table-hover');
                        table.append($('<thead />').append($('<tr />').append(
                            '<th scope="col">Schuldnername</th>' +
                                '<th scope="col">Gericht</th>' +
                                '<th scope="col">Vorl. Verfahren</th>')));
                        var tbody = table.append($('<tbody />'));

                        $.each(msg.insolvencies, function (index, item) {
                            var row = $('<tr />').append(
                                '<td><a href="' + item.Url + '">' + item.DebitorName + '</a>' + '</td>' +
                                    '<td>' + item.CourtName + '</td>' +
                                    '<td>' + (item.TempInsolvencyOpeningDate != null ? item.TempInsolvencyOpeningDate : "") + '</td>'
                                    );
                            tbody.append(row);
                        });

                        $('#NewInsolvencies').html(table);
                    } else {
                        $('#NewInsolvencies').html('<div class="alert">Keine Verfahren gefunden.</div>');
                    }
                } else {
                    $('#NewInsolvencies').html('<div class="alert">' + msg.error + '</div>');
                }
            },
            error: function () {
                $('#NewInsolvencies').html('<div class="alert">Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.</div>');
            }
        });
    }
};;/* Reorganisation Consultant */
var ReorganisationConsultant = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },
    
    initFunctions: function() {
        $('.consultantProfile').readmore({
            substr_len: 200
        });

        $('.flexslider').flexslider({
            pauseOnHover: true,
            animation: "slide",
            animationLoop: false
        });
        
        jQuery().modal.Constructor.prototype.enforceFocus = function () { };
    },
    
    printConsultant: function (reorganisationConsultantId) {
        window.open(ReorganisationConsultant.settings.getPrintUrl + '?reorganisationConsultantId=' + reorganisationConsultantId, 'Berater/Dienstleister', 'width=800, height=600');
    },
    
    loadInsolvencies: function (reorganisationConsultantId) {
        $.ajax({
            type: 'GET',
            url: ReorganisationConsultant.settings.getConsultantInsolvenciesUrl,
            dataType: 'html',
            contentType: 'application/json; charset=utf-8',
            data: {
                reorganisationConsultantId: reorganisationConsultantId
            },
            success: function (msg) {
                $('#consultantInsolvencies').html(msg);
            },
            error: function () {
                $('#consultantInsolvencies').html('Ein Fehler ist aufgetreten.<br/>Bitte versuchen Sie es erneut.');
            }
        });
    },
    
    initHandlers: function () {
        var uploader = new qq.FileUploader({
            element: document.getElementById('fileUpload'),
            action: ReorganisationConsultant.settings.getUpdatePortraitUrl,
            params: {
                reorganisationConsultantId: ReorganisationConsultant.settings.reorganisationConsultantId
            },
            template: '<div class="qq-uploader">' +
                        '<div class="qq-upload-drop-area"><span>Datei zum hochladen hier ablegen</span></div>' +
                        '<button class="qq-upload-button btn">Portrait hochladen</div>' +
                        '<ul class="qq-upload-list"></ul>' +
                        '</div>'
        });

        $('#editConsultantModal').modal({
            show: false
        }).css({
            width: 'auto',
            'margin-left': function () {
                return -($(this).width() / 2);
            }
        });
            
        $('#createReferenceInsolvencyModal').modal({
            show: false
        });
            
        $('#createEntryModal').modal({
            show: false
        });

        $('#selectInsolvencyModal').modal({
            show: false
        }).css({
            width: 'auto',
            height: '550px',
            'margin-left': function () {
                return -($(this).width() / 2);
            }
        });

        $('#editConsultantModal').on('shown', function () {
            InsoPortal.refreshModalBodyHeight($('#editConsultantModal'));
        });

        $('#addReferenceInsolvency').click(function () {
            $('#createReferenceInsolvencyForm #reorganisationReferenceInsolvencyId').val('');
            $('#createReferenceInsolvencyForm #publicInsolvencyId').val('');
            $('#createReferenceInsolvencyForm #publicInsolvencyId').removeAttr('disabled');
            $('#createReferenceInsolvencyForm #note').val('');
            $('#createReferenceInsolvencyModal').modal('show');
        });

        $('#addFocus').click(function () {
            $('#createEntryForm #entryType').val(1);
            $('#createEntryForm #entryId').val('');
            $('#createEntryForm #name').val('');
            $('#createEntryForm #description').val('');
            $('#createEntryForm #link').val('');
            $('#createEntryModal').modal('show');
        });

        $('#addLanguage').click(function () {
            $('#createEntryForm #entryType').val(2);
            $('#createEntryForm #entryId').val('');
            $('#createEntryForm #name').val('');
            $('#createEntryForm #description').val('');
            $('#createEntryForm #link').val('');
            $('#createEntryModal').modal('show');
        });

        $('#addOrganisation').click(function () {
            $('#createEntryForm #entryType').val(3);
            $('#createEntryForm #entryId').val('');
            $('#createEntryForm #name').val('');
            $('#createEntryForm #description').val('');
            $('#createEntryForm #link').val('');
            $('#createEntryModal').modal('show');
        });        

        $('#addQualification').click(function () {
            $('#createEntryForm #entryType').val(4);
            $('#createEntryForm #entryId').val('');
            $('#createEntryForm #name').val('');
            $('#createEntryForm #description').val('');
            $('#createEntryForm #link').val('');
            $('#createEntryModal').modal('show');
        });

        $('#selectInsolvencyButton').click(function () {
            updateMessage();
            $('#selectInsolvencyModal').modal('show');
            $('#selectInsolvencyIFrame').attr('src', ReorganisationConsultant.settings.getSearchUrl);
            return false;
        });
            
        $('#createReferenceInsolvencyForm').submit(function () {
            $.ajax({
                type: 'POST',
                url: ReorganisationConsultant.settings.getCreateReferenceInsolvencyUrl,
                data: {
                    reorganisationReferenceInsolvencyId: $('#createReferenceInsolvencyForm #reorganisationReferenceInsolvencyId').val(),
                    publicInsolvencyId: $('#createReferenceInsolvencyForm #publicInsolvencyId').val(),
                    note: $('#createReferenceInsolvencyForm #note').val()
                },
                success: function (msg) {
                    if (msg.success) {
                        if (msg.reorganisationReferenceInsolvencyId != $('#createReferenceInsolvencyForm #reorganisationReferenceInsolvencyId').val()) {
                            $('#tableReferenceInsolvency tbody').append('<tr id="' + msg.reorganisationReferenceInsolvencyId + '"><td><input type="checkbox" name="SelectedReferenceInsolvencies" value="' + msg.reorganisationReferenceInsolvencyId + '"></td><td><a href="#" onclick="ReorganisationConsultant.removeReferenceInsolvency(' + msg.reorganisationReferenceInsolvencyId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="ReorganisationConsultant.editReferenceInsolvency(' + msg.reorganisationReferenceInsolvencyId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.publicInsolvencyId + '</td><td>' + msg.debitorName + '</td></tr>');
                        } else {
                            $('#tableReferenceInsolvency #' + msg.reorganisationReferenceInsolvencyId + ' td:nth-child(4)').text('' + msg.publicInsolvencyId + '');
                            $('#tableReferenceInsolvency #' + msg.reorganisationReferenceInsolvencyId + ' td:last').text('' + msg.debitorName + '');
                        }
                        $('#createReferenceInsolvencyModal').modal('hide');
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });
        
        $('#createEntryForm').submit(function () {
            $.ajax({
                type: 'POST',
                url: ReorganisationConsultant.settings.getCreateEntryTypeUrl,
                data: {
                    entryType: $('#createEntryForm #entryType').val(),
                    entryId: $('#createEntryForm #entryId').val(),
                    name: $('#createEntryForm #name').val(),
                    description: $('#createEntryForm #description').val(),
                    link: $('#createEntryForm #link').val()
                },
                success: function (msg) {
                    if (msg.success) {
                        if (msg.entryId != $('#createEntryForm #entryId').val()) {
                            if (msg.entryType == 1) {
                                $('#tableFoci tbody').append('<tr id="' + msg.entryId + '"><td><input type="checkbox" name="SelectedFoci" value="' + msg.entryId + '"></td><td><a href="#" onclick="ReorganisationConsultant.removeEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="ReorganisationConsultant.editEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.name + '</td></tr>');
                            } else if (msg.entryType == 2) {
                                $('#tableLanguages tbody').append('<tr id="' + msg.entryId + '"><td><input type="checkbox" name="SelectedLanguages" value="' + msg.entryId + '"></td><td><a href="#" onclick="ReorganisationConsultant.removeEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="ReorganisationConsultant.editEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.name + '</td></tr>');
                            } else if (msg.entryType == 3) {
                                $('#tableOrganisations tbody').append('<tr id="' + msg.entryId + '"><td><input type="checkbox" name="SelectedOrganisations" value="' + msg.entryId + '"></td><td><a href="#" onclick="ReorganisationConsultant.removeEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="ReorganisationConsultant.editEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.name + '</td></tr>');
                            } else if (msg.entryType == 4) {
                                $('#tableQualifications tbody').append('<tr id="' + msg.entryId + '"><td><input type="checkbox" name="SelectedQualifications" value="' + msg.entryId + '"></td><td><a href="#" onclick="ReorganisationConsultant.removeEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-trash"></i></a></td><td><a href="#" onclick="ReorganisationConsultant.editEntry(' + msg.entryType + ', ' + msg.entryId + ');"><i class="icon-pencil"></i></a></td><td>' + msg.name + '</td></tr>');
                            }
                        } else {
                            if (msg.entryType == 1) {
                                $('#tableFoci #' + msg.entryId + ' td:last').text('' + msg.name + '');
                            } else if (msg.entryType == 2) {
                                $('#tableLanguages #' + msg.entryId + ' td:last').text('' + msg.name + '');
                            } else if (msg.entryType == 3) {
                                $('#tableOrganisations #' + msg.entryId + ' td:last').text('' + msg.name + '');
                            } else if (msg.entryType == 4) {
                                $('#tableQualifications #' + msg.entryId + ' td:last').text('' + msg.name + '');
                            }
                        }

                        $('#createEntryModal').modal('hide');
                    }
                    else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });
    },
    
    removeReferenceInsolvency: function (reorganisationReferenceInsolvencyId) {
        bootbox.confirm('Möchten Sie den ausgewählten Eintrag löschen?', function (answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: ReorganisationConsultant.settings.getRemoveReferenceInsolvencyUrl,
                data: {
                    reorganisationReferenceInsolvencyId: reorganisationReferenceInsolvencyId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#tableReferenceInsolvency tr[id="' + reorganisationReferenceInsolvencyId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    editReferenceInsolvency: function (reorganisationReferenceInsolvencyId) {
        $.ajax({
            type: 'POST',
            url: ReorganisationConsultant.settings.getReadReferenceInsolvencyUrl,
            data: {
                reorganisationReferenceInsolvencyId: reorganisationReferenceInsolvencyId
            },
            success: function (msg) {
                if (msg.success) {
                    $('#createReferenceInsolvencyForm #reorganisationReferenceInsolvencyId').val(msg.reorganisationReferenceInsolvencyId);
                    $('#createReferenceInsolvencyForm #publicInsolvencyId').val(msg.publicInsolvencyId);
                    $('#createReferenceInsolvencyForm #publicInsolvencyId').attr('disabled', 'disabled');
                    $('#createReferenceInsolvencyForm #note').val(msg.note);
                    $('#createReferenceInsolvencyModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    },
    
    removeEntry: function (entryType, entryId) {
        bootbox.confirm('Möchten Sie den ausgewählten Eintrag löschen?', function(answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: ReorganisationConsultant.settings.getRemoveEntryTypeUrl,
                data: {
                    entryType: entryType,
                    entryId: entryId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#table' + ReorganisationConsultant.settings.reorganisationEntryTypeEnum[entryType] + ' tr[id="' + entryId + '"]').remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },
    
    editEntry: function (entryType, entryId) {
        $.ajax({
            type: 'POST',
            url: ReorganisationConsultant.settings.getReadEntryTypeUrl,
            data: {
                entryType: entryType,
                entryId: entryId
            },
            success: function (msg) {
                if (msg.success) {
                    $('#createEntryForm #entryType').val(entryType);
                    $('#createEntryForm #entryId').val(entryId);
                    $('#createEntryForm #name').val(msg.name);
                    $('#createEntryForm #description').val(msg.description);
                    $('#createEntryForm #link').val(msg.link);
                    $('#createEntryModal').modal('show');
                } else {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            },
            error: function () {
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    }
};;var DataroomView = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    initializeHandlers: function () {
        $('#accordionDataroomFiles a.accordion-toggle').on('click', function () {
            var clicked = $(this).attr('href');

            $('#accordionDataroomFiles a.accordion-toggle').each(function () {
                if ($(this).attr('href') != clicked && !$(this).hasClass('collapsed')) {
                    $(this).addClass('collapsed');
                }
            });
        });
    }
};

var DataroomAdministration = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    editPin: function (pinId) {
        $('#userSalutation').val(($('#Pin_' + pinId + ' td').eq(1).html() == 'Frau') + '');
        $('#userName').val($('#Pin_' + pinId + ' td').eq(2).html());
        $('#userEmail').val($('#Pin_' + pinId + ' td').eq(3).html());
        $('#dataroomPinId').val(pinId);

        $('#AddUserModal').modal('toggle');
    },

    deletePin: function(pinId) {
        bootbox.confirm('Möchten Sie die PIN löschen?', function (answer) {
            if (!answer) return;

            $.ajax({
                type: 'POST',
                url: DataroomAdministration.settings.DeletePinUrl,
                data: {
                    dataroomPinId: pinId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#Pin_' + pinId).remove();
                    } else {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                },
                error: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });
    },

    initializeHandlers: function () {
        var self = this;

        $('#fileupload').fileupload({
            url: self.settings.UploadFilesUrl
        });

        $('#fileupload').fileupload('option', {
            url: self.settings.UploadFilesUrl,
            disableImageResize: false,
            maxFileSize: 20971520,
            autoUpload: true,
            acceptFileTypes: /(\.|\/)(gif|jpe?g|png|pdf|doc|docx|xls|xlsx|zip|rar)$/i,
            formData: {
                id: self.settings.PublicInsolvencyId
            }
        }).bind('fileuploadfinished', function () {
            $('.files>.filerow').tsort('span.createdate', { attr: 'name', order: 'desc' });
        });

        $('#fileupload').addClass('fileupload-processing');
        $.ajax({
            url: self.settings.UploadFilesUrl,
            dataType: 'json',
            context: $('#fileupload')[0]
        }).always(function (result) {
            $(this).removeClass('fileupload-processing');
        }).done(function (result) {
            $(this).fileupload('option', 'done')
                .call(this, null, { result: result });
            $('.files>.filerow').tsort('span.createdate', { attr: 'name', order: 'desc' });
        });

        $('#createDataroomBtn').die('click').live('click', function () {
            $.ajax({
                url: self.settings.CreateDataroomUrl,
                type: 'POST',
                data: {
                    publicInsolvencyId: self.settings.PublicInsolvencyId
                },
                success: function (msg) {
                    if (msg.success) {
                        InsolvencyDetails.loadDataroomAdmin();
                    } else {
                        if (msg.msg) {
                            bootbox.alert(msg.msg);
                        } else {
                            bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    }
                },
                fail: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });

        $('#pinBtn').die('click').live('click', function () {
            $('#pin-modal').modal('toggle');
        });

        $('.editDocumentBtn').die('click').live('click', function () {
            var dataroomFileId = $(this).attr('id');

            $.ajax({
                url: self.settings.GetDataroomFileUrl,
                type: 'POST',
                data: {
                    id: dataroomFileId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#dataroomFileForm input[name=id]').val(dataroomFileId);
                        $('#dataroomFileForm input[name=tag]').val(msg.dataroomFile.Tag);
                        $('#dataroomFileForm textarea[name=description]').val(msg.dataroomFile.Description);
                        $('#dataroomFileForm input[name=globalVisibility]').attr('checked', msg.dataroomFile.GlobalVisibility);

                        $('#dataroomFileModal').modal('toggle');
                    } else {
                        if (msg.msg) {
                            bootbox.alert(msg.msg);
                        } else {
                            bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    }
                },
                fail: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });

        $('#dataroomFileForm').die('submit').live('submit', function () {
            var docId = $('#dataroomFileForm input[name=id]').val();

            $.ajax({
                url: $(this).attr('action'),
                type: 'POST',
                data: {
                    id: docId,
                    tag: $('#dataroomFileForm input[name=tag]').val().replace(/<[^>]*>/g, ' '),
                    description: $('#dataroomFileForm textarea[name=description]').val().replace(/<[^>]*>/g, ' '),
                    globalVisibility: $('#dataroomFileForm input[name=globalVisibility]').is(':checked')
                },
                success: function (msg) {
                    if (msg.success) {
                        if (msg.dataroomFile && msg.dataroomFile.Tag) {
                            $('#document_' + docId + ' .tag').html(msg.dataroomFile.Tag);
                        } else {
                            $('#document_' + docId + ' .tag').html('Keine Kategorie!');
                        }

                        if (msg.dataroomFile && msg.dataroomFile.Description) {
                            $('#document_' + docId + ' .description').html(msg.dataroomFile.Description);
                        } else {
                            $('#document_' + docId + ' .description').html('Keine Beschreibung!');
                        }

                        if (msg.dataroomFile && msg.dataroomFile.GlobalVisibility) {
                            $('#document_' + docId + ' .visible').html('<i class="icon-eye-open" title="Öffentlich sichtbar"></i>');
                        } else {
                            $('#document_' + docId + ' .visible').html('<i class="icon-eye-close" title="Nicht öffentlich"></i>');
                        }

                        $('#dataroomFileModal').modal('toggle');
                    } else {
                        if (msg.msg) {
                            bootbox.alert(msg.msg);
                        } else {
                            bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    }
                },
                fail: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('#deleteBtn').die('click').live('click', function () {
            $('#delete-modal').modal('toggle');
        });

        $('#AddUserBtn').die('click').live('click', function () {
            $('#dataroomPinId').val('');
            $('#userName').val('');
            $('#userEmail').val('');
            $('#AddUserModal').modal('toggle');
        });

        $('#SendInvitationsBtn').die('click').live('click', function () {
            $('#mailText').keyup();
            $('#SendInvitationsModal').modal('toggle');
        });

        $('#SendMailsBtn').die('click').live('click', function () {
            bootbox.confirm('Sollen die E-Mails jetzt versendet werden?', function (answer) {
                if (!answer) return;

                $.ajax({
                    type: 'POST',
                    url: DataroomAdministration.settings.SendMailsUrl,
                    data: {
                        id: DataroomAdministration.settings.PublicInsolvencyId,
                        mailText: $('#mailText').val()
                    },
                    success: function (msg) {
                        if (msg.success) {
                            $.each(msg.successful, function (index, id) {
                                $('#dataroomPinsDiv tbody tr[id="Pin_' + id + '"] td:first-child').html('<i class="icon-check" title="Mail wurde versendet"></i>');
                            });

                            $.each(msg.failed, function (index, id) {
                                $('#dataroomPinsDiv tbody tr[id="Pin_' + id + '"] td:first-child').html('<i class="icon-bolt" title="Mail konnte nicht versendet werden"></i>');
                            });
                            
                            $('#SendInvitationsModal').modal('hide');
                        } else {
                            if (msg.msg) {
                                bootbox.alert(msg.msg);
                            } else {
                                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                            }
                        }
                    },
                    error: function () {
                        bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                    }
                });
            });
        });

        $('#mailText').keyup(function() {
            $('#mailPreview').html($('#mailText').val().replace(/\n/g, "<br>").replace(/%anrede%/g, 'Herr').replace(/%name%/g, 'Max Mustermann').replace(/%email%/g, 'max@mustermann.de').replace(/%pin%/g, 'MU5T3RP1N').replace(/%verfahren%/g, 'Musterverfahren GmbH').replace(/%verwalter%/g, 'Herr Anwalt'));

            if ($('#mailText').val().indexOf('%pin%') < 0) {
                $('#SendMailsBtn').attr('disabled', 'disabled');
            } else {
                $('#SendMailsBtn').removeAttr('disabled');
            }
        });

        $('#createPin').die('click').live('click', function () {
            if ($('#userName').val().length == 0 || $('#userEmail').val().length == 0 || $('#userEmail').val().indexOf('@') < 0 || $('#userEmail').val().indexOf('.') < 0) {
                bootbox.alert('Bitte füllen Sie alle Felder korrekt aus.');
            } else {
                if ($('#dataroomPinId').val() != '') {
                    $.ajax({
                        type: 'POST',
                        url: DataroomAdministration.settings.EditPinUrl,
                        data: {
                            dataroomPinId: $('#dataroomPinId').val(),
                            userSalutation: $('#userSalutation').val(),
                            userName: $('#userName').val(),
                            userEmail: $('#userEmail').val()
                        },
                        success: function (msg) {
                            if (msg.success) {
                                $('#Pin_' + msg.DataroomPinId).replaceWith('<tr id="Pin_' + msg.DataroomPinId + '"><td>' + (msg.isSend ? '<i class="icon-check" title="Mail wurde versendet"></i>' : '') + '</td><td>' + (msg.userSalutation ? 'Frau' : 'Herr') + '</td><td>' + msg.userName + '</td><td>' + msg.userEmail + '</td><td>' + msg.pin + '</td><td><a href="#" onclick="DataroomAdministration.editPin(' + msg.DataroomPinId + ');return false;" title="PIN bearbeiten"><i class="icon-edit"></i></a> <a href="#" onclick="DataroomAdministration.deletePin(' + msg.DataroomPinId + ');return false;" title="PIN löschen"><i class="icon-trash"></i></a></td></tr>');
                                $('#AddUserModal').modal('hide');
                                $('#userName').val('');
                                $('#userEmail').val('');
                            } else {
                                if (msg.msg) {
                                    bootbox.alert(msg.msg);
                                } else {
                                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                                }
                            }
                        },
                        error: function () {
                            bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    });
                } else {
                    $.ajax({
                        url: DataroomAdministration.settings.CreatePinUrl,
                        type: 'POST',
                        data: {
                            id: DataroomAdministration.settings.PublicInsolvencyId,
                            userSalutation: $('#userSalutation').val(),
                            userName: $('#userName').val(),
                            userEmail: $('#userEmail').val()
                        },
                        success: function (msg) {
                            if (msg.success) {
                                $('#dataroomPinsDiv').append('<tr id="Pin_' + msg.DataroomPinId + '"><td></td><td>' + (msg.userSalutation ? 'Frau' : 'Herr') + '</td><td>' + msg.userName + '</td><td>' + msg.userEmail + '</td><td>' + msg.pin + '</td><td><a href="#" onclick="DataroomAdministration.editPin(' + msg.DataroomPinId + ');return false;" title="PIN bearbeiten"><i class="icon-edit"></i></a> <a href="#" onclick="DataroomAdministration.deletePin(' + msg.DataroomPinId + ');return false;" title="PIN löschen"><i class="icon-trash"></i></a></td></tr>');
                                $('#AddUserModal').modal('hide');
                                $('#userName').val('');
                                $('#userEmail').val('');
                            } else {
                                if (msg.msg) {
                                    bootbox.alert(msg.msg);
                                } else {
                                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                                }
                            }
                        },
                        fail: function () {
                            bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    });
                }
            }
        });

        $('#generatePin').die('click').live('click', function () {
            $.ajax({
                url: self.settings.GeneratePinUrl,
                type: 'POST',
                data: {
                    id: self.settings.PublicInsolvencyId
                },
                success: function (msg) {
                    if (msg.success) {
                        $('#dataroomPinDiv').html('<input type="text" readonly="readonly" value="' + msg.pin + '" />');
                    } else {
                        if (msg.msg) {
                            bootbox.alert(msg.msg);
                        } else {
                            bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    }
                },
                fail: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });
        });

        $('.comment-button').die('click').live('click', function () {
            $('#commentForm input[name=commentId]').val('');
            $('#commentForm input[name=title]').val('');
            $('#commentForm textarea[name=comment]').val('');
            $('#commentForm input[name=globalVisible]').attr('checked', false);

            $('#comment-modal').modal('toggle');
        });

        $('#commentForm').die('submit').live('submit', function () {
            $.ajax({
                url: $(this).attr('action'),
                type: 'POST',
                data: {
                    publicInsolvencyId: $('#commentForm input[name=publicInsolvencyId]').val(),
                    commentId: $('#commentForm input[name=commentId]').val(),
                    title: $('#commentForm input[name=title]').val(),
                    comment: $('#commentForm textarea[name=comment]').val(),
                    globalVisible: $('#commentForm input[name=globalVisible]').is(':checked')
                },
                success: function (msg) {
                    if (msg.success) {
                        var html = '<div class="row span9 filerow" id="' + msg.dataroomCommentId + '">';
                        var innerhtml = '<div class="row"><div class="span6"><span class="title"><h3>' + msg.title + '</h3></span></div><div class="span3" style="text-align:right;"><span class="visible"><i class="icon-eye-' + (msg.globalVisible ? 'open' : 'close') + '"></i> ' + (msg.globalVisible ? 'Öffentlich sichtbar' : 'Nicht öffentlich') + '</span> <span class="date"><i class="icon-calendar"></i> ' + moment(msg.date).format('DD.MM.YYYY') + '</span></div></div>';
                        innerhtml += '<div class="row"><div class="span9"><span class="comment">' + msg.comment.replace(/\n/g, '<br/>') + '</span></div></div>';
                        innerhtml += '<div class="row"><div class="span9"><div class="pull-right"><a href="#" class="btn btn-info comment-edit"><i class="icon-pencil"></i> Bearbeiten</a><a href="#" class="btn btn-danger comment-remove"><i class="icon-trash"></i> Löschen</a></div></div></div>';
                        html = html + innerhtml + '</div>';

                        if ($('.comments').find('#' + msg.dataroomCommentId).length == 0) {
                            $('.comments').append(html);
                        } else {
                            $('.comments').find('#' + msg.dataroomCommentId).html(innerhtml);
                        }

                        $('#comment-modal').modal('toggle');
                    } else {
                        if (msg.msg) {
                            bootbox.alert(msg.msg);
                        } else {
                            bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    }
                },
                fail: function () {
                    bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                }
            });

            return false;
        });

        $('.comments .comment-edit').die('click').live('click', function () {
            var parent = $(this).parentsUntil('.filerow');
            parent = $(parent[parent.length - 1]).parent();

            $('#commentForm input[name=commentId]').val(parent.attr('id'));
            $('#commentForm input[name=title]').val(parent.find('.title h3').text());
            $('#commentForm textarea[name=comment]').val(parent.find('.comment').html().replace(/<br[\s/]*>/g, '\n'));
            $('#commentForm input[name=globalVisible]').attr('checked', parent.find('.visible i').hasClass('icon-eye-open'));
            $('#comment-modal').modal('toggle');

            return false;
        });

        $('.comments .comment-remove').die('click').live('click', function () {
            var parent = $(this).parentsUntil('.filerow');
            parent = $(parent[parent.length - 1]).parent();

            bootbox.confirm('Möchten Sie die Bemerkung löschen?', function (result) {
                if (result) {
                    $.ajax({
                        url: self.settings.DeleteCommentUrl,
                        type: 'POST',
                        data: {
                            publicInsolvencyId: self.settings.PublicInsolvencyId,
                            commentId: parent.attr('id')
                        },
                        success: function (msg) {
                            if (msg.success) {
                                $('.comments #' + msg.dataroomCommentId).remove();
                            } else {
                                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                            }
                        },
                        fail: function () {
                            bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
                        }
                    });
                }
            });

            return false;
        });
    }
};var MySessionManager = {
    settings: {
    },

    init: function (options) {
        Cookies.remove('SessionExpired');

        this.settings.isRunning = false;
        this.settings.countdownSeconds = 60;
        this.setSecondsBeforePrompt();
        this.settings.originalTitle = document.title;
        this.settings.count = this.settings.countdownSeconds;
        this.settings.extendSessionUrl = '/Session/Extend';
        this.settings.expireSessionUrl = '/Session/Expire';
        this.settings.expiredSessionUrl = '/Session/Expired?returnUrl=' + options.expiredSessionUrl;
    },

    setSecondsBeforePrompt: function () {
        if (Cookies.get('SessionExpired') !== undefined) {
            this.sessionEnded();
        } else {
            var expirationDate = new Date(Cookies.get('SessionExpirationDate'));
            var now = new Date();
            var currentDate = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());

            var timeDiff = Math.abs(expirationDate.getTime() - currentDate.getTime());
            var diffSeconds = Math.ceil((timeDiff / 1000) + (currentDate.getTimezoneOffset() * 60));

            this.settings.secondsBeforePrompt = diffSeconds - this.settings.countdownSeconds;
        }
    },

    padLeft: function (string, padMask) {
        string = '' + string;
        return (padMask.substr(0, (padMask.length - string.length)) + string);
    },

    sessionEnded: function () {
        window.clearInterval(this.settings.displayCountdownIntervalId);
        window.clearTimeout(this.settings.promptToExtendSessionTimeoutId);
        this.settings.dlg.modal('hide');
        $('.modal-backdrop').remove();

        location.href = this.settings.expiredSessionUrl;
    },

    sessionEnd: function () {
        window.clearInterval(this.settings.displayCountdownIntervalId);
        window.clearTimeout(this.settings.promptToExtendSessionTimeoutId);
        Cookies.set('SessionExpired', 'SessionExpired');
        this.settings.dlg.modal('hide');
        $('.modal-backdrop').remove();

        location.href = this.settings.expireSessionUrl;
    },

    displayCountdown: function () {
        var self = this;

        var countdown = function () {
            self.setSecondsBeforePrompt();

            if (self.settings.secondsBeforePrompt <= 0) {
                var cd = new Date(self.settings.count * 1000),
                    minutes = cd.getUTCMinutes(),
                    seconds = cd.getUTCSeconds(),
                    minutesDisplay = minutes === 1 ? '1 Minute ' : minutes === 0 ? '' : minutes + ' Minuten ',
                    secondsDisplay = seconds === 1 ? '1 Sekunde' : seconds + ' Sekunden',
                    cdDisplay = minutesDisplay + secondsDisplay;

                document.title = 'Session läuft ab in ' + self.padLeft(minutes, '00') + ':' + self.padLeft(seconds, '00');

                $('#sessionManagerCountdown').html(cdDisplay);

                if (self.settings.count === 0) {
                    document.title = 'Session abgelaufen';
                    self.sessionEnded();
                }

                self.settings.count--;
            } else {
                self.settings.dlg.modal('hide');
                $('.modal-backdrop').remove();

                document.title = self.settings.originalTitle;
                window.clearInterval(self.settings.displayCountdownIntervalId);
                self.startSessionManager();
            }
        };
        countdown();
        self.settings.displayCountdownIntervalId = window.setInterval(countdown, 1000);
    },

    promptToExtendSession: function () {
        var self = MySessionManager;
        self.settings.isRunning = false;

        self.setSecondsBeforePrompt();

        if (self.settings.secondsBeforePrompt <= 0) {
            if (self.settings.dlg === undefined) {
                self.settings.dlg = $('#sessionManagerCountdownModal').modal({
                    backdrop: 'static',
                    keyboard: false
                });
            } else {
                self.settings.dlg.modal('show');
            }

            $('#sessionManagerErneuern').click(function () {
                window.clearInterval(self.settings.displayCountdownIntervalId);
                self.settings.dlg.modal('hide');
                $('.modal-backdrop').remove();

                self.refreshSession();
                document.title = self.settings.originalTitle;
            });

            $('#sessionManagerAbmelden').click(function() {
                self.sessionEnd();
            });

            self.settings.count = self.settings.countdownSeconds;
            self.displayCountdown();
        } else {
            window.clearTimeout(self.settings.promptToExtendSessionTimeoutId);
            self.startSessionManager();
        }
    },

    refreshSession: function () {
        var self = MySessionManager;

        window.clearInterval(this.settings.displayCountdownIntervalId);
        window.clearTimeout(this.settings.promptToExtendSessionTimeoutId);

        $.ajax({
            url: this.settings.extendSessionUrl
        }).done(function () {
            self.startSessionManager();
        });
    },

    startSessionManager: function () {
        if (!this.settings.isRunning) {
            this.settings.isRunning = true;
            this.setSecondsBeforePrompt();
            this.settings.promptToExtendSessionTimeoutId = window.setTimeout(this.promptToExtendSession, this.settings.secondsBeforePrompt * 1000);
        }
    },

    start: function () {
        this.startSessionManager();
    },

    extend: function () {
        this.refreshSession();
    }
};
;$(document).ready(function() {

    $('input:text, textarea').on("keyup",function() {
        if (!$(this).hasClass("html"))
        {
            var start = this.selectionStart,
                end = this.selectionEnd;

            var inputValue = String(this.value);

            this.value = inputValue.replace(/[<>]/g, "");

            this.setSelectionRange(start, end);
        }
    });

});;var Base64 =
{
    _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
    encode: function (e) {
        if (e === undefined || e === null) {
            return e;
        }

        var t = ""; var n, r, i, s, o, u, a; var f = 0; e = Base64._utf8_encode(e); while (f < e.length) { n = e.charCodeAt(f++); r = e.charCodeAt(f++); i = e.charCodeAt(f++); s = n >> 2; o = (n & 3) << 4 | r >> 4; u = (r & 15) << 2 | i >> 6; a = i & 63; if (isNaN(r)) { u = a = 64 } else if (isNaN(i)) { a = 64 } t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a) } return t
    },
    decode: function (e) {
        if (e === undefined || e === null) {
            return e;
        }

        var t = ""; var n, r, i; var s, o, u, a; var f = 0; e = e.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (f < e.length) { s = this._keyStr.indexOf(e.charAt(f++)); o = this._keyStr.indexOf(e.charAt(f++)); u = this._keyStr.indexOf(e.charAt(f++)); a = this._keyStr.indexOf(e.charAt(f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String.fromCharCode(n); if (u != 64) { t = t + String.fromCharCode(r) } if (a != 64) { t = t + String.fromCharCode(i) } } t = Base64._utf8_decode(t); return t
    }, _utf8_encode: function (e) { e = e.replace(/\r\n/g, "\n"); var t = ""; for (var n = 0; n < e.length; n++) { var r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r) } else if (r > 127 && r < 2048) { t += String.fromCharCode(r >> 6 | 192); t += String.fromCharCode(r & 63 | 128) } else { t += String.fromCharCode(r >> 12 | 224); t += String.fromCharCode(r >> 6 & 63 | 128); t += String.fromCharCode(r & 63 | 128) } } return t }, _utf8_decode: function (e) { var t = ""; var n = 0; var r = c1 = c2 = 0; while (n < e.length) { r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++ } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e.charCodeAt(n + 1); c3 = e.charCodeAt(n + 2); t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t }
};/* Landing Page */
var LandingPage = {
    news_ready: function (latestNewsUri) {
        $('a[data-toggle="tab"]').on('show', function (e) {
            var targetHash = e.target.hash;

            if (targetHash == '#insolvenzblog') {
                InsolvenzBlogRssFeed.showNewsFeed();
                return;
            }

            if ($(targetHash).html().length == 0) {
                var newsType = targetHash.replace('#', '').toUpperCase() == 'PRESSEMITTEILUNGEN' ? 'Pressemitteilung' : 'Externe_Meldung';
                $(targetHash).html('<div class="news-loader"><div class="news-loader-text"><h3>Lade Daten ... bitte warten!</h3></div></div>');
                $.ajax({
                    url: latestNewsUri + '?type=' + newsType,
                    dataType: 'html',
                    success: function (msg) {
                        $(targetHash).html(msg);
                    }
                });
            }
        });
    }
};var InsolvenzBlogRssFeed = {
    settings: {
        loadingDiv: '<div class="news-loader"><div class="news-loader-text"><h3>Lade Daten ... bitte warten!</h3></div></div>',
        maxCharsTitleTeaser: 40,
        maxCharsTitleTable: 60,
        maxCharsDescription: 275
    },

    init: function (options) {
        $.extend(this.settings, options);
    },

    showNewsFeed: function () {
        var self = this;

        if ($('#insolvenzblog').html().replace(/[\s\n\r]/g, '').length == 0) {
            $('#insolvenzblog').html(self.settings.loadingDiv);

            $.ajax({
                url: self.settings.insolvenzBlogUrl,
                success: function (data) {
                    var newsTeaser = '';
                    var newsTable = '';

                    $('item', data).slice(0, self.settings.teaserNews).each(function () {
                        newsTeaser += self.renderPartTemplate(self.settings.teaserNewsTemplate, this, self.settings.maxCharsTitleTeaser, self.settings.maxCharsDescription);
                    });

                    $('item', data).slice(self.settings.teaserNews, self.settings.tableNews).each(function () {
                        newsTable += self.renderPartTemplate(self.settings.tableNewsTemplate, this, self.settings.maxCharsTitleTable, self.settings.maxCharsDescription);
                    });

                    $('#insolvenzblog').html(self.renderTemplate('blogNewsTemplate', newsTeaser, newsTable));
                }
            });
        }
    },

    renderTemplate: function (newsTemplateId, newsTeaser, newsTable) {
        var template = $('#' + newsTemplateId).clone();
        $(template).find('#newsTeaser').html(newsTeaser);
        $(template).find('#newsTable').html(newsTable);

        return template.html();
    },

    renderPartTemplate: function (templateId, data, maxCharsTitle, maxCharsDescription) {
        var template = $('#' + templateId).clone();

        template.find('#link').each(function () {
            $(this).attr('href', $('link', data).text());
        });

        template.find('img[id=image]').each(function () {
            var rImage = new RegExp(/<img\s+src="([^"]*)"/i).exec($('description', data).text());
            if (rImage != null && rImage.length > 0) {
                $(this).attr('src', rImage[1]);
            }
            $(this).attr('alt', $('title', data).text());
            $(this).attr('title', $('title', data).text());
        });

        template.find('#title').each(function () {
            $(this).html(HtmlTools.shortenString($('title', data).text(), maxCharsTitle));
        });

        template.find('#date').each(function () {
            $(this).html(moment($('pubDate', data).text()).format('DD.MM.YYYY'));
        });

        var rDescription = new RegExp(/<p>([^<]*)<\/p>/i).exec($('description', data).text());
        if (rDescription != null && rDescription.length > 0) {
            template.find('#description').each(function () {
                $(this).html(HtmlTools.shortenString(rDescription[1], maxCharsDescription));
            });
        }

        return template.html();
    }
};;var HtmlTools = {
    shortenString: function (format, maxChars) {
        format = $.trim(format);

        if (format.length < maxChars) {
            return format;
        }

        format = format.substring(0, maxChars);
        var index = format.lastIndexOf(" ");

        format = format.substring(0, index) + " ...";

        return format;
    }
};/* User Login */
var UserLogin = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);
    },

    initHandler: function () {
        var self = this;

        $('#LoginModal').on('shown', function () {
            $('#Email').focus();
        });

        $('#LoginModal .submitButton').click(function () {
            self.doLogin(false, '#LoginModal');
            return false;
        });

        $('#LoginMonitor form').submit(function () {
            self.doLogin(false, '#LoginMonitor');
            return false;
        });

        $('#LoginModal input').keyup(function (e) {
            if (e.keyCode === 13) {
                self.doLogin(false, '#LoginModal');
            }
        });
    },

    doLogin: function (closeSession, jObject) {
        var self = this;

        $(jObject + ' #LoginButton').button('loading');

        var dataValues = $(jObject + ' form').serialize();
        dataValues += "&closeSession=" + closeSession;

        $.ajax({
            type: 'POST',
            cache: false,
            url: self.settings.loginUrl,
            data: dataValues,
            success: function (msg) {
                $(jObject + ' #LoginButton').button('reset');

                if (msg.showReCaptcha) {
                    grecaptcha.reset();
                    $(".reCaptchaLogin").removeClass("hidden");
                } else {
                    $(".reCaptchaLogin").addClass("hidden");
                }

                if (msg.existingSession) {
                    bootbox.confirm(('Unter Ihrem Benutzerkonto ist noch eine aktive Sitzung vorhanden. Soll diese beendet werden?'), function (confirm) {
                        if (confirm == false) return;

                        self.doLogin(true, jObject);
                    });
                } else if (msg.url) {
                    location.href = msg.url;
                } else if (msg.login) {
                    $('.navbar .topbar .container .nav-collapse').html(msg.html);
                    $('#LoginModal').modal('hide');
                } else {
                    $(jObject + ' form input[name=Password]').val('');
                    $(jObject + ' form input[name=Password]').focus();
                    $(jObject + ' .alert-error').show();
                    $(jObject + ' .alert-error p').html(msg.error);
                }
            },
            error: function () {
                $(jObject + ' #LoginButton').button('reset');
                bootbox.alert('Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.');
            }
        });
    }
};;/* CryptMail */
var CryptMail = {
    uncrypt: function (s, shift) {
        var n;
        var r = "";

        for (var i = 0; i < s.length; i++) {
            n = s.charCodeAt(i);
            if (n >= 8364) { n = 128; }
            r += String.fromCharCode(n - (shift));
        }

        return r;
    },

    maillink: function (s, shift) {
        location.href = CryptMail.uncrypt(s, shift);
    }
};;var Dashboard = {
    settings: {},

    init: function (options) {
        $.extend(this.settings, options);

        $('#NewInsolvenciesCourts').change(function () {
            Dashboard.loadInsolvencies();
        });
    },
    loadInsolvencies : function() {
        $('#NewInsolvencies').html('<img src="/Content/bizstrap/img/spinner_64x64.gif")" alt="Daten werden geladen" />');

        $.ajax({
            type: 'POST',
            url: Base64.decode(Dashboard.settings.getCourtInsolvenciesUrl),
            dataType: 'json',
            data: {
                courtId: $('#NewInsolvenciesCourts').val()
            },
            success: function (msg) {
                if (msg.success) {
                    var table = $('<table />').addClass('table table-striped table-hover');
                    table.append($('<thead />').append($('<tr />').append(
                        '<th scope="col">Schuldnername</th>' +
                        '<th scope="col">Gericht</th>' +
                        '<th scope="col">Vorl. Verf.</th>' +
                        '<th scope="col">Umsatz</th>')));
                    var tbody = table.append($('<tbody />'));

                    $.each(msg.insolvencies, function(index, item) {
                        var row = $('<tr />').append(
                            '<td><a href="' + item.Url + '">' + item.DebitorName + '</a></td>' +
                            '<td>' + item.CourtName + '</td>' +
                            '<td>' + item.TempInsolvencyOpeningDate + '</td>' +
                            '<td>' + Dashboard.getAnnualTurnover(item.CurrentAnnualTurnover) + '</td>');
                        tbody.append(row);
                    });

                    $('#NewInsolvencies').html(table);
                } else {
                    $('#NewInsolvencies').html('<div class="alert">' + msg.error + '</div>');
                }
            },
            error: function () {
                $('#NewInsolvencies').html('<div class="alert">Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.</div>');
            }
        });
    },

    getAnnualTurnover: function(annualTurnover) {
        if (annualTurnover) {
            return '<span class="label label-warning" title="Umsatz des Unternehmens: ' + annualTurnover + '">' + annualTurnover + '</span>';
        }

        return '';
    }
};var Helper = {
    
    getInsolvencyCookie: function() {
        
        var cname = "cookie-insolvencyId=";
        var ca = document.cookie.split(';');

        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];

            while (c.charAt(0) == ' ') {
                c = c.substring(1, c.length);
            }

            if (c.indexOf(cname) == 0) {
                return c.substring(cname.length, c.length);
            }
        }

        return null;

    },

    resetInsolvencyCookie: function() {
        document.cookie = "cookie-insolvencyId=0; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT";
    }

};