function popup(html, width) {
  if (!width) width = 500;
  
  var scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
  }
  
  if (!$('#popup').size())
    $('body').append('<div id="popup"></div>');
  $('#popup')
    .css('width',width+'px')
    .css('margin-left','-'+(width/2)+'px')
    .css('top',(scrOfY+50)+'px')
    .css('left','50%')
    .html('<a href="#" id="popup_close" style="float: right; text-align: right;width: 100px; height:30px; display:block;">Fermer</a>'+html);
  $('#popup_close').click(function() { popup_close(); return false; });
}

function popup_loading() {
  popup('Chargement en cours...');
}

function popup_close(timeout) {
  if (timeout) {
    setTimeout("popup_close()", timeout);
  } else {
    if ($('#popup').size()) {
      $('#popup').fadeOut(600, function() { $(this).remove();});
    }
  }
}

function nbf(nb) {
    return number_format(nb,2,',','.');
}

function number_format (number, decimals, dec_point, thousands_sep) {
    var n = number, prec = decimals;
 
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
     var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);    } else {
        s = s.replace('.', dec);
    }
 
    var decPos = s.indexOf(dec);    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';    }
    return s;
}