/**
Utiles.class.js

Descripcion:
Contiene funciones basicas y utiles para el uso comun.

Dependencias:
Ninguna

Versión:
3.0.7 - 20/03/2017

**/

var Utiles = {

    /**
     * Zona de Configuraciones
     */
    prontusName: '',
    configWinDefault: 'scrollbars=1,resizable=1,toolbar=0,status=0,menubar=0,location=0,directories=0',
    msgWin: 'Debes habilitar las ventanas emergentes en tu navegador para acceder a esta funcionalidad.',

    /**
     * Abre una ventana pop generica
     * @param loc Url de la pagina que se abrira en la pop
     * @param nom nombre de la ventana
     * @param ancho ancho de la ventana
     * @param alto alto de la ventana
     * @param posx posicion X de la ventana
     * @param posy posicion Y de la ventana
     */
    subWin: function (loc, nom, ancho, alto, posx, posy, options) {
        var thisposx = (typeof posx !== 'undefined') ? posx : 20;
        var thisposy = (typeof posy !== 'undefined') ? posy : 10;

        if ((typeof loc === 'undefined') || (loc === "")){
           return false;
        }

        options = (typeof options === 'undefined') ? this.configWinDefault : options;
        options = 'width=' + ancho + ',height=' + alto
                + ',top=' + thisposy + ',left=' + thisposx
                + ',screenX=' + thisposx + ',screenY=' + thisposy
                + ',' + options;

        // Internet Explorer arroja error cuando el nombre de la ventana trae, por ejemplo, puntos.
        if((typeof nom === 'undefined') || (nom === "")) {
            nom = "New Window";
        } else {
            nom = nom.replace(/[^\w\d]/i,'');
        }

        var win = window.open(loc, nom, options);
        if(win) {
            win.focus();
        } else {
            showModalAlert({
                title: 'Error',
                type: 'red',
                msg: Utiles.msgWin
            });
            return;
        }
    },

    /**
     * Obtiene un parametro del querystring.
     * @param nom Nmobre del parametro a leer
     */
    getParam: function (nom) {
        var request = window.location.href;
        if ((nom !== null) && (nom !== 'undefined') && (nom !== '')) {
            var re = new RegExp(nom + '=([^&]*)');
            var found = request.match(re);
            if(found.length >= 2) {
                return found[1];
            } else {
                return '';
            }
        }
        return '';
    },

    /**
     * Funcion utilitaria para poner handlers a los campos de busqueda
     * @param theid ID del campo input
     * @param texto Texto por default del campo input
     */
    instalaHandlerBuscador: function(theid, texto) {
        if($(theid).val() === '') {
            $(theid).val(texto).addClass('texto-ayuda');
        }
        $(theid).on('focus', function() {
            if($(this).val() == texto) {
                $(this).val('').removeClass('texto-ayuda');
            }
        }).on('blur', function() {
            if($(this).val() === '') {
                $(this).val(texto).addClass('texto-ayuda');
            }
        });
    },

    /**
     * Muestra/oculta las advertencias
     */
    showAlert: function(object) {
        if (object.value == 'SI') {
            $('#'+object.name+'_alert').show();
        } else {
            $('#'+object.name+'_alert').hide();
        }
    }
};
