function empty (mixed_var) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philippe Baumann
    // +      input by: Onno Marsman
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: LH
    // +   improved by: Onno Marsman
    // +   improved by: Francesco
    // +   improved by: Marc Jansen
    // +   input by: Stoyan Kyosev (http://www.svest.org/)
    // *     example 1: empty(null);
    // *     returns 1: true
    // *     example 2: empty(undefined);
    // *     returns 2: true
    // *     example 3: empty([]);
    // *     returns 3: true
    // *     example 4: empty({});
    // *     returns 4: true
    // *     example 5: empty({'aFunc' : function () { alert('humpty'); } });
    // *     returns 5: false
    
    var key;
    
    if (mixed_var === "" ||
        mixed_var === 0 ||
        mixed_var === "0" ||
        mixed_var === null ||
        mixed_var === false ||
        typeof mixed_var === 'undefined'
        ){
        return true;
    }

    if (typeof mixed_var == 'object') {
        for (key in mixed_var) {
            return false;
        }
        return true;
    }

    return false;
}

function stripslashes (str) {
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Ates Goral (http://magnetiq.com)
    // +      fixed by: Mick@el
    // +   improved by: marrtins
    // +   bugfixed by: Onno Marsman
    // +   improved by: rezna
    // +   input by: Rick Waldron
    // +   reimplemented by: Brett Zamir (http://brett-zamir.me)
    // +   input by: Brant Messenger (http://www.brantmessenger.com/)
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: stripslashes('Kevin\'s code');
    // *     returns 1: "Kevin's code"
    // *     example 2: stripslashes('Kevin\\\'s code');
    // *     returns 2: "Kevin\'s code"
    return (str+'').replace(/\\(.?)/g, function (s, n1) {
        switch (n1) {
            case '\\':
                return '\\';
            case '0':
                return '\u0000';
            case '':
                return '';
            default:
                return n1;
        }
    });
}


function explode (delimiter, string, limit) {
    // http://kevin.vanzonneveld.net
    // +     original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     improved by: kenneth
    // +     improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     improved by: d3x
    // +     bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: explode(' ', 'Kevin van Zonneveld');
    // *     returns 1: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
    // *     example 2: explode('=', 'a=bc=d', 2);
    // *     returns 2: ['a', 'bc=d']
    var emptyArray = {
        0: ''
    };

    // third argument is not required
    if (arguments.length < 2 || typeof arguments[0] == 'undefined' || typeof arguments[1] == 'undefined') {
        return null;
    }

    if (delimiter === '' || delimiter === false || delimiter === null) {
        return false;
    }

    if (typeof delimiter == 'function' || typeof delimiter == 'object' || typeof string == 'function' || typeof string == 'object') {
        return emptyArray;
    }

    if (delimiter === true) {
        delimiter = '1';
    }

    if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        // support for limit argument
        var splitted = string.toString().split(delimiter.toString());
        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;
    }
}



function fila_seleccionada(control_fila){
    if(control_fila.checked)
        control_fila.parentNode.parentNode.className="info_listado_sel";
    else
        control_fila.parentNode.parentNode.className="info_fila";
}




/*
 *
 * jQuery Delay Plugin
 * version: 0.0.1 (14-Jan-2010)
 * @requires jQuery v1.3.0 or later
 * Author: drew (drew.wells@claytonhomes.com)
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 */
jQuery.fn.eachDelay = function(callback, speed){
    return jQuery.eachDelay( this, callback, speed)
}
jQuery.extend({
    eachDelay: function(object,callback, speed){
        var name, i = -1, length = object.length, $div = $('<div>'), id;
        if (length === undefined) { //not an array process as object
            var arr = [], x = -1;
            for (name in object) arr[++x] = name;
            id = window.setInterval(function(){
                if( ++i === arr.length || callback.call(object[ arr[i] ], arr[i], object[ arr[i] ]) === false)
                    clearInterval(id);
            }, speed);
        }
        else { //array-compatible element ie. [], jQuery Object
            id = window.setInterval(function(){
                if (++i === object.length || callback.call(object[i], i, object[i]) === false)
                    clearInterval(id);
            }, speed);
        }
        return object;
    }
});

/*
*
* jQuery Delay Plugin
* version: 0.0.1 (14-Jan-2010)
* @requires jQuery v1.3.0 or later
* Author: drew (drew.wells@claytonhomes.com)
*
* Dual licensed under the MIT and GPL licenses:
*   http://www.opensource.org/licenses/mit-license.php
*   http://www.gnu.org/licenses/gpl.html
*
*/
jQuery.fn.eachDelay = function(callback, speed){
   return jQuery.eachDelay( this, callback, speed)
}

jQuery.extend({
   eachDelay: function(object,callback, speed){
       var name, i = -1, length = object.length, $div = $('<div>'), id;
       if (length === undefined) { //not an array process as object
           var arr = [], x = -1;
           for (name in object) arr[++x] = name;
           id = window.setInterval(function(){
               if( ++i === arr.length || callback.call(object[ arr[i] ], arr[i], object[ arr[i] ]) === false)
                   clearInterval(id);
           }, speed);
       }
       else { //array-compatible element ie. [], jQuery Object
           id = window.setInterval(function(){
               if (++i === object.length || callback.call(object[i], i, object[i]) === false)
                   clearInterval(id);
           }, speed);
       }
       return object;
   }
});

jQuery.isJSON = function (json) {
   json = json.replace(/\\["\\\/bfnrtu]/g, '@');
   json = json.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
   json = json.replace(/(?:^|:|,)(?:\s*\[)+/g, '');
   return (/^[\],:{}\s]*$/.test(json))
}

jQuery.fn.isJSON = function () {
   var json = this;
   if (jQuery(json).is(":input")) {
       json = jQuery(json).val();
       json = new String(json);
       return jQuery.isJSON(json)
   } else {
       throw new SyntaxError("$(object).isJSON only accepts fields!");
   }
}
String.prototype.isJSON = function () {
   var y = this;
   return jQuery.isJSON(y);
}

function getParameter(url, name) {
    var urlparts = url.split('?');
    if (urlparts.length > 1) {
        var parameters = urlparts[1].split('&');
        for (var i = 0; i < parameters.length; i++) {
            var paramparts = parameters[i].split('=');
            if (paramparts.length > 1 && unescape(paramparts[0]) == name) {
                return unescape(paramparts[1]);
            }
        }
    }
    return null;
}


