Element.addMethods({
    // Vsetky labely ktore patria k policku "element".
    labels: function(element) {
        return $$("label[for=" + $(element).id + "]");
    },
    
    // Skri policko + jeho labely
    hideField: function(element) {
        Element.hide(element);
        Element.labels(element).each(Element.hide);
    },

    // Ukaz policko + jeho labely
    showField: function(element) {
        Element.show(element);
        Element.labels(element).each(Element.show);
    },

    // Nastav policko na povinne/nepovinne.
    setRequired: function(element, required) {
        Element.labels(element).each(function(label) {
            label.innerHTML = label.innerHTML.replace(/\*/, "");
            if (required) {
                label.addClassName("required");
                label.innerHTML = label.innerHTML.replace(/\s*(?=<)|$/, " *");
            } else {
                label.removeClassName("required");
            }
        });
    }
});
