/** * Currency (http://www.reality-xp.com) * A jQuery plugin for converting currencies * * Version 1.0 * August 27th, 2008 * * Copyright (c) 2008 Reality XP * Dual licensed under the MIT and GPL licenses. * http://www.opensource.org/licenses/mit-license.php * http://www.opensource.org/licenses/gpl-license.php * **/ //on page load call convert $(document).ready(function(){ $('.currency').each(function(i,domEle){ $(domEle).convertCurrency(false); return true; }) }); ;(function(){ var $$; $$ = jQuery.fn.convertCurrency = function(currencycode) { var $this = $(this) if ($this.attr('rel')) { var prms = $this.attr('rel').split(':'); /*"USD:EUR:€"*/ var fAmnt = parseFloat($this.text()); var cCode = currencycode ? ' '+prms[1] : ''; // check if the exchange rate has been retrieved today var cookieVal = $.cookie('currencyrate'+prms[0]+prms[1]); if (cookieVal != null) { // convert the amount to the required currency frmtCurrency($this,prms[2],fAmnt*parseFloat(cookieVal),cCode,prms[1]); } else { try { reqAjax = $.ajax({ type: "POST", url: '/scripts/currency-ajax.php', dataType: "json", data: "action=rate" + "&currfrom=" + prms[0] + "&currto=" + prms[1], success: function(json) { switch (json.errcode) { case 'ERR-100': $.cookie('currencyrate'+prms[0]+prms[1],json.result,{expires: 6, path: '/' }); frmtCurrency($this,prms[2],fAmnt*parseFloat(json.result),cCode,prms[1]); break; case 'ERR-200': break; default: break } }, error: function(xhr, msg, ex) { reqAjax = null } }) } catch(e) { } } } // Executes for each currency on the page return this; function frmtCurrency(ele,symb,val,code,cls) { // round the currency to the nearest .05 val *= 2.0; val = val.toFixed(1) / 2.0; val = val.toFixed(2); // build the text in the form: '$' '12.35' 'USD' ele.text(symb+parseInt(val)+code ); // add the currency code to the element class. ele.addClass(cls); }; }; })();