
/* Douglas Crockford's json2.js, 2/23/11 Snapshot (minified via closure simple optimization)
Duck-punches the JSON global and toJSON functions into existence
Falls back to native implementations where available */
var JSON;JSON||(JSON={}); (function(){function k(a){return a<10?"0"+a:a}function o(a){p.lastIndex=0;return p.test(a)?'"'+a.replace(p,function(a){var c=r[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function l(a,j){var c,d,h,m,g=e,f,b=j[a];b&&typeof b==="object"&&typeof b.toJSON==="function"&&(b=b.toJSON(a));typeof i==="function"&&(b=i.call(j,a,b));switch(typeof b){case "string":return o(b);case "number":return isFinite(b)?String(b):"null";case "boolean":case "null":return String(b);case "object":if(!b)return"null"; e+=n;f=[];if(Object.prototype.toString.apply(b)==="[object Array]"){m=b.length;for(c=0;c<m;c+=1)f[c]=l(c,b)||"null";h=f.length===0?"[]":e?"[\n"+e+f.join(",\n"+e)+"\n"+g+"]":"["+f.join(",")+"]";e=g;return h}if(i&&typeof i==="object"){m=i.length;for(c=0;c<m;c+=1)typeof i[c]==="string"&&(d=i[c],(h=l(d,b))&&f.push(o(d)+(e?": ":":")+h))}else for(d in b)Object.prototype.hasOwnProperty.call(b,d)&&(h=l(d,b))&&f.push(o(d)+(e?": ":":")+h);h=f.length===0?"{}":e?"{\n"+e+f.join(",\n"+e)+"\n"+g+"}":"{"+f.join(",")+ "}";e=g;return h}}if(typeof Date.prototype.toJSON!=="function")Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+k(this.getUTCMonth()+1)+"-"+k(this.getUTCDate())+"T"+k(this.getUTCHours())+":"+k(this.getUTCMinutes())+":"+k(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()};var q=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, p=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e,n,r={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},i;if(typeof JSON.stringify!=="function")JSON.stringify=function(a,j,c){var d;n=e="";if(typeof c==="number")for(d=0;d<c;d+=1)n+=" ";else typeof c==="string"&&(n=c);if((i=j)&&typeof j!=="function"&&(typeof j!=="object"||typeof j.length!=="number"))throw Error("JSON.stringify");return l("", {"":a})};if(typeof JSON.parse!=="function")JSON.parse=function(a,e){function c(a,d){var g,f,b=a[d];if(b&&typeof b==="object")for(g in b)Object.prototype.hasOwnProperty.call(b,g)&&(f=c(b,g),f!==void 0?b[g]=f:delete b[g]);return e.call(a,d,b)}var d,a=String(a);q.lastIndex=0;q.test(a)&&(a=a.replace(q,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return d=eval("("+a+")"),typeof e==="function"?c({"":d},""):d;throw new SyntaxError("JSON.parse");}})();

if (typeof jPersist === 'undefined') {
    var jPersist = new function() {
        var _settings = {};
        _settings.cookieLife = {};
        var _maxCookieLife = 1000*60*60*24 * 90;    // Track visitors for 90 days by default (most browsers enforce this cap on max cookie length, so set it for consistency)
        var _defaultVisitTimeout = 1000*60 * 30;    // Default visit timeout is 30 minutes from last page view

        this.setCookiePrefix = function(prefix) {
            if (typeof prefix !== 'string') { return false; }

            _settings.prefix = prefix;   // Allow illegal cookie characters because they'll be encoded by _writeCookie

            _load();

            return _settings.prefix;
        };

        this.getCookiePrefix = function() {
            return _settings.prefix;
        };

        this.setLifetime = function(namespace, lifetime) {
            if (typeof namespace !== 'string' || typeof lifetime !== 'number') { return false; }

            return _settings.cookieLife[namespace] = lifetime;
        };

        this.getLifetime = function(namespace) {
            if (typeof namespace !== 'string') { return false; }

            return _settings.cookieLife[namespace];
        };

		// TODO: Fix issue where setting a new cookie prefix after the old one has stored values will cause the new prefix to inherit the old values.
        function _load() {
            var allCookies = document.cookie.split('; ');
            for (var cookieIndex=0; cookieIndex < allCookies.length; cookieIndex++){
                var propertyComponents = allCookies[cookieIndex].match('^\\s*' + encodeURIComponent(_settings.prefix) + '(.+?)=(.+?)\\s*$');
                if (propertyComponents) {
                    if (propertyComponents[1] === '.cookieLife') {
                        _settings.cookieLife = JSON.parse(decodeURIComponent(propertyComponents[2]));
                    } else {
                        _thatjPersist[decodeURIComponent(propertyComponents[1])] = JSON.parse(decodeURIComponent(propertyComponents[2]));
                    }
                }
            }

            // Clear out expired objects' lifetime settings
            for (var memberName in _settings.cookieLife) {
                if (typeof _thatjPersist[memberName] === 'undefined') {
                    delete _settings.cookieLife[memberName];
                }
            }

            if (typeof _thatjPersist.visitor === 'undefined') {
                _thatjPersist.visitor = {};
                _thatjPersist.visitor.pageViews = 0;
                _thatjPersist.visitor.visits = 0;
                _thatjPersist.setLifetime('visitor', _maxCookieLife);
            }
            if (typeof _thatjPersist.visit === 'undefined') {
                _thatjPersist.visit = {};
                _thatjPersist.visit.pageViews = 0;
                _thatjPersist.setLifetime('visit', _defaultVisitTimeout);
            }

            return _thatjPersist.recordPageView();
        }

        this.recordPageView = function() {
            if (typeof _thatjPersist.visitor === 'object') {
                if (typeof _thatjPersist.visit === 'object' && _thatjPersist.visit.pageViews === 0) { // New Visit
                    _thatjPersist.visitor.visits++;
                }
                _thatjPersist.visitor.pageViews++;
            }
            if (typeof _thatjPersist.visit === 'object') {
                _thatjPersist.visit.pageViews++;
            }

            return _thatjPersist.save();
        }

        this.recordNewVisit = function() {
            if (typeof _thatjPersist.visit !== 'object') { _thatjPersist.visit = {}; }
            _thatjPersist.visit.pageViews = 0;

            if (typeof _settings.cookieLife.visit === 'undefined') {
                _settings.cookieLife.visit = _defaultVisitTimeout;
            }

            return _thatjPersist.recordPageView();
        }

        this.save = function() {
            // Store object namespaces as cookies
            var options = { expires: new Date() };
            var now = new Date().getTime();
            for (var memberName in _thatjPersist) {
                if (typeof _thatjPersist[memberName] !== 'function') {
                    var cookieName = _settings.prefix + memberName;
                    var cookieValue = JSON.stringify(_thatjPersist[memberName]);
                    options.expires.setTime(now + (_settings.cookieLife[memberName] || _settings.cookieLife.visitor || _maxCookieLife));    // Set expiration to this namespace's expiration if one has been set, otherwise fallback to visitor, then the max cookie life

                    _writeCookie(cookieName, cookieValue, options);
                }
            }

            // Store cookie lifetimes
            options.expires.setTime(now + (_settings.cookieLife.visitor || _maxCookieLife));
            _writeCookie(_settings.prefix + '.cookieLife', JSON.stringify(_settings.cookieLife), options);

            return true;
        };

        this.kill = function(namespace) {
            if (typeof namespace !== 'string' || namespace === 'visit' || namespace === 'visitor') { return false; }

            delete _thatjPersist[namespace];
            delete _settings.cookieLife[namespace];
            return _deleteCookie(_settings.prefix + namespace);
        };

        function _readCookie(name) {
            if (typeof fxcm === 'object' && typeof fxcm.lib === 'object' && typeof fxcm.lib.writeCookie === 'function') {
                return fxcm.lib.readCookie(name);
            } else {
                if (typeof name !== 'string') { return false; }

                var cookieParts = new RegExp('(?:^|; )' + encodeURIComponent(name) + '=([^;]*)').exec(document.cookie);
                return cookieParts ? decodeURIComponent(cookieParts[1]) : null;
            }
        }

        function _writeCookie(name, value, options) {
            if (typeof fxcm === 'object' && typeof fxcm.lib === 'object' && typeof fxcm.lib.writeCookie === 'function') {
                return fxcm.lib.writeCookie(name, value, options);
            } else {
                if (typeof name !== 'string') { return false; }

                switch (typeof value) {
                    case 'string':  // Ideal
                        break;

                    case 'undefined':   // Parameter wasn't passed, set a cookie with no value
                        value = '';
                        break;

                    case 'object':
                        if (value === null) {   // Treat null as an intention to set a cookie with no value
                            value = '';
                        } else {    // We could JSON.stringify all other objects, but then we need to duck punch JSON.stringify into older browsers, let the client app deal with that
                            return false;
                        }
                        break;

                    default:    // Cast other primitives to string
                        value = String(value);
                        break;
                }

                if (typeof options !== 'object') { options = {}; }

                return (document.cookie = [
                    encodeURIComponent(name) + '=' + (value !== '' ? encodeURIComponent(value) : ''),
                    options.expires instanceof Date ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
                    typeof options.path === 'string' ? '; path=' + options.path : '',
                    typeof options.domain === 'string' ? '; domain=' + options.domain : '',
                    typeof options.secure !== 'undefined' && options.secure ? '; secure' : ''
                ].join(''));
            }
        }

        function _deleteCookie(name, options) {
            if (typeof fxcm === 'object' && typeof fxcm.lib === 'object' && typeof fxcm.lib.deleteCookie === 'function') {
                return fxcm.lib.deleteCookie(name, options);
            } else {
                if (typeof options !== 'object') { options = {}; }

                options.expires = new Date(0);    // Set cookie expiration to epoch
                return _writeCookie(name, '', options) ? true : false;
            }
        }

        var _thatjPersist = this;
        _thatjPersist.setCookiePrefix('jp_');   // Triggers the load process
    }();
}
fxcmmbox = new function() {
	var thatFXCMmbox = this;
	var _settings = {};
	
	// Sets the mbox where click updates will be sent
	this.createClickTrackingMbox = function(mboxName) {
		if (typeof mboxName !== 'string') { return false; }
		
		_settings.clickTrackingMbox = mboxName;
		return mboxCreate(mboxName);
	};
	
	/* mboxTrackClick v1.1 - Tracks clicks in Test & Target
	Uses a timeout for the redirect so that the mboxUpdate call has time to fire.

	linkName: Name of the link being clicked
	target (optional): this from the onClick event, undefined/null/false or equivalent if no redirect is desired
	updateParams (optional): Other parameters for the update request (the second parameter to mboxUpdate)
	timeout (optional): Override the default timeout of 500 milliseconds

	Usage:
	<a href="/directory/page.htm" onclick="return fxcmmb.mboxTrackClick('NameOfLink', this);">Anchor Text</a>
	or
	<div onclick="return fxcmmb.mboxTrackClick('NameOfAction');">Content</div> */
	this.trackClick = function(linkName, target, updateParams, timeout) {
		if (typeof linkName !== 'string') { return true; }	// Let the click go through if no mbox was passed
		
		if (typeof timeout !== 'number') { timeout = 500; }	// Default timeout is half a second
		
		if (typeof target === 'object' && typeof target.href === 'string') {
			target = target.href;
		} else if (typeof target !== 'string') {
			target = false;
		}
		
		if (target) {
			updateParams = _appendParameter(updateParams, 'destination', target);	// Add the destination parameter
			
			_mboxUpdate(linkName, updateParams);	// Fire the tracking request
			window.setTimeout(function() { window.location.href = target; }, timeout);	// Set the redirect timeout
			return false;	// Cancel the click so that the redirect timeout can fire
		} else {
			_mboxUpdate(linkName, updateParams);	// Fire the tracking request
			return true;	// Allow the click to go through since there's no redirect timeout
		}
	};
	
	/* Adds a parameter to currentParams
	Usage:
	updateParams = _appendParameter(updateParams, paramName, paramValue); */
	function _appendParameter(currentParams, newParamName, newParamValue) {
		if (typeof currentParams === 'string') {
			currentParams = [currentParams];
		}
		
		if (!(typeof currentParams === 'object' && currentParams instanceof Array)) {
			currentParams = [];
		}
		
		if (typeof newParamName !== 'undefined' && typeof newParamValue !== 'undefined') {
			currentParams.push(newParamName + '=' + newParamValue);
		}
		
		return currentParams;
	}
	
	// mboxUpdate v1.1 - Fires tracking request, defining the mbox if necessary
	var _mboxes = {};
	function _mboxUpdate(linkName, updateParams) {
		if (typeof _settings.clickTrackingMbox === 'string') {	// mboxUpdates should be sent to the clickTrackingMbox
			updateParams = _appendParameter(updateParams, 'click', linkName);	// Add the click parameter
			
			updateParams.unshift(_settings.clickTrackingMbox);
			return mboxUpdate.apply(this, updateParams);
		} else {	// Each link creates its own mbox to recieve mboxUpdates
			var mboxName = _sanitizeMboxName(linkName);
			
			updateParams = _appendParameter(updateParams);
			if (typeof _mboxes[mboxName] === 'undefined') {
				updateParams.unshift(_trackingDivID, mboxName);
				_mboxes[mboxName] = mboxDefine.apply(this, updateParams);
				updateParams.shift();
				updateParams.shift();
			}
			
			updateParams.unshift(mboxName);
			return mboxUpdate.apply(this, updateParams);
		}
	}
	
	// Sanitize mBox Name v1.0 - Replaces illegal characters with an _ 
	function _sanitizeMboxName(mboxName) {
		if (typeof mboxName !== 'string') {
			return false;
		} else {
			return mboxName.replace(/[^a-zA-Z_0-9]/g,'_');
		}
	}

	// Generate Numeric ID v1.0 - Generates Locally Unique IDs (Length parameter is optional)
	function _generateNumericID(length) {
		if (typeof length === 'undefined') {
			length = 20;	// Maximum length before the browser uses scientific notation
		}
		return Math.floor(Math.random() * Math.pow(10,length));
	}
	var _trackingDivID = 'id' + _generateNumericID();
	
	// Ready v2.0 - This is a modified version of mbox.js's addOnLoad that incorporates jQuery
	function _ready(callback) {
	  var flagName = 'readyFunction_' + _generateNumericID();
		window[flagName] = true;
		
		var wrappedCallback = function() {
			if (window[flagName]) {
				window[flagName] = false;
				
				callback.apply(this, arguments);
			}
		}
		
		_addEventHandler('DOMContentLoaded', wrappedCallback);
		_addLoadHandler(document, wrappedCallback);
	}
	
	// Dynamic Profiles
	this.dynamicProfile = function() {
		var undefined;
		
		var allParameters = [
			['geolocation', typeof redirectData === 'object' ? redirectData.country : undefined],
			['totalPageViews', jPersist.visitor.pageViews],
			['visitPageViews', jPersist.visit.pageViews],
			['visits', jPersist.visitor.visits],
			['referrerType', jPersist.visit.referrerType],
			['email', jPersist.visitor.email],
			['totalVideoPlays', jPersist.visitor.videoPlays],
			['visitVideoPlays', jPersist.visit.videoPlays]
		];
		
		var validParameters = [];
		for (var parameterIndex = 0; parameterIndex < allParameters.length; parameterIndex++) {
			if (typeof allParameters[parameterIndex][1] !== 'undefined') {
				validParameters.push(allParameters[parameterIndex].join('='));
			}
		}
		
		return validParameters.join('&');
	};
	
	// Loads a script dynamically and invokes callback after it loads
	function _getScript(URL, callback) {
		var script = document.createElement('script');
		script.setAttribute('type', 'text/javascript');
		if (typeof callback === 'function') {
			_addLoadHandler(script, callback);
		}
		script.setAttribute('src', URL);
		_attachElement(script);
	}
	
	// Adds an onload handler for script and iframe elements (supports IE)
	var _addLoadHandlerCallbackFired = {};
	function _addLoadHandler(element, callback) {
		if (typeof callback !== 'function') { return false; }
		
		var callbackID = _generateNumericID();	// Generate an ID for the callback
		_addLoadHandlerCallbackFired[callbackID] = false;	// Initialize its state as not fired
		callback = _queueCallback(callback, 'fxcm.lib.addLoadHandler:' + callbackID);	// Support multiple callbacks on the same element
		var wrappedCallback = function() {	// Wrap callback to set state to fired when called
				_addLoadHandlerCallbackFired[callbackID] = true;
				return callback.call(element);
			};
		
		// Attach standard load handler
		_addEventHandler(element, 'load', wrappedCallback);

		/* Hack to replicate element.onload in IE
		Adapted from Nick Spacek's code at https://gist.github.com/461797 */
		_addEventHandler(element, 'readystatechange', function() {
				if ((element.readyState === 'loaded' || element.readyState === 'complete') && _addLoadHandlerCallbackFired[callbackID] === false) {
					return wrappedCallback.call(element);
				}
			});
		
		return true;
	}
	
	// Queues callback functions to be executed in FIFO order
	var _callbacksQueues = {};
	function _queueCallback(callback, id) {
		if (typeof id === 'undefined') { id = callback; }

		if (typeof _callbacksQueues[id] === 'undefined') { _callbacksQueues[id] = []; }
		_callbacksQueues[id].push(callback);

		return function() {
			while (_callbacksQueues[id].length > 0) {
				_callbacksQueues[id].shift().apply(this, arguments);
			}
		};
	}
	
	// Attaches events with cross-browser support, properly setting the context of this
	function _addEventHandler(element, event, handler, capture) {
		if (!_isDOMElement(element) || typeof event !== 'string' || typeof handler !== 'function') { return false; }
		if (event.substr(0,2) === 'on') { event = event.substr(2); }	// Strip the 'on' at the beginning of the event if it is present
		
		if (typeof element.addEventListener === 'function') {	// Primary way of adding event listeners
			if (typeof capture === 'undefined') { capture = false; }
			return element.addEventListener(event, handler, capture);
		} else if (typeof element.attachEvent !== 'undefined') {	// Special case for IE (also, strangely typeof element.attachEvent = 'object' in IE)
			return element.attachEvent('on' + event, function(e) { return handler.call(element, e); });
		} else {
			return false;
		}
	}
	
	// Adapted from isPlainObject in jQuery 1.5.2
	function _isDOMElement(object) {
		return object && (_type(object) === 'object') && (object.nodeType || _isWindow(object));
	}
	
	/* Like typeof, but can tell different types of built-in objects apart
	Adapted from jQuery 1.5.2 */
	function _type(object) {
		var parameterType = typeof object;
        if (parameterType !== 'object') {
            return parameterType;
        } else {
			if (object instanceof Date) {
				return 'date';
			} else if (object instanceof Array) {
				return 'array';
			} else if (object instanceof RegExp) {
				return 'regexp';
			} else {
				return 'object';
			}
        }
	}
	
	/* A crude way of determining if an object is a window
	Taken from jQuery 1.5.2 */
	function _isWindow(object) {
		return object && typeof object === "object" && "setInterval" in object;
	};
	
	/* Attaches an element to the current document
	Taken from jQuery 1.5.2
	Inspired by code by Andrea Giammarchi
	http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html */
	function _attachElement(element) {
		var head = document.head || document.getElementsByTagName('head')[0] || document.documentElement;

		head.appendChild(element);
	};
	
	// Adds a style to the current document
	function _addStyle() {
		var styleElement = _createStyleElement.apply(this, arguments);
		return _attachElement(styleElement);
	};
	
	// Dynamically creates a style element
	function _createStyleElement(id, style) {
		var styleContent = id + ' { ' + style + ' }';

		var styleElement = document.createElement('style');
		styleElement.type = 'text/css';
		
		if(styleElement.styleSheet) {
			styleElement.styleSheet.cssText = styleContent;
		} else {
			styleElement.appendChild(document.createTextNode(styleContent));
		}
		
		return styleElement;
	};
	
	/**************BEGIN Overrides for mbox functions**************/
	// These functions may need to be checked against stock mbox functions to ensure that the base functionality hasn't changed
	this.mboxOverrides = {};
	
	this.mboxOverrides.mboxStandardScPluginFetcher = {};
	this.mboxOverrides.mboxStandardScPluginFetcher.fetch = function(w) {
		w.setServerType(this.getType());
		var e = this.Bc(w);
		//document.write('<' + 'scr' + 'ipt src="' + e + '" language="JavaScript"><' + '\/scr' + 'ipt>');
		_getScript(e);
	};
	
	// fxcmmbox._originalMboxCreate must be set after the library for this function work
	var _firstMboxCreated = false;
	this.mboxOverrides.mboxCreate = function() {
		if (!_firstMboxCreated) {
			_addStyle('.mboxDefault', 'visibility: hidden');
			_firstMboxCreated = true;
		}
		
		fxcmmbox._originalMboxCreate.apply(this, arguments);
	}
	/***************END Overridden mbox functions***************/
	
	/**********************BEGIN Constructor**********************/
	// Creates the div for _mboxUpdate tracking requests
	_ready(function() {
		var trackingDiv = document.createElement('div');
		trackingDiv.setAttribute('id', _trackingDivID);
		trackingDiv.style.display = 'none';
		
		document.body.appendChild(trackingDiv);
	});
	/***********************END Constructor***********************/
}();

// mbox Version 45 - 9/28/11
// !!!When updating, comment out the document.write that outputs the mboxDefault style!!!
/***********BEGIN MBOX LIB*************/
var mboxCopyright = "Copyright 1996-2011. Adobe Systems Incorporated. All rights reserved.";mboxUrlBuilder = function(a, b) { this.a = a; this.b = b; this.c = new Array(); this.d = function(e) { return e; }; this.f = null;};mboxUrlBuilder.prototype.addParameter = function(g, h) { var i = new RegExp('(\'|")'); if (i.exec(g)) { throw "Parameter '" + g + "' contains invalid characters"; } for (var j = 0; j < this.c.length; j++) { var k = this.c[j]; if (k.name == g) { k.value = h; return this; } } var l = new Object(); l.name = g; l.value = h; this.c[this.c.length] = l; return this;};mboxUrlBuilder.prototype.addParameters = function(c) { if (!c) { return this; } for (var j = 0; j < c.length; j++) { var m = c[j].indexOf('='); if (m == -1 || m == 0) { continue; } this.addParameter(c[j].substring(0, m), c[j].substring(m + 1, c[j].length)); } return this;};mboxUrlBuilder.prototype.setServerType = function(n) { this.o = n;};mboxUrlBuilder.prototype.setBasePath = function(f) { this.f = f;};mboxUrlBuilder.prototype.setUrlProcessAction = function(p) { this.d = p;};mboxUrlBuilder.prototype.buildUrl = function() { var q = this.f ? this.f : '/m2/' + this.b + '/mbox/' + this.o; var r = document.location.protocol == 'file:' ? 'http:' : document.location.protocol; var e = r + "//" + this.a + q; var s = e.indexOf('?') != -1 ? '&' : '?'; for (var j = 0; j < this.c.length; j++) { var k = this.c[j]; e += s + encodeURIComponent(k.name) + '=' + encodeURIComponent(k.value); s = '&'; } return this.t(this.d(e));};mboxUrlBuilder.prototype.getParameters = function() { return this.c;};mboxUrlBuilder.prototype.setParameters = function(c) { this.c = c;};mboxUrlBuilder.prototype.clone = function() { var u = new mboxUrlBuilder(this.a, this.b); u.setServerType(this.o); u.setBasePath(this.f); u.setUrlProcessAction(this.d); for (var j = 0; j < this.c.length; j++) { u.addParameter(this.c[j].name, this.c[j].value); } return u;};mboxUrlBuilder.prototype.t = function(v) { return v.replace(/\"/g, '&quot;').replace(/>/g, '&gt;');};mboxStandardFetcher = function() { };mboxStandardFetcher.prototype.getType = function() { return 'standard';};mboxStandardFetcher.prototype.fetch = function(w) { w.setServerType(this.getType()); document.write('<' + 'scr' + 'ipt src="' + w.buildUrl() + '" language="JavaScript"><' + '\/scr' + 'ipt>');};mboxStandardFetcher.prototype.cancel = function() { };mboxAjaxFetcher = function() { };mboxAjaxFetcher.prototype.getType = function() { return 'ajax';};mboxAjaxFetcher.prototype.fetch = function(w) { w.setServerType(this.getType()); var e = w.buildUrl(); this.x = document.createElement('script'); this.x.src = e; document.body.appendChild(this.x);};mboxAjaxFetcher.prototype.cancel = function() { };mboxMap = function() { this.y = new Object(); this.z = new Array();};mboxMap.prototype.put = function(A, h) { if (!this.y[A]) { this.z[this.z.length] = A; } this.y[A] = h;};mboxMap.prototype.get = function(A) { return this.y[A];};mboxMap.prototype.remove = function(A) { this.y[A] = undefined;};mboxMap.prototype.each = function(p) { for (var j = 0; j < this.z.length; j++ ) { var A = this.z[j]; var h = this.y[A]; if (h) { var B = p(A, h); if (B === false) { break; } } }};mboxFactory = function(C, b, D) { this.E = false; this.C = C; this.D = D; this.F = new mboxList(); mboxFactories.put(D, this); this.G = typeof document.createElement('div').replaceChild != 'undefined' && (function() { return true; })() && typeof document.getElementById != 'undefined' && typeof (window.attachEvent || document.addEventListener || window.addEventListener) != 'undefined' && typeof encodeURIComponent != 'undefined'; this.H = this.G && mboxGetPageParameter('mboxDisable') == null; var I = D == 'default'; this.J = new mboxCookieManager( 'mbox' + (I ? '' : ('-' + D)), (function() { return mboxCookiePageDomain(); })()); this.H = this.H && this.J.isEnabled() && (this.J.getCookie('disable') == null); if (this.isAdmin()) { this.enable(); } this.K(); this.L = mboxGenerateId(); this.M = mboxScreenHeight(); this.N = mboxScreenWidth(); this.O = mboxBrowserWidth(); this.P = mboxBrowserHeight(); this.Q = mboxScreenColorDepth(); this.R = mboxBrowserTimeOffset(); this.S = new mboxSession(this.L, 'mboxSession', 'session', 31 * 60, this.J); this.T = new mboxPC('PC', 1209600, this.J); this.w = new mboxUrlBuilder(C, b); this.U(this.w, I); this.V = new Date().getTime(); this.W = this.V; var X = this; this.addOnLoad(function() { X.W = new Date().getTime(); }); if (this.G) { this.addOnLoad(function() { X.E = true; X.getMboxes().each(function(Y) { Y.setFetcher(new mboxAjaxFetcher()); Y.finalize(); }); }); this.limitTraffic(100, 10368000); if (this.H) { this.Z(); this._ = new mboxSignaler(function(ab, c) { return X.create(ab, c); }, this.J); } }};mboxFactory.prototype.forcePCId = function(bb) { if (this.T.forceId(bb)) { this.S.forceId(mboxGenerateId()); }};mboxFactory.prototype.forceSessionId = function(bb) { this.S.forceId(bb);};mboxFactory.prototype.isEnabled = function() { return this.H;};mboxFactory.prototype.getDisableReason = function() { return this.J.getCookie('disable');};mboxFactory.prototype.isSupported = function() { return this.G;};mboxFactory.prototype.disable = function(cb, db) { if (typeof cb == 'undefined') { cb = 60 * 60; } if (typeof db == 'undefined') { db = 'unspecified'; } if (!this.isAdmin()) { this.H = false; this.J.setCookie('disable', db, cb); }};mboxFactory.prototype.enable = function() { this.H = true; this.J.deleteCookie('disable');};mboxFactory.prototype.isAdmin = function() { return document.location.href.indexOf('mboxEnv') != -1;};mboxFactory.prototype.limitTraffic = function(eb, cb) {};mboxFactory.prototype.addOnLoad = function(fb) { if (this.isDomLoaded()) { fb(); } else { var gb = false; var hb = function() { if (gb) { return; } gb = true; fb(); }; this.ib.push(hb); if (this.isDomLoaded() && !gb) { hb(); } }};mboxFactory.prototype.getEllapsedTime = function() { return this.W - this.V;};mboxFactory.prototype.getEllapsedTimeUntil = function(jb) { return jb - this.V;};mboxFactory.prototype.getMboxes = function() { return this.F;};mboxFactory.prototype.get = function(ab, kb) { return this.F.get(ab).getById(kb || 0);};mboxFactory.prototype.update = function(ab, c) { if (!this.isEnabled()) { return; } if (!this.isDomLoaded()) { var X = this; this.addOnLoad(function() { X.update(ab, c); }); return; } if (this.F.get(ab).length() == 0) { throw "Mbox " + ab + " is not defined"; } this.F.get(ab).each(function(Y) { Y.getUrlBuilder() .addParameter('mboxPage', mboxGenerateId()); Y.load(c); });};mboxFactory.prototype.create = function( ab, c, lb) { if (!this.isSupported()) { return null; } var e = this.w.clone(); e.addParameter('mboxCount', this.F.length() + 1); e.addParameters(c); var kb = this.F.get(ab).length(); var mb = this.D + '-' + ab + '-' + kb; var nb; if (lb) { nb = new mboxLocatorNode(lb); } else { if (this.E) { throw 'The page has already been loaded, can\'t write marker'; } nb = new mboxLocatorDefault(mb); } try { var X = this; var ob = 'mboxImported-' + mb; var Y = new mbox(ab, kb, e, nb, ob); if (this.H) { Y.setFetcher( this.E ? new mboxAjaxFetcher() : new mboxStandardFetcher()); } Y.setOnError(function(pb, n) { Y.setMessage(pb); Y.activate(); if (!Y.isActivated()) { X.disable(60 * 60, pb); window.location.reload(false); } }); this.F.add(Y); } catch (qb) { this.disable(); throw 'Failed creating mbox "' + ab + '", the error was: ' + qb; } var rb = new Date(); e.addParameter('mboxTime', rb.getTime() - (rb.getTimezoneOffset() * 60000)); return Y;};mboxFactory.prototype.getCookieManager = function() { return this.J;};mboxFactory.prototype.getPageId = function() { return this.L;};mboxFactory.prototype.getPCId = function() { return this.T;};mboxFactory.prototype.getSessionId = function() { return this.S;};mboxFactory.prototype.getSignaler = function() { return this._;};mboxFactory.prototype.getUrlBuilder = function() { return this.w;};mboxFactory.prototype.U = function(e, I) { e.addParameter('mboxHost', document.location.hostname) .addParameter('mboxSession', this.S.getId()); if (!I) { e.addParameter('mboxFactoryId', this.D); } if (this.T.getId() != null) { e.addParameter('mboxPC', this.T.getId()); } e.addParameter('mboxPage', this.L); e.addParameter('screenHeight', this.M); e.addParameter('screenWidth', this.N); e.addParameter('browserWidth', this.O); e.addParameter('browserHeight', this.P); e.addParameter('browserTimeOffset', this.R); e.addParameter('colorDepth', this.Q); e.addParameters(this.sb().split('&')); e.setUrlProcessAction(function(e) { e += '&mboxURL=' + encodeURIComponent(document.location); var tb = encodeURIComponent(document.referrer); if (e.length + tb.length < 2000) { e += '&mboxReferrer=' + tb; } e += '&mboxVersion=' + mboxVersion; return e; });};mboxFactory.prototype.sb = function() { return fxcmmbox.dynamicProfile();};mboxFactory.prototype.Z = function() { /*document.write('<style>.' + 'mboxDefault' + ' { visibility:hidden; }</style>');*/};mboxFactory.prototype.isDomLoaded = function() { return this.E;};mboxFactory.prototype.K = function() { if (this.ib != null) { return; } this.ib = new Array(); var X = this; (function() { var ub = document.addEventListener ? "DOMContentLoaded" : "onreadystatechange"; var vb = false; var wb = function() { if (vb) { return; } vb = true; for (var i = 0; i < X.ib.length; ++i) { X.ib[i](); } }; if (document.addEventListener) { document.addEventListener(ub, function() { document.removeEventListener(ub, arguments.callee, false); wb(); }, false); window.addEventListener("load", function(){ document.removeEventListener("load", arguments.callee, false); wb(); }, false); } else if (document.attachEvent) { if (self !== self.top) { document.attachEvent(ub, function() { if (document.readyState === 'complete') { document.detachEvent(ub, arguments.callee); wb(); } }); } else { var xb = function() { try { document.documentElement.doScroll('left'); wb(); } catch (yb) { setTimeout(xb, 13); } }; xb(); } } if (document.readyState === "complete") { wb(); } })();};mboxSignaler = function(zb, J) { this.J = J; var Ab = J.getCookieNames('signal-'); for (var j = 0; j < Ab.length; j++) { var Bb = Ab[j]; var Cb = J.getCookie(Bb).split('&'); var Y = zb(Cb[0], Cb); Y.load(); J.deleteCookie(Bb); }};mboxSignaler.prototype.signal = function(Db, ab ) { this.J.setCookie('signal-' + Db, mboxShiftArray(arguments).join('&'), 45 * 60);};mboxList = function() { this.F = new Array();};mboxList.prototype.add = function(Y) { if (Y != null) { this.F[this.F.length] = Y; }};mboxList.prototype.get = function(ab) { var B = new mboxList(); for (var j = 0; j < this.F.length; j++) { var Y = this.F[j]; if (Y.getName() == ab) { B.add(Y); } } return B;};mboxList.prototype.getById = function(Eb) { return this.F[Eb];};mboxList.prototype.length = function() { return this.F.length;};mboxList.prototype.each = function(p) { if (typeof p != 'function') { throw 'Action must be a function, was: ' + typeof(p); } for (var j = 0; j < this.F.length; j++) { p(this.F[j]); }};mboxLocatorDefault = function(g) { this.g = 'mboxMarker-' + g; document.write('<div id="' + this.g + '" style="visibility:hidden;display:none">&nbsp;</div>');};mboxLocatorDefault.prototype.locate = function() { var Fb = document.getElementById(this.g); while (Fb != null) { if (Fb.nodeType == 1) { if (Fb.className == 'mboxDefault') { return Fb; } } Fb = Fb.previousSibling; } return null;};mboxLocatorDefault.prototype.force = function() { var Gb = document.createElement('div'); Gb.className = 'mboxDefault'; var Hb = document.getElementById(this.g); Hb.parentNode.insertBefore(Gb, Hb); return Gb;};mboxLocatorNode = function(Ib) { this.Fb = Ib;};mboxLocatorNode.prototype.locate = function() { return typeof this.Fb == 'string' ? document.getElementById(this.Fb) : this.Fb;};mboxLocatorNode.prototype.force = function() { return null;};mboxCreate = function(ab ) { var Y = mboxFactoryDefault.create( ab, mboxShiftArray(arguments)); if (Y) { Y.load(); } return Y;};mboxDefine = function(lb, ab ) { var Y = mboxFactoryDefault.create(ab, mboxShiftArray(mboxShiftArray(arguments)), lb); return Y;};mboxUpdate = function(ab ) { mboxFactoryDefault.update(ab, mboxShiftArray(arguments));};mbox = function(g, Jb, w, Kb, ob) { this.Lb = null; this.Mb = 0; this.nb = Kb; this.ob = ob; this.Nb = null; this.Ob = new mboxOfferContent(); this.Gb = null; this.w = w; this.message = ''; this.Pb = new Object(); this.Qb = 0; this.Jb = Jb; this.g = g; this.Rb(); w.addParameter('mbox', g) .addParameter('mboxId', Jb); this.Sb = function() {}; this.Tb = function() {}; this.Ub = null;};mbox.prototype.getId = function() { return this.Jb;};mbox.prototype.Rb = function() { if (this.g.length > 250) { throw "Mbox Name " + this.g + " exceeds max length of " + "250 characters."; } else if (this.g.match(/^\s+|\s+$/g)) { throw "Mbox Name " + this.g + " has leading/trailing whitespace(s)."; }};mbox.prototype.getName = function() { return this.g;};mbox.prototype.getParameters = function() { var c = this.w.getParameters(); var B = new Array(); for (var j = 0; j < c.length; j++) { if (c[j].name.indexOf('mbox') != 0) { B[B.length] = c[j].name + '=' + c[j].value; } } return B;};mbox.prototype.setOnLoad = function(p) { this.Tb = p; return this;};mbox.prototype.setMessage = function(pb) { this.message = pb; return this;};mbox.prototype.setOnError = function(Sb) { this.Sb = Sb; return this;};mbox.prototype.setFetcher = function(Vb) { if (this.Nb) { this.Nb.cancel(); } this.Nb = Vb; return this;};mbox.prototype.getFetcher = function() { return this.Nb;};mbox.prototype.load = function(c) { if (this.Nb == null) { return this; } this.setEventTime("load.start"); this.cancelTimeout(); this.Mb = 0; var w = (c && c.length > 0) ? this.w.clone().addParameters(c) : this.w; this.Nb.fetch(w); var X = this; this.Wb = setTimeout(function() { X.Sb('browser timeout', X.Nb.getType()); }, 15000); this.setEventTime("load.end"); return this;};mbox.prototype.loaded = function() { this.cancelTimeout(); if (!this.activate()) { var X = this; setTimeout(function() { X.loaded(); }, 100); }};mbox.prototype.activate = function() { if (this.Mb) { return this.Mb; } this.setEventTime('activate' + ++this.Qb + '.start'); if (this.show()) { this.cancelTimeout(); this.Mb = 1; } this.setEventTime('activate' + this.Qb + '.end'); return this.Mb;};mbox.prototype.isActivated = function() { return this.Mb;};mbox.prototype.setOffer = function(Ob) { if (Ob && Ob.show && Ob.setOnLoad) { this.Ob = Ob; } else { throw 'Invalid offer'; } return this;};mbox.prototype.getOffer = function() { return this.Ob;};mbox.prototype.show = function() { this.setEventTime('show.start'); var B = this.Ob.show(this); this.setEventTime(B == 1 ? "show.end.ok" : "show.end"); return B;};mbox.prototype.showContent = function(Xb) { if (Xb == null) { return 0; } if (this.Gb == null || !this.Gb.parentNode) { this.Gb = this.getDefaultDiv(); if (this.Gb == null) { return 0; } } if (this.Gb != Xb) { this.Yb(this.Gb); this.Gb.parentNode.replaceChild(Xb, this.Gb); this.Gb = Xb; } this.Zb(Xb); this.Tb(); return 1;};mbox.prototype.hide = function() { this.setEventTime('hide.start'); var B = this.showContent(this.getDefaultDiv()); this.setEventTime(B == 1 ? 'hide.end.ok' : 'hide.end.fail'); return B;};mbox.prototype.finalize = function() { this.setEventTime('finalize.start'); this.cancelTimeout(); if (this.getDefaultDiv() == null) { if (this.nb.force() != null) { this.setMessage('No default content, an empty one has been added'); } else { this.setMessage('Unable to locate mbox'); } } if (!this.activate()) { this.hide(); this.setEventTime('finalize.end.hide'); } this.setEventTime('finalize.end.ok');};mbox.prototype.cancelTimeout = function() { if (this.Wb) { clearTimeout(this.Wb); } if (this.Nb != null) { this.Nb.cancel(); }};mbox.prototype.getDiv = function() { return this.Gb;};mbox.prototype.getDefaultDiv = function() { if (this.Ub == null) { this.Ub = this.nb.locate(); } return this.Ub;};mbox.prototype.setEventTime = function(_b) { this.Pb[_b] = (new Date()).getTime();};mbox.prototype.getEventTimes = function() { return this.Pb;};mbox.prototype.getImportName = function() { return this.ob;};mbox.prototype.getURL = function() { return this.w.buildUrl();};mbox.prototype.getUrlBuilder = function() { return this.w;};mbox.prototype.ac = function(Gb) { return Gb.style.display != 'none';};mbox.prototype.Zb = function(Gb) { this.bc(Gb, true);};mbox.prototype.Yb = function(Gb) { this.bc(Gb, false);};mbox.prototype.bc = function(Gb, cc) { Gb.style.visibility = cc ? "visible" : "hidden"; Gb.style.display = cc ? "block" : "none";};mboxOfferContent = function() { this.Tb = function() {};};mboxOfferContent.prototype.show = function(Y) { var B = Y.showContent(document.getElementById(Y.getImportName())); if (B == 1) { this.Tb(); } return B;};mboxOfferContent.prototype.setOnLoad = function(Tb) { this.Tb = Tb;};mboxOfferAjax = function(Xb) { this.Xb = Xb; this.Tb = function() {};};mboxOfferAjax.prototype.setOnLoad = function(Tb) { this.Tb = Tb;};mboxOfferAjax.prototype.show = function(Y) { var dc = document.createElement('div'); dc.id = Y.getImportName(); dc.innerHTML = this.Xb; var B = Y.showContent(dc); if (B == 1) { this.Tb(); } return B;};mboxOfferDefault = function() { this.Tb = function() {};};mboxOfferDefault.prototype.setOnLoad = function(Tb) { this.Tb = Tb;};mboxOfferDefault.prototype.show = function(Y) { var B = Y.hide(); if (B == 1) { this.Tb(); } return B;};mboxCookieManager = function mboxCookieManager(g, ec) { this.g = g; this.ec = ec == '' || ec.indexOf('.') == -1 ? '' : '; domain=' + ec; this.fc = new mboxMap(); this.loadCookies();};mboxCookieManager.prototype.isEnabled = function() { this.setCookie('check', 'true', 60); this.loadCookies(); return this.getCookie('check') == 'true';};mboxCookieManager.prototype.setCookie = function(g, h, cb) { if (typeof g != 'undefined' && typeof h != 'undefined' && typeof cb != 'undefined') { var gc = new Object(); gc.name = g; gc.value = escape(h); gc.expireOn = Math.ceil(cb + new Date().getTime() / 1000); this.fc.put(g, gc); this.saveCookies(); }};mboxCookieManager.prototype.getCookie = function(g) { var gc = this.fc.get(g); return gc ? unescape(gc.value) : null;};mboxCookieManager.prototype.deleteCookie = function(g) { this.fc.remove(g); this.saveCookies();};mboxCookieManager.prototype.getCookieNames = function(hc) { var ic = new Array(); this.fc.each(function(g, gc) { if (g.indexOf(hc) == 0) { ic[ic.length] = g; } }); return ic;};mboxCookieManager.prototype.saveCookies = function() { var jc = new Array(); var kc = 0; this.fc.each(function(g, gc) { jc[jc.length] = g + '#' + gc.value + '#' + gc.expireOn; if (kc < gc.expireOn) { kc = gc.expireOn; } }); var lc = new Date(kc * 1000); document.cookie = this.g + '=' + jc.join('|') + '; expires=' + lc.toGMTString() + '; path=/' + this.ec;};mboxCookieManager.prototype.loadCookies = function() { this.fc = new mboxMap(); var mc = document.cookie.indexOf(this.g + '='); if (mc != -1) { var nc = document.cookie.indexOf(';', mc); if (nc == -1) { nc = document.cookie.indexOf(',', mc); if (nc == -1) { nc = document.cookie.length; } } var oc = document.cookie.substring( mc + this.g.length + 1, nc).split('|'); var pc = Math.ceil(new Date().getTime() / 1000); for (var j = 0; j < oc.length; j++) { var gc = oc[j].split('#'); if (pc <= gc[2]) { var qc = new Object(); qc.name = gc[0]; qc.value = gc[1]; qc.expireOn = gc[2]; this.fc.put(qc.name, qc); } } }};mboxSession = function(rc, sc, Bb, tc, J) { this.sc = sc; this.Bb = Bb; this.tc = tc; this.J = J; this.uc = false; this.Jb = typeof mboxForceSessionId != 'undefined' ? mboxForceSessionId : mboxGetPageParameter(this.sc); if (this.Jb == null || this.Jb.length == 0) { this.Jb = J.getCookie(Bb); if (this.Jb == null || this.Jb.length == 0) { this.Jb = rc; this.uc = true; } } J.setCookie(Bb, this.Jb, tc);};mboxSession.prototype.getId = function() { return this.Jb;};mboxSession.prototype.forceId = function(bb) { this.Jb = bb; this.J.setCookie(this.Bb, this.Jb, this.tc);};mboxPC = function(Bb, tc, J) { this.Bb = Bb; this.tc = tc; this.J = J; this.Jb = typeof mboxForcePCId != 'undefined' ? mboxForcePCId : J.getCookie(Bb); if (this.Jb != null) { J.setCookie(Bb, this.Jb, tc); }};mboxPC.prototype.getId = function() { return this.Jb;};mboxPC.prototype.forceId = function(bb) { if (this.Jb != bb) { this.Jb = bb; this.J.setCookie(this.Bb, this.Jb, this.tc); return true; } return false;};mboxGetPageParameter = function(g) { var B = null; var vc = new RegExp(g + "=([^\&]*)"); var wc = vc.exec(document.location); if (wc != null && wc.length >= 2) { B = wc[1]; } return B;};mboxSetCookie = function(g, h, cb) { return mboxFactoryDefault.getCookieManager().setCookie(g, h, cb);};mboxGetCookie = function(g) { return mboxFactoryDefault.getCookieManager().getCookie(g);};mboxCookiePageDomain = function() { var ec = (/([^:]*)(:[0-9]{0,5})?/).exec(document.location.host)[1]; var xc = /[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/; if (!xc.exec(ec)) { var yc = (/([^\.]+\.[^\.]{3}|[^\.]+\.[^\.]+\.[^\.]{2})$/).exec(ec); if (yc) { ec = yc[0]; } } return ec ? ec: "";};mboxShiftArray = function(zc) { var B = new Array(); for (var j = 1; j < zc.length; j++) { B[B.length] = zc[j]; } return B;};mboxGenerateId = function() { return (new Date()).getTime() + "-" + Math.floor(Math.random() * 999999);};mboxScreenHeight = function() { return screen.height;};mboxScreenWidth = function() { return screen.width;};mboxBrowserWidth = function() { return (window.innerWidth) ? window.innerWidth : document.documentElement ? document.documentElement.clientWidth : document.body.clientWidth;};mboxBrowserHeight = function() { return (window.innerHeight) ? window.innerHeight : document.documentElement ? document.documentElement.clientHeight : document.body.clientHeight;};mboxBrowserTimeOffset = function() { return -new Date().getTimezoneOffset();};mboxScreenColorDepth = function() { return screen.pixelDepth;};if (typeof mboxVersion == 'undefined') { var mboxVersion = 40; var mboxFactories = new mboxMap(); var mboxFactoryDefault = new mboxFactory('forex.tt.omtrdc.net', 'forex', 'default');};if (mboxGetPageParameter("mboxDebug") != null || mboxFactoryDefault.getCookieManager() .getCookie("debug") != null) { setTimeout(function() { if (typeof mboxDebugLoaded == 'undefined') { alert('Could not load the remote debug.\nPlease check your connection' + ' to Test&amp;Target servers'); } }, 60*60); document.write('<' + 'scr' + 'ipt language="Javascript1.2" src=' + '"http://admin9.testandtarget.omniture.com/admin/mbox/mbox_debug.jsp?mboxServerHost=forex.tt.omtrdc.net' + '&clientCode=forex"><' + '\/scr' + 'ipt>');};mboxScPluginFetcher = function(b, Ac) { this.b = b; this.Ac = Ac;};mboxScPluginFetcher.prototype.Bc = function(w) { w.setBasePath('/m2/' + this.b + '/sc/standard'); this.Cc(w); var e = w.buildUrl(); e += '&scPluginVersion=1'; return e;};mboxScPluginFetcher.prototype.Cc = function(w) { var Dc = [ "dynamicVariablePrefix","visitorID","vmk","ppu","charSet", "visitorNamespace","cookieDomainPeriods","cookieLifetime","pageName", "currencyCode","variableProvider","channel","server", "pageType","transactionID","purchaseID","campaign","state","zip","events", "products","linkName","linkType","resolution","colorDepth", "javascriptVersion","javaEnabled","cookiesEnabled","browserWidth", "browserHeight","connectionType","homepage","pe","pev1","pev2","pev3", "visitorSampling","visitorSamplingGroup","dynamicAccountSelection", "dynamicAccountList","dynamicAccountMatch","trackDownloadLinks", "trackExternalLinks","trackInlineStats","linkLeaveQueryString", "linkDownloadFileTypes","linkExternalFilters","linkInternalFilters", "linkTrackVars","linkTrackEvents","linkNames","lnk","eo" ]; for (var j = 0; j < Dc.length; j++) { this.Ec(Dc[j], w); } for (var j = 1; j <= 75; j++) { this.Ec('prop' + j, w); this.Ec('eVar' + j, w); this.Ec('hier' + j, w); }};mboxScPluginFetcher.prototype.Ec = function(g, w) { var h = this.Ac[g]; if (typeof(h) === 'undefined' || h === null || h === '') { return; } w.addParameter(g, h);};mboxScPluginFetcher.prototype.cancel = function() { };mboxStandardScPluginFetcher = function(b, Ac) { mboxScPluginFetcher.call(this, b, Ac);};mboxStandardScPluginFetcher.prototype = new mboxScPluginFetcher;mboxStandardScPluginFetcher.prototype.getType = function() { return 'standard';};mboxStandardScPluginFetcher.prototype.fetch = function(w) { w.setServerType(this.getType()); var e = this.Bc(w); document.write('<' + 'scr' + 'ipt src="' + e + '" language="JavaScript"><' + '\/scr' + 'ipt>');};mboxAjaxScPluginFetcher = function(b, Ac) { mboxScPluginFetcher.call(this, b, Ac);};mboxAjaxScPluginFetcher.prototype = new mboxScPluginFetcher;mboxAjaxScPluginFetcher.prototype.fetch = function(w) { w.setServerType(this.getType()); var e = this.Bc(w); this.x = document.createElement('script'); this.x.src = e; document.body.appendChild(this.x);};mboxAjaxScPluginFetcher.prototype.getType = function() { return 'ajax';};function mboxLoadSCPlugin(Ac) { if (!Ac) { return null; } Ac.m_tt = function(Ac) { var Fc = Ac.m_i('tt'); Fc.H = true; Fc.b = 'forex'; Fc['_t'] = function() { if (!this.isEnabled()) { return; } var Y = this.Hc(); if (Y) { var Vb = mboxFactoryDefault.isDomLoaded() ? new mboxAjaxScPluginFetcher(this.b, this.s) : new mboxStandardScPluginFetcher(this.b, this.s); Y.setFetcher(Vb); Y.load(); } }; Fc.isEnabled = function() { return this.H && mboxFactoryDefault.isEnabled(); }; Fc.Hc = function() { var ab = this.Ic(); var Gb = document.createElement('DIV'); return mboxFactoryDefault.create(ab, new Array(), Gb); }; Fc.Ic = function() { var Jc = this.s.events && this.s.events.indexOf('purchase') != -1; return 'SiteCatalyst: ' + (Jc ? 'purchase' : 'event'); }; }; return Ac.loadModule('tt');};
/************END MBOX LIB**************/


// Mbox overrides
mboxStandardScPluginFetcher.prototype.fetch = fxcmmbox.mboxOverrides.mboxStandardScPluginFetcher.fetch;

fxcmmbox._originalMboxCreate = mboxCreate;
mboxCreate = fxcmmbox.mboxOverrides.mboxCreate;
