
/* ProductFamily */


/*function initLcTaxPriceWidget() {
    lcTaxPriceInit() ;
    $('#productfamily_price').change(lcTaxPriceEventPrice);
    $('#productfamily_priceWithTax').change(lcTaxPriceEventPriceWithTax);
}

function lcTaxPriceInit() {
    lcTaxPriceUpdate('priceWithTax') ;
    $('#productfamily_price').val(parseFloat($('#productfamily_price').val()).toFixed(3));
}

function lcTaxPriceEventPrice() {
    lcTaxPriceUpdate('priceWithTax') ;
}

function lcTaxPriceEventPriceWithTax() {
    lcTaxPriceUpdate('price') ;
}

function lcTaxGetTaxRate() {
    taxRate = $('#productfamily_taxRate').find('option:selected').data('tax-rate-value');
    if(typeof taxRate == 'undefined') {
        taxRate = 0 ;
    }
    return taxRate ;
}

function lcTaxPriceUpdate(priceType) {
    var taxRate = lcTaxGetTaxRate() ;
    if(priceType == 'priceWithTax') {
        $('#productfamily_priceWithTax').val(getPriceWithTax($('#productfamily_price').val(), taxRate));
    }
    else {
        $('#productfamily_price').val(getPrice($('#productfamily_priceWithTax').val(), taxRate));
    }
}*/



/**
 * Retourne un prix sans taxe sur base du prix avec tax
 *
 * @param priceWithTax
 * @param taxRate
 * @returns {string}
 */
function getPrice(priceWithTax, taxRate) {
    return parseFloat(parseFloat(priceWithTax) / ((taxRate/100) + 1)).toFixed(4);
}

/**
 * Retourne un prix avec taxe sur base du prix sans taxe
 *
 * @param priceWithoutTax
 * @param taxRate
 * @returns {string}
 */
function getPriceWithTax(priceWithoutTax, taxRate) {
    return parseFloat(parseFloat(priceWithoutTax) * ((taxRate/100) + 1)).toFixed(2);
}


function formatNumber(number, toFixed){
    if(number)return Number(number.replace(',', '.')).toFixed(toFixed);
    else return null;
}
function formatNumberWithoutFixed(number){
    if(typeof number == 'string')number = number.replace(',', '.');
    if(number)return Number(number);
    else return null;
}


/**
 * Formate un prix en l'arrondissant et en ajoutant le sigle de la monnaie
 *
 * @param price
 * @returns {string}
 */
function formatPrice(price) {
    return Number(price).toFixed(2).replace('.', ',') + ' €';
}

/**
 * Formate une date au format jj/mm/yyyy
 * @param date
 * @returns {*}
 */
function formatDate(date) {
    if (date) {
        return ('0' + date.getDate()).slice(-2) + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' + date.getFullYear();
    }
    return false;
}

/**
 * Equivalent de console.log (ne déclenche pas d'erreur si la console est fermé)
 *
 * @param msg
 */

function log(msg) {
    try {
        console.log(msg);
    } catch (e) {

    }
}

/**
 * Convertit un formulaire ou un objet en JSON (utilisé pour l'envoie de donnée en ajax)
 */
$.fn.serializeObject = function () {
    var o = {};
    var a = this.serializeArray();
    $.each(a, function () {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};


function getDateFormatted(date, separator) {
    if(date) {
        var date = new Date(date);
        var _d = date.getDate(),
            d = _d > 9 ? _d : '0' + _d,
            _m = date.getMonth() + 1,
            m = _m > 9 ? _m : '0' + _m,
            formatted = d + separator + m + separator + date.getFullYear();
        return formatted;
    }else{
        return '';
    }
}

//Affiche une alert au click sur un bouton submit lorsqu'un utilisateur admin tente de modifer un Ã©tablissement
function userNotAllowToEdit() {
    alert('Vous n\'êtes pas autorisé à effectuer cette action');
    return false;
}



function generateNotice(type, text) {
    toastr.options.timeOut = 30000;
    toastr[type](text);

    /*var n = noty({
        text: text,
        type: type,
        dismissQueue: true,
        layout: 'topRight',
        closeWith: ['click'],
        autoHide: true,
        clickToHide: false,
        autoHideDelay: 50,
        maxVisible: 10,
        animation: {
            open: 'animated bounceInDown',
            close: 'animated bounceOutDown',
            easing: 'swing',
            speed: 500
        }
    });*/
}
