﻿(function($) {
    $.keyCode = { BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38 }; var _remove = $.fn.remove; var isFF2 = $.browser.mozilla && (parseFloat($.browser.version) < 1.9); $.ui = { version: "@VERSION", plugin: { add: function(module, option, set) { var proto = $.ui[module].prototype; for (var i in set) { proto.plugins[i] = proto.plugins[i] || []; proto.plugins[i].push([option, set[i]]); } }, call: function(instance, name, args) {
        var set = instance.plugins[name]; if (!set) { return; }
        for (var i = 0; i < set.length; i++) { if (instance.options[set[i][0]]) { set[i][1].apply(instance.element, args); } } 
    } 
    }, cssCache: {}, css: function(name) {
        if ($.ui.cssCache[name]) { return $.ui.cssCache[name]; }
        var tmp = $('<div class="ui-gen">').addClass(name).css({ position: 'absolute', top: '-5000px', left: '-5000px', display: 'block' }).appendTo('body'); $.ui.cssCache[name] = !!((!(/auto|default/).test(tmp.css('cursor')) || (/^[1-9]/).test(tmp.css('height')) || (/^[1-9]/).test(tmp.css('width')) || !(/none/).test(tmp.css('backgroundImage')) || !(/transparent|rgba\(0, 0, 0, 0\)/).test(tmp.css('backgroundColor')))); try { $('body').get(0).removeChild(tmp.get(0)); } catch (e) { }
        return $.ui.cssCache[name];
    }, hasScroll: function(e, a) {
        if ($(e).css('overflow') == 'hidden') { return false; }
        var scroll = (a && a == 'left') ? 'scrollLeft' : 'scrollTop', has = false; if (e[scroll] > 0) { return true; }
        e[scroll] = 1; has = (e[scroll] > 0); e[scroll] = 0; return has;
    } 
    }; $.fn.extend({ remove: function() { $("*", this).add(this).each(function() { $(this).triggerHandler("remove"); }); return _remove.apply(this, arguments); }, enableSelection: function() { return this.attr('unselectable', 'off').css('MozUserSelect', '').unbind('selectstart.ui'); }, disableSelection: function() { return this.attr('unselectable', 'on').css('MozUserSelect', 'none').bind('selectstart.ui', function() { return false; }); }, ariaRole: function(role) { return (role !== undefined ? this.attr("role", isFF2 ? "wairole:" + role : role) : (this.attr("role") || "").replace(/^wairole:/, "")); }, ariaState: function(state, value) { return (value !== undefined ? this.each(function(i, el) { (isFF2 ? el.setAttributeNS("http://www.w3.org/2005/07/aaa", "aaa:" + state, value) : $(el).attr("aria-" + state, value)); }) : this.attr(isFF2 ? "aaa:" + state : "aria-" + state)); } }); $.extend($.expr[':'], { data: function(a, i, m) { return $.data(a, m[3]); }, tabbable: function(a, i, m) {
        var nodeName = a.nodeName.toLowerCase(); var isVisible = function(element) {
            function checkStyles(element) { var style = element.style; return (style.display != 'none' && style.visibility != 'hidden'); }
            var visible = checkStyles(element); (visible && $.each($.dir(element, 'parentNode'), function() { return (visible = checkStyles(this)); })); return visible;
        }; return (a.tabIndex >= 0 && (('a' == nodeName && a.href) || (/input|select|textarea|button/.test(nodeName) && 'hidden' != a.type && !a.disabled)) && isVisible(a));
    } 
    }); function getter(namespace, plugin, method, args) {
        function getMethods(type) { var methods = $[namespace][plugin][type] || []; return (typeof methods == 'string' ? methods.split(/,?\s+/) : methods); }
        var methods = getMethods('getter'); if (args.length == 1 && typeof args[0] == 'string') { methods = methods.concat(getMethods('getterSetter')); }
        return ($.inArray(method, methods) != -1);
    }
    $.widget = function(name, prototype) {
        var namespace = name.split(".")[0]; name = name.split(".")[1]; $.fn[name] = function(options) {
            var isMethodCall = (typeof options == 'string'), args = Array.prototype.slice.call(arguments, 1); if (isMethodCall && options.substring(0, 1) == '_') { return this; }
            if (isMethodCall && getter(namespace, name, options, args)) { var instance = $.data(this[0], name); return (instance ? instance[options].apply(instance, args) : undefined); }
            return this.each(function() { var instance = $.data(this, name); (!instance && !isMethodCall && $.data(this, name, new $[namespace][name](this, options))); (instance && isMethodCall && $.isFunction(instance[options]) && instance[options].apply(instance, args)); });
        }; $[namespace] = $[namespace] || {}; $[namespace][name] = function(element, options) { var self = this; this.widgetName = name; this.widgetEventPrefix = $[namespace][name].eventPrefix || name; this.widgetBaseClass = namespace + '-' + name; this.options = $.extend({}, $.widget.defaults, $[namespace][name].defaults, $.metadata && $.metadata.get(element)[name], options); this.element = $(element).bind('setData.' + name, function(e, key, value) { return self._setData(key, value); }).bind('getData.' + name, function(e, key) { return self._getData(key); }).bind('remove', function() { return self.destroy(); }); this._init(); }; $[namespace][name].prototype = $.extend({}, $.widget.prototype, prototype); $[namespace][name].getterSetter = 'option';
    }; $.widget.prototype = { _init: function() { }, destroy: function() { this.element.removeData(this.widgetName); }, option: function(key, value) {
        var options = key, self = this; if (typeof key == "string") {
            if (value === undefined) { return this._getData(key); }
            options = {}; options[key] = value;
        }
        $.each(options, function(key, value) { self._setData(key, value); });
    }, _getData: function(key) { return this.options[key]; }, _setData: function(key, value) { this.options[key] = value; if (key == 'disabled') { this.element[value ? 'addClass' : 'removeClass'](this.widgetBaseClass + '-disabled'); } }, enable: function() { this._setData('disabled', false); }, disable: function() { this._setData('disabled', true); }, _trigger: function(type, e, data) { var eventName = (type == this.widgetEventPrefix ? type : this.widgetEventPrefix + type); e = e || $.event.fix({ type: eventName, target: this.element[0] }); return this.element.triggerHandler(eventName, [e, data], this.options[type]); } 
    }; $.widget.defaults = { disabled: false }; $.ui.mouse = { _mouseInit: function() {
        var self = this; this.element.bind('mousedown.' + this.widgetName, function(e) { return self._mouseDown(e); }).bind('click.' + this.widgetName, function(e) { if (self._preventClickEvent) { self._preventClickEvent = false; return false; } }); if ($.browser.msie) { this._mouseUnselectable = this.element.attr('unselectable'); this.element.attr('unselectable', 'on'); }
        this.started = false;
    }, _mouseDestroy: function() { this.element.unbind('.' + this.widgetName); ($.browser.msie && this.element.attr('unselectable', this._mouseUnselectable)); }, _mouseDown: function(e) {
        (this._mouseStarted && this._mouseUp(e)); this._mouseDownEvent = e; var self = this, btnIsLeft = (e.which == 1), elIsCancel = (typeof this.options.cancel == "string" ? $(e.target).parents().add(e.target).filter(this.options.cancel).length : false); if (!btnIsLeft || elIsCancel || !this._mouseCapture(e)) { return true; }
        this.mouseDelayMet = !this.options.delay; if (!this.mouseDelayMet) { this._mouseDelayTimer = setTimeout(function() { self.mouseDelayMet = true; }, this.options.delay); }
        if (this._mouseDistanceMet(e) && this._mouseDelayMet(e)) { this._mouseStarted = (this._mouseStart(e) !== false); if (!this._mouseStarted) { e.preventDefault(); return true; } }
        this._mouseMoveDelegate = function(e) { return self._mouseMove(e); }; this._mouseUpDelegate = function(e) { return self._mouseUp(e); }; $(document).bind('mousemove.' + this.widgetName, this._mouseMoveDelegate).bind('mouseup.' + this.widgetName, this._mouseUpDelegate); return false;
    }, _mouseMove: function(e) {
        if ($.browser.msie && !e.button) { return this._mouseUp(e); }
        if (this._mouseStarted) { this._mouseDrag(e); return false; }
        if (this._mouseDistanceMet(e) && this._mouseDelayMet(e)) { this._mouseStarted = (this._mouseStart(this._mouseDownEvent, e) !== false); (this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)); }
        return !this._mouseStarted;
    }, _mouseUp: function(e) {
        $(document).unbind('mousemove.' + this.widgetName, this._mouseMoveDelegate).unbind('mouseup.' + this.widgetName, this._mouseUpDelegate); if (this._mouseStarted) { this._mouseStarted = false; this._preventClickEvent = true; this._mouseStop(e); }
        return false;
    }, _mouseDistanceMet: function(e) { return (Math.max(Math.abs(this._mouseDownEvent.pageX - e.pageX), Math.abs(this._mouseDownEvent.pageY - e.pageY)) >= this.options.distance); }, _mouseDelayMet: function(e) { return this.mouseDelayMet; }, _mouseStart: function(e) { }, _mouseDrag: function(e) { }, _mouseStop: function(e) { }, _mouseCapture: function(e) { return true; } 
    }; $.ui.mouse.defaults = { cancel: null, distance: 1, delay: 0 };
})(jQuery); (function($) {
    $.widget("ui.tabs", { _init: function() { this._tabify(true); }, _setData: function(key, value) {
        if ((/^selected/).test(key))
            this.select(value); else { this.options[key] = value; this._tabify(); } 
    }, length: function() { return this.$tabs.length; }, _tabId: function(a) { return a.title && a.title.replace(/\s/g, '_').replace(/[^A-Za-z0-9\-_:\.]/g, '') || this.options.idPrefix + $.data(a); }, ui: function(tab, panel) { return { options: this.options, tab: tab, panel: panel, index: this.$tabs.index(tab) }; }, _sanitizeSelector: function(hash) { return hash.replace(/:/g, '\\:'); }, _cookie: function() { var cookie = this.cookie || (this.cookie = 'ui-tabs-' + $.data(this.element[0])); return $.cookie.apply(null, [cookie].concat($.makeArray(arguments))); }, _tabify: function(init) {
        this.$lis = $('li:has(a[href])', this.element); this.$tabs = this.$lis.map(function() { return $('a', this)[0]; }); this.$panels = $([]); var self = this, o = this.options; this.$tabs.each(function(i, a) {
            if (a.hash && a.hash.replace('#', ''))
                self.$panels = self.$panels.add(self._sanitizeSelector(a.hash)); else if ($(a).attr('href') != '#') {
                $.data(a, 'href.tabs', a.href); $.data(a, 'load.tabs', a.href); var id = self._tabId(a); a.href = '#' + id; var $panel = $('#' + id); if (!$panel.length) { $panel = $(o.panelTemplate).attr('id', id).addClass(o.panelClass).insertAfter(self.$panels[i - 1] || self.element); $panel.data('destroy.tabs', true); }
                self.$panels = self.$panels.add($panel);
            }
            else
                o.disabled.push(i + 1);
        }); if (init) {
            this.element.addClass(o.navClass); this.$panels.addClass(o.panelClass); if (o.selected === undefined) {
                if (location.hash) { this.$tabs.each(function(i, a) { if (a.hash == location.hash) { o.selected = i; return false; } }); }
                else if (o.cookie) { var index = parseInt(self._cookie(), 10); if (index && self.$tabs[index]) o.selected = index; }
                else if (self.$lis.filter('.' + o.selectedClass).length)
                    o.selected = self.$lis.index(self.$lis.filter('.' + o.selectedClass)[0]);
            }
            o.selected = o.selected === null || o.selected !== undefined ? o.selected : 0; o.disabled = $.unique(o.disabled.concat($.map(this.$lis.filter('.' + o.disabledClass), function(n, i) { return self.$lis.index(n); }))).sort(); if ($.inArray(o.selected, o.disabled) != -1)
                o.disabled.splice($.inArray(o.selected, o.disabled), 1); this.$panels.addClass(o.hideClass); this.$lis.removeClass(o.selectedClass); if (o.selected !== null) {
                this.$panels.eq(o.selected).removeClass(o.hideClass); var classes = [o.selectedClass]; if (o.deselectable) classes.push(o.deselectableClass); this.$lis.eq(o.selected).addClass(classes.join(' ')); var onShow = function() { self._trigger('show', null, self.ui(self.$tabs[o.selected], self.$panels[o.selected])); }; if ($.data(this.$tabs[o.selected], 'load.tabs'))
                    this.load(o.selected, onShow); else onShow();
            }
            $(window).bind('unload', function() { self.$tabs.unbind('.tabs'); self.$lis = self.$tabs = self.$panels = null; });
        }
        else
            o.selected = this.$lis.index(this.$lis.filter('.' + o.selectedClass)[0]); if (o.cookie) this._cookie(o.selected, o.cookie); for (var i = 0, li; li = this.$lis[i]; i++)
            $(li)[$.inArray(i, o.disabled) != -1 && !$(li).hasClass(o.selectedClass) ? 'addClass' : 'removeClass'](o.disabledClass); if (o.cache === false) this.$tabs.removeData('cache.tabs'); var hideFx, showFx; if (o.fx) {
            if (o.fx.constructor == Array) { hideFx = o.fx[0]; showFx = o.fx[1]; }
            else hideFx = showFx = o.fx;
        }
        function resetStyle($el, fx) { $el.css({ display: '' }); if ($.browser.msie && fx.opacity) $el[0].style.removeAttribute('filter'); }
        var showTab = showFx ? function(clicked, $show) { $show.animate(showFx, showFx.duration || 'normal', function() { $show.removeClass(o.hideClass); resetStyle($show, showFx); self._trigger('show', null, self.ui(clicked, $show[0])); }); } : function(clicked, $show) { $show.removeClass(o.hideClass); self._trigger('show', null, self.ui(clicked, $show[0])); }; var hideTab = hideFx ? function(clicked, $hide, $show) { $hide.animate(hideFx, hideFx.duration || 'normal', function() { $hide.addClass(o.hideClass); resetStyle($hide, hideFx); if ($show) showTab(clicked, $show, $hide); }); } : function(clicked, $hide, $show) { $hide.addClass(o.hideClass); if ($show) showTab(clicked, $show); }; function switchTab(clicked, $li, $hide, $show) { var classes = [o.selectedClass]; if (o.deselectable) classes.push(o.deselectableClass); $li.addClass(classes.join(' ')).siblings().removeClass(classes.join(' ')); hideTab(clicked, $hide, $show); }
        this.$tabs.unbind('.tabs').bind(o.event + '.tabs', function() {
            var $li = $(this).parents('li:eq(0)'), $hide = self.$panels.filter(':visible'), $show = $(self._sanitizeSelector(this.hash)); if (($li.hasClass(o.selectedClass) && !o.deselectable) || $li.hasClass(o.disabledClass) || $(this).hasClass(o.loadingClass) || self._trigger('select', null, self.ui(this, $show[0])) === false) { this.blur(); return false; }
            o.selected = self.$tabs.index(this); if (o.deselectable) { if ($li.hasClass(o.selectedClass)) { self.options.selected = null; $li.removeClass([o.selectedClass, o.deselectableClass].join(' ')); self.$panels.stop(); hideTab(this, $hide); this.blur(); return false; } else if (!$hide.length) { self.$panels.stop(); var a = this; self.load(self.$tabs.index(this), function() { $li.addClass([o.selectedClass, o.deselectableClass].join(' ')); showTab(a, $show); }); this.blur(); return false; } }
            if (o.cookie) self._cookie(o.selected, o.cookie); self.$panels.stop(); if ($show.length) { var a = this; self.load(self.$tabs.index(this), $hide.length ? function() { switchTab(a, $li, $hide, $show); } : function() { $li.addClass(o.selectedClass); showTab(a, $show); }); } else
                throw 'jQuery UI Tabs: Mismatching fragment identifier.'; if ($.browser.msie) this.blur(); return false;
        }); if (o.event != 'click') this.$tabs.bind('click.tabs', function() { return false; });
    }, add: function(url, label, index) {
        if (index == undefined)
            index = this.$tabs.length; var o = this.options; var $li = $(o.tabTemplate.replace(/#\{href\}/g, url).replace(/#\{label\}/g, label)); $li.data('destroy.tabs', true); var id = url.indexOf('#') == 0 ? url.replace('#', '') : this._tabId($('a:first-child', $li)[0]); var $panel = $('#' + id); if (!$panel.length) { $panel = $(o.panelTemplate).attr('id', id).addClass(o.hideClass).data('destroy.tabs', true); }
        $panel.addClass(o.panelClass); if (index >= this.$lis.length) { $li.appendTo(this.element); $panel.appendTo(this.element[0].parentNode); } else { $li.insertBefore(this.$lis[index]); $panel.insertBefore(this.$panels[index]); }
        o.disabled = $.map(o.disabled, function(n, i) { return n >= index ? ++n : n }); this._tabify(); if (this.$tabs.length == 1) {
            $li.addClass(o.selectedClass); $panel.removeClass(o.hideClass); var href = $.data(this.$tabs[0], 'load.tabs'); if (href)
                this.load(index, href);
        }
        this._trigger('add', null, this.ui(this.$tabs[index], this.$panels[index]));
    }, remove: function(index) {
        var o = this.options, $li = this.$lis.eq(index).remove(), $panel = this.$panels.eq(index).remove(); if ($li.hasClass(o.selectedClass) && this.$tabs.length > 1)
            this.select(index + (index + 1 < this.$tabs.length ? 1 : -1)); o.disabled = $.map($.grep(o.disabled, function(n, i) { return n != index; }), function(n, i) { return n >= index ? --n : n }); this._tabify(); this._trigger('remove', null, this.ui($li.find('a')[0], $panel[0]));
    }, enable: function(index) {
        var o = this.options; if ($.inArray(index, o.disabled) == -1)
            return; var $li = this.$lis.eq(index).removeClass(o.disabledClass); if ($.browser.safari) { $li.css('display', 'inline-block'); setTimeout(function() { $li.css('display', 'block'); }, 0); }
        o.disabled = $.grep(o.disabled, function(n, i) { return n != index; }); this._trigger('enable', null, this.ui(this.$tabs[index], this.$panels[index]));
    }, disable: function(index) { var self = this, o = this.options; if (index != o.selected) { this.$lis.eq(index).addClass(o.disabledClass); o.disabled.push(index); o.disabled.sort(); this._trigger('disable', null, this.ui(this.$tabs[index], this.$panels[index])); } }, select: function(index) {
        if (typeof index == 'string')
            index = this.$tabs.index(this.$tabs.filter('[href$=' + index + ']')[0]); this.$tabs.eq(index).trigger(this.options.event + '.tabs');
    }, load: function(index, callback) {
        var self = this, o = this.options, $a = this.$tabs.eq(index), a = $a[0], bypassCache = callback == undefined || callback === false, url = $a.data('load.tabs'); callback = callback || function() { }; if (!url || !bypassCache && $.data(a, 'cache.tabs')) { callback(); return; }
        var inner = function(parent) { var $parent = $(parent), $inner = $parent.find('*:last'); return $inner.length && $inner.is(':not(img)') && $inner || $parent; }; var cleanup = function() {
            self.$tabs.filter('.' + o.loadingClass).removeClass(o.loadingClass).each(function() {
                if (o.spinner)
                    inner(this).parent().html(inner(this).data('label.tabs'));
            }); self.xhr = null;
        }; if (o.spinner) { var label = inner(a).html(); inner(a).wrapInner('<em></em>').find('em').data('label.tabs', label).html(o.spinner); }
        var ajaxOptions = $.extend({}, o.ajaxOptions, { url: url, success: function(r, s) {
            $(self._sanitizeSelector(a.hash)).html(r); cleanup(); if (o.cache)
                $.data(a, 'cache.tabs', true); self._trigger('load', null, self.ui(self.$tabs[index], self.$panels[index])); try { o.ajaxOptions.success(r, s); }
            catch (e) { }
            callback();
        } 
        }); if (this.xhr) { this.xhr.abort(); cleanup(); }
        $a.addClass(o.loadingClass); self.xhr = $.ajax(ajaxOptions);
    }, url: function(index, url) { this.$tabs.eq(index).removeData('cache.tabs').data('load.tabs', url); }, destroy: function() {
        var o = this.options; this.element.unbind('.tabs').removeClass(o.navClass).removeData('tabs'); this.$tabs.each(function() {
            var href = $.data(this, 'href.tabs'); if (href)
                this.href = href; var $this = $(this).unbind('.tabs'); $.each(['href', 'load', 'cache'], function(i, prefix) { $this.removeData(prefix + '.tabs'); });
        }); this.$lis.add(this.$panels).each(function() {
            if ($.data(this, 'destroy.tabs'))
                $(this).remove(); else
                $(this).removeClass([o.selectedClass, o.deselectableClass, o.disabledClass, o.panelClass, o.hideClass].join(' '));
        }); if (o.cookie)
            this._cookie(null, o.cookie);
    } 
    }); $.extend($.ui.tabs, { version: '@VERSION', getter: 'length', defaults: { deselectable: false, event: 'click', disabled: [], cookie: null, spinner: 'Loading…', cache: false, idPrefix: 'ui-tabs-', ajaxOptions: null, fx: null, tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>', panelTemplate: '<div></div>', navClass: 'ui-tabs-nav', selectedClass: 'ui-tabs-selected', deselectableClass: 'ui-tabs-deselectable', disabledClass: 'ui-tabs-disabled', panelClass: 'ui-tabs-panel', hideClass: 'ui-tabs-hide', loadingClass: 'ui-tabs-loading'} }); $.extend($.ui.tabs.prototype, { rotation: null, rotate: function(ms, continuing) {
        continuing = continuing || false; var self = this, t = this.options.selected; function start() { self.rotation = setInterval(function() { t = ++t < self.$tabs.length ? t : 0; self.select(t); }, ms); }
        function stop(e) { if (!e || e.clientX) { clearInterval(self.rotation); } }
        if (ms) {
            start(); if (!continuing)
                this.$tabs.bind(this.options.event + '.tabs', stop); else
                this.$tabs.bind(this.options.event + '.tabs', function() { stop(); t = self.options.selected; start(); });
        }
        else { stop(); this.$tabs.unbind(this.options.event + '.tabs', stop); } 
    } 
    });
})(jQuery); $(function() { $('#moneyconverter-control > ul').tabs(); var locale = $("#locale").text(); $("#txtAmount").ForceNumericOnly(); $('#txtAmount').keyup(function() { $.recalculate(); }); $('#ddlFrom').change(function() { $('#topCCY').fetchCcyDetail($(this).val(), locale); }); $('#ddlTo').change(function() { $('#bottomCCY').fetchCcyDetail($(this).val(), locale); }); $('#ddlMajorCurrencies').change(function() { $.recalculate_major_rates(); }); $('#ddlMinorCurrencies').change(function() { $.recalculate_minor_rates(); }); $.recalculate(); $.initialize_rate_ticker($('div#rate-ticker')); }); (function(jQuery) {
    function From() {
        var value = null; var ccySell = document.getElementById('ddlFrom'); if (ccySell != null)
            value = ccySell.options[ccySell.selectedIndex].value; return value;
    }
    function To() {
        var value = null; var ccyBuy = document.getElementById('ddlTo'); if (ccyBuy != null)
            value = ccyBuy.options[ccyBuy.selectedIndex].value; return value;
    }
    function ExchangeRate(from, to) {
        var value = 1; if (from != null && to != null) { var fromRate = $('#' + from).text(); var toRate = $('#' + to).text(); if (fromRate != null && toRate != null) { if (parseFloat(fromRate) > 0) { value = toRate / fromRate; } } }
        return value;
    }
    function SetResult(id, from, to, amount, result, locale, suppress) {
        var txtAreaObj = document.getElementById(id); if (txtAreaObj != null) {
            var formattedResult = jQuery.formatNumber(result, { format: "#,###.00", locale: locale }); if (suppress || formattedResult == 0 || amount == 0)
                txtAreaObj.value = ""; else { txtAreaObj.value = jQuery.TMCformatNumber(amount, { format: "#,###.00", locale: locale }) + " " + from + " = " + jQuery.TMCformatNumber(formattedResult, { format: "#,###.00", locale: locale }) + " " + to; return true; } 
        }
        return false;
    }
    function amount2float(amount, locale) { var fval = 0.00; fval = jQuery.TMCparse(amount, { format: "#,###.00", locale: locale }); return fval; }
    jQuery.fn.ForceNumericOnly = function() { return this.each(function() { jQuery(this).keydown(function(e) { var key = e.charCode || e.keyCode || 0; return (key == 8 || key == 9 || key == 44 || key == 46 || key == 110 || key == 188 || key == 190 || (key >= 37 && key <= 40) || (key >= 48 && key <= 57) || (key >= 96 && key <= 105)); }) }) }; jQuery.fn.fetchCcyDetail = function(ccy, lang) {
        jQuery.recalculate(); var pathname = window.location.pathname; if (pathname == null || pathname == "" || pathname == "/")
            pathname = "Default.aspx"; var url = "" + pathname + "/FromDetails"; var parentTag = $(this); jQuery.ajax({ type: "POST", url: url, contentType: "application/json; charset=utf-8", data: "{ 'ccy': '" + ccy + "', 'lang': '" + lang + "' }", dataType: "json", success: function(data) { parentTag.html(data.d); }, error: AjaxFailed });
    }; function AjaxFailed(result) { }
    jQuery.initialize_rate_ticker = function(rate_ticker) { if (rate_ticker != null) { rate_ticker.marquee('pointer').mouseover(function() { $(this).trigger('stop'); }).mouseout(function() { $(this).trigger('start'); }).mousemove(function(event) { if ($(this).data('drag') == true) { this.scrollLeft = $(this).data('scrollX') + ($(this).data('x') - event.clientX); } }).mousedown(function(event) { $(this).data('drag', true).data('x', event.clientX).data('scrollX', this.scrollLeft); }).mouseup(function() { $(this).data('drag', false); }); } }; jQuery.recalculate = function() {
    var amount = jQuery('#txtAmount').val(); var from = From(); var to = To(); var locale = jQuery("#locale").text(); var exchangeRate = ExchangeRate(from, to); var result1 = TMCResult(amount, exchangeRate, locale); var reverseRate = ExchangeRate(to, from); var result2 = TMCResult(amount, reverseRate, locale);
        exchangeRate = exchangeRate * 100000; exchangeRate = Math.round(exchangeRate); exchangeRate = exchangeRate / 100000; var formattedExchangeRate = jQuery.formatNumber(exchangeRate, { format: "#,###.00", locale: locale }); jQuery("#ratebox").val(to + "/" + from + " = " + formattedExchangeRate); var noSupress = SetResult('tmcTxtResult1', from, to, amount, result1, locale, false); SetResult('tmcTxtResult2', to, from, amount, result2, locale, !noSupress);
    }
    jQuery.recalculate_major_rates = function() {
        var allCurrencies = document.getElementById('allccy'); if (allCurrencies != null) {
            var allccy = allCurrencies.innerHTML; var oldBaseCCY = document.getElementById('txtRateCCY'); var newCCY = document.getElementById('ddlMajorCurrencies'); if (oldBaseCCY != null && newCCY != null) {
                newBaseCCY = newCCY.options[newCCY.selectedIndex].value; var deniminator = document.getElementById(newBaseCCY); if (deniminator != null) {
                    var oldRate = deniminator.innerHTML; if (parseFloat(oldRate) > 0) {
                        var temp = new Array(); temp = allccy.split('|'); for (var idx = 0; idx < temp.length; idx++) { var rate = document.getElementById(temp[idx]); if (rate != null) { var displayRate = (rate.innerHTML / oldRate) * 100000; displayRate = Math.round(displayRate); displayRate = displayRate / 100000; rate.innerHTML = displayRate; } }
                        oldBaseCCY.value = newBaseCCY;
                    } 
                } 
            } 
        } 
    }
    jQuery.recalculate_minor_rates = function() {
        var allCurrencies = document.getElementById('allccy'); if (allCurrencies != null) {
            var allccy = allCurrencies.innerHTML; var oldBaseCCY = document.getElementById('txtRateCCY'); var newCCY = document.getElementById('ddlMinorCurrencies'); if (oldBaseCCY != null && newCCY != null) {
                newBaseCCY = newCCY.options[newCCY.selectedIndex].value; var deniminator = document.getElementById(newBaseCCY); if (deniminator != null) {
                    var oldRate = deniminator.innerHTML; if (parseFloat(oldRate) > 0) {
                        var temp = new Array(); temp = allccy.split('|'); for (var idx = 0; idx < temp.length; idx++) { var rate = document.getElementById(temp[idx]); if (rate != null) { var displayRate = (rate.innerHTML / oldRate) * 100000; displayRate = Math.round(displayRate); displayRate = displayRate / 100000; rate.innerHTML = displayRate; } }
                        oldBaseCCY.value = newBaseCCY;
                    } 
                } 
            } 
        } 
    }
    function TMCResult(amount, rate, locale) {
        var value = 0; if (amount != null && rate != null) { value = amount2float(amount, locale) * rate; value = value * 100; value = Math.round(value); value = value / 100; }
        return value;
    } 
})(jQuery); (function(jQuery) {
    function FormatData(dec, group, neg) { this.dec = dec; this.group = group; this.neg = neg; }; function formatCodes(locale) {
        var dec = "."; var group = ","; var neg = "-"; if (locale == "us" || locale == "ae" || locale == "eg" || locale == "il" || locale == "jp" || locale == "sk" || locale == "th" || locale == "cn" || locale == "hk" || locale == "tw" || locale == "au" || locale == "ca" || locale == "gb" || locale == "in") { dec = "."; group = ","; }
        else if (locale == "de" || locale == "vn" || locale == "es" || locale == "dk" || locale == "at" || locale == "gr" || locale == "br") { dec = ","; group = "."; }
        else if (locale == "cz" || locale == "fr" || locale == "fi" || locale == "ru" || locale == "se") { group = " "; dec = ","; }
        else if (locale == "ch") { group = "'"; dec = "."; }
        return new FormatData(dec, group, neg);
    }; jQuery.formatNumber = function(number, options) { var options = jQuery.extend({}, jQuery.fn.parse.defaults, options); var formatData = formatCodes(options.locale.toLowerCase()); var dec = formatData.dec; var group = formatData.group; var neg = formatData.neg; var numString = new String(number); numString = numString.replace(".", dec).replace("-", neg); return numString; }; jQuery.fn.parse = function(options) {
        var options = jQuery.extend({}, jQuery.fn.parse.defaults, options); var formatData = formatCodes(options.locale.toLowerCase()); var dec = formatData.dec; var group = formatData.group; var neg = formatData.neg; var valid = "1234567890.-"; var array = []; this.each(function() {
            var text = new String(jQuery(this).text()); if (jQuery(this).is(":input"))
                text = new String(jQuery(this).val()); text = text.replace(group, '').replace(dec, ".").replace(neg, "-"); var validText = ""; var hasPercent = false; if (text.charAt(text.length - 1) == "%")
                hasPercent = true; for (var i = 0; i < text.length; i++) {
                if (valid.indexOf(text.charAt(i)) > -1)
                    validText = validText + text.charAt(i);
            }
            var number = new Number(validText); if (hasPercent) { number = number / 100; number = number.toFixed(validText.length - 1); }
            array.push(number);
        }); return array;
    }; jQuery.TMCparse = function(rawnumber, options) {
        var options = jQuery.extend({}, jQuery.fn.parse.defaults, options); var formatData = formatCodes(options.locale.toLowerCase()); var dec = formatData.dec; var group = formatData.group; var neg = formatData.neg; var valid = "1234567890.-"; var text = new String(rawnumber); text = text.replace(group, '').replace(dec, ".").replace(neg, "-"); var validText = ""; var hasPercent = false; if (text.charAt(text.length - 1) == "%")
            hasPercent = true; for (var i = 0; i < text.length; i++) {
            if (valid.indexOf(text.charAt(i)) > -1)
                validText = validText + text.charAt(i);
        }
        return new Number(validText);
    }; jQuery.TMCformatNumber = function(number, options) {
        var options = jQuery.extend({}, jQuery.fn.format.defaults, options); var formatData = formatCodes(options.locale.toLowerCase()); var dec = formatData.dec; var group = formatData.group; var neg = formatData.neg; var validFormat = "0#-,."; var text = new String(number); var prefix = ""; var negativeInFront = false; for (var i = 0; i < options.format.length; i++) {
            if (validFormat.indexOf(options.format.charAt(i)) == -1)
                prefix = prefix + options.format.charAt(i); else if (i == 0 && options.format.charAt(i) == '-') { negativeInFront = true; continue; }
            else
                break;
        }
        var suffix = ""; for (var i = options.format.length - 1; i >= 0; i--) {
            if (validFormat.indexOf(options.format.charAt(i)) == -1)
                suffix = options.format.charAt(i) + suffix; else
                break;
        }
        options.format = options.format.substring(prefix.length); options.format = options.format.substring(0, options.format.length - suffix.length); var number = new Number(text.replace(group, '').replace(dec, ".").replace(neg, "-")); if (suffix == "%")
            number = number * 100; var returnString = ""; var decimalValue = number % 1; if (options.format.indexOf(".") > -1) {
            var decimalPortion = dec; var decimalFormat = options.format.substring(options.format.lastIndexOf(".") + 1); var decimalString = new String(decimalValue.toFixed(decimalFormat.length)); decimalString = decimalString.substring(decimalString.lastIndexOf(".") + 1); for (var i = 0; i < decimalFormat.length; i++) {
                if (decimalFormat.charAt(i) == '#' && decimalString.charAt(i) != '0') { decimalPortion += decimalString.charAt(i); break; }
                else if (decimalFormat.charAt(i) == "0") { decimalPortion += decimalString.charAt(i); } 
            }
            returnString += decimalPortion
        }
        else
            number = Math.round(number); var ones = Math.floor(number); if (number < 0)
            ones = Math.ceil(number); var onePortion = ""; if (ones == 0) { onePortion = "0"; }
        else {
            var onesFormat = ""; if (options.format.indexOf(".") == -1)
                onesFormat = options.format; else
                onesFormat = options.format.substring(0, options.format.indexOf(".")); var oneText = new String(ones); var groupLength = 9999; if (onesFormat.lastIndexOf(",") != -1)
                groupLength = onesFormat.length - onesFormat.lastIndexOf(",") - 1; var groupCount = 0; for (var i = oneText.length - 1; i > -1; i--) { onePortion = oneText.charAt(i) + onePortion; groupCount++; if (groupCount == groupLength && i != 0) { onePortion = group + onePortion; groupCount = 0; } } 
        }
        returnString = onePortion + returnString; if (number < 0 && negativeInFront && prefix.length > 0) { returnString = returnString.substring(1); prefix = neg + prefix; }
        returnString = prefix + returnString + suffix; return returnString.replace(new RegExp("\\" + dec + "00$"), "");
    }
    jQuery.fn.format = function(options) {
        var options = jQuery.extend({}, jQuery.fn.format.defaults, options); var formatData = formatCodes(options.locale.toLowerCase()); var dec = formatData.dec; var group = formatData.group; var neg = formatData.neg; var validFormat = "0#-,."; return this.each(function() {
            var text = new String(jQuery(this).text()); if (jQuery(this).is(":input"))
                text = new String(jQuery(this).val()); var prefix = ""; var negativeInFront = false; for (var i = 0; i < options.format.length; i++) {
                if (validFormat.indexOf(options.format.charAt(i)) == -1)
                    prefix = prefix + options.format.charAt(i); else if (i == 0 && options.format.charAt(i) == '-') { negativeInFront = true; continue; }
                else
                    break;
            }
            var suffix = ""; for (var i = options.format.length - 1; i >= 0; i--) {
                if (validFormat.indexOf(options.format.charAt(i)) == -1)
                    suffix = options.format.charAt(i) + suffix; else
                    break;
            }
            options.format = options.format.substring(prefix.length); options.format = options.format.substring(0, options.format.length - suffix.length); var number = new Number(text.replace(group, '').replace(dec, ".").replace(neg, "-")); if (suffix == "%")
                number = number * 100; var returnString = ""; var decimalValue = number % 1; if (options.format.indexOf(".") > -1) {
                var decimalPortion = dec; var decimalFormat = options.format.substring(options.format.lastIndexOf(".") + 1); var decimalString = new String(decimalValue.toFixed(decimalFormat.length)); decimalString = decimalString.substring(decimalString.lastIndexOf(".") + 1); for (var i = 0; i < decimalFormat.length; i++) {
                    if (decimalFormat.charAt(i) == '#' && decimalString.charAt(i) != '0') { decimalPortion += decimalString.charAt(i); break; }
                    else if (decimalFormat.charAt(i) == "0") { decimalPortion += decimalString.charAt(i); } 
                }
                returnString += decimalPortion
            }
            else
                number = Math.round(number); var ones = Math.floor(number); if (number < 0)
                ones = Math.ceil(number); var onePortion = ""; if (ones == 0) { onePortion = "0"; }
            else {
                var onesFormat = ""; if (options.format.indexOf(".") == -1)
                    onesFormat = options.format; else
                    onesFormat = options.format.substring(0, options.format.indexOf(".")); var oneText = new String(ones); var groupLength = 9999; if (onesFormat.lastIndexOf(",") != -1)
                    groupLength = onesFormat.length - onesFormat.lastIndexOf(",") - 1; var groupCount = 0; for (var i = oneText.length - 1; i > -1; i--) { onePortion = oneText.charAt(i) + onePortion; groupCount++; if (groupCount == groupLength && i != 0) { onePortion = group + onePortion; groupCount = 0; } } 
            }
            returnString = onePortion + returnString; if (number < 0 && negativeInFront && prefix.length > 0) { returnString = returnString.substring(1); prefix = neg + prefix; }
            returnString = prefix + returnString + suffix; if (jQuery(this).is(":input"))
                jQuery(this).val(returnString); else
                jQuery(this).text(returnString);
        });
    }; jQuery.fn.parse.defaults = { locale: "us" }; jQuery.fn.format.defaults = { format: "#,###.00", locale: "us" };
})(jQuery); (function($) {
    $.fn.marquee = function(klass) {
        var newMarquee = [], last = this.length; function getReset(newDir, marqueeRedux, marqueeState) {
            var behavior = marqueeState.behavior, width = marqueeState.width, dir = marqueeState.dir; var r = 0; if (behavior == 'alternate') { r = newDir == 1 ? marqueeRedux[marqueeState.widthAxis] - (width * 2) : width; } else if (behavior == 'slide') { if (newDir == -1) { r = dir == -1 ? marqueeRedux[marqueeState.widthAxis] : width; } else { r = dir == -1 ? marqueeRedux[marqueeState.widthAxis] - (width * 2) : 0; } } else { r = newDir == -1 ? marqueeRedux[marqueeState.widthAxis] : 0; }
            return r;
        }
        function animateMarquee() {
            var i = newMarquee.length, marqueeRedux = null, $marqueeRedux = null, marqueeState = {}, newMarqueeList = [], hitedge = false; while (i--) {
                marqueeRedux = newMarquee[i]; $marqueeRedux = $(marqueeRedux); marqueeState = $marqueeRedux.data('marqueeState'); if ($marqueeRedux.data('paused') !== true) {
                    marqueeRedux[marqueeState.axis] += (marqueeState.scrollamount * marqueeState.dir); hitedge = marqueeState.dir == -1 ? marqueeRedux[marqueeState.axis] <= getReset(marqueeState.dir * -1, marqueeRedux, marqueeState) : marqueeRedux[marqueeState.axis] >= getReset(marqueeState.dir * -1, marqueeRedux, marqueeState); if ((marqueeState.behavior == 'scroll' && marqueeState.last == marqueeRedux[marqueeState.axis]) || (marqueeState.behavior == 'alternate' && hitedge && marqueeState.last != -1) || (marqueeState.behavior == 'slide' && hitedge && marqueeState.last != -1)) {
                        if (marqueeState.behavior == 'alternate') { marqueeState.dir *= -1; }
                        marqueeState.last = -1; $marqueeRedux.trigger('stop'); marqueeState.loops--; if (marqueeState.loops === 0) {
                            if (marqueeState.behavior != 'slide') { marqueeRedux[marqueeState.axis] = getReset(marqueeState.dir, marqueeRedux, marqueeState); } else { marqueeRedux[marqueeState.axis] = getReset(marqueeState.dir * -1, marqueeRedux, marqueeState); }
                            $marqueeRedux.trigger('end');
                        } else { newMarqueeList.push(marqueeRedux); $marqueeRedux.trigger('start'); marqueeRedux[marqueeState.axis] = getReset(marqueeState.dir, marqueeRedux, marqueeState); } 
                    } else { newMarqueeList.push(marqueeRedux); }
                    marqueeState.last = marqueeRedux[marqueeState.axis]; $marqueeRedux.data('marqueeState', marqueeState);
                } else { newMarqueeList.push(marqueeRedux); } 
            }
            newMarquee = newMarqueeList; if (newMarquee.length) { setTimeout(animateMarquee, 25); } 
        }
        this.each(function(i) {
            var $marquee = $(this), width = $marquee.attr('width') || $marquee.width(), height = $marquee.attr('height') || $marquee.height(), $marqueeRedux = $marquee.after('<div ' + (klass ? 'class="' + klass + '" ' : '') + 'style="display: block-inline; width: ' + width + 'px; height: ' + height + 'px; overflow: hidden;"><div style="float: left; white-space: nowrap;">' + $marquee.html() + '</div></div>').next(), marqueeRedux = $marqueeRedux.get(0), hitedge = 0, direction = ($marquee.attr('direction') || 'left').toLowerCase(), marqueeState = { dir: /down|right/.test(direction) ? -1 : 1, axis: /left|right/.test(direction) ? 'scrollLeft' : 'scrollTop', widthAxis: /left|right/.test(direction) ? 'scrollWidth' : 'scrollHeight', last: -1, loops: $marquee.attr('loop') || -1, scrollamount: $marquee.attr('scrollamount') || this.scrollAmount || 2, behavior: ($marquee.attr('behavior') || 'scroll').toLowerCase(), width: /left|right/.test(direction) ? width : height }; if ($marquee.attr('loop') == -1 && marqueeState.behavior == 'slide') { marqueeState.loops = 1; }
            $marquee.remove(); if (/left|right/.test(direction)) { $marqueeRedux.find('> div').css('padding', '0 ' + width + 'px'); } else { $marqueeRedux.find('> div').css('padding', height + 'px 0'); }
            $marqueeRedux.bind('stop', function() { $marqueeRedux.data('paused', true); }).bind('pause', function() { $marqueeRedux.data('paused', true); }).bind('start', function() { $marqueeRedux.data('paused', false); }).bind('unpause', function() { $marqueeRedux.data('paused', false); }).data('marqueeState', marqueeState); newMarquee.push(marqueeRedux); marqueeRedux[marqueeState.axis] = getReset(marqueeState.dir, marqueeRedux, marqueeState); $marqueeRedux.trigger('start'); if (i + 1 == last) { animateMarquee(); } 
        }); return $(newMarquee);
    };
} (jQuery));

