let g_openWindows=[];let g_highestZIndex=3;function initWindow(wrapperID,windowClass){let $wrapper=Object;switch(windowClass){case"folder":$wrapper=initFolderWindow(wrapperID);initBaseWindow($wrapper);break;case"info":$wrapper=initInfoWindow(wrapperID);initBaseWindow($wrapper);break;case"about":$wrapper=initAboutWindow(wrapperID);initBaseWindow($wrapper);break;case"download":$wrapper=initDownloadWindow(wrapperID);initBaseWindow($wrapper);break;case"simpletext":$wrapper=initSimpleTextWindow(wrapperID);initBaseWindow($wrapper);break;case"pictureviewer":$wrapper=initPictureViewerWindow(wrapperID);initBaseWindow($wrapper);break;case"zterm":$wrapper=initZTermWindow(wrapperID);initBaseWindow($wrapper);break;default:break}}function initFolderWindow(wrapperID){let $wrapper=$('.window-wrapper[data-id="'+wrapperID+'"][data-type="folder"]');let $window=$wrapper.children(".window");let desktopDBItem=findDesktopDBItem(g_DesktopDB,"id",wrapperID);let headerTitle="";if(!desktopDBItem)return;switch(wrapperID){case"folder":headerTitle='
'+desktopDBItem.name;break;case"trash":headerTitle='
'+desktopDBItem.name;break;default:headerTitle='
'+desktopDBItem.name;break}$window.find(".header > .title").html(headerTitle);if(desktopDBItem.contents){initFolderWindowContents($window,desktopDBItem.contents);initFigures($window)}$window.find(".grid figure a").on("focus",function(){$window.triggerHandler("focus")}).on("blur",function(){$window.trigger("blur")});return $wrapper}function initInfoWindow(wrapperID){let $wrapper=$('.window-wrapper[data-id="'+wrapperID+'"][data-type="info"]');let $window=$wrapper.children(".window");let $infoTable=$window.find(".info-table");let desktopDBItem=findDesktopDBItem(g_DesktopDB,"id",wrapperID);let icon=desktopDBItem.icon?desktopDBItem.icon:desktopDBItem.kind;if(!desktopDBItem)return;$window.find(".header > .title").html(desktopDBItem.name+" Info");$window.find("img[data-info-key='icon']").attr("src",SETTINGS_ICONS_LARGE_PATH+icon+".png");$window.find("input[data-info-key='name']").attr("value",desktopDBItem.name);switch(desktopDBItem.kind){case"disk":$infoTable.load("window.info.table.disk.html",function(){$infoTable.find("td[data-info-key='format']").html(desktopDBItem.format);$infoTable.find("td[data-info-key='capacity']").html(desktopDBItem.capacity);$infoTable.find("td[data-info-key='available']").html(desktopDBItem.available);$infoTable.find("td[data-info-key='used']").html(desktopDBItem.used);updateInfoTableGeneralProperties($infoTable,desktopDBItem)});break;case"folder":$infoTable.load("window.info.table.folder.html",function(){$infoTable.find("td[data-info-key='size']").html(formatInfoTableFileSize(desktopDBItem.size)+", for "+getDesktopDBItemFileCount(desktopDBItem)+" items");updateInfoTableGeneralProperties($infoTable,desktopDBItem)});break;case"application":case"download":case"document":case"video":case"picture":$infoTable.load("window.info.table.file.html",function(){$infoTable.find("td[data-info-key='size']").html(formatInfoTableFileSize(desktopDBItem.size));$infoTable.find("td[data-info-key='version']").html(desktopDBItem.version);updateInfoTableGeneralProperties($infoTable,desktopDBItem)});break;case"link":$infoTable.load("window.info.table.link.html",function(){$infoTable.find("td[data-info-key='url']").html(desktopDBItem.url);updateInfoTableGeneralProperties($infoTable,desktopDBItem)});break;case"trash":$infoTable.load("window.info.table.trash.html",function(){$infoTable.find("td[data-info-key='contents']").html(desktopDBItem.infoContents);updateInfoTableGeneralProperties($infoTable,desktopDBItem)});break;default:break}return $wrapper}function formatInfoTableFileSize(bytes){if(bytes===undefined)return;let formattedBytes=formatBytes(bytes);return formattedBytes+" on disk ("+bytes.toLocaleString()+" bytes)"}function updateInfoTableGeneralProperties($infoTable,desktopDBItem){$infoTable.find("td[data-info-key='kind']").html(desktopDBItem.kind);$infoTable.find("td[data-info-key='where']").html(desktopDBItem.where);$infoTable.find("td[data-info-key='created']").html(desktopDBItem.created);$infoTable.find("td[data-info-key='modified']").html(desktopDBItem.modified);$infoTable.find("td[data-info-key='label']").html(desktopDBItem.label);$infoTable.find("textarea[data-info-key='comments']").html(desktopDBItem.comments)}function initAboutWindow(wrapperID){let $wrapper=$('.window-wrapper[data-id="'+wrapperID+'"][data-type="about"]');let $window=$wrapper.children(".window");$window.find(".header > .title").html("About This Website");$.getJSON("json/greets.json").then(function(greetsJSON){let $greetsList=$window.find(".about-greets ul");greetsJSON.forEach(function(greet){$greetsList.append("