 		private var hasLocalStorage:Boolean;
 		private var hasScriptAccess:Boolean;
 		
+		private var pageUrl:String = "UNKNOWN";
+		private var pageTitle:String = "UNKNOWN";
+		private var referrer:String = "UNKNOWN";
+		
 		/**
 		 * @param emitter Emitter to which events will be sent
 		 * @param subject Subject to be tracked

		 * @param base64Encoded Whether JSONs in the payload should be base-64 encoded
		 */
		function Tracker(emitter:Emitter, namespace:String, appId:String, subject:Subject = null, stage:Stage = null, base64Encoded:Boolean = true) {
				this.emitter = emitter;
				this.appId = appId;
				this.base64Encoded = base64Encoded;
				this.namespace = namespace;
				this.subject = subject;
				this.trackerVersion = Version.TRACKER;
				this.platform = DevicePlatform.WEB;
				this.stage = stage;
				
				this.playerType = Capabilities.playerType;
				this.playerVersion = Capabilities.version;
				this.isDebugger = Capabilities.isDebugger;
				
				try 
				{
					SharedObject.getLocal("test");
					this.hasLocalStorage = true;
				} 
				catch (e:Error)
				{
					this.hasLocalStorage = false;
				}
				this.hasScriptAccess = ExternalInterface.available;
			}
		
		/**
		 * @param payload Payload builder

				payload.add(Parameter.NAMESPACE, this.namespace);
				payload.add(Parameter.TRACKER_VERSION, this.trackerVersion);
				payload.add(Parameter.EID, Util.getEventId());
				
				//Add page data
				payload.add(Parameter.PAGE_URL, pageUrl);
				payload.add(Parameter.PAGE_TITLE, pageTitle);
				payload.add(Parameter.PAGE_REFR, referrer);
				
				// If timestamp is set to 0, generate one
				payload.add(Parameter.TIMESTAMP,
