exchange rates

HTML

$5 - <span class="exchange">$5</span>
<br> 5 евро - <span class="exchange">5 евро</span>
<br> 5 рублей - <span class="exchange">5 рублей</span>
<br> 5 долларов - <span class="exchange">5 долларов</span>
<br> € 5 - <span class="exchange">€ 5</span>
<br> 5р. - <span class="exchange">5р.</span>

JavaScript

var EXCHANGE_DOLLAR = '$';
var EXCHANGE_RUBLE = 'R';
var EXCHANGE_EURO = 'E';
var EXCHANGE_LANGUAGES = {
  English: 'eng',
  Russian: 'rus'
};

// SETTINGS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
var EXCHANGE_SETTINGS = {
  language: EXCHANGE_LANGUAGES.Russian,
  primary: EXCHANGE_RUBLE,
  secondary: [EXCHANGE_DOLLAR, EXCHANGE_EURO],
  all: [EXCHANGE_DOLLAR, EXCHANGE_EURO, EXCHANGE_RUBLE]
};

// =====================================================================

if (!String.prototype.format2) {
  String.prototype.format2 = function() {
    var args = arguments;
    return this.replace(/{(\d+)}/g, function(match, number) {
      return typeof args[number] != 'undefined' ? args[number] : match;
    });
  };
}

// =====================================================================

/* money.js 0.2, MIT license, http://openexchangerates.github.io/money.js */
(function(g, j) {
  var b = function(a) {
    return new i(a)
  };
  b.version = "0.1.3";
  var c = g.fxSetup || {
    rates: {},
    base: ""
  };
  b.rates = c.rates;
  b.base = c.base;
  b.settings = {
    from: c.from || b.base,
    to: c.to || b.base
  };
  var h = b.convert = function(a, e) {
      if ("object" === typeof a && a.length) {
        for (var d = 0; d < a.length; d++) a[d] = h(a[d], e);
        return a
      }
      e = e || {};
      if (!e.from) e.from = b.settings.from;
      if (!e.to) e.to = b.settings.to;
      var d = e.to,
        c = e.from,
        f = b.rates;
      f[b.base] = 1;
      if (!f[d] || !f[c]) throw "fx error";
      d = c === b.base ? f[d] : d === b.base ? 1 / f[c] : f[d] * (1 / f[c]);
      return a * d
    },
    i = function(a) {
      "string" === typeof a ? (this._v = parseFloat(a.replace(/[^0-9-.]/g, "")), this._fx = a.replace(/([^A-Za-z])/g, "")) : this._v = a
    },
    c = b.prototype = i.prototype;
  c.convert = function() {
    var a = Array.prototype.slice.call(arguments);
    a.unshift(this._v);
    return h.apply(b, a)
  };
 ...