| /**
 * Created with JetBrains PhpStorm.
 * User: eddy
 * Date: 21/04/14
 * Time: 14:13
 */
VU = {};
/**
 * Función para crear espacios de nombre
 * @example VU.ns('VU.Bundle.Accion'), VU.namespace('VU.Bundle.Accion')
 * @returns {Function}
 */
VU.ns = VU.namespace = function(){
    var obj, blocks, resto;
    for(var i =0; i < arguments.length; i++){
        var arg = arguments[i];
        blocks = arg.split(".");
        obj = window[blocks[0]] = window[blocks[0]] || {};
        resto = blocks.slice(1);
        for(var j =0; j < resto.length; j++){
            obj = obj[resto[j]] = obj[resto[j]] || {};
        }
    }
    return obj;
};
/**
 * Función agregada al prototype que permite clonar
 * @returns {Function}
 */
Function.prototype.clone = function() {
    var that = this;
    var temp = function temporary() { return that.apply(this, arguments); };
    for(var key in this) {
        if (this.hasOwnProperty(key)) {
            temp[key] = this[key];
        }
    }
    return temp;
};
/**
 * Función agregada a la clase String que permite formatear una cadena de acuerdo al patrón {#}
 * donde # es el índice del argumento pasado, reemplaza todas las coincidencias en la cadena.
 * Basado en la misma función de Ext-js
 * @augments Array Valores a reemplazar en la cadena
 *
 * @return String Cadena formateada
 */
String.prototype.format = function(){
    var f = this;
    for(var i = 0; i < arguments.length; i++){
        f = f.replace(new RegExp('\\{'+i+'\\}', 'g'), arguments[i]);
    }
    return f;
}
 |