
/* - ++resource++ws.z3c_propertiesfield.resources/jquery.ws.z3c_sortablewidget.js - */
(function($){
    $.fn.enable_sortable = function () {
        var name = $(this).attr('id');
        $(this).data('name', name);
        
        $('#' + name + '_sortcontainer').sortable({ items: 'li.sortable_widget_item',
                                                    placeholder: "ui-state-highlight"});
        $('#' + name + '_sortcontainer').disableSelection();
        
        $('.' + name + '_delete', this).click(function() {
            $(this).parent().remove();
            return false;
        });
        
        $('#' + name + '_add_button').click(function() {
            var elem = $(this)._create_tag('li', null, 'sortable_widget_item');
            var input_id = $(this)._create_tag('input', null, null, 'hidden', name + "_id");
            var input_name = $(this)._create_tag('input', null, 'sortable_widget_name', 'text', name + "_name");
            var a_del = $(this)._create_tag('a', null, 'sortable_widget_remove ' + name + '_delete');
            
            a_del.attr('href', '#');
            a_del.text('[ X ]');
            
            a_del.click(function() {
                $(this).parent().remove();
                return false;
            });
            
            //Generowanie ID
            var id_num = 1;
            var base_id = $('#' + name + '_add_input').val().toLowerCase().replace(' ', '');
            var gen_id = base_id;
            
            while ($("[name=" + name + "_id][value=" + gen_id + "]").length > 0) {
                gen_id = base_id + '-' + id_num; 
                id_num = id_num + 1;
            }
            
            input_id.attr('value', gen_id);
            // Koniec generowania ID
            
            input_name.attr('value', $('#' + name + '_add_input').val());
            $('#' + name + '_add_input').val('');
            
            elem.append(input_id).append(input_name).append(a_del);
            elem.attr('style', 'display:block;');
            
            $('#' + name + '_sortcontainer').append(elem);
            
            return false;
        });
        return true;
    };
    
})(jQuery);




