+function loadSettings()\r
+{\r
+ for (var key in config) {\r
+ if (widget.preferenceForKey(key)) {\r
+ if (config[key].Type == 'Int')\r
+ config[key].Value = Number(widget.preferenceForKey(key));\r
+ else if (config[key].Type == 'String')\r
+ config[key].Value = widget.preferenceForKey(key);\r
+ else if (config[key].Type == 'Bool')\r
+ config[key].Value = (widget.preferenceForKey(key) == 'true')\r
+ else if (config[key].Type == 'Enum')\r
+ config[key].Value = widget.preferenceForKey(key);\r
+ else if (config[key].Type == 'UID')\r
+ config[key].Value = Number(widget.preferenceForKey(key));\r
+ }\r
+ else\r
+ config[key].Value = config[key].Default;\r
+ console.info('Settings: ' + key + '=\'' + config[key].Value + '\'');\r
+ }\r
+}\r
+\r
+function saveSettings()\r
+{\r
+ for (var key in config) {\r
+ if (config[key].Type == 'Int')\r
+ widget.setPreferenceForKey(config[key].Value.toString(), key);\r
+ else if (config[key].Type == 'String')\r
+ widget.setPreferenceForKey(config[key].Value, key);\r
+ else if (config[key].Type == 'Bool')\r
+ widget.setPreferenceForKey(config[key].Value ? 'true' : 'false', key);\r
+ else if (config[key].Type == 'Enum')\r
+ widget.setPreferenceForKey(config[key].Value, key);\r
+ else if (config[key].Type == 'UID')\r
+ widget.setPreferenceForKey(config[key].Value.toString(), key);\r
+ }\r
+}\r
+\r
+function toggleVisibility(elementId)\r
+{\r
+ if (document.getElementById(elementId).style.display == "none")\r
+ document.getElementById(elementId).style.display = "block";\r
+ else\r
+ document.getElementById(elementId).style.display = "none";\r
+}\r
+\r
+var uniqueId = 0;\r
+function printHintBox(text)\r
+{\r
+ uniqueId++;\r
+ return '<td width="1%" align="right" onclick="javascript:toggleVisibility(\'info' + uniqueId + '\')">' + getLocalizedText('settings.help') + '</td></tr></table>'+\r
+ '<div class="settingsInfo" id="info' + uniqueId + '">' + text + '</div>';\r
+}\r
+\r
+function showAbout()\r
+{\r
+ mode = 3;\r
+ hideViews();\r
+ document.getElementById("aboutView").style.display = "block";\r
+ document.onclick = null;\r
+ \r
+ window.menu.setLeftSoftkeyLabel(" ", function(){});\r
+ window.menu.setRightSoftkeyLabel(getLocalizedText('softkey.back'), function()\r
+ {\r
+ mode = 1;\r
+ showFullscreen();\r
+ });\r
+ \r
+ //document.getElementById("aboutView").innerHTML = 'aboutView';\r
+ document.getElementById("name").innerHTML = "Coming Next " + version;\r
+}\r
+\r
+function updateFullscreen()\r
+{\r
+}\r
+\r
+function showFullscreen()\r
+{\r
+ hideViews();\r
+ document.getElementById("fullscreenView").style.display = "block";\r
+ document.getElementById('body').className = "backgroundFullscreen";\r
+ document.onclick = launchCalendar;\r
+ createMenu();\r
+ updateData();\r
+}\r
+\r
+function getBackgroundImage()\r
+{\r
+ var bgImage;\r
+ if (config['backgroundImageLocation'].Value == config['backgroundImageLocation'].ValidValues[0]) // internal\r
+ bgImage = 'background_' + orientation + '.png';\r
+ else\r
+ bgImage = 'C:/Data/background_' + panelNum + '_' + orientation + '.png';\r
+ return bgImage;\r
+}\r
+\r
+function updateHomescreen()\r
+{\r
+ if (config['useBackgroundImage'].Value) {\r
+ // check for screen rotation\r
+ if (orientation != 'portrait' && screen.width == 360 && screen.height == 640) {\r
+ window.widget.prepareForTransition("fade");\r
+ orientation = 'portrait';\r
+ document.getElementById('body').style.backgroundImage = 'url(' + getBackgroundImage() + ')';\r
+ document.getElementById('body').style.backgroundColor = 'none';\r
+ window.widget.performTransition();\r
+ } else if (orientation != 'landscape' && screen.width == 640 && screen.height == 360) {\r
+ window.widget.prepareForTransition("fade");\r
+ orientation = 'landscape';\r
+ document.getElementById('body').style.backgroundImage = 'url(' + getBackgroundImage() + ')';\r
+ document.getElementById('body').style.backgroundColor = 'none';\r
+ window.widget.performTransition();\r
+ }\r
+ else if (document.getElementById('body').style.backgroundImage == "")\r
+ {\r
+ document.getElementById('body').style.backgroundImage = 'url(' + getBackgroundImage() + ')';\r
+ }\r
+ }\r
+}\r
+\r
+function showHomescreen()\r
+{\r
+ hideViews();\r
+ document.getElementById("homescreenView").style.display = "block";\r
+ document.getElementById('body').className = "background";\r
+ document.onclick = null;\r
+ updateData();\r
+}\r
+\r
+function getLocalizedText(p_Txt)\r
+{\r
+ if (localizedText[p_Txt])\r
+ return localizedText[p_Txt];\r
+ else \r
+ return 'ERROR: missing translation for ' + p_Txt;\r
+}\r
+\r
+function showUpdate()\r
+{\r
+ mode = 4;\r
+ hideViews();\r
+ document.getElementById("updateView").style.display = "block";\r
+ document.onclick = null;\r
+ \r
+ window.menu.setLeftSoftkeyLabel(getLocalizedText('update.checknow'), function(){\r
+ checkForUpdate();\r
+ });\r
+ window.menu.setRightSoftkeyLabel(getLocalizedText('softkey.back'), function()\r
+ {\r
+ mode = 1;\r
+ showFullscreen();\r
+ });\r
+ \r
+ document.getElementById("currentVersion").innerHTML = getLocalizedText("update.current") + version;\r
+ checkForUpdate();\r
+}\r
+\r
+function checkForUpdate()\r
+{\r
+ // asynch XHR to server url\r
+ reqV = new XMLHttpRequest();\r
+ reqV.onreadystatechange = checkForUpdateCallback;\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.checking");\r
+ reqV.open("GET", versionURL, true);\r
+ reqV.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); // disable caching\r
+ reqV.send(null);\r
+}\r
+\r
+function checkForUpdateCallback()\r
+{ \r
+ if (reqV.readyState == 4) {\r
+ if (reqV.status == 200) {\r
+ var resultXml = reqV.responseText;\r
+ if (resultXml) {\r
+ var div = document.getElementById("tmp");\r
+ div.innerHTML = resultXml;\r
+ var newVersion = div.getElementsByTagName('version')[0].innerHTML;\r
+ var newVersionURL = div.getElementsByTagName('url')[0].innerHTML;\r
+ div.innerHTML = "";\r
+ if (version != newVersion) {\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.download").replace(/%1/, newVersion).replace(/%2/, newVersionURL);\r
+ }\r
+ else {\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.nonewversion");\r
+ }\r
+ }\r
+ }\r
+ else {\r
+ document.getElementById("updateDiv").innerHTML = getLocalizedText("update.error") + reqV.status + " " + reqV.responseText;\r
+ }\r
+ }\r
+}\r
+\r
+function hideViews()\r
+{\r
+ document.getElementById("homescreenView").style.display = "none";\r
+ document.getElementById("fullscreenView").style.display = "none";\r
+ document.getElementById("aboutView").style.display = "none";\r
+ document.getElementById("settingsView").style.display = "none";\r
+ document.getElementById("updateView").style.display = "none";\r
+}\r