﻿
export const play= (url) => {
    return new Promise(function (resolve, reject) { // return a promise
        var audio = new Audio();                     // create audio wo/ src
        audio.preload = "auto";                      // intend to play through
        audio.autoplay = true;                       // autoplay when loaded
        audio.onerror = reject;                      // on error, reject
        audio.onended = resolve;                     // when done, resolve
        audio.src = url
    });
}


//pResponse = Respuesta desde negocio
export const Response = (pResponse) => { //Then 
    NProgress.done()
    $("#overlay").hide();
    if (pResponse.data == null) {
        return { data: [], isError: false }; //No hay datos
    } else
       if (Number.isInteger(pResponse.data)) {
        return { data: pResponse.data, isError: false };
    } else
        if (Array.isArray(pResponse.data)) {
            return { data: pResponse.data, isError: false };
        } else
            if ((typeof pResponse.data === "object") && (pResponse.data !== null) && pResponse.data.Errores == undefined) {
                return { data: pResponse.data, isError: false };
            } else
                if (pResponse.data.Errores != undefined) {
                    return { data: pResponse.data.Errores[0].MensajeError, isError: true };
                } else
                    if (pResponse.data.indexOf('Error') !== -1) { //Entra a Exception
                        return { data: pResponse.data, isError: true };
                    } else {
                        return { data: pResponse.data, isError: false };
                    }
}
//pError = Mensaje de la exception desde negocio
export const Error = (pError) => { //Catch
    NProgress.done();
    $("#overlay").hide();
    return { data: pError, isError: true };
}

//n= numero float, d=cantidad de decimales
export const round = (n, d) => {
    if (d == 0) {
        return Math.round(n)
    } else
        if (d == 1) {
            return Math.round(n * 10) / 10;
        } else
            return Math.round(n * 100) / 100;
}

//s= cantidad de segundos
export const toHHMMSS = (s) => {  

    var fm = [
        Math.floor(s / 60 / 60 / 24), // DAYS
        Math.floor(s / 60 / 60) % 24, // HOURS
        Math.floor(s / 60) % 60, // MINUTES
        s % 60 // SECONDS
    ];

    return fm.map((v, i) => {
        if (i == 0 && v == 0) { // Si no tiene dias se omite el 00:
            return '';
        } else {
            if (i == 3) {
                return (((v < 10) ? '0' : '') + v.toString());
            } else {
                return (((v < 10) ? '0' : '') + v.toString()) + ":";
            }
        }

    });

 
}

export const  toAMPM = (time)=> {
    time = time.toString().match(/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];
    if (time.length > 1) { 
        time = time.slice(1);  
        time[5] = +time[0] < 12 ? ' AM' : ' PM';
        time[0] = +time[0] % 12 || 12; 
    }
    return time.join(''); 
}

