
(function () {
	NOKIA = window.NOKIA || {};
	NOKIA.bridge = {};
	/** anything in this namespace is an internal implementation detail that can be changed at any moment */
	NOKIA.bridge.private = {};

	var nb = NOKIA.bridge;
	var p = nb.private;
	/** use our own <code>nb.undefined</code> variable so no one else will accidentally overwrite it on us */
	nb.undefined = nb.__undefined__;


	// init vars
	var bridgeDataUrl = "http://srvs.ovi.com/bridge/v1.0/ui/";
	var ncimForwardLoginURL = "https://account.nokia.com/fed/engine/forward.jsp";
	nb.IPCountry = "US";
	var ncimForgotPassURL = "https://account.nokia.com/acct/passwordReminder";
	nb.bridgeVersion = "v1.0";
	nb.bridgeAPIVersion = "v1.0.2";
	nb.bridgeBuildVersion = "2.0.21";
	var ncimNewAccountURL = "https://account.nokia.com/acct/register";
	var ncimAccountURL = "https://account.nokia.com/acct/account/index.html";
	var restLoginURL = "https://account.nokia.com/restsso/login";
	//var restLogoutURL = "";
	nb.s_account = "nokiaglobalfwg0prod";
	

(function () {
	var p = NOKIA.bridge.private;
	
	var regexMap = {};
	var regex = function(className)
	{
		var reg = regexMap[className];
		if (!reg)
		{
			reg = new RegExp('(?:^|\\s+)'+ className +'(?:\\s+|$)');
			regexMap[className] = reg;
		}
		
		return reg;
	};
	
	p.escapeHtml = function (s)
	{
		if (typeof(s) !== 'string')
		{
			return '';
		}
		
		/* 
		 * replace all < with &lt, > with &gt; and all stand-alone & with &amp;
		 * attempts to leave alone any entities that have already been escaped, both &amp; and &#1234; style
		 */
		return s.replace(/&(?!([A-Za-z]{2,6}|#[0-9]{3,4});)/g, '&amp;').split('<').join('&lt;').split('>').join('&gt;');
	};
	
	p.trim = function (s)
	{
		try {
			return s.replace(/^\s+|\s+$/g, '');
		} catch (e) {
			return s;
		}
	};
	
	p.bridgeEl = function (el)
	{
		this._el = el;
	};
	
	p.bridgeEl.prototype = {
		show : function ()
		{
			if (this.exists())
			{
				this._el.style.display = "";
			}
		},
		hide : function ()
		{
			if (this.exists())
			{
				this._el.style.display = "none";
			}
		},
		visible : function ()
		{
			return this.exists() && this._el.style.display === '';
		},
		addListener : function (eventName, handler, scope)
		{
			if (this.exists())
			{
				var fn = null;
				var self = this;
				
				var obj = this;
				if (scope)
				{
					obj = scope;
				}
				
				var fn = function (evt)
				{
					return handler.apply(obj, [ evt, self ]);
				};
				
				if (this._el.addEventListener)
				{
					this._el.addEventListener(eventName, fn, false);
				}
				else if (this._el.attachEvent)
				{
					// IE model
					this._el.attachEvent('on' + eventName, fn);
				}
				// else this is a truly ancient browser that we don't support.
			}
		},
		hasClass : function (className)
		{
			className = p.trim(className);
			
			if (this.exists())
			{
				return this._el.className.match(regex(className));
			}
			
			return false;
		},
		addClass : function (className)
		{
			className = p.trim(className);
			
			if (this.exists() && !this.hasClass(className))
			{
				var current = p.trim(this._el.className);
				this._el.className = [current, className].join(' ');
			}
		},
		removeClass : function (className)
		{
			className = p.trim(className);
			
			if (this.exists())
			{
				this._el.className = p.trim(this._el.className.replace(regex(className), ' '));
			}
		},
		innerHtml : function (newHtml, htmlIsSafe)
		{
			if (this.exists())
			{
				if (newHtml !== nb.undefined && newHtml !== null)
				{
					var html = newHtml;
					if (htmlIsSafe !== true)
					{
						html = p.escapeHtml(html);
					}
					
					this._el.innerHTML = html;
				}
				
				return this._el.innerHTML;
			}
			
			return null;
		},
		focus : function ()
		{
			if (this.exists())
			{
				this._el.focus();
			}
		},
		href : function (newHref)
		{
			if (this.exists() && typeof(this._el.href) === 'string')
			{
				if (newHref !== nb.undefined && newHref !== null)
				{
					this._el.href = newHref;
				}
				
				return this._el.href;
			}
			
			return null;
		},
		value : function (newValue)
		{
			if (this.exists() && typeof(this._el.value) === 'string')
			{
				if (newValue !== nb.undefined && newValue !== null)
				{
					this._el.value = newValue;
				}
				
				return this._el.value;
			}
			
			return null;
		},
		action : function (newAction)
		{
			if (this.exists() && typeof(this._el.action) === 'string')
			{
				if (newAction !== nb.undefined && newAction !== null)
				{
					this._el.action = newAction;
				}
				
				return this._el.action;
			}
			
			return null;
		},
		rel : function (newRel)
		{
			if (this.exists() && typeof(this._el.rel) === 'string')
			{
				if (newRel !== nb.undefined && newRel !== null)
				{
					this._el.rel = newRel;
				}
				
				return this._el.rel;
			}
			
			return null;
		},
		contains : function (el)
		{
			el = $(el);
			
			if (!this.exists() || !el.exists())
			{
				return false;
			}
			
			if (this._el === document.body)
			{
				return true;
			}
			
			var cur = el._el;
			var me = this._el;
			
			while (cur !== me && cur !== document.body)
			{
				cur = cur.parentNode;
			}
			
			return cur !== document.body;
		},
		exists : function ()
		{
			return this._el !== null;
		}
	};
	
	p.elCollection = function (els)
	{
		this._els = els;
		this.length = els.length;
	}
	
	p.elCollection.prototype = {
		each : function (func)
		{
			for (var el in this._els)
			{
				if (this._els.hasOwnProperty(el))
				{
					func(this._els[el]);
				}
			}
		},
		show : function ()
		{
			this.each(function (el) {
				el.show();
			});
		},
		hide : function ()
		{
			this.each(function (el) {
				el.hide();
			});
		},
		addListener : function (eventName, handler, scope)
		{
			this.each(function (el) {
				el.addListener(eventName, handler, scope);
			});
		}
	};
	
	p.$ = function (id) {
		var el = null;
		
		if (id._el !== nb.undefined && id._el.tagName !== nb.undefined)
		{
			return id;
		}
		if (id.tagName !== nb.undefined)
		{
			el = id;
		}
		else
		{
			el = document.getElementById(id);
		}
		
		return new p.bridgeEl(el);
	};

	p.$$ = function (className, tag, root)
	{
		tag = tag || '*';
		if (root)
		{
			var r = p.$(root);
			if (r.exists())
			{
				root = r;
			}
		}
		else
		{
			root = p.$(document);
		}
		
		if (!root.exists())
		{
			return [];
		}
		
		var result = [];
		var els = root._el.getElementsByTagName(tag);
		
		for (var i = 0, len = els.length; i < len; i++)
		{
			var e = $(els[i]);
			if (e.hasClass(className))
			{
				result[result.length] = e;
			}
		}
		
		return new p.elCollection(result);
	};
})();


	if (location.protocol == "https:") {
		bridgeDataUrl = bridgeDataUrl.replace(/^http:/i, "https:");
	}
	
	var $ = p.$, $$ = p.$$;
	
	p.updateNCIMLinks = function(hideLinks){
		if (hideLinks){
			$('bridge_account_loggedIn').hide();
			$('bridge_signOut_loggedIn').hide();
			$('bridge_signIn_loggedOut').hide();
			$('bridge_register_loggedOut').hide();
			document.getElementById('bridge_support_loggedOut').style.borderRight = "medium none";
			document.getElementById('bridge_support_loggedOut').style.borderLeft = "medium none";
			document.getElementById('bridge_support_loggedIn').style.borderRight = "medium none";
			document.getElementById('bridge_support_loggedIn').style.borderLeft = "medium none";
		} else {
			$('bridge_account_loggedIn').show();
			$('bridge_signOut_loggedIn').show();
			$('bridge_signIn_loggedOut').show();
			$('bridge_register_loggedOut').show();
		}
	};

	/**@private*/
	p.updateHelpLink = function(hideLink){
		if (hideLink){
			$('bridge_support_loggedIn').hide();
			$('bridge_support_loggedOut').hide();
		} else {
			$('bridge_support_loggedIn').show();
			$('bridge_support_loggedOut').show();
		}
	};

	var fireClickTaleTag = function (trackingValue)
	{
		if (typeof(ClickTaleTag) == 'function')
		{
			ClickTaleTag(trackingValue);
		}
	};

	var stringTrim = function(string)
	{
		return string.replace(/^\s+|\s+$/g, '')
	};
	
	var toCharsEntityAware = function(str)
	{
		var result = [];
		var ent = null;
		
		for (var i = 0; i < str.length; i++) {
			var c = str.charAt(i);
			
			if (ent === null && c === '&') {
				// Start of an entity
				ent = '&';
			} else if (ent !== null) {
				// In an entity
				ent += c;
				
				if (c === ';') {
					// End of the entity
					result[result.length] = ent;
					ent = null;
				}
			}
			else {
				// Not in an entity
				result[result.length] = c;
			}
		}
		
		return result;
	};
	
	var appendQuery = function (originalUrl, queryParams)
	{
		var url = [ originalUrl ];
		var sep = (originalUrl.indexOf('?') >= 0) ? '&' : '?';
		
		for (var k in queryParams)
		{
			if (queryParams.hasOwnProperty(k))
			{
				url.push(sep);
				url.push(k);
				url.push('=');
				url.push(queryParams[k]);
				
				sep = '&';
			}
		}
		
		return url.join('');
	};
	
	p.limitNameLength = function(name)
	{
		if (typeof(name) !== 'string' || name === '')
		{
			return "";
		}
		
		// Truncate the name if it won't fit
		var chars = toCharsEntityAware(name);
		
		if (chars.length >= 25) {
			name = chars.slice(0, 22).join("") + "...";
		}

		// Adding space as a fix for RTL languages.  In IE, text gets cutoff without the space.
		// TODO: see if there is a better solution for this.
		return "&nbsp;" + stringTrim(p.escapeHtml(name));
	};
	
	var stopEvent = function (evt)
	{
		if (evt && evt.stopPropagation)
		{
			evt.stopPropagation();
		}
		
		if (window.event)
		{
			window.event.cancelBubble = true;
		}
		
		if (evt && evt.preventDefault)
		{
			evt.preventDefault();
		}
		
		evt.returnValue = false;
		
		return false;
	};
	
	var omnitureTrack = function (el, description, evt, isServiceChange) {
		var s_bridge = s_gi(nb.s_account);

		var trackVars = ['prop6'];
		if (typeof(evt) === 'string')
		{
			trackVars.push('events');
			s_bridge.linkTrackEvents = evt;
			s_bridge.events = evt;
		}
		
		var fullDesc = config.serviceID + ':' + description;
		if (isServiceChange === true)
		{
			trackVars.push('prop15');
			s_bridge.prop15 = fullDesc;
			fullDesc = description;
		}

		s_bridge.linkTrackVars = trackVars.join(',');
		s_bridge.prop6 = 'ovifwg0';
		s_bridge.tl(el, 'o', fullDesc);
	};
	
	var checkObjectData = function (bridgeObj)
	{
		if (bridgeObj.serviceBridgeID === nb.undefined)
		{
			throw new Error("serviceBridgeID is not defined, please refer to the API");
		}
		else if (!$(bridgeObj.serviceBridgeID).exists())
		{
			throw new Error(bridgeObj.serviceBridgeID + " as div not found!");
		}
		
		if (typeof(bridgeObj.lang) !== 'string')
		{
			throw new Error("lang is not defined, please refer to the API");
		}
		bridgeObj.lang = bridgeObj.lang.toLowerCase();
		
		if (typeof(bridgeObj.country) !== 'string')
		{
			throw new Error("country is not defined, please refer to the API");
		}
		bridgeObj.country = bridgeObj.country.toUpperCase();

		if (typeof(bridgeObj.status) === "undefined" || bridgeObj.status === "")
		{
			throw new Error("status is not defined, please refer to the API");
		}
		
		if (bridgeObj.status != "guest")
		{
			if (typeof bridgeObj.firstName=="undefined")
			{
				throw new Error("firstName is not defined, please refer to the API");
			}
			
			if (typeof bridgeObj.lastName=="undefined")
			{
				throw new Error("lastName is not defined, please refer to the API");
			}
		}
		
		if (bridgeObj.serviceID == "" || typeof bridgeObj.serviceID=="undefined")
		{
			throw new Error("serviceID is not defined, please refer to the API");
		}
		
		if (bridgeObj.callback == "" || typeof bridgeObj.callback=="undefined")
		{
			var serviceCallback = function (bridgeCallbackObj)
			{
				return true;
			}
			
			bridgeObj.callback = serviceCallback;
		}
		
		if (bridgeObj.hideHelpLink !== true)
		{
			if (bridgeObj.serviceSupportURL == "" || typeof bridgeObj.serviceSupportURL=="undefined")
			{
				throw new Error("serviceSupportURL is not defined, please refer to the API");
			}
		}
		
		if (bridgeObj.hideNCIMLinks !== true)
		{
			if (bridgeObj.ncimServiceID == "" || typeof bridgeObj.ncimServiceID=="undefined")
			{
				throw new Error("ncimServiceID is not defined, please refer to the API");
			}
			
			if (bridgeObj.providerID == "" || typeof bridgeObj.providerID=="undefined")
			{
				throw new Error("providerID is not defined, please refer to the API");
			}
			
			if (bridgeObj.authMeth == "" || typeof bridgeObj.authMeth=="undefined")
			{
				throw new Error("authMeth is not defined, please refer to the API");
			}
			
			bridgeObj.authMeth = bridgeObj.authMeth.toUpperCase();
			if(bridgeObj.authMeth != "SAML" && bridgeObj.authMeth != "REST")
			{
				throw new Error("authMeth is not correctly defined (SAML || REST), please refer to the API");
			}
			
			if (bridgeObj.authLogoutURL == "" || typeof bridgeObj.authLogoutURL=="undefined")
			{
				throw new Error("authLogoutURL is not defined, please refer to the API");
			}
		}
	};
	
	var signInDialog = null;
	var signInVisible = false;
	var callback = null;
	var initialHtml = "";
	var signInDialogId = "bridge_signin_dialog";
	var config = {};

	var bridge = (NOKIA.bridge.oviCommonBridge = function (bridgeObj)
	{
		nb.bridgeObj = this;
		
		checkObjectData(bridgeObj);
		
		config.status = bridgeObj.status,
		config.providerID = bridgeObj.providerID,
		config.authMeth = bridgeObj.authMeth,
		config.authLogoutURL = bridgeObj.authLogoutURL,
		config.serviceSupportURL = bridgeObj.serviceSupportURL,
		config.lang = bridgeObj.lang,
		config.country = bridgeObj.country,
		config.serviceID = bridgeObj.serviceID,
		config.ncimServiceID = bridgeObj.ncimServiceID,
		config.serviceBridgeID = bridgeObj.serviceBridgeID,
		config.hideNCIMLinks = bridgeObj.hideNCIMLinks,
		config.hideHelpLink = bridgeObj.hideHelpLink,
		callback = bridgeObj.callback;
		
		updateNames(bridgeObj.firstName, bridgeObj.lastName);
		
		this.wrapper = $(config.serviceBridgeID);
	
		/**@private*/
		this.updateLoadedBridge = function()
		{
			var updateObj = {
				status: config.status,
				firstName: config.firstName,
				lastName: config.lastName,
				providerID: config.providerID,
				authLogoutURL: config.authLogoutURL,
				lang: config.lang,
				authMeth: config.authMeth,
				country: config.country,
				hideNCIMLinks: config.hideNCIMLinks,
				hideHelpLink: config.hideHelpLink,
				serviceID : config.serviceID
			}
			
			this.refreshBridge(updateObj);
			
			this.registerEvents();
		};
	
		/**@public*/
		//When a new JS file is downloaded, it calls "updateLoadedBridge" (just above) which 
		//then it calls this function.
		this.refreshBridge = function (updateObj)
		{
			this.coreUpdate(updateObj);
			
			if (typeof(updateObj.serviceID) === 'string')
			{
				config.serviceID = updateObj.serviceID;
			}

			// to handle services that want special Omniture tracking for loggedin and logged out states
			// remove the -loggedin and -loggedout when the user navigates to NCIM
			var loginServiceId = config.serviceID;
			loginServiceId = loginServiceId.replace(/-logged(in|out)$/, '');
			
			// TODO: we're passing different service IDs for different NCIM urls this seems like a bad idea
			var params = {
				lang : config.lang,
				country : config.country,
				serviceID : loginServiceId
			};
			
			var loginUrl = null;
			if (updateObj.authMeth === "SAML") {
				loginUrl = appendQuery(ncimForwardLoginURL, params);
			} else {
				loginUrl = appendQuery(restLoginURL, params);
			}
	
			$("bridgeSignIn").action(loginUrl);
			
			params.serviceID = config.serviceID;
			var forgotPassUrl = appendQuery(ncimForgotPassURL, params);
			$('bridge_need_help').href(forgotPassUrl);
			$('bridge_need_help_rtl').href(forgotPassUrl);
			
			var supportUrl = appendQuery(config.serviceSupportURL, params);
			$('bridge_support_link_loggedIn').href(supportUrl);
			$('bridge_support_link_loggedOut').href(supportUrl);
			
			// TODO: we should figure out what should really be passed for all of these
			delete(params.serviceID);
			params.serviceId = config.ncimServiceID;
			var registerUrl = appendQuery(ncimNewAccountURL, params);
			$('bridge_register_link').href(registerUrl);
			$('bridge_new_account').href(registerUrl);
			$('bridge_new_account_rtl').href(registerUrl);
			
			var accountUrl = appendQuery(ncimAccountURL, params);	
			$('bridge_account_link').href(accountUrl);
			
			if (typeof(updateObj.providerID) === 'string')
			{
				config.providerID = updateObj.providerID;
			}
	
			$("bridge_providerID").value(config.providerID);
			$("bridge_oauthKey").value(config.providerID);
		};
	
		/**@public*/
		this.update = function (updateObj){
			this.coreUpdate(updateObj);
	
			if (updateObj.lang || updateObj.country) {
				if (updateObj.lang){
					config.lang = updateObj.lang;
				}
				if (updateObj.country){
					config.country = updateObj.country
				}
				// this will get the "full" html & insert it into serviceBridgeID
				this.getDataJS();
			}
			
			if (updateObj.providerID){
				config.providerID = updateObj.providerID;
				$("bridge_providerID").value(config.providerID);
				$("bridge_oauthKey").value(config.providerID);
			}
		};
		
		this.getDataJS = function()
		{
			// TODO: add versioning param once we get one that represents the correct version number
			var queryArgs = {
				lang : config.lang,
				country : config.country,
				serviceID : config.serviceID
			};
			writeScript(appendQuery(bridgeDataUrl, queryArgs));
		};
		
		this.handleLogin = function(evt, el, isButton)
		{	
			if (isButton === true)
			{
				omnitureTrack(el._el, 'Sign-in button click', 'event23');
			}
			else
			{
				omnitureTrack(el._el, 'Sign-in button enter key', 'event34');
			}
			
			username = document.getElementById('bridgeSignIn').username.value;
			password = document.getElementById('bridgeSignIn').password.value;

			var loginObj = {
				username: username,
				password: password,
				remember: document.getElementById('bridge_rememberme').checked === true
			};
			var bridgeCallbackObj = {
				action: "login",
				data: loginObj
			};
			
			if (callback(bridgeCallbackObj))
			{
				fireClickTaleTag('evt_signin_btn_nli');
				$('bridgeSignIn')._el.submit();
				
				return true;
			}
			else
			{
				hideLoginDialog();
				
				return stopEvent(evt);
			}
		};
	});
	
	var handleAccountLinkClick = function (evt, el)
	{
		omnitureTrack(el._el, 'account link click', 'event32');

		var bridgeCallbackObj = {
			action: "account",
			data: null
		};

		if (!callback(bridgeCallbackObj))
		{
			return stopEvent(evt);
		}
	};
	
	var handleLoginLinkClick = function (evt, el)
	{
		omnitureTrack(el._el, 'Sign-in link click', 'event33');
		
		fireClickTaleTag('evt_signin_link_nli');
		
		if (signInVisible === true)
		{
			hideLoginDialog();
		}
		else
		{
			showLoginDialog();
		}
		
		return stopEvent(evt);
	};

	var updateLoginStatus = function(status)
	{
		if (status) {
			config.status = status;	
		}
		if (status == "guest"){
			$('bridge_loginStatus_loggedOut').show();
			$('bridge_loginStatus_loggedIn').hide();
		} else {
			$('bridge_loginStatus_loggedOut').hide();
			$('bridge_loginStatus_loggedIn').show();
		}
	};
	
	var updateNames = function (firstName, lastName)
	{
		if (firstName == "")
		{
			config.firstName = "";
			config.lastName = "";
		}
		else if (firstName == "*EMPTY*")
		{
			config.firstName = "";
			config.lastName = "";
		}
		else
		{
			config.firstName = firstName;
			
			if (lastName === "*EMPTY*")
			{
				config.lastName = "";
			}
			else
			{
				config.lastName = lastName;
			}
		}
	};
	
	var writeScript = function(srcURL)
	{
		var script = document.createElement("script");        
		script.setAttribute("src",srcURL);
		script.setAttribute("type","text/javascript");
		document.body.appendChild(script);
	};
	
	// The following functions are used to fix problems with hovering over service icons in IE6
	var showServiceHover = function(hoveritem) {
		$(hoveritem).addClass('bridge_noop');
	};
	
	var hideServiceHover = function(hoveritem) {
		$(hoveritem).removeClass('bridge_noop');
	};
	
	var supportClick = function (evt) {
		omnitureTrack(this._el, 'support link click', 'event21');

		var bridgeCallbackObj = {
			action: "support",
			data: null
		};

		if (!callback(bridgeCallbackObj))
		{
			return stopEvent(evt);
		}
	};
	
	var signOutClick = function (evt) {
		omnitureTrack(this._el, 'Sign-out link click', 'event22');

		var bridgeCallbackObj = {
			action: "logout",
			data: null
		};

		if (!callback(bridgeCallbackObj))
		{
			return stopEvent(evt);
		}
	};
	
	var ncimRegister = function (evt)
	{
		var bridgeCallbackObj = {
			action: "register",
			data: null
		};

		if (callback(bridgeCallbackObj)) {
			fireClickTaleTag('evt_register_bridge_nli');
		}
		else
		{
			return stopEvent(evt);
		}
	}
	
	var getCID = function (targetServiceID, url)
	{
		var marker = (url.indexOf('?') != -1) ? '&' : '?';
		var cid = "";
		var site = targetServiceID + "-";
		var serviceChannel = "fw-"
		var campaignType = "na-";
		var placement = "";
		var purpose = "acq-";
		var keyword = "na-";
		var currentService = "";		
		var country = config.country + "-";
		var iab = "0-"
		var version = "1";
		
		//removes -loggedin or -loggedout attached to ovicom.
		if (config.serviceID.lastIndexOf('-') > 0)
		{
			currentService = config.serviceID.substring(0, config.serviceID.lastIndexOf('-') + 1) ;
		}
		else
		{
			currentService = config.serviceID + "-";
		}
		
		//TO DO: Remove when Ovi's serviceID is changed from gateway to ovicom.
		if (currentService === "gateway-")
		{
			currentService = "ovicom-";
		}
		
		if (config.status !== "guest")
		{
			placement = "bridge_li-"
		}
		else 
		{
			placement = "bridge_nli-"
		}
		
		return cid += marker + "cid=" + site + serviceChannel + campaignType + placement + purpose + keyword + currentService + country.toLowerCase() + iab + version;
	};
	
	var registerClick = function (evt) {
		var cid = getCID("register", this._el.href);
		var url = this._el.href;
		this._el.href = url + cid;
		
		omnitureTrack(this._el, 'register link click', 'event27');
		
		return ncimRegister(evt);
	};
	
	var newAccountClick = function (evt) {
		var cid = getCID("register_newaccount", this._el.href);
		var url = this._el.href;
		this._el.href = url + cid;
		omnitureTrack(this.el, 'new account link click', 'event28');
		
		return ncimRegister(evt);
	};
	
	var needHelpClick = function (evt) {
		omnitureTrack(this._el, 'need help link click', 'event29');
		
		var bridgeCallbackObj = {
			action: "forgotPass",
			data: null
		};

		if (!callback(bridgeCallbackObj)) {
			return stopEvent(evt)
		}
	};
	
	p.serviceClick = function (evt, el) {
		var name = el.rel();
		var url = el.href();
		
		url += getCID(name, url);
		this._el.href = url;
		
		omnitureTrack(this._el, name, null, true);
		
		var callbackObj = {
			action : 'serviceChange',
			data : { serviceID : name }
		};
		
		if (name == "ovicom" || callback(callbackObj))
		{
			el.href(appendQuery(url, {
				lang : config.lang,
				country : config.country,
				serviceID : config.serviceID
			}));
		}
		else
		{
			return stopEvent(evt);
		}
	};

	var showLoginDialog = function()
	{
		if (signInDialog.visible())
		{
			return;
		}
		
		signInDialog.show();
		signInVisible = true;
		
		$("bridge_uname").focus();
		
		var loginObj = {
			signInVisible : signInVisible,
			display : document.getElementById(signInDialogId).style.display
		};
		
		var bridgeCallbackObj = {
			"action": "signInShow",
			data: loginObj
		};
		
		callback(bridgeCallbackObj);
	};
	
	var hideLoginDialog = function()
	{
		if (!signInDialog.visible())
		{
			return;
		}
		
		signInDialog.hide();
		signInVisible = false;
		
		var loginObj = {
			signInVisible : signInVisible,
			display : document.getElementById(signInDialogId).style.display
		};
		
		var bridgeCallbackObj = {
			"action": "signInHide",
			data: loginObj
		};
		
		callback(bridgeCallbackObj);
	};

	var bodyClick = function(evt)
	{
		var el = evt.srcElement || evt.target;
		
		if (!signInDialog.contains(el))
		{
			hideLoginDialog();
		}
	};
	
	bridge.prototype = {
		display : function ()
		{
			this.wrapper.show();
		},
		hide : function ()
		{
			this.wrapper.hide();
		},
		init : function ()
		{
			if (config.country === nb.undefined || config.country === "")
			{
				config.country = nb.IPCountry;
			}
	
			// load serviceBridgeID with basic layout first
			this.wrapper.innerHtml(initialHtml);
			
			// this will get the "full" html & insert it into serviceBridgeID
			this.getDataJS();
		},
		syncCountryLang : function (country, lang)
		{
			config.country = country;
			config.lang = lang;
		},
		coreUpdate : function (newConfigObj)
		{
			// refresh
			// Data present in updateObj will overwrite corresponding fields in 'this'
			if (newConfigObj.status){
				updateLoginStatus(newConfigObj.status);
			}
	
			if (typeof(newConfigObj.firstName) === "string" && newConfigObj.firstName !== '')
			{
				config.firstName = newConfigObj.firstName;
				$("bridge_firstName").innerHtml(p.limitNameLength(config.firstName), true);
			}
			else
			{
				config.firstName = '';
				if (config.status !== "guest")
				{
					$("bridge_firstName").innerHtml("<bdo dir='LTR'>" + p.limitNameLength(config.status) + "</bdo>", true);			
				}
			}

			if (newConfigObj.lastName)
			{
				config.lastName = newConfigObj.lastName;
			}
	
			if (newConfigObj.authLogoutURL)
			{
				config.authLogoutURL = newConfigObj.authLogoutURL;
				$('bridge_authLogoutURL').href(config.authLogoutURL);
			}
				
			if (newConfigObj.hideNCIMLinks !== nb.undefined)
			{
				config.hideNCIMLinks = newConfigObj.hideNCIMLinks;
				p.updateNCIMLinks(newConfigObj.hideNCIMLinks);
			}
	
			if (newConfigObj.hideHelpLink !== nb.undefined)
			{
				config.hideHelpLink = newConfigObj.hideHelpLink;
				p.updateHelpLink(newConfigObj.hideHelpLink);
			}
		},
		handleButtonLogin : function(evt, el)
		{
			el = el._el;
			el.blur();
			this.handleLogin(evt, el, true);
		},
		addInputSubmitEvent : function(form, input, scope) 
		{
		    input.onkeydown = function(e) {
		        e = e || window.event;
		        if (e.keyCode == 13) {
		            scope.handleLogin(e, form, false);
		            return false;
		        }
		    };
		},	
		registerEvents : function ()
		{
			signInDialog = $(signInDialogId);
			
			$('oviLogo').addListener('click', p.serviceClick);
			$('oviLogo_rtl').addListener('click', p.serviceClick);

			$('bridge_authLoginURL').addListener('click', handleLoginLinkClick);
			$(document.body).addListener('click', bodyClick);
			
			$$('bridge_support_link_loggedIn', 'a', this.wrapper).addListener('click', supportClick);
			$$('bridge_support_link_loggedOut', 'a', this.wrapper).addListener('click', supportClick);
			
			var channels = $$('channel_icon', 'span', 'bridge_channelList');
			channels.addListener('mouseover', showServiceHover);
			channels.addListener('mouseout', hideServiceHover);
			
			var channelLinks = $$('bridge_channel_link', 'a', 'bridge_channelList');
			channelLinks.addListener('click', p.serviceClick);
			
			$('bridge_account_link').addListener('click', handleAccountLinkClick);
			$('bridge_account_link_rtl').addListener('click', handleAccountLinkClick);
			
			$('bridge_new_account').addListener('click', newAccountClick);
			$('bridge_register_link').addListener('click', registerClick);
			$('bridge_authLogoutURL').addListener('click', signOutClick);
			$('bridge_need_help').addListener('click', needHelpClick);
			$('bridge_need_help_rtl').addListener('click', needHelpClick);
			
			$('bridge_signin_button_link').addListener('click', this.handleButtonLogin, this);
			$('bridgeSignIn').addListener('submit', this.handleLogin, this);
			
			var form = document.getElementById('bridgeSignIn');
			var inputs = form.getElementsByTagName('input');
			
			for (var i = 0; i < inputs.length; i++)
			{
				if (inputs[i].name === "username" || inputs[i].name === "password")
				{
					this.addInputSubmitEvent(form, inputs[i], this);
				}
			}
		},
		getCurrentObject : function (){
			return {
				apiVersion: nb.bridgeAPIVersion,
				buildVersion: nb.bridgeBuildVersion,
				status: config.status,
				firstName: config.firstName,
				lastName: config.lastName,
				providerID: config.providerID,
				lang: config.lang,
				authMeth: config.authMeth,
				serviceID: config.serviceID,
				country: config.country,
				serviceBridgeID: config.serviceBridgeID,
				hideNCIMLinks: config.hideNCIMLinks,
				hideHelpLink: config.hideHelpLink,
				callback: callback,
				authLogoutURL: config.authLogoutURL,
				serviceSupportURL: config.serviceSupportURL,
				ncimServiceID: config.ncimServiceID
			};
		},
		toString : function(divID)
		{
			// for test/debugging purposes - divID is a div container to hold the output
			var output = "status: " + config.status 
				+ "<br/>firstName: " + config.firstName
				+ "<br/>lastName: " + config.lastName
				+ "<br/>lang: " + config.lang
				+ "<br/>serviceID: " + config.serviceID
				+ "<br/>country: " + config.country
				+ "<br/>serviceBridgeID: " + config.serviceBridgeID
				+ "<br/>hideNCIMLinks: " + config.hideNCIMLinks
				+ "<br/>hideHelpLink: " + config.hideHelpLink;
	
			$(divID).innerHtml(output, true);
		}
	};



/* SiteCatalyst code version: H.20.3.
Copyright 1997-2009 Omniture, Inc. More info available at
http://www.omniture.com */
/************************ ADDITIONAL FEATURES ************************
     Plugins
*/
window.s_bridge=s_gi(NOKIA.bridge.s_account)
/************************** CONFIG SECTION **************************/
/* You may add or alter any code config here. */
var d=window.location.href;
if(d.indexOf(".com.hr")>-1||d.indexOf(".com.gr")>-1||d.indexOf(".com.pl")>-1||d.indexOf(".com.ru")>-1||d.indexOf(".com.tr")>-1||d.indexOf(".co.uk")>-1||d.indexOf(".com.au")>-1
||d.indexOf(".com.bd")>-1||d.indexOf(".com.cn")>-1||d.indexOf(".com.hk")>-1||d.indexOf(".co.in")>-1||d.indexOf(".co.id")>-1||d.indexOf(".co.jp"||d.indexOf(".com.kr")>-1)>-1
||d.indexOf(".com.my")>-1||d.indexOf(".co.nz")>-1||d.indexOf(".com.ph")>-1||d.indexOf(".com.sg")>-1||d.indexOf(".com.tw")>-1||d.indexOf(".co.th")>-1||d.indexOf(".com.vn")>-1
||d.indexOf(".com.ar")>-1||d.indexOf(".com.co")>-1||d.indexOf(".com.mx")>-1||d.indexOf(".com.ve")>-1||d.indexOf(".co.il")>-1||d.indexOf(".com.sa")>-1||d.indexOf(".com.pa")>-1
||d.indexOf(".com.do")>-1||d.indexOf(".com.gt")>-1){
	s.fpCookieDomainPeriods="3"
}
/* Conversion Config */
s_bridge.currencyCode="EUR"
/* Link Tracking Config 
 * 
 * In order to prevent Bridge from tracking links automatically throughout the page, we are setting these values to false.  If set to true, there is a risk that events on the page (NOT just in the bridge) will fire twice. 
 */
s_bridge.trackDownloadLinks=false
s_bridge.trackExternalLinks=false
s_bridge.trackInlineStats=false
s_bridge.linkDownloadFileTypes="exe,zip,wav,mp3,mov,mpg,avi,wmv,pdf,doc,docx,xls,xlsx,ppt,pptx,sis,sisx"
s_bridge.linkInternalFilters="javascript:,"+document.domain;
s_bridge.linkLeaveQueryString=false
s_bridge.linkTrackVars="None"
s_bridge.linkTrackEvents="None"
/* Plugin Config */
/* DynamicObjectIDs config */
function s_getObjectID(o)
{
	var ID = o.href;
	return ID;
}
s_bridge.getObjectID = s_getObjectID
s_bridge.usePlugins=true
function s_doPlugins(s) {
	/* Add calls to plugins here */
	/* Getting the External campaign code */
	if (s_bridge.getQueryParam('cid'))
	{
		s_bridge.campaign = s_bridge.getValOnce(s_bridge.getQueryParam('cid', 'cid_cookie', 0));
	}
	/* Getting the Internal campaign code */
	if (s_bridge.getQueryParam('intc'))
	{
		s_bridge.eVar26 = s_bridge.getValOnce(s_bridge.getQueryParam('intc', 'intc_cookie', 0));
		s_bridge.prop26=s_bridge.eVar26;
	}

	if(s_bridge.prop1 && !s_bridge.eVar1){s_bridge.eVar1=s_bridge.prop1;}
	if(s_bridge.prop2 && !s_bridge.eVar2){s_bridge.eVar2=s_bridge.prop2;}
	if(s_bridge.prop3 && !s_bridge.eVar3){s_bridge.eVar3=s_bridge.prop3;}
	if(s_bridge.prop4 && !s_bridge.eVar4){s_bridge.eVar4=s_bridge.prop4;}
	if(s_bridge.prop5 && !s_bridge.eVar5){s_bridge.eVar5=s_bridge.prop5;}
	if(s_bridge.pageName && !s_bridge.eVar7){s_bridge.eVar7=s_bridge.pageName;}
	if(s_bridge.prop23 && !s_bridge.eVar23){s_bridge.eVar23=s_bridge.prop23;}
	if (s_bridge.prop31){s_bridge.eVar31=s_bridge.prop31;};
	if (s_bridge.prop32){s_bridge.eVar32=s_bridge.prop32;};
	if (s_bridge.prop36){s_bridge.eVar36=s_bridge.prop36;};
	if (s_bridge.prop37){s_bridge.eVar37=s_bridge.prop37;};

	if (s_bridge.pageName && s_bridge.pageName!='')
	{
		s_bridge.events=s_bridge.apl(s_bridge.events,'event1',',',2);
		s_bridge.hier1=s_bridge.pageName;
	}
	s_bridge.eVar22=s_bridge.getNewRepeat();
	s_bridge.eVar22=s_bridge.getValOnce(s_bridge.eVar22,'s_newrep',0);
	if (s_bridge.eVar22){ 
		s_bridge.eVar22=s_bridge.eVar22.toLowerCase();
	}
	if (s_bridge.campaign){
		s_bridge.eVar29 = s_bridge.crossVisitParticipation(s_bridge.campaign, 's_cpm', '30', '5', ':', '');
		s_bridge.prop29 = s_bridge.eVar29;
	}
	s_bridge.prop11=s_bridge.eVar11="fw";
}
s_bridge.doPlugins=s_doPlugins
/************************** PLUGINS SECTION *************************/
/* You may insert any plugins you wish to use here.                 */
/*
 * Plugin: getQueryParam 2.3
 */
s_bridge.getQueryParam=new Function("p","d","u",""
+"var s=this,v='',i,t;d=d?d:'';u=u?u:(s_bridge.pageURL?s_bridge.pageURL:s_bridge.wd.locati"
+"on);if(u=='f')u=s_bridge.gtfs().location;while(p){i=p.indexOf(',');i=i<0?p"
+".length:i;t=s_bridge.p_gpv(p.substring(0,i),u+'');if(t){t=t.indexOf('#')>-"
+"1?t.substring(0,t.indexOf('#')):t;}if(t)v+=v?d+t:t;p=p.substring(i="
+"=p.length?i:i+1)}return v");
s_bridge.p_gpv=new Function("k","u",""
+"var s=this,v='',i=u.indexOf('?'),q;if(k&&i>-1){q=u.substring(i+1);v"
+"=s_bridge.pt(q,'&','p_gvf',k)}return v");
s_bridge.p_gvf=new Function("t","k",""
+"if(t){var s=this,i=t.indexOf('='),p=i<0?t:t.substring(0,i),v=i<0?'T"
+"rue':t.substring(i+1);if(p.toLowerCase()==k.toLowerCase())return s_bridge."
+"epa(v)}return ''");
/*
 * Plugin: getValOnce_v1.0
 */
s_bridge.getValOnce=new Function("v","c","e",""
+"var s=this,a=new Date,v=v?v:v='',c=c?c:c='s_gvo',e=e?e:0,k=s_bridge.c_r(c"
+");if(v){a.setTime(a.getTime()+e*86400000);s_bridge.c_w(c,v,e?a:0);}return"
+" v==k?'':v");
/*
 * Plugin: getNewRepeat 1.0 - Return whether user is new or repeat
 */
s_bridge.getNewRepeat=new Function(""
+"var s=this,e=new Date(),cval,ct=e.getTime(),y=e.getYear();e.setTime"
+"(ct+30*24*60*60*1000);cval=s_bridge.c_r('s_nr');if(cval.length==0){s_bridge.c_w("
+"'s_nr',ct,e);return 'New';}if(cval.length!=0&&ct-cval<30*60*1000){s"
+".c_w('s_nr',ct,e);return 'New';}if(cval<1123916400001){e.setTime(cv"
+"al+30*24*60*60*1000);s_bridge.c_w('s_nr',ct,e);return 'Repeat';}else retur"
+"n 'Repeat';");
/*
 * Plugin Utility: apl v1.1
 */
s_bridge.apl=new Function("l","v","d","u",""
+"var s=this,m=0;if(!l)l='';if(u){var i,n,a=s_bridge.split(l,d);for(i=0;i<a."
+"length;i++){n=a[i];m=m||(u==1?(n==v):(n.toLowerCase()==v.toLowerCas"
+"e()));}}if(!m)l=l?l+d+v:v;return l");
/*
 * Utility Function: split v1.5 (JS 1.0 compatible)
 */
s_bridge.split=new Function("l","d",""
+"var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x"
+"++]=l.substring(0,i);l=l.substring(i+d.length);}return a");
/*
 *	Plug-in: crossVisitParticipation v1.4 - stacks values from
 *	specified variable in cookie and returns value
 */
s_bridge.crossVisitParticipation = new Function("v","cn","ex","ct","dl","ev","dv",""
+"var s=this;if(typeof(dv)==='undefined')dv=0;if(s_bridge.events&&ev){var ay"
+"=s_bridge.split(ev,',');var ea=s_bridge.split(s_bridge.events,',');for(var u=0;u<ay.leng"
+"th;u++){for(var x=0;x<ea.length;x++){if(ay[u]==ea[x]){s_bridge.c_w(cn,'');"
+"return'';}}}}if(!v||v=='')return '';v=escape(v);var arry=new Array("
+"),a=new Array(),c=s_bridge.c_r(cn),g=0,h=new Array();if(c&&c!='')arry=eval"
+"(c);var e=new Date();e.setFullYear(e.getFullYear()+5);if(dv==0 && a"
+"rry.length>0 && arry[arry.length-1][0]==v)arry[arry.length-1]=[v, n"
+"ew Date().getTime()];else arry[arry.length]=[v, new Date().getTime("
+")];var start=arry.length-ct<0?0:arry.length-ct;for(var x=start;x<ar"
+"ry.length;x++){var diff=Math.round(new Date()-new Date(parseInt(arr"
+"y[x][1])))/86400000;if(diff<ex){h[g]=unescape(arry[x][0]);a[g]=[arr"
+"y[x][0],arry[x][1]];g++;}}var data=s_bridge.join(a,{delim:',',front:'[',ba"
+"ck:']',wrap:\"'\"});s_bridge.c_w(cn,data,e);var r=s_bridge.join(h,{delim:dl});ret"
+"urn r;");
s_bridge.join = new Function("v","p",""
+"var s = this;var f,b,d,w;if(p){f=p.front?p.front:'';b=p.back?p.back"
+":'';d=p.delim?p.delim:'';w=p.wrap?p.wrap:'';}var str='';for(var x=0"
+";x<v.length;x++){if(typeof(v[x])=='object' )str+=s_bridge.join( v[x],p);el"
+"se str+=w+v[x]+w;if(x<v.length-1)str+=d;}return f+str+b;");
/* WARNING: Changing any of the below variables will cause drastic
changes to how your visitor data is collected.  Changes should only be
made when instructed to do so by your account manager.*/
s_bridge.visitorNamespace="nokia"
s_bridge.trackingServer="metrics.nokia.com"
s_bridge.trackingServerSecure="smetrics.nokia.com"
s_bridge.dc="112"
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code='',s_objectID;function s_gi(un,pg,ss){var c="=fun`o(~.substring(~){`Ps=^O~.indexOf(~#2 ~;$2~`b$2~=new Fun`o(~.length~.toLowerCase()~`Ps#8c_#k^an+'],~=new Object~};s.~`YMigrationServer~.toU"
+"pperCase~){$2~','~s.wd~);s.~')q='~=new Array~ookieDomainPeriods~.location~^LingServer~dynamicAccount~var ~link~s.m_~=='~s.apv~BufferedRequests~Element~)$2x^b!Object#WObject.prototype#WObject.protot"
+"ype[x])~etTime~visitor~$w@c(~referrer~else ~s.pt(~s.maxDelay~}c#E(e){~#i+~=''~.lastIndexOf(~^wc_i~}$2~.protocol~=new Date~^wobjectID=s.ppu=$I=$Iv1=$Iv2=$Iv3~for(i=~ction~javaEnabled~onclick~Name~te"
+"rnalFilters~javascript~s.dl~@6s.b.addBehavior(\"# default# ~=parseFloat(~typeof(v)==\"~window~cookie~while(~s.vl_g~Type~;i#U{~tfs~s.un~&&s.~o^woid~browser~.parent~document~colorDepth~String~.host~s"
+".fl(~s.rep(~s.eo~'+tm@S~s.sq~parseInt(~t=s.ot(o)~track~nload~j='1.~this~#PURL~}else{~s.vl_l~lugins~'){q='~dynamicVariablePrefix~');~;for(~Sampling~s.rc[un]~Event~._i~&&(~loadModule~resolution~s.c_r"
+"(~s.c_w(~s.eh~s.isie~\"m_\"+n~Secure~Height~tcf~isopera~ismac~escape(~'s_~.href~screen.~s#8gi(~Version~harCode~variableProvider~.s_~)s_sv(v,n[k],i)}~')>=~){s.~)?'Y':'N'~u=m[t+1](~i)clearTimeout(~e&"
+"&l$bSESSION'~name~home#P~;try{~,$m)~s.ssl~s.oun~s.rl[u~Width~o.type~s.vl_t~=s.sp(~Lifetime~s.gg('objectID~sEnabled~'+n+'~.mrq(@wun+'\"~ExternalLinks~charSet~lnk~onerror~http~currencyCode~.src~disab"
+"le~.get~MigrationKey~(''+~&&!~f',~){t=~r=s[f](~u=m[t](~Opera~Math.~s.ape~s.fsg~s.ns6~conne~InlineStats~&&l$bNONE'~Track~'0123456789~true~+\"_c\"]~s.epa(~t.m_nl~s.va_t~m._d~n=s.oid(o)~,'sqs',q);~Lea"
+"veQuery~?'&~'=')~n){~\"'+~){n=~'_'+~'+n;~\",''),~,255)}~if(~vo)~s.sampled~=s.oh(o);~+(y<1900?~n]=~1);~&&o~:'';h=h?h~;'+(n?'o.~sess~campaign~lif~ in ~s.co(~ffset~s.pe~m._l~s.c_d~s.brl~s.nrs~s[mn]~,'"
+"vo~s.pl~=(apn~space~\"s_gs(\")~vo._t~b.attach~2o7.net'~Listener~Year(~d.create~=s.n.app~)}}}~!='~'||t~)+'/~s()+'~){p=~():''~a['!'+t]~&&c){~://')i+=~){v=s.n.~channel~100~rs,~.target~o.value~s_si(t)~"
+"')dc='1~\".tl(\")~etscape~s_')t=t~omePage~='+~&&t~[b](e);~\"){n[k]~';s.va_~a+1,b):~return~mobile~height~events~random~code~=s_~=un~,pev~'MSIE ~'fun~floor(~atch~transa~s.num(~m._e~s.c_gd~,'lt~tm.g~."
+"inner~;s.gl(~,f1,f2~',s.bc~page~Group,~.fromC~sByTag~')<~++)~)){~||!~+';'~i);~y+=~l&&~''+x~[t]=~[i]=~[n];~' '+~'+v]~>=5)~:'')~+1))~il['+s~!a[t])~~s._c=^pc';`H=`y`5!`H`i@v`H`il`K;`H`in=0;}s^al=`H`il"
+";s^an=`H`in;s^al[s^a$7s;`H`in++;s.an#8an;s.cls`0x,c){`Pi,y`g`5!c)c=^O.an;`n0;i<x`8^3n=x`1i,i+1)`5c`3n)>=0)#Zn}`4y`Cfl`0x,l){`4x?@Ux)`10,l):x`Cco`0o`F!o)`4o;`Pn`B,x^Wx$Fo)$2x`3'select#T0&&x`3'filter"
+"#T0)n[x]=o[x];`4n`Cnum`0x){x`g+x^W`Pp=0;p<x`8;p#U$2(@j')`3x`1p,p#j<0)`40;`41`Crep#8rep;s.sp#8sp;s.jn#8jn;@c`0x`2,h=@jABCDEF',i,c=s.@L,n,l,e,y`g;c=c?c`E$g`5x){x`g+x`5c`SAUTO'^b'').c^uAt){`n0;i<x`8^3"
+"c=x`1i,i+$8n=x.c^uAt(i)`5n>127){l=0;e`g;^0n||l<4){e=h`1n%16,n%16+1)+e;n=(n-n%16)/16;l++}#Z'%u'+e}`6c`S+')#Z'%2B';`b#Z^oc)}x=y^Qx=x?^F^o#b),'+`G%2B'):x`5x&&c^6em==1&&x`3'%u#T0&&x`3'%U#T0){i=x`3'%^V^"
+"0i>=0){i++`5h`18)`3x`1i,i+1)`E())>=0)`4x`10,i)+'u00'+x`1#Yi=x`3'%',i$a}`4x`Cepa`0x`2;`4x?un^o^F#b,'+`G ')):x`Cpt`0x,d,f,a`2,t=x,z=0,y,r;^0t){y=t`3d);y=y<0?t`8:y;t=t`10,y);@Yt,a)`5r)`4r;z+=y+d`8;t=x"
+"`1z,x`8);t=z<x`8?t:''}`4''`Cisf`0t,a){`Pc=a`3':')`5c>=0)a=a`10,c)`5t`10,2)`S$u`12);`4(t!`g$x==a)`Cfsf`0t,a`2`5`ca,`G,'is@Wt))@d+=(@d!`g?`G`ft;`40`Cfs`0x,f`2;@d`g;`cx,`G,'fs@Wf);`4@d`Csi`0wd`2,c`g+s"
+"_gi,a=c`3\"{\"),b=c`h\"}\"),m;c#8fe(a>0&&b>0?c`1#10)`5wd&&wd.^A$iwd.s`Xout(#C`o s_sv(o,n,k){`Pv=o[k],i`5v`F`xstring\"||`xnumber\")n[k]=v;`bif (`xarray$z`K;`n0;i<v`8;i++^x`bif (`xobject$z`B^Wi$Fv^x}"
+"}fun`o $q{`Pwd=`y,s,i,j,c,a,b;wd^wgi`7\"un\",\"pg\",\"ss\",@wc+'\");wd.^s@w@9+'\");s=wd.s;s.sa(@w^5+'\"`I^4=wd;`c^1,\",\",\"vo1\",t`I@M=^G=s.`Q`r=s.`Q^2=`H`m=\\'\\'`5t.m_#a@n)`n0;i<@n`8^3n=@n[i]`5@"
+"vm=t#ec=t[^i]`5m$ic=\"\"+c`5c`3\"fun`o\")>=0){a=c`3\"{\");b=c`h\"}\");c=a>0&&b>0?c`1#10;s[^i@l=c`5#H)s.^c(n)`5s[n])for(j=0;j<$J`8;j#Us_sv(m,s[n],$J[j]$a}}`Pe,o,t@6o=`y.opener`5o$9^wgi@Xo^wgi(@w^5+'"
+"\")`5t)$q}`e}',1)}`Cc_d`g;#If`0t,a`2`5!#Gt))`41;`40`Cc_gd`0`2,d=`H`M^D@4,n=s.fpC`L,p`5!n)n=s.c`L`5d@V$K@xn?^Jn):2;n=n>2?n:2;p=d`h'.')`5p>=0){^0p>=0&&n>1$fd`h'.',p-$8n--}$K=p>0&&`cd,'.`Gc_gd@W0)?d`1"
+"p):d}}`4$K`Cc_r`0k`2;k=@c(k);`Pc=#fs.d.`z,i=c`3#fk+@u,e=i<0?i:c`3';',i),v=i<0?'':@mc`1i+2+k`8,e<0?c`8:e));`4v$b[[B]]'?v:''`Cc_w`0k,v,e`2,d=#I(),l=s.`z@F,t;v`g+v;l=l?@Ul)`E$g`5@3@h@X(v!`g?^Jl?l:0):-"
+"60)`5t){e`l;e.s`X(e.g`X()+(t*$m0))}`jk@h^zd.`z=k+'`Zv!`g?v:'[[B]]')+'; path=/;'+(@3?' expires$we.toGMT^C()#X`f(d?' domain$wd#X:'^V`4^ek)==v}`40`Ceh`0o,e,r,f`2,b=^p'+e+@ys^an,n=-1,l,i,x`5!^gl)^gl`K;"
+"l=^gl;`n0;i<l`8&&n<0;i++`Fl[i].o==o&&l[i].e==e)n=i`jn<0@xi;l[n]`B}x=l#ex.o=o;x.e=e;f=r?x.b:f`5r||f){x.b=r?0:o[e];x.o[e]=f`jx.b){x.o[b]=x.b;`4b}`40`Ccet`0f,a,t,o,b`2,r,^l`5`T>=5^b!s.^m||`T>=7#V^l`7'"
+"s`Gf`Ga`Gt`G`Pe,r@6@Ya)`er=s[t](e)}`4r^Vr=^l(s,f,a,t)^Q$2s.^n^6u`3#B4^y0)r=s[b](a);else{^g(`H,'@N',0,o);@Ya`Ieh(`H,'@N',1)}}`4r`Cg^4et`0e`2;`4s.^4`Cg^4oe`7'e`G`Ac;^g(`y,\"@N\",1`Ie^4=1;c=s.t()`5c)s"
+".d.write(c`Ie^4=0;`4@k'`Ig^4fb`0a){`4`y`Cg^4f`0w`2,p=w^9,l=w`M;s.^4=w`5p&&p`M!=#ap`M^D==l^D^z^4=p;`4s.g^4f(s.^4)}`4s.^4`Cg^4`0`2`5!s.^4^z^4=`H`5!s.e^4)s.^4=s.cet('g^4@Ws.^4,'g^4et',s.g^4oe,'g^4fb')"
+"}`4s.^4`Cmrq`0u`2,l=@A],n,r;@A]=0`5l)for(n=0;n<l`8;n#U{r=l#es.mr(0,0,r.r,0,r.t,r.u)}`Cbr`0id,rs`2`5s.@R`U#W^f^pbr',rs))$L=rs`Cflush`U`0){^O.fbr(0)`Cfbr`0id`2,br=^e^pbr')`5!br)br=$L`5br`F!s.@R`U)^f^"
+"pbr`G'`Imr(0,0,br)}$L=0`Cmr`0$C,q,$nid,ta,u`2,dc=s.dc,t1=s.`N,t2=s.`N^j,tb=s.`NBase,p='.sc',ns=s.`Y`r$R,un=s.cls(u?u:(ns?ns:s.fun)),r`B,l,imn=^pi_'+(un),im,b,e`5!rs`Ft1`Ft2^6ssl)t1=t2^Q$2!tb)tb='$V"
+"`5dc)dc=@Udc)`9;`bdc='d1'`5tb`S$V`Fdc`Sd1$r12';`6dc`Sd2$r22';p`g}t1#9+'.'+dc+'.'+p+tb}rs='@O'+(@8?'s'`f'://'+t1+'/b/ss/'+^5+'/'+(s.#3?'5.1':'1'$dH.20.3/'+$C+'?AQB=1&ndh=1'+(q?q`f'&AQE=1'`5^h@Vs.^n`"
+"F`T>5.5)rs=^E$n4095);`brs=^E$n2047)`jid^zbr(id,rs);#2}`js.d.images&&`T>=3^b!s.^m||`T>=7)^b@e<0||`T>=6.1)`F!s.rc)s.rc`B`5!^Y){^Y=1`5!s.rl)s.rl`B;@An]`K;s`Xout('$2`y`il)`y`il['+s^an+']@J)',750)^Ql=@A"
+"n]`5l){r.t=ta;r.u#9;r.r=rs;l[l`8]=r;`4''}imn+=@y^Y;^Y++}im=`H[imn]`5!im)im=`H[im$7new Image;im^wl=0;im.o^M`7'e`G^O^wl=1;`Pwd=`y,s`5wd`il){s=wd`il['+s^an+'];s@J`Inrs--`5!$M)`Rm(\"rr\")}')`5!$M^znrs="
+"1;`Rm('rs')}`b$M++;im@Q=rs`5rs`3'&pe=^y0^b!ta||ta`S_self$ca`S_top'||(`H.@4$xa==`H.@4)#Vb=e`l;^0!im^w#ae.g`X()-b.g`X()<500)e`l}`4''}`4'<im'+'g sr'+'c=@wrs+'\" width=1 #4=1 border=0 alt=\"\">'`Cgg`0v"
+"`2`5!`H[^p#g)`H[^p#g`g;`4`H[^p#g`Cglf`0t,a`Ft`10,2)`S$u`12);`Ps=^O,v=s.gg(t)`5v)s#cv`Cgl`0v`2`5s.pg)`cv,`G,'gl@W0)`Crf`0x`2,y,i,j,h,l,a,b`g,c`g,t`5x){y`g+x;i=y`3'?')`5i>0){a=y`1i+$8y=y`10,#Yh=y`9;i"
+"=0`5h`10,7)`S@O$j7;`6h`10,8)`S@Os$j8;h=h`1#Yi=h`3\"/\")`5i>0){h=h`10,i)`5h`3'google^y0){a@Ea,'&')`5a`8>1){l=',q,ie,start,search_key,word,kw,cd,'^Wj=0;j<a`8;j++@Xa[j];i=t`3@u`5i>0&&l`3`G+t`10,i)+`G)"
+">=0)b+=(b@t'`ft;`bc+=(c@t'`ft`jb$i#Z'?'+b+'&'+c`5#b!=y)x=y}}}}}}`4x`Chav`0`2,qs`g,fv=s.`Q@iVa$nfe=s.`Q@i^Zs,mn,i`5$I){mn=$I`10,1)`E()+$I`11)`5$N){fv=$N.^LVars;fe=$N.^L^Zs}}fv=fv?fv+`G+^R+`G+^R2:'';"
+"`n0;i<@o`8^3`Pk=@o[i],v=s[k],b=k`10,4),x=k`14),n=^Jx),q=k`5v&&k$b`Q`r'&&k$b`Q^2'`F$I||s.@M||^G`Ffv^b`G+fv+`G)`3`G+k+`G)<0)v`g`5k`S#5'&&fe)v=s.fs(v,fe)`jv`Fk`S^U`JD';`6k`S`YID`Jvid';`6k`S^P^Tg';v=^E"
+"v$1`6k`S`a^Tr';v=^Es.rf(v)$1`6k`Svmk'||k`S`Y@T`Jvmt';`6k`S`D^Tvmf'`5@8^6`D^j)v`g}`6k`S`D^j^Tvmf'`5!@8^6`D)v`g}`6k`S@L^Tce'`5v`E()`SAUTO')v='ISO8859-1';`6s.em==2)v='UTF-8'}`6k`S`Y`r$R`Jns';`6k`Sc`L`"
+"Jcdp';`6k`S`z@F`Jcl';`6k`S^v`Jvvp';`6k`S@P`Jcc';`6k`S$l`Jch';`6k`S#F`oID`Jxact';`6k`S$D`Jv0';`6k`S^d`Js';`6k`S^B`Jc';`6k`S`t^t`Jj';`6k`S`p`Jv';`6k`S`z@H`Jk';`6k`S^8@B`Jbw';`6k`S^8^k`Jbh';`6k`S@f`o^"
+"2`Jct';`6k`S@5`Jhp';`6k`Sp^S`Jp';`6#Gx)`Fb`Sprop`Jc@z`6b`SeVar`Jv@z`6b`Slist`Jl@z`6b`Shier^Th@zv=^Ev$1`jv)qs+='&'+q+'$w(k`10,3)$bpev'?@c(v):v$a`4qs`Cltdf`0t,h@Xt?t`9$A`9:'';`Pqi=h`3'?^Vh=qi>=0?h`10"
+",qi):h`5t&&h`1h`8-(t`8#j`S.'+t)`41;`40`Cltef`0t,h@Xt?t`9$A`9:''`5t&&h`3t)>=0)`41;`40`Clt`0h`2,lft=s.`QDow^MFile^2s,lef=s.`QEx`s,$E=s.`QIn`s;$E=$E?$E:`H`M^D@4;h=h`9`5s.^LDow^MLinks&&lft&&`clft,`G#Jd"
+"@Wh))`4'd'`5s.^L@K&&h`10,1)$b# '^blef||$E)^b!lef||`clef,`G#Je@Wh))^b!$E#W`c$E,`G#Je@Wh)))`4'e';`4''`Clc`7'e`G`Ab=^g(^O,\"`q\"`I@M=$G^O`It(`I@M=0`5b)`4^O$y`4@k'`Ibc`7'e`G`Af,^l`5s.d^6d.all^6d.all.cp"
+"pXYctnr)#2;^G=e@Q`V?e@Q`V:e$o;^l`7\"s\",\"`Pe@6$2^G^b^G.tag`r||^G^9`V||^G^9Node))s.t()`e}\");^l(s`Ieo=0'`Ioh`0o`2,l=`H`M,h=o^q?o^q:'',i,j,k,p;i=h`3':^Vj=h`3'?^Vk=h`3'/')`5h^bi<0||(j>=0&&i>j)||(k>=0"
+"&&i>k))$fo`k$9`k`8>1?o`k:(l`k?l`k:'^Vi=l.path@4`h'/^Vh=(p?p+'//'`f(o^D?o^D:(l^D?l^D#i)+(h`10,1)$b/'?l.path@4`10,i<0?0:i$d'`fh}`4h`Cot`0o){`Pt=o.tag`r;t=t$x`E?t`E$g`5t`SSHAPE')t`g`5t`Ft`SINPUT'&&@C&"
+"&@C`E)t=@C`E();`6!t$9^q)t='A';}`4t`Coid`0o`2,^K,p,c,n`g,x=0`5t@V^7$fo`k;c=o.`q`5o^q^bt`SA$c`SAREA')^b!c#Wp||p`9`3'`t#T0))n$5`6c@x^Fs.rep(^Fs.rep@Uc,\"\\r$0\"\\n$0\"\\t$0' `G^Vx=2}`6$p^bt`SINPUT$c`S"
+"SUBMIT')@x$p;x=3}`6o@Q$x`SIMAGE')n=o@Q`5@v^7=^En@7;^7t=x}}`4^7`Crqf`0t,un`2,e=t`3@u,u=e>=0?`G+t`10,e)+`G:'';`4u&&u`3`G+un+`G)>=0?@mt`1e#j:''`Crq`0un`2,c#9`3`G),v=^e^psq'),q`g`5c<0)`4`cv,'&`Grq@Wun)"
+";`4`cun,`G,'rq',0)`Csqp`0t,a`2,e=t`3@u,q=e<0?'':@mt`1e+1)`Isqq[q]`g`5e>=0)`ct`10,e),`G@r`40`Csqs`0un,q`2;^Iu[u$7q;`40`Csq`0q`2,k=^psq',v=^ek),x,c=0;^Iq`B;^Iu`B;^Iq[q]`g;`cv,'&`Gsqp',0`Ipt(^5,`G@rv`"
+"g^Wx$F^Iu`W)^Iq[^Iu[x]]+=(^Iq[^Iu[x]]?`G`fx^Wx$F^Iq`W^6sqq[x]^bx==q||c<2#Vv+=(v@t'`f^Iq[x]+'`Zx);c++}`4^fk,v,0)`Cwdl`7'e`G`Ar=@k,b=^g(`H,\"o^M\"),i,o,oc`5b)r=^O$y`n0;i<s.d.`Qs`8^3o=s.d.`Qs[i];oc=o."
+"`q?\"\"+o.`q:\"\"`5(oc`3$S<0||oc`3\"^woc(\")>=0)$9c`3$s<0)^g(o,\"`q\",0,s.lc);}`4r^V`Hs`0`2`5`T>3^b!^h#Ws.^n||`T#h`Fs.b^6$U^Z)s.$U^Z('`q#O);`6s.b^6b.add^Z$W)s.b.add^Z$W('click#O,false);`b^g(`H,'o^M"
+"',0,`Hl)}`Cvs`0x`2,v=s.`Y^X,g=s.`Y^X#Qk=^pvsn_'+^5+(g?@yg#i,n=^ek),e`l,y=e@S$X);e.set$Xy+10$61900:0))`5v){v*=$m`5!n`F!^fk,x,e))`40;n=x`jn%$m00>v)`40}`41`Cdyasmf`0t,m`Ft&&m&&m`3t)>=0)`41;`40`Cdyasf`"
+"0t,m`2,i=t?t`3@u:-1,n,x`5i>=0&&m){`Pn=t`10,i),x=t`1i+1)`5`cx,`G,'dyasm@Wm))`4n}`40`Cuns`0`2,x=s.`OSele`o,l=s.`OList,m=s.`OM#E,n,i;^5=^5`9`5x&&l`F!m)m=`H`M^D`5!m.toLowerCase)m`g+m;l=l`9;m=m`9;n=`cl,"
+"';`Gdyas@Wm)`5n)^5=n}i=^5`3`G`Ifun=i<0?^5:^5`10,i)`Csa`0un`2;^5#9`5!@9)@9#9;`6(`G+@9+`G)`3`G+un+`G)<0)@9+=`G+un;^5s()`Cm_i`0n,a`2,m,f=n`10,1),r,l,i`5!`Rl)`Rl`B`5!`Rnl)`Rnl`K;m=`Rl[n]`5!a&&m&&#H@Vm^"
+"a)`Ra(n)`5!m){m`B,m._c=^pm';m^an=`H`in;m^al=s^al;m^al[m^a$7m;`H`in++;m.s=s;m._n=n;$J`K('_c`G_in`G_il`G_i`G_e`G_d`G_dl`Gs`Gn`G_r`G_g`G_g1`G_t`G_t1`G_x`G_x1`G_rs`G_rr`G_l'`Im_l[$7m;`Rnl[`Rnl`8]=n}`6m"
+"._r@Vm._m){r=m._r;r._m=m;l=$J;`n0;i<l`8;i#U$2m[l[i]])r[l[i]]=m[l[i]];r^al[r^a$7r;m=`Rl[$7r`jf==f`E())s[$7m;`4m`Cm_a`7'n`Gg`Ge`G$2!g)g=^i;`Ac=s[g@l,m,x,f=0`5!c)c=`H[\"s_\"+g@l`5c&&s_d)s[g]`7\"s\",s_"
+"ft(s_d(c)));x=s[g]`5!x)x=`H[\\'s_\\'+g]`5!x)x=`H[g];m=`Ri(n,1)`5x^b!m^a||g!=^i#Vm^a=f=1`5(\"\"+x)`3\"fun`o\")>=0)x(s);`b`Rm(\"x\",n,x,e)}m=`Ri(n,1)`5@pl)@pl=@p=0;`ut();`4f'`Im_m`0t,n,d,e@X@yt;`Ps=^"
+"O,i,x,m,f=@yt,r=0,u`5`R#a`Rnl)`n0;i<`Rnl`8^3x=`Rnl[i]`5!n||x==@vm=`Ri(x);u=m[t]`5u`F@Uu)`3#C`o^y0`Fd&&e)@Zd,e);`6d)@Zd);`b@Z)}`ju)r=1;u=m[t+1]`5u@Vm[f]`F@Uu)`3#C`o^y0`Fd&&e)@1d,e);`6d)@1d);`b@1)}}m"
+"[f]=1`5u)r=1}}`4r`Cm_ll`0`2,g=`Rdl,i,o`5g)`n0;i<g`8^3o=g[i]`5o)s.^c(o.n,o.u,o.d,o.l,o.e,$8g#d0}`C^c`0n,u,d,l,e,ln`2,m=0,i,g,o=0#N,c=s.h?s.h:s.b,b,^l`5@vi=n`3':')`5i>=0){g=n`1i+$8n=n`10,i)}`bg=^i;m="
+"`Ri(n)`j(l||(n@V`Ra(n,g)))&&u^6d&&c^6$Y`V`Fd){@p=1;@pl=1`jln`F@8)u=^Fu,'@O:`G@Os:^Vi=^ps:'+s^an+':@I:'+g;b='`Ao=s.d@S`VById(@wi+'\")`5s$9`F!o.#a`H.'+g+'){o.l=1`5o.@2o.#Yo.i=0;`Ra(\"@I\",@wg+'@w(e?'"
+",@we+'\"'`f')}';f2=b+'o.c++`5!`d)`d=250`5!o.l$9.c<(`d*2)/$m)o.i=s`Xout(o.f2@7}';f1`7'e',b+'}^V^l`7's`Gc`Gi`Gu`Gf1`Gf2`G`Pe,o=0@6o=s.$Y`V(\"script\")`5o){@C=\"text/`t\"$Bid=i;o.defer=@k;o.o^M=o.onre"
+"adystatechange=f1;o.f2=f2;o.l=0;'`f'o@Q=u;c.appendChild(o)$Bc=0;o.i=s`Xout(f2@7'`f'}`eo=0}`4o^Vo=^l(s,c,i,u#N)^Qo`B;o.n=n+':'+g;o.u=u;o.d=d;o.l=l;o.e=e;g=`Rdl`5!g)g=`Rdl`K;i=0;^0i<g`8&&g[i])i++;g#d"
+"o}}`6@vm=`Ri(n);#H=1}`4m`Cvo1`0t,a`Fa[t]||$h)^O#ca[t]`Cvo2`0t,a`F#l{a#c^O[t]`5#l$h=1}`Cdlt`7'`Ad`l,i,vo,f=0`5`ul)`n0;i<`ul`8^3vo=`ul[i]`5vo`F!`Rm(\"d\")||d.g`X()-$T>=`d){`ul#d0;s.t($3}`bf=1}`j`u@2`"
+"ui`Idli=0`5f`F!`ui)`ui=s`Xout(`ut,`d)}`b`ul=0'`Idl`0vo`2,d`l`5!$3vo`B;`c^1,`G$O2',$3;$T=d.g`X()`5!`ul)`ul`K;`ul[`ul`8]=vo`5!`d)`d=250;`ut()`Ct`0vo,id`2,trk=1,tm`l,sed=Math&&@b#6?@b#D@b#6()*$m000000"
+"00000):#K`X(),$C='s'+@b#D#K`X()/10800000)%10+sed,y=tm@S$X),vt=tm@SDate($d^HMonth($d'$6y+1900:y)+' ^HHour$e:^HMinute$e:^HSecond$e ^HDay()+#f#K`XzoneO$H(),^l,^4=s.g^4(),ta`g,q`g,qs`g,#7`g,vb`B#M^1`Iu"
+"ns(`Im_ll()`5!s.td){`Ptl=^4`M,a,o,i,x`g,c`g,v`g,p`g,bw`g,bh`g,^N0',k=^f^pcc`G@k',0@0,hp`g,ct`g,pn=0,ps`5^C&&^C.prototype){^N1'`5j.m#E){^N2'`5tm.setUTCDate){^N3'`5^h^6^n&&`T#h^N4'`5pn.toPrecisio@v^N"
+"5';a`K`5a.forEach){^N6';i=0;o`B;^l`7'o`G`Pe,i=0@6i=new Iterator(o)`e}`4i^Vi=^l(o)`5i&&i.next)^N7'}}}}`j`T>=4)x=^rwidth+'x'+^r#4`5s.isns||s.^m`F`T>=3$k`p(@0`5`T>=4){c=^rpixelDepth;bw=`H#L@B;bh=`H#L^"
+"k}}$P=s.n.p^S}`6^h`F`T>=4$k`p(@0;c=^r^B`5`T#h{bw=s.d.^A`V.o$H@B;bh=s.d.^A`V.o$H^k`5!s.^n^6b){^l`7's`Gtl`G`Pe,hp=0`vh$v\");hp=s.b.isH$v(tl)?\"Y\":\"N\"`e}`4hp^Vhp=^l(s,tl);^l`7's`G`Pe,ct=0`vclientCa"
+"ps\");ct=s.b.@f`o^2`e}`4ct^Vct=^l(s$a`br`g`j$P)^0pn<$P`8&&pn<30){ps=^E$P[pn].@4@7#X`5p`3ps)<0)p+=ps;pn++}s.^d=x;s.^B=c;s.`t^t=j;s.`p=v;s.`z@H=k;s.^8@B=bw;s.^8^k=bh;s.@f`o^2=ct;s.@5=hp;s.p^S=p;s.td="
+"1`j$3{`c^1,`G$O2',vb`Ipt(^1,`G$O1',$3`js.useP^S)s.doP^S(s);`Pl=`H`M,r=^4.^A.`a`5!s.^P)s.^P=l^q?l^q:l`5!s.`a@Vs._1_`a^z`a=r;s._1_`a=1`j(vo&&$T)#W`Rm('d'#V`Rm('g')`5s.@M||^G){`Po=^G?^G:s.@M`5!o)`4'';"
+"`Pp=s.#P`r,w=1,^K,@q,x=^7t,h,l,i,oc`5^G$9==^G){^0o@Vn$x$bBODY'){o=o^9`V?o^9`V:o^9Node`5!o)`4'';^K;@q;x=^7t}oc=o.`q?''+o.`q:''`5(oc`3$S>=0$9c`3\"^woc(\")<0)||oc`3$s>=0)`4''}ta=n?o$o:1;h$5i=h`3'?^Vh="
+"s.`Q@s^C||i<0?h:h`10,#Yl=s.`Q`r;t=s.`Q^2?s.`Q^2`9:s.lt(h)`5t^bh||l))q+='&pe=@M_'+(t`Sd$c`Se'?@c(t):'o')+(h@tpev1`Zh)`f(l@tpev2`Zl):'^V`btrk=0`5s.^L@g`F!p$fs.^P;w=0}^K;i=o.sourceIndex`5@G')@x@G^Vx=1"
+";i=1`jp&&n$x)qs='&pid`Z^Ep,255))+(w@tpidt$ww`f'&oid`Z^En@7)+(x@toidt$wx`f'&ot`Zt)+(i@toi$wi#i}`j!trk@Vqs)`4'';$4=s.vs(sed)`5trk`F$4)#7=s.mr($C,(vt@tt`Zvt)`fs.hav()+q+(qs?qs:s.rq(^5)),0,id,ta);qs`g;"
+"`Rm('t')`5s.p_r)s.p_r(`I`a`g}^I(qs);^Q`u($3;`j$3`c^1,`G$O1',vb`I@M=^G=s.`Q`r=s.`Q^2=`H`m`g`5s.pg)`H^w@M=`H^weo=`H^w`Q`r=`H^w`Q^2`g`5!id@Vs.tc^ztc=1;s.flush`U()}`4#7`Ctl`0o,t,n,vo`2;s.@M=$Go`I`Q^2=t"
+";s.`Q`r=n;s.t($3}`5pg){`H^wco`0o){`P^s\"_\",1,$8`4$Go)`Cwd^wgs`0u@v`P^sun,1,$8`4s.t()`Cwd^wdc`0u@v`P^sun,$8`4s.t()}}@8=(`H`M`k`9`3'@Os^y0`Id=^A;s.b=s.d.body`5s.d@S`V#S`r^zh=s.d@S`V#S`r('HEAD')`5s.h"
+")s.h=s.h[0]}s.n=navigator;s.u=s.n.userAgent;@e=s.u`3'N$t6/^V`Papn$Z`r,v$Z^t,ie=v`3#B'),o=s.u`3'@a '),i`5v`3'@a^y0||o>0)apn='@a';^h$Q`SMicrosoft Internet Explorer'`Iisns$Q`SN$t'`I^m$Q`S@a'`I^n=(s.u`"
+"3'Mac^y0)`5o>0)`T`ws.u`1o+6));`6ie>0){`T=^Ji=v`1ie+5))`5`T>3)`T`wi)}`6@e>0)`T`ws.u`1@e+10));`b`T`wv`Iem=0`5^C#R^u){i=^o^C#R^u(256))`E(`Iem=(i`S%C4%80'?2:(i`S%U0$m'?1:0))}s.sa(un`Ivl_l='^U,`YID,vmk,"
+"`Y@T,`D,`D^j,ppu,@L,`Y`r$R,c`L,`z@F,#P`r,^P,`a,@P#0l@E^R,`G`Ivl_t=^R+',^v,$l,server,#P^2,#F`oID,purchaseID,$D,state,zip,#5,products,`Q`r,`Q^2'^W`Pn=1;n<51;n#U@D+=',prop@I,eVar@I,hier@I,list@z^R2=',"
+"tnt,pe#A1#A2#A3,^d,^B,`t^t,`p,`z@H,^8@B,^8^k,@f`o^2,@5,p^S';@D+=^R2;@o@E@D,`G`Ivl_g=@D+',`N,`N^j,`NBase,fpC`L,@R`U,#3,`Y^X,`Y^X#Q`OSele`o,`OList,`OM#E,^LDow^MLinks,^L@K,^L@g,`Q@s^C,`QDow^MFile^2s,`"
+"QEx`s,`QIn`s,`Q@iVa$n`Q@i^Zs,`Q`rs,@M,eo,_1_`a#0g@E^1,`G`Ipg=pg#M^1)`5!ss)`Hs()",
w=window,l=w.s_c_il,n=navigator,u=n.userAgent,v=n.appVersion,e=v.indexOf('MSIE '),m=u.indexOf('Netscape6/'),a,i,s;if(un){un=un.toLowerCase();if(l)for(i=0;i<l.length;i++){s=l[i];if(!s._c||s._c=='s_c'){if(s.oun==un)return s;else if(s.fs&&s.sa&&s.fs(s.oun,un)){s.sa(un);return s}}}}w.s_an='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
w.s_sp=new Function("x","d","var a=new Array,i=0,j;if(x){if(x.split)a=x.split(d);else if(!d)for(i=0;i<x.length;i++)a[a.length]=x.substring(i,i+1);else while(i>=0){j=x.indexOf(d,i);a[a.length]=x.subst"
+"ring(i,j<0?x.length:j);i=j;if(i>=0)i+=d.length}}return a");
w.s_jn=new Function("a","d","var x='',i,j=a.length;if(a&&j>0){x=a[0];if(j>1){if(a.join)x=a.join(d);else for(i=1;i<j;i++)x+=d+a[i]}}return x");
w.s_rep=new Function("x","o","n","return s_jn(s_sp(x,o),n)");
w.s_d=new Function("x","var t='`^@$#',l=s_an,l2=new Object,x2,d,b=0,k,i=x.lastIndexOf('~~'),j,v,w;if(i>0){d=x.substring(0,i);x=x.substring(i+2);l=s_sp(l,'');for(i=0;i<62;i++)l2[l[i]]=i;t=s_sp(t,'');d"
+"=s_sp(d,'~');i=0;while(i<5){v=0;if(x.indexOf(t[i])>=0) {x2=s_sp(x,t[i]);for(j=1;j<x2.length;j++){k=x2[j].substring(0,1);w=t[i]+k;if(k!=' '){v=1;w=d[b+l2[k]]}x2[j]=w+x2[j].substring(1)}}if(v)x=s_jn("
+"x2,'');else{w=t[i]+' ';if(x.indexOf(w)>=0)x=s_rep(x,w,t[i]);i++;b+=62}}}return x");
w.s_fe=new Function("c","return s_rep(s_rep(s_rep(c,'\\\\','\\\\\\\\'),'\"','\\\\\"'),\"\\n\",\"\\\\n\")");
w.s_fa=new Function("f","var s=f.indexOf('(')+1,e=f.indexOf(')'),a='',c;while(s>=0&&s<e){c=f.substring(s,s+1);if(c==',')a+='\",\"';else if((\"\\n\\r\\t \").indexOf(c)<0)a+=c;s++}return a?'\"'+a+'\"':"
+"a");
w.s_ft=new Function("c","c+='';var s,e,o,a,d,q,f,h,x;s=c.indexOf('=function(');while(s>=0){s++;d=1;q='';x=0;f=c.substring(s);a=s_fa(f);e=o=c.indexOf('{',s);e++;while(d>0){h=c.substring(e,e+1);if(q){i"
+"f(h==q&&!x)q='';if(h=='\\\\')x=x?0:1;else x=0}else{if(h=='\"'||h==\"'\")q=h;if(h=='{')d++;if(h=='}')d--}if(d>0)e++}c=c.substring(0,s)+'new Function('+(a?a+',':'')+'\"'+s_fe(c.substring(o+1,e))+'\")"
+"'+c.substring(e+1);s=c.indexOf('=function(')}return c;");
c=s_d(c);if(e>0){a=parseInt(i=v.substring(e+5));if(a>3)a=parseFloat(i)}else if(m>0)a=parseFloat(u.substring(m+10));else a=parseFloat(v);if(a>=5&&v.indexOf('Opera')<0&&u.indexOf('Opera')<0){w.s_c=new Function("un","pg","ss","var s=this;"+c);return new s_c(un,pg,ss)}else s=new Function("un","pg","ss","var s=new Object;"+s_ft(c)+";return s");return s(un,pg,ss)}

})();

