jQuery.debug = function(info, type) {
    if(window.console) {
        switch(type) {
            case 'error':
                console.error(info);
                break;
            case 'warn':
                console.warn(info);
                break;
            default:
                console.log(info);
        }
    }
};

jQuery.error = function(info) {
    $.debug(info, 'error');
};

jQuery.warn = function(info) {
    $.debug(info, 'warn');
};

jQuery.log = function(info) {
    $.debug(info, 'log');
};

jQuery.fn.getForm = function(opciones) {
    var valores = $(this).serializeArray();
    var form = {};
	
    $.each(valores, function(i) {
        form[this.name] = this.value;
    });
    return form;
};


jQuery.fn.selectUpdate = function(data, opciones) {

    if (this.is('select')) {
	
        var settings = $.extend({
            todos: $(this).data('todos') || $(this).find('option:first').text()
        }, opciones);
		
        $(this).data('todos', settings.todos);
		
        var options = (settings.todos != '') ? '<option value="-1">' + settings.todos + '</option>' : '';
		
        $.each(data, function(i) {
            options += '<option value="' + this.ID + '" title="' + this.NOMBRE + '">' + this.NOMBRE + '</option>';
        });
		
        return this.each(function() {
			
            $(this).html(options);
		
        });
    }
    return false;
};
