/*
 * REST service functions for BankBytte.
 */
var naaBankID_valgt = 0;
var nyBankValgt = false;

function unamp(s) {
    return s.replace(/\&amp;/g, '&');
};

function updateNyBank(nybank) {
    if (nybank) {
        $("#tilbyr_boliglan").val(nybank.tilbyr_boliglan);
        $("#tilbyr_forbrukslan").val(nybank.tilbyr_forbrukslan);
        $("#tilbyr_kredittkort").val(nybank.tilbyr_kredittkort);
        $("#tilbyr_dagligbank").val(nybank.tilbyr_dagligbank);
        $("#tilbyr_banksparing").val(nybank.tilbyr_banksparing);
        $("#nyBankID").val(nybank.id);
        nyBankValgt = true;
    } else {
        $("#nyBank").val("");
    }
}
var banker;
//------ bankbytte AJAX ------
function bankBytteBeforeSubmit(arr, form, options) {
    if (0 == $('#loader_image').length) {
        $("#footer")
        .after(
        '<div id="loader_image" style="display: none;"><img src="/images/ventesymbol_stort.gif"/><p/></div>');
    }
    // See
    // http://jquery.malsup.com/block/
    $("#bankbytteForm").closest(
    "DIV.productbox").block({
        message: $('#loader_image'),
        css: {
            border: 'none',
            backgroundColor: '#FFF',
            centerY: true,
            opacity: 0.2,
            margin: 0,
            padding: 0,
            width: '80px',
            cursor: 'default'
        },
        overlayCSS: {
            backgroundColor: '#FFF',
            opacity: 0.9
        }
    });
};

function bankBytteOnSuccess(kvitteringsData) {
    $("#bankbytteForm").closest(
    "DIV.productbox").unblock();
    if (!kvitteringsData) {
        $('#bankbytteError')
        .append(
        "Server returnerte ikke forventet resultat.");
        $('#bankbytteError').show();
    } else if (kvitteringsData.error) {
        $('#bankbytteError').text(
        kvitteringsData.error);
        $('#bankbytteError').show();
    } else {
        $('#bankbytteError').hide();
        window.location.hash = "#_steg_kvittering";
        $('#steg_kontroll').hide();

        toggleWizardNavigation();

        $('#sl_tilBank').text(
        kvitteringsData.nyBank);
        $('#sl_produktvalg')
        .text(
        kvitteringsData.produktvalgTekst);
        $('#sl_dinBank')
        .text(
        kvitteringsData.naaBank);

        if (kvitteringsData.kontotype1 != "") {
            $('#kontotyperad1').show();
            $('#sl_kontotype1')
            .text(
            kvitteringsData.kontotype1);
        } else {
            $('#kontotyperad1').hide();
        }

        if (kvitteringsData.kontotype2 != "") {
            $('#kontotyperad2').show();
            $('#sl_kontotype2')
            .text(
            kvitteringsData.kontotype2);
        } else {
            $('#kontotyperad2').hide();
        }

        if (kvitteringsData.kontotype3 != "") {
            $('#kontotyperad3').show();
            $('#sl_kontotype3')
            .text(
            kvitteringsData.kontotype3);
        } else {
            $('#kontotyperad3').hide();
        }

        if (kvitteringsData.kontotype4 != "") {
            $('#kontotyperad4').show();
            $('#sl_kontotype4')
            .text(
            kvitteringsData.kontotype4);
        } else {
            $('#kontotyperad4').hide();
        }

        if (kvitteringsData.laanetype1 != "") {
            $('#sl_laanetyperad')
            .show();
            $('#sl_laanetype1')
            .text(
            kvitteringsData.laanetype1);
        } else {
            $('#sl_laanetyperad')
            .hide();
        }

        if (kvitteringsData.laanetype2 != "") {
            $('#sl_laanetyperad2')
            .show();
            $('#sl_laanetype2')
            .text(
            kvitteringsData.laanetype2);
        } else {
            $('#sl_laanetyperad2')
            .hide();
        }

        if (kvitteringsData.laanetype3 != "") {
            $('#sl_laanetyperad3')
            .show();
            $('#sl_laanetype3')
            .text(
            kvitteringsData.laanetype3);
        } else {
            $('#sl_laanetyperad3')
            .hide();
        }

        if (kvitteringsData.laanetype4 != "") {
            $('#sl_laanetyperad4')
            .show();
            $('#sl_laanetype4')
            .text(
            kvitteringsData.laanetype4);
        } else {
            $('#sl_laanetyperad4')
            .hide();
        }

        $('#sl_laanetype1')
        .text(
        kvitteringsData.laanetype1);
        $('#sl_laanetype2')
        .text(
        kvitteringsData.laanetype2);
        $('#sl_laanetype3')
        .text(
        kvitteringsData.laanetype3);
        $('#sl_laanetype4')
        .text(
        kvitteringsData.laanetype4);

        $('#sl_bankkorttype')
        .text(
        kvitteringsData.bankkorttype);
        $('#sl_korttype')
        .text(
        kvitteringsData.korttype);

        $('#sl_fornavn')
        .text(
        kvitteringsData.fornavn);
        $('#sl_etternavn')
        .text(
        kvitteringsData.etternavn);
        $('#sl_adresse1')
        .text(
        kvitteringsData.adresse1);
        $('#sl_adresse2')
        .text(
        kvitteringsData.adresse2);
        $('#sl_postnr').text(
        kvitteringsData.postnr);
        $('#sl_poststed')
        .text(
        kvitteringsData.poststed);
        $('#sl_telefonnr')
        .text(
        kvitteringsData.telefonnr);
        $('#sl_epost').text(
        kvitteringsData.epost);

        $('#steg_kvittering').fadeIn();

        if ($("#forespoersel").val() == "tilbud") {
            $('#new').show();
            $('#new').click(function() {
                $("#bankbytteForm").formwizard("show", "#steg_produktopplysninger");

                $('#steg_kvittering').fadeOut();
                $('.next').show();
                $('#avbryt').show();
                $('#quit').hide();
                $('#print').hide();
                $('#new').hide();
                $('#nyBank').val("");
                toggleWizardNavigation()
            });
        }

        $('#quit').show();
        $('#print').show();
        $('.previous').hide();
        $('.next').hide();
        $('#avbryt').hide();
    }
};

$(document).ready(function() {
    $.getJSON('/services/leverandor/bank/list', '',
    function(json) {
        if (window.console) {
            console.info('autocomplete har nå ' + json.length + ' oppføringer');
        }
        banker = json;
        // $(document).ready(function(){
        // autocomplete
        $("#naaBank").autocomplete(banker, {
            minChars: 0,
            max: 200,
            width: 310,
            matchContains: "word",
            autoFill: false,
            mustMatch: true,
            multiple: false,
            multipleSeparator: "~",
            matchContains: false,
            formatItem: function(row, i, max) {
                return unamp(row.visningsnavn);
            }
        });
        $("#naaBank").result(function(event, data, formatted) {
            if (data) {
                naaBankID_valgt = data.id;
                $("#naaBankID").val(data.id);
            } else {
                $("#naaBank").val("");
            }
        });

        $("#nyBank").autocomplete(banker, {
            minChars: 0,
            max: 200,
            width: 310,
            matchContains: "word",
            autoFill: false,
            mustMatch: true,
            multiple: false,
            multipleSeparator: "~",
            matchContains: false,
            formatItem: function(row, i, max) {
                var prod = $('#produkt').val();
                if ((row.id == naaBankID_valgt) 
                || (prod == 'laan' && !row.tilbyr_boliglan && !row.tilbyr_forbrukslan)
                || (prod == 'kredittkort' && !row.tilbyr_kredittkort)
                || (prod == 'dagligbank' && !row.tilbyr_dagligbank)
                || (prod == 'banksparing' && !row.tilbyr_banksparing)
                || (prod == 'alle' && ((!row.tilbyr_boliglan && !row.tilbyr_forbrukslan) || !row.tilbyr_kredittkort || !row.tilbyr_dagligbank || !row.tilbyr_banksparing))) {
                    return false;
                } else if (row.id == $('#nyBankID').val()) {
                    var unampedName = unamp(row.visningsnavn);
                    $('#nyBank').val(unampedName);
                    updateNyBank(row);
                    nyBankValgt = true;
                    return unampedName;
                } else {
                    return unamp(row.visningsnavn);
                }
            }
        });

        $("#naaBank").blur(function() {
            $("#naaBank").search();
            $('#naaBankCache').val($('#naaBank').val());
        });

        $("#nyBank").result(function(event, data, formatted) {
            updateNyBank(data);
        });

        $("#nyBank").blur(function() {
            $("#nyBank").search();
            $('#nyBankCache').val($('#nyBank').val());
        });
        
        $("#produkt").change(function() {
            $("#nyBank").val('');
        });

    });

    $('#bankbytteError')
    .ajaxError(
    function(event, request, settings) {
        if (settings.url == $('#bankbytteForm')
        .attr('action')) {
            $(this)
            .text(
            'Det har oppstått en feil. Vennligst ta kontakt med banken direkte.');
            $('#bankbytteError').show();
            $("#bankbytteForm").closest("DIV.productbox").unblock();
        }
    });
});
