--- /dev/null
+/**\r
+ * widget object constructor\r
+ * @param {void}\r
+ * widget()\r
+ * @return {void}\r
+ */ \r
+\r
+if (typeof window.widget == "undefined" || !window.widget) {\r
+ window.widget = {\r
+ author : 'Nokia WRT Emulation Library',\r
+ // widget identifier, dummy value\r
+ identifier: 14021981,\r
+ isrotationsupported: true,\r
+ \r
+ // widget event triggers\r
+ onshow: null,\r
+ onhide: null,\r
+ \r
+ sysInfo: [],\r
+ onload: null,\r
+ opacity: 50,\r
+ interval: 20,\r
+ isFront: false,\r
+ preferenceArray: [],\r
+ preferenceKey: 0\r
+ };\r
+ \r
+ \r
+ /**\r
+ * Launches the browser with the specified url\r
+ * @param {String} url\r
+ * openURL()\r
+ * @return {Void}\r
+ */\r
+ widget.openURL = function(url){\r
+ if (url) {\r
+ window.open(url, "New Widget Window", 'height=200 width=250');\r
+ }\r
+ }\r
+ \r
+ \r
+ /**\r
+ * Returns previously stored preference associated with the specified key\r
+ * @param {String} Key preference value to be fetch\r
+ * preferenceForKey()\r
+ * @return {String} Value\r
+ */\r
+ widget.preferenceForKey = function(name){\r
+ return _BRIDGE_REF.nokia.helper.readCookie(name);\r
+ }\r
+ \r
+ \r
+ /**\r
+ * Stores the key associated with the specified preference\r
+ * @param {String} Preference value to be stored\r
+ * @param {String} Key Preference value associated to\r
+ * setPreferenceForKey()\r
+ * @return {Void}\r
+ */\r
+ widget.setPreferenceForKey = function(preference, key){\r
+ _BRIDGE_REF.nokia.helper.createCookie(key, preference);\r
+ }\r
+ \r
+ \r
+ \r
+ /**\r
+ * Toggle between Tabbed navigation mode or Cursor mode\r
+ * @param {Boolean} Value\r
+ * setNavigationEnabled()\r
+ * @return {Void}\r
+ */\r
+ widget.setNavigationEnabled = function(bool){\r
+ //This function can not be used on preview browser\r
+ }\r
+ \r
+ \r
+ \r
+ /**\r
+ * Open S0-Application identified by UID along with the specified params\r
+ * @param {Integer} Uid hexadecimal value to a specified application\r
+ * @param {String} Value\r
+ * openApplication()\r
+ * @return {Void}\r
+ */\r
+ widget.openApplication = function(Uid, param){\r
+ alert("openApplication function won't be simulated in this application");\r
+ }\r
+ \r
+ \r
+ \r
+ /**\r
+ * Prepares the Widget.to do transition to specified transitionState\r
+ * @param {String} Value Transition state\r
+ * prepareForTransition()\r
+ * @return {Void}\r
+ */\r
+ widget.prepareForTransition = function(transitionState){\r
+ this.isFront = ("" + transitionState).toLowerCase() != "toback";\r
+ window.document.getElementsByTagName("body")[0].style.opacity = "0.3";\r
+ }\r
+ \r
+ \r
+ \r
+ \r
+ /**\r
+ * Does the animation to make the transition between the specified transitionState\r
+ * @param {Void}\r
+ * performTransition()\r
+ * @return {Void}\r
+ */\r
+ widget.performTransition = function(){\r
+ var _self = this;\r
+ this.opacity = 0;\r
+ this.interval = window.setInterval(function(){\r
+ _self.opacity += 0.2;\r
+ if (_self.opacity > 1) {\r
+ _self.opacity = 1;\r
+ }\r
+ window.document.getElementsByTagName("body")[0].style.opacity = _self.opacity + "";\r
+ if (_self.opacity >= 1) {\r
+ window.clearInterval(_self.interval);\r
+ window.document.getElementsByTagName("body")[0].style.opacity = "1";\r
+ }\r
+ //do nothing\r
+ }, 50);\r
+ //do nothing\r
+ }\r
+ \r
+ \r
+ \r
+ \r
+ \r
+ /**\r
+ * Set the preferred screen orientation to landscape.\r
+ * The display will flip if the phone display orientation\r
+ * is portrait and the phone supports landscape mode.\r
+ * @param {Void}\r
+ * setDisplayLandscape()\r
+ * @return {Void}\r
+ */\r
+ widget.setDisplayLandscape = function(){\r
+ try {\r
+ if (this.isrotationsupported && _BRIDGE_REF.nokia.emulator.orientationSupports()) {\r
+ _BRIDGE_REF.nokia.emulator.setMode('landscape');\r
+ }\r
+ } \r
+ catch (e) {\r
+ }\r
+ }\r
+ \r
+ \r
+ \r
+ \r
+ /**\r
+ * Set the preferred screen orientation to portrait.\r
+ * The display will flip if the phone display orientation\r
+ * is landscape and the phone supports portrait mode.\r
+ * @param {Void}\r
+ * setDisplayPortrait()\r
+ * @return {Void}\r
+ */\r
+ widget.setDisplayPortrait = function(){\r
+ try {\r
+ if (this.isrotationsupported && _BRIDGE_REF.nokia.emulator.orientationSupports()) {\r
+ _BRIDGE_REF.nokia.emulator.setMode('portrait');\r
+ }\r
+ } \r
+ catch (e) {\r
+ }\r
+ }\r
+ \r
+ /**\r
+ * Allows the definition of a function to be called\r
+ * when a Widget.is displayed\r
+ * @param {Void}\r
+ * onshow()\r
+ * @return {Void}\r
+ */\r
+ widget.onshow = function(){\r
+ // to be implemented\r
+ }\r
+ \r
+ \r
+ \r
+ \r
+ /**\r
+ * Allows the definition of a function to be called\r
+ * when a Widget.sent into the background (hidden)\r
+ * @param {Void}\r
+ * onhide()\r
+ * @return {Void}\r
+ */\r
+ widget.onhide = function(){\r
+ // to be implemented\r
+ }\r
+ \r
+ \r
+ \r
+ /**\r
+ * This function returns the System API if sysinfo is included in document embed\r
+ */\r
+ widget.enableSystemApi = function(){\r
+ \r
+ // Identify, and Attach System-Info-Object properties\r
+ try {\r
+ var parentIframeRef = window.parent.frames[0];\r
+ if (typeof parentIframeRef == 'object') {\r
+ if (parentIframeRef.document.embeds.length > 0) {\r
+ for (var i = 0; i < parentIframeRef.document.embeds.length; i++) {\r
+ //match the system Info API embed tag\r
+ if (parentIframeRef.document.embeds[i].type == 'application/x-systeminfo-widget') {\r
+ new systemAPI(parentIframeRef.document.embeds[i]);\r
+// widget.sysInfo = parentIframeRef.document.embeds[i];\r
+ \r
+ // hide the <embed> object\r
+ parentIframeRef.document.embeds[i].style.display='none';\r
+ \r
+ // push the reference object into widget\r
+ widget.sysInfo.push(parentIframeRef.document.embeds[i]);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ } \r
+ catch (e) {\r
+ alert('Error in attachSysInfo: ' + e);\r
+ }\r
+ }\r
+ \r
+ /**\r
+ * \r
+ */\r
+ \r
+ widget.triggerListener = function(provider, eventType, data){\r
+ if(widget.sysInfo.length){\r
+ for(var i=0; i<widget.sysInfo.length; i++){\r
+ if(provider == "power"){\r
+ switch(eventType){\r
+ case "chargerconnected" : \r
+ widget.sysInfo[i].chargerconnected = data;\r
+ if(widget.sysInfo[i].onchargerconnected != null){\r
+ setTimeout(widget.sysInfo[i].onchargerconnected, 0);\r
+ }else{\r
+ console.info("System API-1.0 Notice -- no listeners defined for eventType:"+eventType);\r
+ }\r
+ break;\r
+\r
+ case "chargelevel" :\r
+ widget.sysInfo[i].chargelevel = data;\r
+ if(widget.sysInfo[i].onchargelevel != null){\r
+ setTimeout(widget.sysInfo[i].onchargelevel, 0);\r
+ }else{\r
+ console.info("System API-1.0 Notice -- no listeners defined for eventType:"+eventType);\r
+ }\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ }else{\r
+ console.info("System API-1.0 Notice -- no listeners defined for eventType:"+eventType);\r
+ }\r
+ }\r
+ \r
+ // make TRUE widget.js script loaded\r
+ window.parent.NOKIA.scriptsLoaded.widget = true;\r
+}\r
+\r
+(function(){\r
+\r
+ // attach the System-Info api specific functionality\r
+ _BRIDGE_REF.helper.addEvent(window, 'load', function(){\r
+ widget.enableSystemApi();\r
+ \r
+ });\r
+\r
+ if (_BRIDGE_REF.nokia) {\r
+ _BRIDGE_REF.nokia.menu.lsk_event = function(){\r
+ _BRIDGE_REF.nokia.emulator.child.menu.show();\r
+ };\r
+ \r
+ // Add THIS window Reference on FRAME WINDOW\r
+ // NOKIA.emulator.child object reference\r
+ _BRIDGE_REF.nokia.emulator.child = window;\r
+ _BRIDGE_REF.nokia.menu.init();\r
+ } \r
+})()\r