﻿var blokadaWalidacjiOnBlur = false;

function ClientValidateById(validatorsArray, validationGroup) {

    if (blokadaWalidacjiOnBlur) {
        return true;
    }

    Page_InvalidControlToBeFocused = null;
    if (typeof (validatorsArray) == "undefined") {
        return true;
    }
    var i;
    for (i = 0; i < validatorsArray.length; i++) {

        var validator = document.getElementById(validatorsArray[i]);

        if (validator != null) {
            ValidatorValidate(validator, validationGroup, null);
        }
    }
    ValidatorUpdateIsValid();
    ValidationSummaryOnSubmit(validationGroup);
    //Page_BlockSubmit = !Page_IsValid;

    SetValidationPanelVisibility();
    
    return Page_IsValid;
}

function WalidujZgode(source, clientside_arguments) {

    var cbDaneOsobowe = document.getElementById(source.cbDaneOsoboweID);
    var cbPromo = document.getElementById(source.cbPromoID);

    if ((cbDaneOsobowe != null) && (cbPromo != null) && cbPromo.checked && cbDaneOsobowe.checked) {
        clientside_arguments.IsValid = true;
    }
    else {
        clientside_arguments.IsValid = false;
    }

}

function WalidujNIP(source, clientside_arguments) {

    var nip = clientside_arguments.Value;

    //usuwamy nie-cyfry
    nip = nip.replace(/[^\d]/g, '');  

    //sprawdzamy dlugosc = 10
    if (nip.length != 10) {
        source.errormessage = 'Błędny format <b>numeru NIP</b>: niepoprawna ilość cyfr';
        clientside_arguments.IsValid = false;
        return;    
    }

    //jesli 10 cyfr, formatujemy wg maski..
    var tbNIP = document.getElementById(source.tbNipID);

    if (tbNIP != null) {
        tbNIP.value = nip.substr(0, 3) + '-' + nip.substr(3, 3) + '-' + nip.substr(6, 2) + '-' + nip.substr(8, 2);
    }


    //obliczamy sume kontrolna
    
    var sum = nip.charAt(0) * 6 + nip.charAt(1) * 5 + nip.charAt(2) * 7 + nip.charAt(3) * 2 + nip.charAt(4) * 3 +
                nip.charAt(5) * 4 + nip.charAt(6) * 5 + nip.charAt(7) * 6 + nip.charAt(8) * 7;

    if (sum % 11 != nip.charAt(9)) {
        source.errormessage = 'Niepoprawna suma kontrolna <b>numeru NIP</b>';
        clientside_arguments.IsValid = false;
    }
    else {
        clientside_arguments.IsValid = true;
    }

}

function WalidujKodPocztowy(source, clientside_arguments) {

    var kodPocztowy = clientside_arguments.Value;

    //usuwamy nie-cyfry
    kodPocztowy = kodPocztowy.replace(/[^\d]/g, '');

    //sprawdzamy dlugosc = 5
    if (kodPocztowy.length != 5) {
        clientside_arguments.IsValid = false;
        return;
    }

    //jesli 5 cyfr, formatujemy wg maski..
    var tbKodPocztowy = document.getElementById(source.tbKodPocztowyID);

    if (tbKodPocztowy != null) {
        tbKodPocztowy.value = kodPocztowy.substr(0, 2) + '-' + kodPocztowy.substr(2, 3);
    }

    clientside_arguments.IsValid = true;

}

function SetValidationPanelVisibility() {
    var panel = document.getElementById('validationPanel');
    
    if (panel != null) {
        panel.style.display = Page_IsValid ? 'none' : 'block';
    }

    if (!Page_IsValid) {
        SetConfirmationPanelVisibility(false);
    }

}

function SetConfirmationPanelVisibility(isVisible) {

    var panel = document.getElementById('confirmationPanel');

    if (panel != null) {
        panel.style.display = isVisible ? 'block' : 'none';
    }

}