+++ /dev/null
-/*
- @chinnapp
-*/
-
-if(typeof NOKIA == "undefined" || !NOKIA)
-{
- var NOKIA = {
- version : 'WRT 1.1',
- currentDevice : '240x320',
- mode : 'portrait',
- resolution : ['240x320', '320x240', '360x640', '800x352'],
- scriptsLoaded : {
- loader : false,
- widget : false,
- systeminfo : false,
- menu : false,
- menuItem : false,
- console : false
- }
- };
- NOKIA.namespace = function(name)
- {
- var parts = name.split('.');
- var current = NOKIA;
- for(var key in parts){
- if(!current[parts[key]]){
- current[parts[key]] = {};
- }
- current = current[parts[key]];
- }
- };
-
- NOKIA.init = function()
- {
- // Not-Supported Browser check
- NOKIA.emulator.is_browserReady = (/MSIE/i.test(navigator.userAgent));
- if(NOKIA.emulator.is_browserReady)
- {
- var notSupportedBrowser = NOKIA.helper.readCookie('NOKIA_NOT_SUPPORTED_BROWSER');
- if (notSupportedBrowser != 1) {
- $("#NotificationDiv")[0].className = 'show';
- $("#NotificationDiv").dialog({
- width: 550,
- minWidth: 550,
- minHeight: 350,
- height: 150,
- autoOpen: true,
- position: top,
- title: 'Notification window',
- buttons: {
- Cancel: function(){
- $("#NotificationDiv").dialog('close');
- },
- Continue: function(){
- $("#NotificationDiv").dialog('close');
- NOKIA.helper.createCookie('NOKIA_NOT_SUPPORTED_BROWSER', 1);
- NOKIA.init();
- }
- }
- });
- return false;
- }else{
- $("#BrowserNotificationBar").css({display:'block'});
- $("#BrowserNotificationBar > p > a").click(function(){ $("#BrowserNotificationBar").hide(); });
- }
- }
-
- $('iframe')[0].src = "wrt_preview_main.html";
-
- NOKIA.data.load(deviceResolutionList);
-
- var url = window.location.toString();
- url = url.split('/');
-
- var pointer = 3;
- if(url[0] == 'http:')
- pointer = 2;
-
- var t = '';
- for(var i=pointer; i<url.length-1; i++){ t = t + url[i] + '/'; }
- if(url[0] == 'file:')
- NOKIA.emulator.url = 'file:///' + t;
- else
- NOKIA.emulator.url = 'http://' + t;
-
- // Common Error/Notification Dialog
- NOKIA.helper.errorDailog = $("#Dialog").dialog({
- bgiframe: true, minHeight: 150, width: 450, modal: true, autoOpen: false,
- buttons: {
- Cancel: function(){ $(this).dialog('close'); },
- Reload: function(){
- $(this).dialog('close');
- $("#loaderDiv").html("Widget is reloading. Please wait...");
- $("#loaderDiv")[0].className = 'green';
- $("#loaderDiv").show();
- window.setTimeout(function(){
- document.location = document.location;
- }, 3000);
- }
- }
- });
-
- // validating Info.plist
- this.helper.getInfo('Info.plist', NOKIA.helper.getInfoCallback);
-
- // For getting Icon.png
- this.helper.getInfo('Icon.png', NOKIA.helper.getIconCallback);
- };
-
- /*
- * NOKIA.data
- */
- NOKIA.namespace('data.load');
-
- NOKIA.data.load = function(data){
- NOKIA.deviceList = data;
- }
-
-
-
- /*
- * NOKIA.emulator
- */
- NOKIA.namespace('menu');
- NOKIA.menu = {
- is_menu_visible : false, // true/false
- is_softkeys_visible : false, // true : only when MenuItem's are displayed
- softkeys_visibility : true, // true/false : for hide/show SFK's
- is_dimmed : false,
- is_rsk_overridden : false,
- log_counter : 1,
- enable_log : false,
- rsk_label : '',
- rsk_event : false,
- highlighted_item : null,
-
- hide : function()
- {
- $("#MenuItemsArea").fadeIn("slow");
-
- // Hide the SFK's If user hidden them from his code
- if(NOKIA.menu.softkeys_visibility)
- $("#SoftKeysArea").fadeIn("slow");
-
- NOKIA.menu.is_softkeys_visible = false;
- },
-
- log : function(str)
- {
- if(!this.enable_log)
- return false;
- NOKIA.layout.log("log", NOKIA.menu.log_counter + ' ' +str);
- NOKIA.layout.log("log", 'is_rsk_overridden: '+NOKIA.menu.is_rsk_overridden);
- NOKIA.layout.log("log", 'rsk_label: '+NOKIA.menu.rsk_label);
- NOKIA.layout.log("log", 'rsk_event: '+NOKIA.menu.rsk_event);
-
- NOKIA.menu.log_counter++;
- },
-
- show : function()
- {
- if(NOKIA.menu.is_dimmed)
- return false;
-
- NOKIA.menu.showSoftKeys();
-
- NOKIA.menu.is_menu_visible = true;
- $("#MenuItemsArea").show();
-
- NOKIA.menu.highlighted_item = $("#MenuItemsArea > ul > li")[0];
- NOKIA.menu.highlighted_item.className = 'active';
-
-
- $("#MenuItemsArea > ul > li").mouseover(function(){
- if(NOKIA.menu.highlighted_item != null)
- {
- NOKIA.menu.highlighted_item.className = '';
- NOKIA.menu.highlighted_item = null;
- }
-
- NOKIA.menu.highlighted_item = this;
- NOKIA.menu.highlighted_item.className = 'active';
- });
-
- $("#SoftKeysArea").mouseout(function(){
- if (!NOKIA.menu.is_menu_visible) {
- return false;
- }
-
- if (NOKIA.helper.intervalId) {
- clearInterval(NOKIA.helper.intervalId);
- }
- NOKIA.helper.intervalId = setTimeout(function(){
- NOKIA.menu.cancel()
- }, 500);
- });
-
-
- // Change the label "Options" to "Select" to LSK
- $("#LskLabel > a")[0].innerHTML = "Select";
- NOKIA.menu.setLsk(NOKIA.menu.selectMenu);
-
- // Change the label "Exit" to "Cancel" to RSK
- $("#RskLabel > a")[0].innerHTML = 'Cancel';
- NOKIA.menu.setRsk(NOKIA.menu.cancel);
-
-
- NOKIA.emulator.setMenuItemsStyle();
-
- },
-
- selectMenu : function(){
- try {
- if(typeof NOKIA.menu.highlighted_item.onclick != 'undefined'){
- eval(NOKIA.menu.highlighted_item.onclick)();
- }
- } catch (e) {
-
- }
-// NOKIA.menu.cancel();
- },
-
-
- cancel : function()
- {
- if(NOKIA.menu.is_dimmed)
- return false;
-
- NOKIA.menu.hideSoftKeys();
-
- NOKIA.menu.is_menu_visible = false;
- $("#MenuItemsArea").hide();
-
- // Reset the "OPTION" label to LSK
- $("#LskLabel > a")[0].innerHTML = 'Options';
- NOKIA.menu.setLsk(NOKIA.emulator.child.menu.show);
-
- // Change the label "CANCEL" to "EXIT" to RSK
- if(!NOKIA.menu.is_rsk_overridden)
- {
- $("#RskLabel > a")[0].innerHTML = 'Exit';
- NOKIA.menu.setRsk(NOKIA.menu.exit);
- }
- else
- {
- $("#RskLabel > a")[0].innerHTML = NOKIA.menu.rsk_label;
- NOKIA.menu.setRsk(NOKIA.menu.rsk_event);
- }
-
- },
-
- exit : function()
- {
- if(NOKIA.menu.is_dimmed)
- return false;
-
- if(NOKIA.helper.setHomeScreen())
- return false;
-
- // clear the Menu Settings
- NOKIA.menu.cancel();
- NOKIA.emulator.child.menu.setRightSoftkeyLabel('', null);
- NOKIA.emulator.child.menu.items = [];
- NOKIA.menu.softkeys_visibility = false;
-
- // Hide Widget DIV
- NOKIA.menu.hideSoftKeys();
- NOKIA.menu.setLsk(function(){});
- NOKIA.menu.setRsk(function(){});
-
- $("#WidgetArea").hide();
-
- // Show Icon
- var style = NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode]['style'];
- $('#IconArea').css({
- 'width' : '100%',
- 'height' : style['widget']['height']+'px',
- 'float' : style['widget']['float']
- });
-
- $('#IconArea')[0].className = NOKIA.mode+NOKIA.currentDevice;
-
- var img = document.createElement('img');
- img.src = NOKIA.emulator.iconFile;
- img.border = 0;
-
- var div = document.createElement('div');
- var p = document.createElement('p');
-
- if(NOKIA.emulator.plist.DisplayName.length <= 12)
- p.innerHTML = NOKIA.emulator.plist.DisplayName;
- else
- p.innerHTML = NOKIA.emulator.plist.DisplayName.substr(0, 11) + '...'
-
- div.className = 'IconFile';
- div.style.marginTop = parseInt(parseInt(style['widget']['height']/2)-80) + 'px';
- div.appendChild(img);
- img.onclick = function(){
-
- // close the console DIV
- NOKIA.layout._console_enabled = false;
- NOKIA.layout.render();
-
- $("#loaderDiv").html("Widget is loading. Please wait...");
- $("#loaderDiv")[0].className = 'green';
- $("#loaderDiv").show();
- window.setTimeout(function(){
- document.location = document.location;
- }, 3000);
-
- };
-
- div.appendChild(p);
-
- $("#loaderDiv").html("Click on Icon to Launch Widget");
- $("#loaderDiv").show();
- $("#loaderDiv")[0].className = 'yellow';
-
- $('#IconArea').append(div);
- $('#IconArea').show();
-
- NOKIA.menu.is_dimmed = true;
-
- $("#PreferencesBtn").hide();
- $("#PreferencesTab").dialog('close');
-
- },
-
- setLsk : function(func)
- {
- // for RSK
- $('#LskArea')[0].onclick = function(){
- if(!NOKIA.menu.is_dimmed)
- func();
- };
-
- $('#LskLabel > a')[0].onclick = function(){
- if(!NOKIA.menu.is_dimmed)
- func();
- };
-
- return true;
- },
-
- setRsk : function(func)
- {
- // for RSK
- $('#RskArea')[0].onclick = function(){
- if(!NOKIA.menu.is_dimmed)
- func();
- };
-
- $('#RskLabel > a')[0].onclick = function(){
- if(!NOKIA.menu.is_dimmed)
- func();
- };
-
- return true;
- },
-
-
- triggerLsk : function(event)
- {
- var callback;
- if(NOKIA.mode == 'portrait')
- callback = NOKIA.menu.lsk_event;
- else if( (NOKIA.mode == 'landscape') && (event.id =='LskLabel') )
- callback = NOKIA.menu.lsk_event;
- else
- callback = NOKIA.menu.rsk_event;
-
- if(typeof callback == 'function' && !NOKIA.menu.is_dimmed)
- {
- callback();
- }
- },
-
- triggerRsk : function(event)
- {
- var callback;
- if(NOKIA.mode == 'portrait')
- callback = NOKIA.menu.rsk_event;
- else if( (NOKIA.mode == 'landscape') && (event.id =='RskLabel') )
- callback = NOKIA.menu.rsk_event;
- else
- callback = NOKIA.menu.lsk_event;
-
- if(typeof callback == 'function')
- {
- if(!NOKIA.menu.is_dimmed)
- {
- callback();
- NOKIA.menu.cancel();
- }
- }
- },
-
- render : function()
- {
- if(!NOKIA.menu.softkeys_visibility)
- NOKIA.menu.hideSoftKeys();
- else
- NOKIA.menu.showSoftKeys();
-
- NOKIA.emulator.setWidgetStyle();
- },
-
-
- init : function()
- {
- NOKIA.menu.render();
- },
-
- createSFKArea : function()
- {
- var a = $('#SoftKeys > a');
- a.html('');
-
- var preferences = NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode];
-
- var lsk = document.createElement('img');
- lsk.border="0";
- lsk.id = "LskArea";
- lsk.name ="LskArea";
- lsk.src = "preview/images/TransperantImage.png";
- lsk.style.width = preferences.style.softkeysImg.width;
- lsk.style.height = preferences.style.softkeysImg.height;
-
- var rsk = document.createElement('img');
- rsk.border = 0;
- rsk.id = "RskArea";
- rsk.name = "RskArea";
- rsk.src = "preview/images/TransperantImage.png";
- rsk.style.width = preferences.style.softkeysImg.width;
- rsk.style.height = preferences.style.softkeysImg.height;
-
- if(NOKIA.mode == 'portrait')
- {
- lsk.onclick = function(){
- $("#LskLabel > a").trigger('click');
- }
- a[0].appendChild(lsk);
-
- rsk.onclick = function(){
- $("#RskLabel > a").trigger('click');
- }
- a[1].appendChild(rsk);
-
- }else{
-
- rsk.onclick = function(){
- $("#RskLabel > a").trigger('click');
- }
- a[0].appendChild(rsk);
-
- lsk.onclick = function(){
- $("#LskLabel > a").trigger('click');
- }
- a[1].appendChild(lsk);
- }
-
-
- },
-
- showSoftKeys : function()
- {
- NOKIA.menu.is_softkeys_visible = true;
-
- NOKIA.emulator.setWidgetStyle();
- $("#SoftKeysArea").show();
- },
-
- hideSoftKeys : function()
- {
- // Hide the SFK's If user hidden them from his code
- if(!NOKIA.menu.softkeys_visibility)
- $("#SoftKeysArea").hide();
-
- NOKIA.menu.is_softkeys_visible = false;
-
- NOKIA.emulator.setWidgetStyle();
- }
- };
-
-
-
- /*
- * NOKIA.emulator
- */
- NOKIA.namespace('emulator');
- NOKIA.emulator = {
- child : false,
- iconFile : 'preview/images/default-Icon.png',
- loaded : false,
- plist : {
- DisplayName : '',
- Identifier : '',
- MainHTML : '',
- AllowNetworkAccess : "false",
- Version : '',
- MiniViewEnabled : "false",
- is_browserReady : false
- },
-
- load : function()
- {
- if(this.loaded)
- return false;
-
- // load the saved device Info
- var device = NOKIA.helper.readCookie('NOKIA_EMULATOR_DEVICE');
- NOKIA.currentDevice = device || NOKIA.currentDevice;
-
-
- // load the saved device mode
- var mode = NOKIA.helper.readCookie('NOKIA_EMULATOR_DEVICE_MODE');
- if(mode != null)
- NOKIA.mode = mode;
-
- // SAVE the device DATA
- NOKIA.helper.createCookie('NOKIA_EMULATOR_DEVICE', NOKIA.currentDevice);
- NOKIA.helper.createCookie('NOKIA_EMULATOR_DEVICE_MODE', NOKIA.mode);
-
- this.loaded = true;
-
- },
-
- render : function()
- {
- this.load();
-
- if(!NOKIA.emulator.orientationSupports())
- NOKIA.mode = NOKIA.deviceList[NOKIA.currentDevice]['default'];
-
- if(typeof NOKIA.deviceList == 'undefined' || typeof NOKIA.deviceList[NOKIA.currentDevice] == 'undefined' || typeof NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode] == 'undefined')
- {
- alert('Deive resolution: '+NOKIA.currentDevice+' or the mode: '+NOKIA.mode+' not found');
- return false;
- }
-
- this.setStyle();
- },
-
- setMode : function(mode)
- {
- NOKIA.mode = mode;
-
- // SAVE the device DATA
- NOKIA.helper.createCookie('NOKIA_EMULATOR_DEVICE_MODE', NOKIA.mode);
-
- NOKIA.emulator.render();
- },
-
- orientationSupports : function()
- {
- return NOKIA.deviceList[NOKIA.currentDevice]['orientation'];
- },
-
- setStyle:function()
- {
- if(!NOKIA.helper.checkDependencies())
- {
- setTimeout(NOKIA.emulator.setStyle, 1000);
- }
-
- var deviceProperties = NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode];
- var style = deviceProperties['style'];
-
- // Apply Style and propertis to Device layers
- $("#DeviceDisplayLayout").css(style['layout']);
- $('#DisplayArea').css(style['display']);
-
- NOKIA.emulator.setWidgetStyle();
-
- $('#SoftKeysArea').css({
- 'width' : style['menu']['width']+'px',
- 'height' : style['menu']['height']+'px',
- 'float' : style['menu']['float']
- });
-
- $('#SoftKeysArea > ul > li').css('width', parseInt(style['menu']['width']/2)-10);
-
-
- NOKIA.emulator.setMenuItemsStyle();
-
- $('#SoftKeys').css(style['softkeys']);
-// $('#SoftKeys > a > img').css(style['softkeysImg']);
-
- NOKIA.menu.createSFKArea();
-
- $("#DeviceDisplayLayout").show();
- $("#PreferencesTab").show();
-
- if(!NOKIA.menu.is_dimmed)
- $("#PreferencesBtn").show();
- },
-
- setWidgetStyle : function()
- {
- var style = NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode]['style'];
- var height;
- if(NOKIA.menu.softkeys_visibility || NOKIA.menu.is_softkeys_visible)
- height = parseInt(style['widget']['height'] - style['menu']['height']);
- else
- height = style['widget']['height'];
-
- $('#WidgetArea').css({
- 'width' : style['widget']['width']+'px',
- 'height' : height+'px',
- 'float' : style['widget']['float']
- });
- },
-
- setMenuItemsStyle : function()
- {
- var style = NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode]['style'];
- var count;
- try {
- count = parseInt(NOKIA.helper.getElementsLengthInObject(NOKIA.emulator.child.menu.items))+1;
- } catch (e) {
- count = 1;
- }
- var height = parseInt(count*style['menu']['optionKeysheight']) + 10;
- var top = parseInt(style['widget']['height'] - height);
-
- $('#MenuItemsArea').css({
- 'width' : style['widget']['width']+'px',
- 'height' : height+'px',
- 'marginTop' : '-2px',
- 'top' : (style['widget']['height']-height-style['menu']['height']+2)+'px',
- 'position' : 'relative'
- });
- }
- };
-
- /*
- * NOKIA.helper functions
- */
- NOKIA.namespace('helper.loadScript');
- NOKIA.helper = {
- path : document.location.pathname,
- errorDailog : null,
- prefDailog : null,
- intervalId : null,
- infoPlistCounter : false,
- IconFileCounter : false,
- loadScript : function(path)
- {
- var head = document.getElementsByTagName("head")[0] || document.documentElement;
- var script = document.createElement("script");
-
- script.type = "text/javascript";
- script.src = src;
- head.appendChild( script );
- },
-
- loadPreferences : function()
- {
- // Selecting Resoltion
- var resOptions = $("#resOptions")[0];
- for(var i=0; i<NOKIA.resolution.length; i++)
- {
- if(NOKIA.resolution[i] == NOKIA.currentDevice)
- {
- resOptions.options[i].selected = true;
- $("#resSupportLink")[0].href = resOptions.options[i].value;
- break;
- }
- }
-
- // Selecting Orientation
- if(NOKIA.mode == 'portrait')
- $('#input_portrait')[0].checked = true;
- else
- $('#input_landscape')[0].checked = true;
-
- if (!NOKIA.emulator.orientationSupports()) {
- if (NOKIA.mode == 'portrait')
- $("#input_landscape")[0].disabled = true;
- else
- $("#input_portrait")[0].disabled = true;
-
- $("#Orientation_Info").html("Not supported");
- $("#Orientation_Info").show();
- $("#Orientation_Controls").hide();
- }
- else {
- $("#input_landscape")[0].disabled = false;
- $("#input_portrait")[0].disabled = false;
-
- $("#Orientation_Info").hide();
- $("#Orientation_Controls").show();
- }
-
- // Selecting Version
- if(NOKIA.version == 'WRT 1.0')
- $('#wrt_version_1_0')[0].checked = true;
- else
- $('#wrt_version_1_1')[0].checked = true;
-
- // HomeScreen Support
- if(NOKIA.deviceList[NOKIA.currentDevice].homeScreenSupport)
- {
- if (typeof NOKIA.emulator.plist.MiniViewEnabled != 'undefined') {
- if (NOKIA.emulator.plist.MiniViewEnabled == 'false')
- $('#HS_Control_Info').html("<span id='wrt-help' onclick='javascipt:NOKIA.helper.showMiniviewHelp();'></span><strong>Not Enabled</strong><br/><small>Click on help to read more about enabling Mini view support</small>");
- else
- $('#HS_Control_Info').html("Supported");
- }
- else
- $('#HS_Control_Info').html("<span id='wrt-help'></span>Not Supported");
-
- $('#HS_Control_Info').show();
-
- }
- else
- {
- $('#HS_Control_Info').html("Not Supported for the selected Device resolution");
- $('#HS_Control_Info').show();
- }
- },
-
- getInfo : function(url, callback)
- {
- try {
- var xhr = this.ajax();
-
- if ((/AppleWebKit/i.test(navigator.userAgent)))
- xhr.open("GET", url, false);
- else
- xhr.open("GET", url, true);
-
-
- xhr.onreadystatechange = function()
- {
- // readyState = 4 ; "complete"
- if (xhr.readyState==4)
- {
- // status = 200 ; "ok"
- if( (xhr.status == 200) || (!xhr.status) )
- {
- callback(true, xhr);
- }
- else
- {
- callback(false, xhr);
- }
- }
-
- }
- xhr.send(null);
- } catch (e) {
- if (e.name == 'NS_ERROR_FILE_NOT_FOUND') {
- callback(false, xhr);
- }
- }
- },
-
- getInfoCallback : function(flag, xhr)
- {
- // If Info.plis NOT FOUND / FAILED LOAD
- // an ERROR!, unable to proceed further
- // STOP there
- if(!flag)
- {
- if(!NOKIA.helper.infoPlistCounter)
- {
- NOKIA.helper.infoPlistCounter = true;
- NOKIA.helper.getInfo('info.plist', NOKIA.helper.getInfoCallback);
- return false;
- }
-
- NOKIA.helper.error('Unable to intialize the widget, failed to process Info.plist file. <br/>Please ensure <strong style="color:#efe352;">Info.plist</strong> file exists on the widget root folder <br/>or check the filename of <strong style="color:#efe352;">Info.plist</strong> It is case-sensitive');
- return false;
- }
- else{
-
- var xmlString = xhr.responseText;
-
- // do some cheating here
- xmlString = xmlString.replace(/<\s*true\s*\/>/gi, "<string>true</string>");
- xmlString = xmlString.replace(/<\s*false\s*\/>/gi, "<string>false</string>");
-
- /*
- * DomParser Logic
- var appXml = new DOMParser();
- var xmlobject = appXml.parseFromString(xmlString, "text/xml");
- */
-
- // return the JSON Object
- NOKIA.helper.validate(xml2json.parser(xmlString));
- }
-
- },
-
- getIconCallback : function(flag, xhr)
- {
-
- if(!flag)
- {
- if(!NOKIA.helper.IconFileCounter)
- {
- NOKIA.helper.IconFileCounter = true;
- NOKIA.helper.getInfo('icon.png', NOKIA.helper.getIconCallback);
- return false;
- }
- }
- else
- NOKIA.emulator.iconFile = (NOKIA.helper.IconFileCounter) ? "icon.png" : "Icon.png";
- },
-
-
- validate : function(xmlObject)
- {
- window.xmlObject = xmlObject;
-
- // <plist>
- if(typeof xmlObject.plist != 'object' || xmlObject.plist == 'undefined')
- {
- NOKIA.helper.error('Corrupted Info.plist file');
- return false;
- }
- // <dict>
- xmlObject = xmlObject.plist;
- if(typeof xmlObject.dict != 'object' || xmlObject.dict == 'undefined')
- {
- NOKIA.helper.error('Corrupted Info.plist file');
- return false;
- }
-
- // <key>
- xmlObject = xmlObject.dict;
- if(typeof xmlObject.key != 'object' || xmlObject.key == 'undefined')
- {
- NOKIA.helper.error('Corrupted Info.plist file');
- return false;
- }
-
- // <string>
- if(typeof xmlObject.string != 'object' || xmlObject.string == 'undefined')
- {
- NOKIA.helper.error('Corrupted Info.plist file');
- return false;
- }
-
- // num of <key> = num of <string>
- if(xmlObject.key.length != xmlObject.string.length)
- {
- NOKIA.helper.error('Corrupted Info.plist file');
- return false;
- }
-
- for(var val in xmlObject.key)
- {
- if(NOKIA.emulator.plist[xmlObject.key[val]] != 'undefined'){
- NOKIA.emulator.plist[xmlObject.key[val]] = xmlObject.string[val].toString();
- }
- }
-
- try {
- if(typeof NOKIA.emulator.plist.DisplayName != 'undefined'){
- document.title = NOKIA.emulator.plist.DisplayName + ' - ' + document.title;
- }
- } catch (e) {}
-
- // Add UI-Event listeners
- NOKIA.helper.addListeners();
- NOKIA.layout.init();
- NOKIA.emulator.render();
- },
-
-
- ajax : function()
- {
- // xmlHttpRequest object
- var request = null;
-
- // branch for native XMLHttpRequest object
- if(window.XMLHttpRequest && !(window.ActiveXObject)) {
- try
- {
- request = new XMLHttpRequest();
- try
- {
- // attach the Bypass code, if the browser is firefox
- if(netscape.security.PrivilegeManager.enablePrivilege)
- {
- // duplicate the function
- request._open = request.open;
-
- // redefine the function definition
- request.open = function(method, url, flag)
- {
- try
- {
- // Enable Universal Browser Read
- netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
-
- // call the native XmlHttpRequest.open method
- this._open(method, url, flag);
- }catch(e)
- {
- // call the native XmlHttpRequest.open method
- this._open(method, url, flag);
- }
- }
- }
- }
- catch(e)
- {
- // eatup all exceptions
- }
- }
- catch(e) {
- request = null;
- }
- // branch for IE/Windows ActiveX version
- } else if(window.ActiveXObject) {
- try {
- request = new ActiveXObject("Msxml2.XMLHTTP");
- } catch(e) {
- try {
- request = new ActiveXObject("Microsoft.XMLHTTP");
- } catch(e) {
- alert('Failed to create XmlHttprequest');
- return null;
- }
- }
- }
-
- return (request);
- },
-
- error : function(msg)
- {
- if(NOKIA.menu.enable_log)
- NOKIA.layout.log("log", msg);
-
- $("#Dialog").html(msg);
- $("#Dialog").dialog('open');
- },
-
- 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#"+NOKIA.helper.path+"#"+name+"="+value;
- document.cookie = value+expires+"; Emulator.path=/"
- },
-
- readCookie : function(name)
- {
- name = "Nokia_WRT#" + NOKIA.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;
- },
-
- toggle : function(ele)
- {
- if (NOKIA.emulator.orientationSupports()) {
-// var mode = (NOKIA.mode == 'portrait') ? 'landscape' : 'portrait';
- NOKIA.emulator.setMode(ele.value);
- }
- else
- {
- ele.checked = false;
- if(ele.value == 'portrait')
- $("#input_landscape")[0].checked = true;
- else
- $("#input_portrait")[0].checked = true;
- }
- },
-
- version : function(ele)
- {
- if (confirm('Would you like to reload the widget to apply the changes on the Version settings?'))
- {
- NOKIA.helper.createCookie('_WRT_VERSION', ele.value);
- $("#loaderDiv").html("Applying the " + ele.value + ", please wait...");
- $("#loaderDiv").show();
- $("#loaderDiv")[0].className = 'green';
-
- $("#PreferencesTab").dialog('close');
-
- window.setTimeout(function(){
- document.location = document.location;
- }, 3000);
- }
- else
- {
- ele.checked = false;
- if(ele.value != 'WRT 1.0')
- $("#wrt_version_1_0")[0].checked = true;
- else
- $("#wrt_version_1_1")[0].checked = true;
- }
- },
-
- addListeners : function()
- {
- /*
- * Render Emulator for Interaction
- */
- NOKIA.helper.prefDailog = $("#PreferencesTab").dialog({
- width: 550, minWidth: 550, minHeight: 350, height: 350, autoOpen: false, position : top, title : ' ',
- buttons : {
- Close : function(){
- $("#PreferencesTab").dialog('close');
-
- // Hack for Mac firefox
- if(/Mac/i.test(navigator.userAgent))
- {
- $("#WidgetArea iframe").css({overflow:'auto'});
- }
-
- // select index : 0 tab selected
- $('#tabs').tabs( 'select' , 0);
- }
- }
- });
-
- $('#PreferencesBtn').click(function(){
- // Load preferences
- NOKIA.helper.loadPreferences();
- $('#PreferencesTab').dialog('open');
-
- // Hack for Mac firefox
- if(/Mac/i.test(navigator.userAgent))
- {
- $("#WidgetArea iframe").css({overflow:'hidden'});
- }
- });
-
- $('#input_portrait').change(function(){
- NOKIA.helper.toggle(this);
- });
-
- $('#input_landscape').change(function(){
- NOKIA.helper.toggle(this);
- });
-
- $('#resOptions').change(function(ele){
- ele = ele.target || this;
-
- NOKIA.currentDevice = ele.options[ele.selectedIndex].text;
- $("#resSupportLink")[0].href = ele.value;
-
- // SAVE the device DATA
- NOKIA.helper.createCookie('NOKIA_EMULATOR_DEVICE', NOKIA.currentDevice);
-
- NOKIA.emulator.render();
- NOKIA.helper.loadPreferences();
- });
-
- // Hack for Mac firefox
- if (/Mac/i.test(navigator.userAgent)) {
- if (!(/AppleWebKit/i.test(navigator.userAgent))) {
- $("#resOptions")[0].size = '4';
- }
- }
-
-
- // WRT Version controls
- $('#wrt_version_1_0').change(function(){
- NOKIA.helper.version(this);
- });
-
- $('#wrt_version_1_1').change(function(){
- NOKIA.helper.version(this);
- });
-
-
- $("#orientationIcon").click(function(){
- var mode = (NOKIA.mode == 'portrait') ? 'landscape' : 'portrait';
- NOKIA.emulator.setMode(mode);
- $("#WidgetArea")[0].className = 'hs_'+NOKIA.mode;
- });
-
-
- $("#iframeMask").click(function(){
-
- $("#PreferencesBtn").show();
- $("#orientationIcon").hide();
- $("#iframeMask").hide();
- $("#loaderDiv").hide();
-
- NOKIA.menu.is_dimmed = false;
-
- $("#WidgetArea")[0].className = '';
-
- NOKIA.menu.softkeys_visibility = true;
- NOKIA.menu.showSoftKeys();
-
- });
-
-
- // MenuItems DIV events
- $("#MenuItemsArea").mouseover(function(){
- if(NOKIA.helper.intervalId)
- clearInterval(NOKIA.helper.intervalId);
-
- $("#MenuItemsArea").show();
- });
-
- $("#MenuItemsArea").mouseout(function(){
- if(NOKIA.helper.intervalId)
- clearInterval(NOKIA.helper.intervalId);
-
- NOKIA.helper.intervalId = setTimeout(function(){
- NOKIA.menu.cancel()
- }, 500);
- });
-
-
- // Tabs
- $('#tabs').tabs({
- select : function(event, ui){
- if(parseInt(ui.index) == 1)
- {
- $("#event-icons").show();
- $("#event-battery-info").hide();
- $("#event-messaging-info").hide();
- $("#event-memory-info").hide();
-
- // WRT versionn check
- if(NOKIA.version == 'WRT 1.1')
- {
- $("#event-messaging")[0].className = 'active';
- $("#event-memory")[0].className = 'active';
- }else
- {
- $("#event-messaging")[0].className = 'inactive';
- $("#event-memory")[0].className = 'inactive';
- }
- $("#event-battery")[0].className = 'active';
- }else if(parseInt(ui.index) == 0)
- {
- $("#settings-view").show();
- $("#mini-view-info").hide();
- }
- }
- });
-
-
- /*
- * Event triggering
- */
-
- // for battery
- $("#event-battery").click(function(event){
- if(event.target.className == 'active')
- {
- $("#event-icons").hide();
- $("#event-battery-info").show();
-
-/*
- $('#slider').slider('option', 'value', NOKIA.emulator.child._BRIDGE_REF.helper.getBatteryStrength());
- NOKIA.emulator.child._BRIDGE_REF.helper.getBatteryStrength()
- $('#slider').slider('option', 'value', 10);
- $('#slider').slider();
-*/
- }
- });
-
- $("#event-battery-back").click(function(event){
- $("#event-icons").show();
- $("#event-battery-info").hide();
- });
-
-
- // for messaging
- $("#event-messaging").click(function(event){
- if(event.target.className == 'active')
- {
- $("#event-icons").hide();
- $("#event-messaging-info").show();
- }
- });
-
- $("#event-messaging-back").click(function(event){
- $("#event-icons").show();
- $("#event-messaging-info").hide();
- });
-
-
- // for memory
- $("#event-memory").click(function(event){
- if(event.target.className == 'active')
- {
- $("#event-icons").hide();
- $("#event-memory-info").show();
- }
- });
-
- $("#event-memory-back").click(function(event){
- $("#event-icons").show();
- $("#event-memory-info").hide();
- });
-
-
- // for minView more info
- $("#mini-view-back").click(function(event){
- $("#settings-view").show();
- $("#mini-view-info").hide();
- });
-
-
- // Slider
- $('#slider').slider({
- range: true,
- min : 0,
- max : 100,
- step : 1,
- value : 10,
- animate: true,
- slide: function(event, ui) {
- $("#slider-value-panel > span").html(ui.value.toString());
- }
- });
-
- // Bind Buttons to trigger values to WRT 1.0 / 1.1 bindings
-
- $("#connect-charger").click(NOKIA.helper.triggerEvents);
- $("#disconnect-charger").click(NOKIA.helper.triggerEvents);
- $("#update-batter-strength").click(NOKIA.helper.triggerEvents);
-
- $("#send-sms").click(NOKIA.helper.triggerEvents);
- $("#send-mms").click(NOKIA.helper.triggerEvents);
-
- $("#connect-memory-card").click(NOKIA.helper.triggerEvents);
- $("#disconnect-memory-card").click(NOKIA.helper.triggerEvents);
-
- },
-
- setHomeScreen : function()
- {
- // HomeScreen Support
- if (NOKIA.deviceList[NOKIA.currentDevice].homeScreenSupport) {
-
- if (typeof NOKIA.emulator.plist.MiniViewEnabled != 'undefined') {
- if (NOKIA.emulator.plist.MiniViewEnabled != 'false')
- {
- $("#WidgetArea")[0].className = 'hs_' + NOKIA.mode;
-
- // menu handlining
- NOKIA.menu.softkeys_visibility = false;
- NOKIA.menu.cancel();
- NOKIA.menu.is_dimmed = true;
-
-
- $("#loaderDiv").html("Click on widget for Return to Full view");
- $("#loaderDiv")[0].className = 'green';
- $("#loaderDiv").show();
-
- $("#iframeMask").show();
- $("#orientationIcon").show();
- $("#PreferencesBtn").hide();
-
- $("#PreferencesTab").dialog('close');
- return true;
- }
- }
- }
- return false;
- },
-
- getElementsLengthInObject : function(items){
- var count = 0;
- for (var i in items)
- {
- if(!items[i].isDimmed)
- count++;
- }
-
- return count;
- },
-
- triggerEvents : function(event)
- {
- if(typeof event.target.id == 'undefined')
- return false;
-
- switch(event.target.id)
- {
- // for battery
- case 'connect-charger':
- NOKIA.helper.trigger("power", "chargerconnected", 1);
- if(NOKIA.version == 'WRT 1.1')
- NOKIA.helper.triggerSapi("Service.SysInfo", "Battery.ChargingStatus", {Status: 1});
- break;
-
- case 'disconnect-charger':
- NOKIA.helper.trigger("power", "chargerconnected", 0);
- if(NOKIA.version == 'WRT 1.1')
- NOKIA.helper.triggerSapi("Service.SysInfo", "Battery.ChargingStatus", {Status: 0});
- break;
-
- case 'update-batter-strength':
- var chargeValue = parseInt($('#slider').slider('value'));
- NOKIA.helper.trigger("power", "chargelevel", chargeValue);
- if(NOKIA.version == 'WRT 1.1')
- NOKIA.helper.triggerSapi("Service.SysInfo", "Battery.BatteryStrength", {Status: chargeValue});
- break;
-
- // for messaging
- case 'send-sms':
- if(NOKIA.version == 'WRT 1.1')
- NOKIA.helper.triggerSapi("Service.Messaging", "NewMessage", {MessageType: 'SMS'});
- break;
- case 'send-mms':
- if(NOKIA.version == 'WRT 1.1')
- NOKIA.helper.triggerSapi("Service.Messaging", "NewMessage", {MessageType: 'MMS'});
- break;
-
- // for memory
- case 'connect-memory-card':
- if(NOKIA.version == 'WRT 1.1')
- NOKIA.helper.triggerSapi("Service.SysInfo", "Memory.MemoryCard", {Status: 1});
- break;
- case 'disconnect-memory-card':
- if(NOKIA.version == 'WRT 1.1')
- NOKIA.helper.triggerSapi("Service.SysInfo", "Memory.MemoryCard", {Status: 0});
- break;
- }
- },
-
- triggerSapi : function(provider, eventType, data){
- NOKIA.emulator.child.device.implementation.triggerListener(provider, eventType, data);
- },
-
- trigger : function(provider, eventType, data){
- NOKIA.emulator.child.widget.triggerListener(provider, eventType, data);
- },
-
- showMiniviewHelp : function(){
- $("#settings-view").hide();
- $("#mini-view-info").show();
- },
-
- checkDependencies : function(){
-
- for(var key in NOKIA.scriptsLoaded)
- {
- if(!NOKIA.scriptsLoaded[key])
- return false;
- }
-
- // for LSK
- NOKIA.menu.setLsk(NOKIA.emulator.child.menu.show);
-
- // for RSK
- NOKIA.menu.setRsk(NOKIA.menu.exit);
-
- return true;
- }
- };
-
-
- /*
- * NOKIA.layout functions
- */
- NOKIA.namespace('layout');
- NOKIA.layout = {
- _console_minimized : true,
- _console_enabled : false,
- _consoleWindowHeight : 200,
- _consoleHeaderHeight : 31,
-
- init : function(){
-
- // Toggle console window
- $('#Console-Toggle-Button').click(function(){
-
- NOKIA.layout._console_minimized = (NOKIA.layout._console_minimized) ? false : true;
- NOKIA.layout.render();
- });
-
- // clear Log
- $("#Console-Clear-Button").click(function(){
- $("#preview-ui-bottom-body")[0].innerHTML = '';
- });
-
-
- $('#preview-ui-bottom').show();
- NOKIA.layout.render();
- },
-
- log : function(type, msg){
- var p = document.createElement('p');
- p.className = type;
- p.innerHTML = msg;
- var divBody = $('#preview-ui-bottom-body')
- divBody.append(p);
- divBody[0].scrollTop = divBody[0].scrollHeight;
- },
-
-
- render : function(){
- var _width = parseInt(window.innerWidth);
- var _height = parseInt(window.innerHeight);
-
- if(!NOKIA.layout._console_enabled)
- {
- $('#preview-ui-bottom').css({
- display: 'none'
- });
-
- $('#preview-ui-top').css({
- height: _height+'px'
- });
-
- return false;
- }
-
-
- if(!NOKIA.layout._console_minimized)
- {
- $('#Console-Toggle-Button')[0].className = 'open';
-
- // set STYLE details for TOP window
- $('#preview-ui-top').css({
- height: parseInt(_height - NOKIA.layout._consoleWindowHeight) + 'px'
- });
-
- // set STYLE details for Bottom window
- $('#preview-ui-bottom').css({
- height: NOKIA.layout._consoleWindowHeight + 'px',
- display : 'block'
- });
-
- $('#preview-ui-bottom-header').css({
- height: NOKIA.layout._consoleHeaderHeight + 'px'
- });
-
- $('#preview-ui-bottom-body').css({
- height: parseInt(NOKIA.layout._consoleWindowHeight - NOKIA.layout._consoleHeaderHeight) + 'px',
- display : 'block'
- });
-
- // Auto scroll when console window opened from MINIMIZED => MAXIMIZED state
- window.setTimeout(function(){
- $('#preview-ui-bottom-body')[0].scrollTop = $('#preview-ui-bottom-body')[0].scrollHeight;
- }, 100);
-
- }else{
- $('#Console-Toggle-Button')[0].className = 'close';
-
- // set STYLE details for TOP window
- $('#preview-ui-top').css({
- height: parseInt(_height - NOKIA.layout._consoleHeaderHeight) + 'px'
- });
-
- // set STYLE details for Bottom window
- $('#preview-ui-bottom').css({
- height: NOKIA.layout._consoleHeaderHeight + 'px',
- display : 'block'
- });
-
- $('#preview-ui-bottom-header').css({
- height: NOKIA.layout._consoleHeaderHeight + 'px',
- display : 'block'
- });
-
- $('#preview-ui-bottom-body').css({
- display : 'none'
- });
- }
- }
-
- };
-}
-
-$(document).ready(function () {
- NOKIA.init();
-});
-
-window.onresize = NOKIA.layout.render;