function getLabel(elemId, simple) {
    if (elemId) {
        var req = (simple) ? '' : '.required';
        var label = $('label' + req + '[for="' + elemId + '"]');

        if (label && label.length) {
            if (label[0].title) {
                return label[0].title;
            }

            return label[0].innerHTML;
        }
    }

    return '';
}

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

    if (!inputs.length) {
        return (errorToText) ? '' : true;
    }

    var error = '';

    for (i = 0; i < inputs.length; i++) {
        el = inputs[i];
        label = getLabel(el.id).replace(/\*+$/g, '');

        if (!label) {
            continue;
        }

        if (
            !(el.value)
            || (('null' == el.value) && ('SELECT' == el.tagName))
            || (('checkbox' == el.type) && !el.checked)
        ) {
            switch (el.type) {
                case 'checkbox':

                    if (!el.checked) {
                        error += "Zaškrtněte prosím pole '" + label + "'.\n";
                    }

                    break;

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

                default:
                    error += "Vyplňte prosím pole '" + label + "'.\n";
                    break;
            }

            continue;
        }

        if (-1 != el.id.indexOf('email')) {
            if (window.RegExp) {
                re = new RegExp("^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+[\.][a-zA-Z]{2,4}$");

                if (!re.test(el.value)) {
                    error += "Emailová adresa v poli '" + label + "' je neplatná, zadejte ji prosím znovu.\n";
                }
            }
        }

        if (-1 != el.id.indexOf('telefon')) {
            if (window.RegExp) {
                re = new RegExp("^\\+{0,1}[0-9 ]{9,21}$");

                if (!re.test(el.value)) {
                    error += "Telefonní číslo v poli '" + label + "' je neplatné, zadejte jej prosím znovu.\n";
                }
            }
        }
    }

    if (error) {
        if (errorToText) {
            return error;
        }

        if ($.prompt) {
            $.prompt(error.replace("\n", "<br />\n"), { opacity: 0.8 });
        } else {
            alert(error);
        }
        return false;
    }

    if (errorToText) {
        return '';
    }


    return true;
}


