﻿/* Alles in deze functie wordt uitgevoerd wanneer de pagina is geladen */
$(document).ready(function () {
    // zorgen dat het submitten van een formulier ook werkt op andere browsers dan ie
    fixSubmitButton();
});

/*
 * Kopieert het ingevoerde correspondentie e-mailadres naar het algemene e-mailadres
 * Mits deze laatste niet al gevuld is
 */
function CopyEmail() {
    var f = document.forms["form1"];
    if (f.elements["TextBoxCorrespondentieEmailadres"].value == "") {
        f.elements["TextBoxCorrespondentieEmailadres"].value = f.elements["TextBoxAlgemeenEmailadres"].value;
    }
}

/**
 * Kopieert de input van een blok naar de input van een ander blok
 * @blockSource Het blok waarvan de input moet worden gekopieerd
 * @blockDestination Het blok waarnaar de input moet worden gekopieerd
 */
function CopyContentsBlock(blockSource, blockDestination) {
    var inputsBlock1 = $('#' + blockSource + ' :input');
    var inputsBlock2 = $('#' + blockDestination + ' :input');

    var aantalInputs = inputsBlock1.length;
    var aantalInputs2 = inputsBlock2.length;

    // radio buttons afhandelen
    inputsBlock2[0].checked = inputsBlock1[0].checked;
    inputsBlock2[1].checked = inputsBlock1[1].checked;

    // loop door de invoervelden (dus niet de radio buttons en dropdownlist)
    for (var i = 2; i < 8; i++) {
        inputsBlock2[i].value = inputsBlock1[i].value;
    }

    // dropdownlist instellen (functie)
    inputsBlock2[8].selectedIndex = inputsBlock1[8].selectedIndex;

    // loondienst (vraag + datum + eventuele opmerkingen)
    if (aantalInputs == 13 && aantalInputs2 == 13) {
        // radio buttons vraag
        if (inputsBlock1[9].checked) {
            $(inputsBlock2[9]).trigger('click');
        }
        else {
            $(inputsBlock2[10]).trigger('click');
        }

        // datum indiensttreding
        inputsBlock2[11].value = inputsBlock1[11].value;

        // eventuele opmerkingen
        inputsBlock2[12].value = inputsBlock1[12].value;
    }
}

/**
* Cleart de content van een blok als de inhoud hetzelfde is
* @blockSource Het blok waarvan de input moet worden vergeleken
* @blockDestination Het blok wat gecleared moet worden
*/
function ClearContentsBlockIfContentSame(blockSource, blockDestination) {
    var inputsBlock1 = $('#' + blockSource + ' :input');
    var inputsBlock2 = $('#' + blockDestination + ' :input');

    var aantalInputs = inputsBlock1.length;
    var aantalInputs2 = inputsBlock2.length;

    // Bepaal of ze het zelfde zijn, indien alles hetzelfde is dan clearen

    var allSame = true;

    // radio buttons afhandelen
    if (!(inputsBlock2[0].checked == inputsBlock1[0].checked)) {
        allSame = false;
    }
    if (!(inputsBlock2[1].checked == inputsBlock1[1].checked)) {
        allSame = false;
    }

    // loop door de invoervelden (dus niet de radio buttons en dropdownlist)
    for (var i = 2; i < 8; i++) {
        if (!(inputsBlock2[i].value == inputsBlock1[i].value)) {
            allSame = false;
        }
    }

    // dropdownlist instellen (functie)
    if (!(inputsBlock2[8].selectedIndex == inputsBlock1[8].selectedIndex)) {
        allSame = false;
    }

    if (allSame) {
        inputsBlock2[0].checked = true;
        inputsBlock2[1].checked = false;

        for (var i = 2; i < 8; i++) {
            inputsBlock2[i].value =  '';
        }

        inputsBlock2[8].selectedIndex = 0;

        // loondienst (datum + eventuele opmerkingen)
        if (aantalInputs == 13 && aantalInputs2 == 13) {
            // datum indiensttreding
            inputsBlock2[11].value = '';

            // eventuele opmerkingen
            inputsBlock2[12].value = '';
        }
    }
}

/*
 * Enabled/disabled een element
 * @param enable Boolean die aangeeft of het element moet worden enabled
 * @param element Het element wat moet worden enabled/disabled
 */
function EnableDisableElement(enable, element) {
    if (enable) {
        $('#' + element).show();
    }
    else {
        $('#' + element).hide();
        if ($('#' + element).is("input")) {
            $('#' + element).val('');
        }
    }
}

/**
 * Enabled/disabled de elementen uit twee arrays, waarbij maar 1 array met elementen tegelijk kan worden enabled
 * Tevens worden de textuele waarden gecleared bij het hiden
 * @param enableElement1 Boolean die aangeeft of het eerste element moet worden enabled
 * @param elements1 Eerste array met elementen die moeten worden enabled/disabled
 * @param elements2 Tweede array met elementen die moeten worden enabled/disabled
 */
function EnableDisableElementPair(enableElement1, elements1, elements2) {
    if (enableElement1) {
        for (var element in elements1) {
            $('#' + elements1[element]).show();
        }

        for (var element in elements2) {
            if ($('#' + elements2[element]).is("input")) {
               $('#' + elements2[element]).val('');
            }

            var inputsBlock1 = $('#' + elements2[element] + ' :input');

            for (var i = 0; i < inputsBlock1.length; i++) {
                inputsBlock1[i].value = '';
            }

            $('#' + elements2[element]).hide();
        }
    }
    else {
        for (var element in elements1) {
            if ($('#' + elements1[element]).is("input")) {
               $('#' + elements1[element]).val('');
            }

            var inputsBlock1 = $('#' + elements1[element] + ' :input');

            for (var i = 0; i < inputsBlock1.length; i++) {
                inputsBlock1[i].value = '';
            }

            $('#' + elements1[element]).hide();
        }

        for (var element in elements2) {
            $('#' + elements2[element]).show();
        }
    }
}

/**
 * Enabled/disabled een meegegeven element, door te toggelen
 * Is het element nu zichtbaar, dan wordt hij onzichtbaar gemaakt
 * Is het element nu onzichtbaar, dan wordt hij zichtbaar gemaakt
 */
function ToggleEnableDisable(element) {
    $('#' + element).toggle();
}

/**
* Stuurt de gebruiker naar de vorige pagina
*/
function VorigePagina() {
    history.go(-1);
}

/*
* In andere browsers dan ie is het niet mogelijk om een ajax-formulier te submitten door op de enter-toets te drukken
* Deze methode gaat op zoek naar alle textboxes in de content-container en koppelt daar een event aan
* Op het moment dat de gebruiker op enter drukt, wordt een postback uitgevoerd naar de methode die is aangegeven in het formulier
*/
function fixSubmitButton() {
    // we gaan alleen verder als:
    // -de browser geen ie is (in ie werkt de oplossing van Microsoft)
    // -er een default-button is gekoppeld aan het formulier op de pagina
    if (!jQuery.browser.msie && $('#form1').attr('onkeypress') != undefined) {

        // event wordt gekoppeld aan alle textboxes binnen de div met klasse content-container
        $(':input[type=text]', $('.content-container')[0]).live('keypress', function (event) {

            // 13 = enter-toets
            if (event.keyCode == '13') {
                event.preventDefault();

                // het id van de submit-button achterhalen
                var eventString = $('#form1').attr('onkeypress').toString().replace("javascript:return WebForm_FireDefaultButton(event, '").replace("')", "").replace("undefined", "");
                eventString = eventString.replace(/_/g, "$");

                __doPostBack('ctl00$' + eventString, '');

                // verwijderen van de focus van de textbox; zodat de ipad het toetsenbord verbergt
                this.blur();
            }
        });
    }
}
