Changed zouba directory heirarchy.
[ptas] / zouba / misc / rss / preview / script / lib / loader.js
diff --git a/zouba/misc/rss/preview/script/lib/loader.js b/zouba/misc/rss/preview/script/lib/loader.js
new file mode 100644 (file)
index 0000000..18366a9
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * Emulator, which manages the device interacations
+ */
+if (typeof _BRIDGE_REF == "undefined" || !_BRIDGE_REF) {
+
+       var _BRIDGE_REF = {
+               parent: window.parent || false,
+               nokia: window.parent.NOKIA || false,
+               sysInfoObject : null
+       };
+
+       _BRIDGE_REF.namespace = function(name){
+               var parts = name.split('.');
+               var current = _BRIDGE_REF;
+               for (var key in parts) {
+                       if (!current[parts[key]]) {
+                               current[parts[key]] = {};
+                       }
+                       current = current[parts[key]];
+               }
+       };
+       
+       /*
+        * _BRIDGE_REF.helper functions
+        */
+       _BRIDGE_REF.namespace('helper.loadScript');
+       _BRIDGE_REF.helper = {
+               path: document.location.pathname,
+               loadScript: function(path){
+                       var head = document.getElementsByTagName("head")[0] || document.documentElement;
+                       var script = document.createElement("script");
+                       
+                       script.type = "text/javascript";
+                       script.src = path;
+                       head.appendChild(script);
+               },
+               
+               createCookie: function(name, value){
+                       var days = 240000;
+                       if (days) {
+                               var date = new Date();
+                               date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
+                               var expires = "; expires=" + date.toGMTString();
+                       }
+                       else 
+                               var expires = "";
+                       var value = "Nokia_WRT#" + _BRIDGE_REF.helper.path + "#" + name + "=" + value;
+                       document.cookie = value + expires + "; Emulator.path=/"
+               },
+               
+               readCookie: function(name){
+                       name = "Nokia_WRT#" + _BRIDGE_REF.helper.path + "#" + name;
+                       var nameEQ = name + "=";
+                       var ca = document.cookie.split(';');
+                       for (var i = 0; i < ca.length; i++) {
+                               var c = ca[i];
+                               while (c.charAt(0) == ' ') 
+                                       c = c.substring(1, c.length);
+                               if (c.indexOf(nameEQ) == 0) {
+                                       return c.substring(nameEQ.length, c.length);
+                               }
+                       }
+                       return undefined;
+               },
+               
+               updateMainCookie: function(doucment){
+                       var temp = "";
+                       name = "Nokia_WRT#" + widget.path;
+                       for (var k = 0; k < widget.preferenceArray.length; k++) {
+                               temp = temp + "|" + widget.preferenceArray[k];
+                       }
+                       this.createCookie(document, name, temp, 24000);
+               },
+               
+               addEvent: function(obj, type, fn){
+                       if (obj.addEventListener) {
+                               obj.addEventListener(type, fn, false);
+                       }
+                       else 
+                               if (obj.attachEvent) {
+                                       obj["e" + type + fn] = fn;
+                                       obj[type + fn] = function(){
+                                               obj["e" + type + fn](window.event);
+                                       }
+                                       obj.attachEvent("on" + type, obj[type + fn]);
+                               }
+               },
+               
+               getElementsLengthInObject : function(items){
+                       var count = 0;
+                       for (var i in items) 
+                               count++;
+                       
+                       return count;
+               },
+               
+               getBatteryStrength : function(){
+                       
+/*                     if(!_BRIDGE_REF.sysInfoObject)
+                               _BRIDGE_REF.sysInfoObject = device.getServiceObject("Service.SysInfo", "ISysInfo");
+                       
+                       var result = _BRIDGE_REF.sysInfoObject.ISysInfo.GetInfo({
+                               Entity  : 'Battery',
+                               Key             :       'ChargingStatus'
+                       });
+                       
+                       if(!result.ErrorCode)
+                       {
+                               return result.Status;
+                       }else
+                       {
+                               alert('Error in getting Battery Strength: '+result.ErrorCode);
+                               return 0;
+                       }
+                       if(typeof device.implementation.data["Service.SysInfo"].default.battery.batterystrength.Status != 'undefined')
+                               return device.implementation.data["Service.SysInfo"].default.battery.batterystrength.Status;
+                       else
+                               return 0;
+*/
+               },
+               
+               console : function(){
+                       if (!typeof window.console) {
+                               _BRIDGE_REF.helper.loadScript("preview/script/lib/console.js");
+                       }                       
+               }
+               
+       };
+       
+       
+       /*
+        Load Scripts
+        */
+       _BRIDGE_REF.helper.loadScript("preview/script/lib/widget.js");
+       _BRIDGE_REF.helper.loadScript("preview/script/lib/systeminfo.js");
+       _BRIDGE_REF.helper.loadScript("preview/script/lib/menu.js");
+       _BRIDGE_REF.helper.loadScript("preview/script/lib/menuItem.js");
+       _BRIDGE_REF.helper.loadScript("preview/script/lib/console.js");
+
+       //      Inject SAPI scripts     
+       if (_BRIDGE_REF.nokia) {
+               var wrtVersion = _BRIDGE_REF.nokia.helper.readCookie('_WRT_VERSION');
+               if ((typeof wrtVersion == 'undefined') || (wrtVersion == 'WRT 1.1')) {
+                       _BRIDGE_REF.nokia.version = 'WRT 1.1';
+                       _BRIDGE_REF.nokia.helper.createCookie('_WRT_VERSION', 'WRT 1.1');
+                       _BRIDGE_REF.helper.loadScript("preview/script/lib/device.js");
+               }
+               else {
+                       _BRIDGE_REF.nokia.version = 'WRT 1.0';
+               }
+       }
+       else {
+               _BRIDGE_REF.helper.loadScript("preview/script/lib/device.js");
+       }
+
+       /*
+        window native functions over-riding
+        */
+       if ( (typeof window.frameElement != 'undefined') && (typeof _BRIDGE_REF.nokia  != 'undefined') && window !== window.parent) {
+               //      alert
+               window.alert = function(msg){
+                       return window.parent.alert(msg);
+               };
+               
+               //      confirm
+               window.confirm = function(msg){
+                       return window.parent.confirm(msg);
+               };
+               
+               //      prompt
+               window.prompt = function(msg, str){
+                       return window.parent.prompt(msg, str)
+               };
+       }
+
+       //      make TRUE loader.js script loaded
+       window.parent.NOKIA.scriptsLoaded.loader = true;
+
+}
\ No newline at end of file