Changed zouba directory heirarchy.
[ptas] / zouba / misc / rss / preview / script / lib / widget.js
diff --git a/zouba/misc/rss/preview/script/lib/widget.js b/zouba/misc/rss/preview/script/lib/widget.js
new file mode 100644 (file)
index 0000000..995b147
--- /dev/null
@@ -0,0 +1,301 @@
+/**\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(key){\r
+\r
+               var name = key; //"Nokia_WRT#" + this.path + "#" + key;\r
+\r
+               var result = _BRIDGE_REF.helper.readCookie(name);\r
+               return result;\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
+               var value;\r
+               //Specifying null for the preference parameter removes the specified key from the preferences\r
+               if (key == null) {\r
+                       if (this.preferenceKey > 0) {\r
+                               this.preferenceKey--;\r
+                       }\r
+                       //delete from cookies\r
+               }\r
+               value = key;//"Nokia_WRT#" + this.path + "#" + key;\r
+               this.preferenceArray[this.preferenceKey] = value;\r
+               \r
+               _BRIDGE_REF.helper.createCookie(value, preference, 240000);\r
+               this.preferenceKey++;\r
+               \r
+               //save cookie for cookies\r
+               _BRIDGE_REF.helper.updateMainCookie(document);\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(typeof widget.sysInfo[i].onchargerconnected != 'undefined'){\r
+                                                                                                       // widget.sysInfo[i].onchargerconnected();\r
+                                                                                                       setTimeout(widget.sysInfo[i].onchargerconnected, 0);\r
+                                                                                                 }\r
+                                                                                                 break;\r
+\r
+                                               case "chargelevel"              :\r
+                                                                                                 widget.sysInfo[i].chargelevel = data;\r
+                                                                                                 if(typeof widget.sysInfo[i].onchargelevel != 'undefined'){\r
+                                                                                                       // widget.sysInfo[i].onchargelevel();\r
+                                                                                                       setTimeout(widget.sysInfo[i].onchargelevel, 0);\r
+                                                                                                 }\r
+                                                                                                break;\r
+                                       }\r
+                               }\r
+                       }\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