// kontrola registracniho formu
function getLabel(elemId)
{
    if (elemId) {
        var label = $('label.required[for="' + elemId + '"]');

        if (label && label.length) {
            if (label.attr('title')) {
                return label.attr('title');
            }

            label = label.text();
            label = label.replace(/[\s\*]*$/, '');

            return label;
        }
    }

    return '';
}

function getRadioLabel(name)
{
    if (name) {
        var label = $('label.radio-main-label.' + name);

        if (label && label.length) {
            if (label.attr('title')) {
                return label.attr('title');
            }

            label = label.text();
            label = label.replace(/[\s\*]*$/, '');

            return label;
        }
    }

    return '';
}

function emailCheck(email)
{
    var ret = true;

    if (window.RegExp) {
        re = new RegExp("^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+[\.][a-zA-Z]{2,4}$");
        ret = re.test(email);
    }

    return ret;
}

function checkForm(form)
{
    var inputs = $('#' + form.id + ' .required');

    if (!inputs.length) {
        return true;
    }

    var error = '';
    var radio = new Array();
    var radio_labels = new Array();

    for (i = 0; i < inputs.length; i++) {
        el = inputs[i];

        if (!el.id) {
            continue;
        }

        label = getLabel(el.id).replace(/\*+$/g, '');

        if (!label) {
            continue;
        }

        if (
            !(el.value)
            || (('null' == el.value) && ('SELECT' == el.tagName) && (-1 == el.className.indexOf('nullable')))
            || (('checkbox' == el.type) && !el.checked)
        ) {
            switch (el.type) {
                case 'checkbox':
                    error += "Zaškrtněte prosím pole '" + label + "'.<br />";
                    break;

                case 'select-one':
                    error += "Vyberte prosím jednu z možností v poli '" + label + "'.<br />";
                    break;

                default:
                    error += "Vyplňte prosím pole '" + label + "'.<br />";
                    break;
            }

            continue;
        }

        if (('INPUT' == el.tagName) && ('radio' == el.type)) {
            if (!radio[el.name]) {
                radio[el.name] = false;
            }

            if (el.checked) {
                radio[el.name] = true;
            }

            radio_labels[el.name] = getRadioLabel(el.name);
        }

        if (-1 != el.id.indexOf('email')) {
            if (!emailCheck(el.value)) {
                error += "Emailová adresa v poli '" + label + "' je neplatná, zadejte ji prosím znovu.<br />";
            }
        }
    }

    for (var rad in radio) {
        if (!radio[rad] && radio_labels[rad]) {
            error += radio_labels[rad] + "<br />";
        }
    }

    if (error) {
        $.prompt(error, { opacity: 0.1 });
        return false;
    }

    return true;
}
