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':
                    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 (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;
}

function unmaskPhones()
{
    $('#i_phone').unmask();
    $('#i_fax').unmask();
    $('#i_c_phone').unmask();
    $('#i_c_fax').unmask();
}

function setMaskPhonesCS()
{
    $('#i_phone').mask('+420 nnn nnn nnn');
    $('#i_fax').mask('+420 nnn nnn nnn');
    $('#i_c_phone').mask('+420 nnn nnn nnn');
    $('#i_c_fax').mask('+420 nnn nnn nnn');
}

function setMaskPhonesSK()
{
    $('#i_phone').mask('+421 nnn nnn nnn');
    $('#i_fax').mask('+421 nnn nnn nnn');
    $('#i_c_phone').mask('+421 nnn nnn nnn');
    $('#i_c_fax').mask('+421 nnn nnn nnn');
}

function setMaskPhonesDE()
{
    $('#i_phone').mask('+49 nnn nnn nnn');
    $('#i_fax').mask('+49 nnn nnn nnn');
    $('#i_c_phone').mask('+49 nnn nnn nnn');
    $('#i_c_fax').mask('+49 nnn nnn nnn');
}

function setMaskPhonesAT()
{
    $('#i_phone').mask('+43 nnn nnn nnn');
    $('#i_fax').mask('+43 nnn nnn nnn');
    $('#i_c_phone').mask('+43 nnn nnn nnn');
    $('#i_c_fax').mask('+43 nnn nnn nnn');
}

function setMaskPhonesPL()
{
    $('#i_phone').mask('+48 nnn nnn nnn');
    $('#i_fax').mask('+48 nnn nnn nnn');
    $('#i_c_phone').mask('+48 nnn nnn nnn');
    $('#i_c_fax').mask('+48 nnn nnn nnn');
}

function showOrderDetail(id)
{
    $('#' + id).toggleClass('non-visible');
}

