您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Allows changes to various BGG pages including Last Seen icons and Username Tagging
当前为
// ==UserScript== // @name DazeyMod // @namespace www.lucky13games.com // @description Allows changes to various BGG pages including Last Seen icons and Username Tagging // @include http://www.boardgamegeek.com/* // @include http://boardgamegeek.com/* // @version 1.0 // @grant GM_registerMenuCommand // @grant GM_xmlhttpRequest // @grant GM_getValue // @grant GM_setValue // @grant GM_listValues // ==/UserScript== // Changelog // v1.0 - 5/21/2014 // - Converted from localStorage to GreaseMonkey storage // - Added Username Tag functionality // - Added tabbed settings // - Fixed icons not showing up in Geekbuddy views // - Fixed icons not showing up in Geekmail // - Bug fixes and code cleanup // v0.9 - 5/3/2014 // - Began adding functionality for other "modules" to interact with DazeyMod // v0.8 - 4/25/2014 // - Added larger size thumbnail option for list views, doesn't work on AJAX requests, need to fix this. // v0.7 - 4/16/2014 // - Added icon refreshing after saving the settings // - Added option to move QuickBar down // - Prettied up the settings window // - Redid popup text for settings and manual buttons to use simpler title attribute // - Code Cleanup // v0.6 - 4/15/2014 // - Added "loading" icons and text so page wouldn't change size when loading // - Added Setting to enable/disable context menu // - Fixed Manual load duplication bug //--- Check if GreaseMonkey variables exist, create them with defaults if not ---// if(typeof GM_getValue("DM_LS_Settings")==='undefined'){ console.log("DM_LS_Settings not set"); var tmpObj = new Object; tmpObj["showLoginText"]="always"; tmpObj["showLoginTextGeeklists"]=true; tmpObj["showLoginTextTrades"]=true; tmpObj["showLoginTextForums"]=true; tmpObj["showLoginIcon"]="always"; tmpObj["showLoginIconGeeklists"]=true; tmpObj["showLoginIconTrades"]=true; tmpObj["showLoginIconForums"]=true; tmpObj["showLoginIconHover"]=true; tmpObj["iconPack"]="D10"; tmpDays=new Array(0, 1.5, 7, 30, 180, 365); tmpObj["iconDays"]=JSON.stringify(tmpDays); tmpObj["showContextMenu"]=false; GM_setValue("DM_LS_Settings", JSON.stringify(tmpObj)); } var DM_LS_Settings = JSON.parse(GM_getValue("DM_LS_Settings")); if(typeof GM_getValue("DM_LS_Users")==='undefined'){ console.log("DM_LS_Users not set"); var tmpObj = new Object; tmpObj["dazeysan.lastChecked"]="0"; GM_setValue("DM_LS_Users", JSON.stringify(tmpObj)); } var DM_LS_Users = JSON.parse(GM_getValue("DM_LS_Users")); if(typeof GM_getValue("DM_LT_Settings")==='undefined'){ console.log("DM_LT_Settings not set"); var tmpObj = new Object; tmpObj["largeThumbnail"]=false; tmpObj["largeThumbnailSize"]="90"; GM_setValue("DM_LT_Settings", JSON.stringify(tmpObj)); } var DM_LT_Settings = JSON.parse(GM_getValue("DM_LT_Settings")); if(typeof GM_getValue("DM_QB_Settings")==='undefined'){ console.log("DM_QB_Settings not set"); var tmpObj = new Object; tmpObj["moveQuickBar"]=false; GM_setValue("DM_QB_Settings", JSON.stringify(tmpObj)); } var DM_QB_Settings = JSON.parse(GM_getValue("DM_QB_Settings")); if(typeof GM_getValue("DM_UT_Settings")==='undefined'){ console.log("DM_UT_Settings not set"); var tmpObj = new Object; tmpObj["showUsernameTag"]=false; tmpObj["defaultIcon"]="8"; GM_setValue("DM_UT_Settings", JSON.stringify(tmpObj)); } var DM_UT_Settings = JSON.parse(GM_getValue("DM_UT_Settings")); if(typeof GM_getValue("DM_UT_Users")==='undefined'){ console.log("DM_UT_Users not set"); var tmpObj = new Object; tmpObj["dazeysan"]="Maker of DazeyMod"; tmpObj["dazeysan.icon"]="3"; GM_setValue("DM_UT_Users", JSON.stringify(tmpObj)); } var DM_UT_Users = JSON.parse(GM_getValue("DM_UT_Users")); //--- End GreaseMonkey Storage Set Up ---// //--- Set up some other variables ---// var usernameTagIcons=new Array("2014491.png","2014492.png","2014493.png","2014494.png","2014495.png","2014496.png","2014497.png","2014498.png","2014499.png","2014500.png","2014501.png","2014502.png"); var tmp=DM_LS_Settings["iconDays"]; var loginDays=JSON.parse(tmp); var tList; // QuickBar Moving stuff document.getElementById('quickbar_status').parentNode.parentNode.id="QBParent"; quickBar = document.getElementById('quickbar_status').parentNode; // Set up an array of other module's save functions window.saveFunctions = [ ]; // Arrays of file names for the LastSeen Icons var loginIconD10=new Array("1990299.png","1990300.png","1990303.png","1990301.png","1990302.png","1990298.png","1992653.png"); var loginIconHex=new Array("1990348.png","1990349.png","1990350.png","1990352.png","1990353.png","1990354.png","1992652.png"); var loginIconHour=new Array("1992646.jpg","1992647.jpg","1992648.jpg","1992649.jpg","1992650.jpg","1992651.jpg","1992654.png"); if(DM_LS_Settings["iconPack"]=="D10") { loginIcons = loginIconD10; } if(DM_LS_Settings["iconPack"]=="Hex") { loginIcons = loginIconHex; } if(DM_LS_Settings["iconPack"]=="Hour") { loginIcons = loginIconHour; } var showText = false; var showIcon = false; var uList = document.getElementsByClassName("avatarblock js-avatar"); var avatarAdded=0; var now = new Date(); var days; if(DM_LS_Settings["showLoginText"]=="always") { //console.log("Always Text"); showText = true; } if(DM_LS_Settings["showLoginIcon"]=="always") { //console.log("Always Icon"); showIcon = true; } // Check what sort of page we're on and show text or icons as needed if(document.baseURI.indexOf("/geeklist/") > -1) { // Geeklist console.log("Page is in Geeklists"); if(DM_LS_Settings["showLoginTextGeeklists"]==true && DM_LS_Settings["showLoginText"]=="selected") { showText = true; } if(DM_LS_Settings["showLoginIconGeeklists"]==true && DM_LS_Settings["showLoginIcon"]=="selected") { showIcon = true; } } if(document.baseURI.substr(-10) == "fortrade=1") { // Trades Collection page console.log("Page is in Trades"); if(DM_LS_Settings["showLoginTextTrades"]==true && DM_LS_Settings["showLoginText"]=="selected") { showText = true; } if(DM_LS_Settings["showLoginIconTrades"]==true && DM_LS_Settings["showLoginIcon"]=="selected") { showIcon = true; } } if(document.baseURI.indexOf("/article/") > -1) { // Forums console.log("Page is in Forums"); if(DM_LS_Settings["showLoginTextForums"]==true && DM_LS_Settings["showLoginText"]=="selected") { showText = true; } if(DM_LS_Settings["showLoginIconForums"]==true && DM_LS_Settings["showLoginIcon"]=="selected") { showIcon = true; } } //--- End Other Variable Set Up ---// //--- Move QuickBar if needed ---// if(DM_QB_Settings["moveQuickBar"]==true){ //console.log("moving QuickBar"); document.getElementById('main_content').insertBefore(quickBar, document.getElementById('main_content').childNodes[0]); } //--- End of moving Quickbar ---// //--- Make a "bluebox" at the top of the content for our use ---// tmpDiv = document.createElement('div'); tmpDiv.id = "DazeyModSettings"; tmpDiv.setAttribute("class", "bluebox"); tmpDiv.appendChild(document.createTextNode("DazeyMod\u00A0\u00A0\u00A0")); // Add a settings button tmpElm=document.createElement('a'); tmpElm.addEventListener("click", showHideSettingsLoad, false); tmpImg=document.createElement('img'); tmpImg.id="DazeyMod.SettingsIcon"; tmpImg.src="http://cf.geekdo-images.com/images/pic1991213.png"; tmpImg.style.cursor="pointer"; tmpImg.title="DazeyMod Settings"; tmpElm.appendChild(tmpImg); tmpDiv.appendChild(tmpElm); tmpDiv.appendChild(document.createTextNode("\u00A0\u00A0\u00A0")); // Add a manual button tmpElm=document.createElement('a'); tmpElm.addEventListener("click", function(){showLoginDates("manual");}, false); tmpImg=document.createElement('img'); tmpImg.src="http://cf.geekdo-images.com/images/pic"+loginIcons[0]; tmpImg.style.cursor="pointer"; tmpImg.id="DazeyMod.ManualIcon"; tmpImg.title="Manually Load Last Login Data"; tmpElm.appendChild(tmpImg); tmpDiv.appendChild(tmpElm); // Stick our bluebox at the top of main_content document.getElementById('main_content').insertBefore(tmpDiv, document.getElementById('main_content').childNodes[0]); //--- End of the DazeyMod "bluebox" ---// // Insert the place holder images above the avatar function modAvatars() { console.log("modAvatars()"); uList = document.getElementsByClassName("avatarblock js-avatar"); for(av=0; av<uList.length; av++) { if(uList[av].getAttribute("data-dazeymod") != "modded") { if(document.baseURI.indexOf("/geekbuddy.php") > -1) { iconRow = uList[av].childNodes[5].childNodes[1].childNodes[1].childNodes[0]; } else { iconRow = uList[av].childNodes[7].childNodes[1].childNodes[1].childNodes[0]; } dCell = iconRow.insertCell(-1); dCell.setAttribute("data-DazeyMod", "temp"); tmpImg=document.createElement('img'); tmpImg.id = "DazeyMod.LSIcon."+av; tmpImg.src = "http://cf.geekdo-images.com/images/pic2015885.png"; dCell.appendChild(tmpImg); dCell = iconRow.insertCell(-1); tmpImg=document.createElement('img'); tmpImg.id = "DazeyMod.UTIcon."+av; tmpImg.src = "http://cf.geekdo-images.com/images/pic2015885.png"; dCell.appendChild(tmpImg); uList[av].setAttribute("data-dazeymod", "modded"); } else { if(document.baseURI.indexOf("/geekbuddy.php") > -1) { iconRow = uList[av].childNodes[5].childNodes[1].childNodes[1].childNodes[0]; } else { iconRow = uList[av].childNodes[7].childNodes[1].childNodes[1].childNodes[0]; } iconRow.childNodes[7].childNodes[0].id = "DazeyMod.LSIcon."+av; iconRow.childNodes[8].childNodes[0].id = "DazeyMod.UTIcon."+av; } } if(showText || showIcon) { showLoginDates("automatic"); } if(DM_UT_Settings["showUsernameTag"]==true) { refreshUsernameTags(); } } // End modAvatars() modAvatars(); // Geekmail support, add an onClick to each message so we can refresh the icons gmList = document.getElementsByClassName('gm_label'); for (gm=0; gm<gmList.length; gm++) { //console.log(gmList[gm].nextSibling.nextSibling.id); gmList[gm].nextSibling.nextSibling.addEventListener("click", function(){ window.setTimeout(modAvatars, 1000); }, false); } function loadLargeThumbnails() { //console.log("Large Thumbs"); tList = document.getElementsByClassName('collection_thumbnail'); //console.log("Thumbs: "+tList.length); if(tList.length > 0) { for(i=1; i<tList.length; i++){ tList[i].childNodes[1].childNodes[0].src = tList[i].childNodes[1].childNodes[0].src.replace("_mt.", "_t."); } updateThumbnailSize(); } } // End loadLargeThumbnails() if(DM_LT_Settings["largeThumbnail"]==true) { loadLargeThumbnails(); } function updateThumbnailSize() { for(i=1; i<tList.length; i++){ var tmpWd = tList[i].childNodes[1].childNodes[0].width; var tmpHt = tList[i].childNodes[1].childNodes[0].height; if(tmpWd > tmpHt) { tmpRat = tmpHt/tmpWd; tList[i].childNodes[1].childNodes[0].style.width=DM_LS_Settings["largeThumbnailSize"]+"px"; tList[i].childNodes[1].childNodes[0].style.height=(DM_LS_Settings["largeThumbnailSize"]*tmpRat)+"px"; } else { tmpRat = tmpWd/tmpHt; tList[i].childNodes[1].childNodes[0].style.width=(DM_LS_Settings["largeThumbnailSize"]*tmpRat)+"px"; tList[i].childNodes[1].childNodes[0].style.height=DM_LS_Settings["largeThumbnailSize"]+"px"; } } } // End updateThumbnailSize() function showLoginDates(src) { uList = document.getElementsByClassName("avatarblock js-avatar"); if (src == "manual") { if(DM_LS_Settings["showLoginText"]=="manual" || DM_LS_Settings["showLoginText"]=="always") { showText = true; } if(DM_LS_Settings["showLoginIcon"]=="manual" || DM_LS_Settings["showLoginIcon"]=="always") { showIcon = true; } } avatarAdded=0; if(uList.length > 0) { if(showText || showIcon) { ShowDateTemp(); window.setTimeout(getLast, 1000); } else { getLast(); } } } // End showLoginDates() function getLast() { // Loop through the detected avatars and display text or icons as chosen in settings //console.log("getLast()" + avatarAdded); uList = document.getElementsByClassName("avatarblock js-avatar"); var uName=uList[avatarAdded].getAttribute("data-username"); if(typeof DM_LS_Users[""+uName+".lastLogin"]==='undefined' || (now.getTime() - DM_LS_Users[""+uName+".lastChecked"]) > (3600000*6)){ console.log("Request "+uName+" via XMLAPI2"); var oReq = new XMLHttpRequest(); oReq.onload = function(){ var lastLogin=oReq.responseXML.getElementsByTagName("lastlogin")[0].getAttribute("value"); if(lastLogin==""){ lastLogin="2000-01-01"; } DM_LS_Users[""+uName+".lastLogin"]=lastLogin; var then = new Date(lastLogin); days = (((now.getTime()-(now.getTimezoneOffset()*60000))-then.getTime())/(86400000)); //Get number of days between now and then console.log("Days since "+uName+"'s last login: "+days); if (showText) { showDateText(avatarAdded, lastLogin); } if (showIcon) { showDateIcon(avatarAdded, lastLogin, days); } avatarAdded++; if(avatarAdded<uList.length){ window.setTimeout(getLast, 250); } DM_LS_Users[""+uName+".lastChecked"]=now.getTime(); } oReq.open("get", "/xmlapi2/user?name="+uName, true); oReq.send(); } else { console.log("Retrieve "+uName+" via Local GreaseMonkey Storage"); lastLogin = DM_LS_Users[""+uName+".lastLogin"]; var then = new Date(lastLogin); days = (((now.getTime()-(now.getTimezoneOffset()*60000))-then.getTime())/(86400000)); //Get number of days between now and then console.log("Days since "+uName+"'s last login: "+days); if (showText) { showDateText(avatarAdded, lastLogin); } if (showIcon) { showDateIcon(avatarAdded, lastLogin, days); } avatarAdded++; if(avatarAdded<uList.length){ window.setTimeout(getLast, 10); } } GM_setValue("DM_LS_Users", JSON.stringify(DM_LS_Users)); } // End getLast() function showDateText(av, ll) { //console.log("Function showDateText "+av+ "|"+ll); if(document.getElementById('DazeyMod.LSText.'+av).getAttribute("data-DazeyMod")!="done") { // Display the user's last login date under their name if(ll == "2000-01-01") { ll = "Unknown"; } uList[av].childNodes[1].setAttribute("data-DazeyMod", "done"); document.getElementById('DazeyMod.LSText.'+av).childNodes[0].data=ll; } } // End showDateText() function showDateIcon(av, ll, dy) { // Display an icon representing the user's last login date to the right of their menu bar if(document.getElementById('DazeyMod.LSIcon.'+av).getAttribute("data-DazeyMod")!="done") { loginImg = loginIcons[0]; var li = 0; if (dy >= loginDays[1]) { li = 1; } if (dy >= loginDays[2]) { li = 2; } if (dy >= loginDays[3]) { li = 3; } if (dy >= loginDays[4]) { li = 4; } if (dy >= loginDays[5]) { li = 5; } loginImg = loginIcons[li]; avDiv=document.getElementById('DazeyMod.LSIcon.'+av); avDiv.src="http://cf.geekdo-images.com/images/pic"+loginImg; avDiv.title=ll; avDiv.setAttribute("data-DazeyMod", "done"); avDiv.setAttribute("data-iconLevel", li); } } // End showDateIcon() function ShowDateTemp() { // Insert the grey icons and "Loading..." text before loading the actual content //console.log("Inserting Temp Dates"); uList = document.getElementsByClassName("avatarblock js-avatar"); for (av=0; av<uList.length; av++) { if(showText && uList[av].childNodes[1].getAttribute("data-DazeyMod") != "done") { //console.log("Inserting Temp Text"); uList[av].childNodes[1].appendChild( document.createElement('br') ); tmpSpn=document.createElement('span'); tmpSpn.id = "DazeyMod.LSText."+av; tmpSpn.appendChild( document.createTextNode("Loading...") ); uList[av].childNodes[1].setAttribute("data-DazeyMod", "temp"); uList[av].childNodes[1].appendChild(tmpSpn); } if(showIcon) { tmpIco = document.getElementById('DazeyMod.LSIcon.'+av); if (tmpIco.getAttribute("data-dazeymod") != "done") { tmpIco.src = "http://cf.geekdo-images.com/images/pic"+loginIcons[6]; tmpIco.title = "Loading..."; } } } } //End ShowDateTemp function createContextMenu() { // Create a context menu to manually load the dates. myMenu=document.createElement('menu'); myMenu.id = "DazeyModMenu"; myMenu.setAttribute("type", "context"); myMenuItem=document.createElement('menuitem'); myMenuItem.id = "menubtn"; myMenuItem.setAttribute("label", "Show Login Dates"); myMenuItem.addEventListener("click", function(){showLoginDates("manual");}, false); myMenu.appendChild(myMenuItem); document.getElementById('container').appendChild(myMenu); document.getElementById('container').setAttribute("contextMenu", "DazeyModMenu"); } if(DM_LS_Settings["showContextMenu"]==true) { createContextMenu(); } function refreshIcons() { // Refresh the LastSeen icons after enabling them console.log("Refreshing the icons"); for (i=0; i<uList.length; i++) { document.getElementById('DazeyMod.LSIcon.'+i).src="http://cf.geekdo-images.com/images/pic"+loginIcons[document.getElementById('DazeyMod.LSIcon.'+i).getAttribute('data-iconLevel')]; } document.getElementById('DazeyMod.ManualIcon').src="http://cf.geekdo-images.com/images/pic"+loginIcons[0]; for (i=0; i<6; i++) { document.getElementById('Dazeymod.DayRangeIcon.'+i).src="http://cf.geekdo-images.com/images/pic"+loginIcons[i]; } } //End refreshIcons() // Make the Settings DIV var tmpDiv=document.createElement('div'); tmpDiv.id = "settingsDiv"; tmpDiv.style.visibility="hidden"; tmpDiv.style.backgroundColor="#EAFFFF"; tmpDiv.style.border="2px solid black"; tmpDiv.style.position="absolute"; tmpDiv.style.left="146px"; tmpDiv.style.top="157px"; var tmpElm=document.createElement('p'); tmpElm.appendChild( document.createTextNode("DazeyMod Settings") ); tmpElm.style.textAlign="center"; tmpElm.style.margin="0em"; tmpDiv.appendChild(tmpElm); tmpDiv.appendChild( document.createElement('br') ); // Settings - Tabs tmpTabs=document.createElement('div'); tmpTbl=document.createElement('table'); tmpTr=document.createElement('tr'); tmpTd=document.createElement('td'); tmpTd.addEventListener("click", function() { switchSettingsTab(0); }, false); tmpHdr=document.createElement('div'); tmpHdr.style.textAlign="center"; tmpHdr.style.padding="3px 15px 10px 15px"; tmpHdr.style.fontWeight="bold"; tmpHdr.id="DazeyMod.LastSeen.Tab"; tmpHdr.style.borderTop="1px solid black"; tmpHdr.style.borderRight="1px solid black"; tmpHdr.style.backgroundColor="#EAEAFF"; tmpHdr.style.cursor="pointer"; tmpHdr.style.borderTopLeftRadius="15px"; tmpHdr.style.borderTopRightRadius="15px"; tmpHdr.className="DazeyMod.SettingsTab"; tmpHdr.appendChild( document.createTextNode("LastSeen Date Settings") ); tmpTd.appendChild(tmpHdr); tmpTr.appendChild(tmpTd); tmpTd=document.createElement('td'); tmpTd.addEventListener("click", function() { switchSettingsTab(1); }, false); tmpHdr=document.createElement('div'); tmpHdr.style.textAlign="center"; tmpHdr.style.padding="3px 15px 10px 15px"; tmpHdr.style.fontWeight="bold"; tmpHdr.id="DazeyMod.UsernameTag.Tab"; tmpHdr.style.border="1px solid black"; //tmpHdr.style.borderLeft="1px solid black"; //tmpHdr.style.borderBottom="1px solid black"; tmpHdr.style.cursor="pointer"; tmpHdr.style.borderTopLeftRadius="15px"; tmpHdr.style.borderTopRightRadius="15px"; tmpHdr.className="DazeyMod.SettingsTab"; tmpHdr.appendChild( document.createTextNode("Username Tag Settings") ); tmpTd.appendChild(tmpHdr); tmpTr.appendChild(tmpTd); /* tmpTd=document.createElement('td'); tmpTd.style.borderTop="1px solid black"; tmpTd.style.borderRight="1px solid black"; //tmpTd.style.backgroundColor="#EAEAFF"; tmpTd.className="DazeyMod.SettingsTab"; tmpHdr=document.createElement('div'); tmpHdr.style.textAlign="center"; tmpHdr.style.paddingBottom="5px"; tmpHdr.style.fontWeight="bold"; tmpHdr.appendChild( document.createTextNode("Enhanced Play Logging Settings") ); tmpTd.appendChild(tmpHdr); tmpTr.appendChild(tmpTd); */ tmpTbl.appendChild(tmpTr); tmpTabs.appendChild(tmpTbl); tmpDiv.appendChild(tmpTabs); // Settings - Form var tmpFrm=document.createElement('form'); // Settings - LastSeen Div var tmpDivLS=document.createElement('div'); tmpDivLS.id="DazeyMod.LastSeen.SettingsDiv"; tmpDivLS.style.backgroundColor="#EAEAFF"; // Settings - Table var tmpTbl=document.createElement('table'); var tmpTr=document.createElement('tr'); var tmpTd=document.createElement('td'); tmpTd.style.verticalAlign="top"; tmpTd.style.padding="0px 10px"; tmpTd.style.borderRight="1px dotted black"; // Settings - Text Date var tmpHdr=document.createElement('div'); tmpHdr.style.textAlign="center"; tmpHdr.style.padding="10px 0px 5px 0px"; tmpHdr.style.fontWeight="bold"; tmpHdr.appendChild( document.createTextNode("Display Date") ); tmpTd.appendChild(tmpHdr); // Settings - Text - Never var tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioText"); tmpFld.id = "radioTextNever"; if(DM_LS_Settings["showLoginText"] == "never") { tmpFld.checked=true; } tmpFld.addEventListener("click", showHideTextSelected, false); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Never") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Text - Manual tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioText"); tmpFld.id = "radioTextManual"; if(DM_LS_Settings["showLoginText"] == "manual") { tmpFld.checked=true; } tmpFld.addEventListener("click", showHideTextSelected, false); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Manual") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Text - Always tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioText"); tmpFld.id = "radioTextAlways"; if(DM_LS_Settings["showLoginText"] == "always") { tmpFld.checked=true; } tmpFld.addEventListener("click", showHideTextSelected, false); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Always") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Text - Selected tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioText"); tmpFld.id = "radioTextSelected"; if(DM_LS_Settings["showLoginText"] == "selected") { tmpFld.checked=true; } tmpFld.addEventListener("click", showHideTextSelected, false); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Selected Sites:") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Text - Selected - Geeklist tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "checkbox"); tmpFld.id = "checkTextGeeklists"; tmpFld.checked=(DM_LS_Settings["showLoginTextGeeklists"]==true); tmpFld.style.marginLeft="15px"; tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Geeklists") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Text - Selected - Trades tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "checkbox"); tmpFld.id = "checkTextTrades"; tmpFld.checked=(DM_LS_Settings["showLoginTextTrades"]==true); tmpFld.style.marginLeft="15px"; tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Trade Lists") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Text - Forums tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "checkbox"); tmpFld.id = "checkTextForums"; tmpFld.checked=(DM_LS_Settings["showLoginTextForums"]==true); tmpFld.style.marginLeft="15px"; tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Forums") ); tmpTr.appendChild(tmpTd); tmpTd=document.createElement('td'); tmpTd.style.verticalAlign="top"; tmpTd.style.padding="0px 10px"; tmpTd.style.borderRight="1px dotted black"; tmpHdr=document.createElement('div'); tmpHdr.style.textAlign="center"; tmpHdr.style.padding="10px 0px 5px 0px"; tmpHdr.style.fontWeight="bold"; tmpHdr.appendChild( document.createTextNode("Display Icons") ); tmpTd.appendChild(tmpHdr); // Settings - Icon - Never var tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioIcon"); tmpFld.id = "radioIconNever"; if(DM_LS_Settings["showLoginIcon"] == "never") { tmpFld.checked=true; } tmpFld.addEventListener("click", showHideTextSelected, false); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Never") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Icon - Manual tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioIcon"); tmpFld.id = "radioIconManual"; if(DM_LS_Settings["showLoginIcon"] == "manual") { tmpFld.checked=true; } tmpFld.addEventListener("click", showHideIconSelected, false); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Manual") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Icon - Always tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioIcon"); tmpFld.id = "radioIconAlways"; if(DM_LS_Settings["showLoginIcon"] == "always") { tmpFld.checked=true; } tmpFld.addEventListener("click", showHideIconSelected, false); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Always") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Icon - Selected tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioIcon"); tmpFld.id = "radioIconSelected"; if(DM_LS_Settings["showLoginIcon"] == "selected") { tmpFld.checked=true; } tmpFld.addEventListener("click", showHideIconSelected, false); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Selected Sites:") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Icon - Selected - Geeklist tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "checkbox"); tmpFld.id = "checkIconGeeklists"; tmpFld.checked=(DM_LS_Settings["showLoginIconGeeklists"]==true); tmpFld.style.marginLeft="15px"; tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Geeklists") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Icon - Selected - Trades tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "checkbox"); tmpFld.id = "checkIconTrades"; tmpFld.checked=(DM_LS_Settings["showLoginIconTrades"]==true); tmpFld.style.marginLeft="15px"; tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Trade Lists") ); tmpTd.appendChild( document.createElement('br') ); // Settings - Icon - Forums tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "checkbox"); tmpFld.id = "checkIconForums"; tmpFld.checked=(DM_LS_Settings["showLoginIconForums"]==true); tmpFld.style.marginLeft="15px"; tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Forums") ); //tmpTd.appendChild( document.createElement('br') ); tmpTr.appendChild(tmpTd); // Icon Packs tmpTd=document.createElement('td'); tmpTd.style.verticalAlign="top"; tmpTd.style.padding="0px 10px"; tmpTd.style.borderRight="1px dotted black"; var tmpHdr=document.createElement('div'); tmpHdr.style.textAlign="center"; tmpHdr.style.padding="10px 0px 5px 0px"; tmpHdr.style.fontWeight="bold"; tmpHdr.appendChild( document.createTextNode("Choose Icon Style") ); tmpTd.appendChild(tmpHdr); // Icons - D10 var tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioPack"); tmpFld.id = "radioIconPackD10"; if(DM_LS_Settings["iconPack"] == "D10") { tmpFld.checked=true; } //tmpFld.addEventListener("click", showHideTextSelected, false); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0") ); for(i=0; i<loginIconD10.length; i++) { tmpImg=document.createElement('img'); tmpImg.src="http://cf.geekdo-images.com/images/pic"+loginIconD10[i]; tmpTd.appendChild(tmpImg); } tmpTd.appendChild( document.createElement('br') ); // Icons - Hex var tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioPack"); tmpFld.id = "radioIconPackHex"; if(DM_LS_Settings["iconPack"] == "Hex") { tmpFld.checked=true; } tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0") ); for(i=0; i<loginIconHex.length; i++) { tmpImg=document.createElement('img'); tmpImg.src="http://cf.geekdo-images.com/images/pic"+loginIconHex[i]; tmpTd.appendChild(tmpImg); } tmpTd.appendChild( document.createElement('br') ); tmpTr.appendChild(tmpTd); // Icons - Hour var tmpRow=document.createElement('div'); var tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "radio"); tmpFld.setAttribute("name", "radioPack"); tmpFld.id = "radioIconPackHour"; if(DM_LS_Settings["iconPack"] == "Hour") { tmpFld.checked=true; } tmpRow.appendChild(tmpFld); tmpRow.appendChild( document.createTextNode("\u00A0") ); for(i=0; i<loginIconHour.length; i++) { tmpImg=document.createElement('img'); tmpImg.src="http://cf.geekdo-images.com/images/pic"+loginIconHour[i]; tmpImg.title="Art by Floodgate"; tmpRow.appendChild(tmpImg); } tmpTd.appendChild(tmpRow); tmpTr.appendChild(tmpTd); // Icon Day Ranges tmpTd=document.createElement('td'); tmpTd.style.verticalAlign="top"; tmpTd.style.padding="0px 10px"; tmpTd.style.borderRight="1px dotted black"; tmpHdr=document.createElement('div'); tmpHdr.style.textAlign="center"; tmpHdr.style.padding="10px 0px 5px 0px"; tmpHdr.style.fontWeight="bold"; tmpHdr.appendChild( document.createTextNode("Custom Days") ); tmpTd.appendChild(tmpHdr); // Ranges for (i=0; i < loginDays.length; i++) { tmpImg=document.createElement('img'); tmpImg.src="http://cf.geekdo-images.com/images/pic"+loginIcons[i]; tmpImg.id="Dazeymod.DayRangeIcon."+i; tmpTd.appendChild(tmpImg); tmpTd.appendChild( document.createTextNode("\u00A0:\u00A0") ); tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "text"); tmpFld.id = "checkIconDays"+i; tmpFld.value = loginDays[i]; tmpFld.size="3"; tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0+ days") ); tmpTd.appendChild( document.createElement('br') ); } tmpTr.appendChild(tmpTd); // Other Settings tmpTd=document.createElement('td'); tmpTd.id="tdCustomSettings"; tmpTd.style.verticalAlign="top"; tmpTd.style.padding="0px 10px"; tmpHdr=document.createElement('div'); tmpHdr.style.textAlign="center"; tmpHdr.style.padding="10px 0px 5px 0px"; tmpHdr.style.fontWeight="bold"; tmpHdr.appendChild( document.createTextNode("Other Settings") ); tmpTd.appendChild(tmpHdr); // Context Menu Option tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "checkbox"); tmpFld.id = "checkContextMenu"; tmpFld.checked=(DM_LS_Settings["showContextMenu"]==true); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Enable right-click menu") ); tmpTd.appendChild( document.createElement('br') ); // Move QuickBar Option tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "checkbox"); tmpFld.id = "checkQuickBar"; tmpFld.checked=(DM_QB_Settings["moveQuickBar"]==true); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Move QuickBar down") ); tmpTd.appendChild( document.createElement('br') ); // Large Thumbnail Option tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "checkbox"); tmpFld.id = "checkLargeThumb"; tmpFld.checked=(DM_LT_Settings["largeThumbnail"]==true); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Large thumbnails in lists") ); tmpTd.appendChild( document.createElement('br') ); tmpTd.appendChild( document.createTextNode("\u00A0\u00A0\u00A0Size (60-150): ") ); tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "text"); tmpFld.id = "textLargeThumb"; tmpFld.value = DM_LS_Settings["largeThumbnailSize"]; tmpFld.size="3"; tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createElement('br') ); tmpTr.appendChild(tmpTd); // End the LastSeen Table tmpTbl.appendChild(tmpTr); tmpDivLS.appendChild(tmpTbl); tmpFrm.appendChild(tmpDivLS); // Settings - UsernameTag Div var tmpDivUT=document.createElement('div'); tmpDivUT.id="DazeyMod.UsernameTag.SettingsDiv"; tmpDivUT.style.display="none"; tmpDivUT.style.backgroundColor="#EAEAFF"; // Settings - Table var tmpTbl=document.createElement('table'); var tmpTr=document.createElement('tr'); var tmpTd=document.createElement('td'); tmpTd.style.verticalAlign="top"; tmpTd.style.padding="0px 10px"; tmpTd.style.borderRight="1px dotted black"; // Settings - Username Tag First TD var tmpHdr=document.createElement('div'); tmpHdr.style.textAlign="center"; tmpHdr.style.padding="10px 0px 5px 0px"; tmpHdr.style.fontWeight="bold"; tmpHdr.appendChild( document.createTextNode("Username Tag") ); tmpTd.appendChild(tmpHdr); tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "checkbox"); tmpFld.id = "checkUsernameTag"; tmpFld.checked=(DM_UT_Settings["showUsernameTag"]==true); tmpTd.appendChild(tmpFld); tmpTd.appendChild( document.createTextNode("\u00A0Enable Username Tagging") ); tmpTd.appendChild( document.createElement('br') ); tmpTd.appendChild( document.createElement('br') ); tmpTd.appendChild( document.createTextNode("\u00A0Choose Default Tag Icon:") ); tmpTd.appendChild( document.createElement('br') ); tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "hidden"); tmpFld.id = "DazeyMod.UTIconDefault"; tmpTd.appendChild(tmpFld); for(i=0; i<usernameTagIcons.length; i++) { tmpImg=document.createElement('img'); tmpImg.src="http://cf.geekdo-images.com/images/pic"+usernameTagIcons[i]; tmpImg.id="DazeyMod.UTIconDefault."+i; tmpImg.style.padding="1px"; tmpTd.appendChild(tmpImg); } tmpTd.appendChild( document.createElement('br') ); tmpTd.appendChild( document.createElement('br') ); // UT - Show count of tagged users tmpTxt=document.createElement('div'); tmpTxt.id = "DazeyMod.UTIcon.Count"; tmpTd.appendChild(tmpTxt); tmpTr.appendChild(tmpTd); // Settings - Username Tag Second TD var tmpTd=document.createElement('td'); tmpTd.style.verticalAlign="top"; tmpTd.style.padding="0px 10px"; tmpTd.style.borderRight="1px dotted black"; var tmpHdr=document.createElement('div'); tmpHdr.style.textAlign="center"; tmpHdr.style.padding="10px 0px 5px 0px"; tmpHdr.style.fontWeight="bold"; tmpHdr.appendChild( document.createTextNode("Saved Username Tags") ); tmpTd.appendChild(tmpHdr); tmpTxt=document.createElement('div'); tmpTxt.id="DazeyMod.UTUserList"; tmpTxt.style.height="140px"; tmpTxt.style.width="460px"; tmpTxt.style.overflowY="scroll"; tmpTd.appendChild(tmpTxt); tmpTr.appendChild(tmpTd); // End the UsernameTag Table tmpTbl.appendChild(tmpTr); tmpDivUT.appendChild(tmpTbl); tmpFrm.appendChild(tmpDivUT); // Buttons and Status Bar at bottom of settings var tmpTbl=document.createElement('table'); tmpTr=document.createElement('tr'); tmpTd=document.createElement('td'); tmpTd.setAttribute("colspan", "2"); tmpDv2=document.createElement('div'); tmpDv2.style.cssFloat="left"; tmpDv2.style.padding="10px"; // Add a Save button tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "button"); tmpFld.setAttribute("value", "Save"); tmpFld.addEventListener("click", function() { document.getElementById('DazeyMod.SettingsStatus').childNodes[0].data="Thinking..."; window.setTimeout(function(){saveDazeyModSettings();}, 250); }, false); tmpDv2.appendChild(tmpFld); tmpDv2.appendChild( document.createTextNode("\u00A0\u00A0") ); // Add a Close button tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "button"); tmpFld.setAttribute("value", "Close"); tmpFld.addEventListener("click", showHideSettings, false); tmpDv2.appendChild(tmpFld); tmpTd.appendChild(tmpDv2); // Status box tmpSts=document.createElement('div'); tmpSts.id="DazeyMod.SettingsStatus"; tmpSts.style.padding="10px"; tmpSts.style.cssFloat="left"; tmpSts.style.fontWeight="bold"; tmpSts.appendChild( document.createTextNode("") ); tmpTd.appendChild(tmpSts); tmpTr.appendChild(tmpTd); tmpTbl.appendChild(tmpTr); tmpFrm.appendChild(tmpTbl); // Add the Form & Settings Div to the page tmpDiv.appendChild(tmpFrm); document.getElementById('maincontent').appendChild(tmpDiv); // Disable the Blue 0 field document.getElementById('checkIconDays0').disabled=true; function saveDazeyModSettings() { console.log("saveDazeyModSettings()"); // Save Settings for LastSeen Text Options if(document.getElementById('radioTextNever').checked) { DM_LS_Settings["showLoginText"]="never"; } if(document.getElementById('radioTextManual').checked) { DM_LS_Settings["showLoginText"]="manual"; } if(document.getElementById('radioTextAlways').checked) { DM_LS_Settings["showLoginText"]="always"; } if(document.getElementById('radioTextSelected').checked) { DM_LS_Settings["showLoginText"]="selected"; } DM_LS_Settings["showLoginTextGeeklists"]=document.getElementById('checkTextGeeklists').checked; DM_LS_Settings["showLoginTextTrades"]=document.getElementById('checkTextTrades').checked; DM_LS_Settings["showLoginTextForums"]=document.getElementById('checkTextForums').checked; // Save Settings for LastSeen Icon Options if(document.getElementById('radioIconNever').checked) { DM_LS_Settings["showLoginIcon"]="never"; } if(document.getElementById('radioIconManual').checked) { DM_LS_Settings["showLoginIcon"]="manual"; } if(document.getElementById('radioIconAlways').checked) { DM_LS_Settings["showLoginIcon"]="always"; } if(document.getElementById('radioIconSelected').checked) { DM_LS_Settings["showLoginIcon"]="selected"; } DM_LS_Settings["showLoginIconGeeklists"]=document.getElementById('checkIconGeeklists').checked; DM_LS_Settings["showLoginIconTrades"]=document.getElementById('checkIconTrades').checked; DM_LS_Settings["showLoginIconForums"]=document.getElementById('checkIconForums').checked; //console.log("Save Icon Pack"); var oldPack = DM_LS_Settings["iconPack"]; if(document.getElementById('radioIconPackD10').checked) { //console.log("Icon Pack: D10"); DM_LS_Settings["iconPack"]="D10"; } if(document.getElementById('radioIconPackHex').checked) { //console.log("Show Icon Manual"); DM_LS_Settings["iconPack"]="Hex"; } if(document.getElementById('radioIconPackHour').checked) { //console.log("Show Icon Always"); DM_LS_Settings["iconPack"]="Hour"; } if(oldPack != DM_LS_Settings["iconPack"]) { if(DM_LS_Settings["iconPack"]=="D10") { loginIcons = loginIconD10; } if(DM_LS_Settings["iconPack"]=="Hex") { loginIcons = loginIconHex; } if(DM_LS_Settings["iconPack"]=="Hour") { loginIcons = loginIconHour; } refreshIcons(); } //console.log("Save Day Ranges"); tmpDays = new Array(); for (i=0; i<6; i++) { tmpDays[i] = document.getElementById("checkIconDays"+i).value; } DM_LS_Settings["iconDays"]=JSON.stringify(tmpDays); //console.log("Save Other Settings"); //console.log("Save Context Menu"); if(DM_LS_Settings["showContextMenu"]==false && document.getElementById('checkContextMenu').checked){ createContextMenu(); } if(DM_LS_Settings["showContextMenu"]==true && !document.getElementById('checkContextMenu').checked) { var tmpMnu = document.getElementById("DazeyModMenu"); tmpMnu.parentNode.removeChild(tmpMnu); } DM_LS_Settings["showContextMenu"]=document.getElementById('checkContextMenu').checked; //console.log("Save QuickBar Option"); if(DM_QB_Settings["moveQuickBar"]==false && document.getElementById('checkQuickBar').checked){ document.getElementById('main_content').insertBefore(quickBar, document.getElementById('main_content').childNodes[0]); } if(DM_QB_Settings["moveQuickBar"]==true && !document.getElementById('checkQuickBar').checked) { document.getElementById('QBParent').insertBefore(quickBar, document.getElementById('QBParent').childNodes[0]); } DM_QB_Settings["moveQuickBar"]=document.getElementById('checkQuickBar').checked; //console.log("Save Large Thumb Option"); //console.log(DM_LT_Settings["largeThumbnail"]); if(DM_LT_Settings["largeThumbnail"]==false && document.getElementById('checkLargeThumb').checked){ loadLargeThumbnails(); } if(DM_LT_Settings["largeThumbnail"]==true && !document.getElementById('checkLargeThumb').checked) { // Code to restore small thumbs } DM_LT_Settings["largeThumbnail"]=document.getElementById('checkLargeThumb').checked; if(DM_LS_Settings["largeThumbnailSize"]!=document.getElementById('textLargeThumb').value) { DM_LS_Settings["largeThumbnailSize"]=document.getElementById('textLargeThumb').value; if(DM_LT_Settings["largeThumbnail"]) { updateThumbnailSize(); } } //console.log(DM_LT_Settings["largeThumbnail"]); if(DM_UT_Settings["showUsernameTag"]==false && document.getElementById('checkUsernameTag').checked) { refreshUsernameTags(); } if(DM_UT_Settings["showUsernameTag"]==true && !document.getElementById('checkUsernameTag').checked) { hideUsernameTagIcons(); } DM_UT_Settings["showUsernameTag"]=document.getElementById('checkUsernameTag').checked; DM_UT_Settings["defaultIcon"]=document.getElementById('DazeyMod.UTIconDefault').value; // Run other module's save functions if (window.saveFunctions.length>0){ for (i=0; i<window.saveFunctions.length; i++) { window.saveFunctions[i](); } } // Show "Saved" status window.setTimeout(function(){ document.getElementById('DazeyMod.SettingsStatus').childNodes[0].data="Saved" }, 500);window.setTimeout(function(){ document.getElementById('DazeyMod.SettingsStatus').childNodes[0].data="" }, 3000); //console.log("Set the GM Variable"); GM_setValue("DM_LS_Settings", JSON.stringify(DM_LS_Settings)); GM_setValue("DM_QB_Settings", JSON.stringify(DM_QB_Settings)); GM_setValue("DM_LT_Settings", JSON.stringify(DM_LT_Settings)); GM_setValue("DM_UT_Settings", JSON.stringify(DM_UT_Settings)); } // End saveDazeyModSettings() function showHideTextSelected() { // Enable or disable the LastSeen Text sub-page fields if the user picked "Selected Sites" or not if (document.getElementById('radioTextSelected').checked == true) { document.getElementById('checkTextGeeklists').disabled=false; document.getElementById('checkTextTrades').disabled=false; document.getElementById('checkTextForums').disabled=false; } else { document.getElementById('checkTextGeeklists').disabled=true; document.getElementById('checkTextTrades').disabled=true; document.getElementById('checkTextForums').disabled=true; } } // End showHideTextSelected showHideTextSelected() function showHideIconSelected() { // Enable or disable the LastSeen Icon sub-page fields if the user picked "Selected Sites" or not if (document.getElementById('radioIconSelected').checked == true) { document.getElementById('checkIconGeeklists').disabled=false; document.getElementById('checkIconTrades').disabled=false; document.getElementById('checkIconForums').disabled=false; } else { document.getElementById('checkIconGeeklists').disabled=true; document.getElementById('checkIconTrades').disabled=true; document.getElementById('checkIconForums').disabled=true; } } // End showHideIconSelected showHideIconSelected() function showHideSettingsLoad() { // Show a spinning cursor when loading the settings DIV // This is because it can take several seconds if they have tagged hundreds of users document.getElementById('main_content').style.cursor="progress"; document.getElementById('DazeyMod.SettingsIcon').style.cursor="progress"; window.setTimeout(showHideSettings, 50); } // End showHideSettingsLoad() function showHideSettings() { // Display the Settings window and update some of the contents console.log("showHideSettings()"); if (document.getElementById('settingsDiv').style.visibility == "hidden") { // It's currently hidden, so show it document.getElementById('settingsDiv').style.visibility = "visible"; // Set the Default Tag icon for (i=0; i<usernameTagIcons.length; i++) { document.getElementById('DazeyMod.UTIconDefault.'+i).style.border=""; } tmpIcon = DM_UT_Settings["defaultIcon"]; if (typeof tmpIcon==='undefined' || tmpIcon=="undefined") { tmpIcon = "8"; } document.getElementById('DazeyMod.UTIconDefault.'+tmpIcon).style.border="1px solid grey" document.getElementById('DazeyMod.UTIconDefault').value = tmpIcon; for (i=0; i<usernameTagIcons.length; i++) { listenerForUsernameTagIconDefault(i); } // Update the tagged user list txtBox = document.getElementById('DazeyMod.UTUserList'); while (txtBox.hasChildNodes()) { txtBox.removeChild(txtBox.lastChild); } tagCount = 0; Object.keys(DM_UT_Users).forEach(function(key) { if(key.indexOf(".icon") == -1) { tagCount++;; tmpIcon = DM_UT_Users[key+".icon"]; if (typeof tmpIcon==='undefined' || tmpIcon=="undefined") { tmpIcon = 11; } tmpImg=document.createElement('img'); tmpImg.src="http://cf.geekdo-images.com/images/pic"+usernameTagIcons[tmpIcon]; txtBox.appendChild(tmpImg); tmpBld=document.createElement('b'); tmpBld.appendChild( document.createTextNode(key)); txtBox.appendChild(tmpBld); txtBox.appendChild( document.createTextNode(": "+DM_UT_Users[key]) ); txtBox.appendChild( document.createElement('br') ); } }); // Update the number of tagged users count DM_UT_Users = JSON.parse(GM_getValue("DM_UT_Users")); document.getElementById('DazeyMod.UTIcon.Count').innerHTML="You have tagged <b>"+(tagCount)+"</b> users."; // Set the cursors back to non-spinning as the settings are loaded document.getElementById('main_content').style.cursor=""; document.getElementById('DazeyMod.SettingsIcon').style.cursor="pointer"; } else { // The settings are visible, so hide them document.getElementById('settingsDiv').style.visibility = "hidden"; } } // End showHideSettings() // Create DIV for UsernameTag hover text tmpDiv=document.createElement('div'); tmpDiv.id="DazeyMod.UTText"; tmpDiv.style.visibility="hidden"; tmpDiv.style.zindex="200"; tmpDiv.style.position="absolute"; tmpDiv.style.backgroundColor="#99BEFF"; tmpDiv.style.border="1px Solid Black"; tmpDiv.style.padding="3px"; document.getElementById("main_content").appendChild(tmpDiv); // Create DIV for UsernameTag Editor tmpDiv=document.createElement('div'); tmpDiv.id="DazeyMod.UTEdit"; tmpDiv.style.visibility="hidden"; tmpDiv.style.zindex="200"; tmpDiv.style.position="absolute"; tmpDiv.style.backgroundColor="#99BEFF"; tmpDiv.style.border="1px Solid Black"; tmpDiv.style.padding="2px 4px"; tmpDiv.addEventListener("keypress", function(e) { if(e.keyCode==13){saveUsernameTag();} }, false); tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "text"); tmpFld.id = "DazeyMod.UTFieldText"; tmpFld.size="40"; tmpFld.style.border="1px solid black"; tmpFld.style.padding="2px"; tmpDiv.appendChild(tmpFld); tmpDiv.appendChild( document.createTextNode("\u00A0\u00A0") ); tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "button"); tmpFld.setAttribute("value", "Save"); tmpFld.addEventListener("click", function() { saveUsernameTag(); }, false); tmpDiv.appendChild(tmpFld); tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "button"); tmpFld.setAttribute("value", "Close"); tmpFld.addEventListener("click", function() { document.getElementById('DazeyMod.UTEdit').style.visibility="hidden"; }, false); tmpDiv.appendChild(tmpFld); tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "hidden"); tmpFld.id = "DazeyMod.UTFieldUser"; tmpDiv.appendChild(tmpFld); tmpFld=document.createElement('input'); tmpFld.setAttribute("type", "hidden"); tmpFld.id = "DazeyMod.UTIconPick"; tmpDiv.appendChild(tmpFld); tmpDiv.appendChild( document.createElement('br') ); for(i=0; i<usernameTagIcons.length; i++) { tmpImg=document.createElement('img'); tmpImg.src="http://cf.geekdo-images.com/images/pic"+usernameTagIcons[i]; tmpImg.id="DazeyMod.UTIconPicker."+i; tmpImg.style.padding="1px"; tmpDiv.appendChild(tmpImg); } document.getElementById("main_content").appendChild(tmpDiv); for(i=0; i<usernameTagIcons.length; i++) { listenerForUsernameTagIcon(i); } function editUsernameTag(av, user, e) { hideUsernameTag(); edtDiv = document.getElementById('DazeyMod.UTEdit'); edtDiv.style.left=e.pageX+15+"px"; edtDiv.style.top=e.pageY+"px"; edtDiv.style.visibility="visible"; tmpTxt = DM_UT_Users[user]; if (typeof tmpTxt==='undefined' || tmpTxt=="undefined") { tmpTxt = ""; } document.getElementById('DazeyMod.UTFieldText').value = tmpTxt; document.getElementById('DazeyMod.UTFieldUser').value = user; document.getElementById('DazeyMod.UTFieldText').focus(); document.getElementById('DazeyMod.UTFieldText').select(); for (i=0; i<usernameTagIcons.length; i++) { document.getElementById('DazeyMod.UTIconPicker.'+i).style.border=""; } tmpIcon = DM_UT_Users[user+".icon"]; if (typeof tmpIcon==='undefined' || tmpIcon=="undefined") { tmpIcon = DM_UT_Settings["defaultIcon"]; } document.getElementById('DazeyMod.UTIconPicker.'+tmpIcon).style.border="1px solid grey" document.getElementById('DazeyMod.UTIconPick').value = tmpIcon; } function pickUsernameTagIcon(icon) { for (i=0; i<usernameTagIcons.length; i++) { document.getElementById('DazeyMod.UTIconPicker.'+i).style.border=""; } document.getElementById('DazeyMod.UTIconPicker.'+icon).style.border="1px solid grey" document.getElementById('DazeyMod.UTIconPick').value = icon; document.getElementById('DazeyMod.UTFieldText').focus(); } function pickUsernameTagIconDefault(icon) { for (i=0; i<usernameTagIcons.length; i++) { document.getElementById('DazeyMod.UTIconDefault.'+i).style.border=""; } document.getElementById('DazeyMod.UTIconDefault.'+icon).style.border="1px solid grey" document.getElementById('DazeyMod.UTIconDefault').value = icon; } function saveUsernameTag() { //alert (document.getElementById('DazeyMod.UTFieldText').value + " | " + document.getElementById('DazeyMod.UTFieldUser').value); DM_UT_Users[document.getElementById('DazeyMod.UTFieldUser').value] = document.getElementById('DazeyMod.UTFieldText').value; DM_UT_Users[(document.getElementById('DazeyMod.UTFieldUser').value)+".icon"] = document.getElementById('DazeyMod.UTIconPick').value; GM_setValue("DM_UT_Users", JSON.stringify(DM_UT_Users)); refreshUsernameTags(); document.getElementById('DazeyMod.UTEdit').style.visibility="hidden"; } function showUsernameTag(av, user, e) { //console.log("mouseover "+user); txtDiv = document.getElementById('DazeyMod.UTText'); tmpTxt = DM_UT_Users[user]; if (typeof tmpTxt==='undefined' || tmpTxt=="" || tmpTxt=="undefined") { tmpTxt = ""; txtDiv.style.visibility=tmpVis = "hidden"; } else { txtDiv.style.visibility=tmpVis = "visible"; } txtDiv.innerHTML=tmpTxt; txtDiv.style.left=e.pageX+10+"px"; txtDiv.style.top=e.pageY+"px"; } function hideUsernameTag() { document.getElementById('DazeyMod.UTText').style.visibility="hidden"; } function listenerForUsernameTag(av, user) { //console.log("listen "+av+" "+user); document.getElementById('DazeyMod.UTIcon.'+av).addEventListener("click", function(e){editUsernameTag(av, user, e);}, false); document.getElementById('DazeyMod.UTIcon.'+av).addEventListener("mouseover", function(e){showUsernameTag(av, user, e);}, false); document.getElementById('DazeyMod.UTIcon.'+av).addEventListener("mouseout", function(){hideUsernameTag();}, false); } function listenerForUsernameTagIcon(icon) { document.getElementById('DazeyMod.UTIconPicker.'+icon).addEventListener("click", function(){pickUsernameTagIcon(icon);}, false); } function listenerForUsernameTagIconDefault(icon) { document.getElementById('DazeyMod.UTIconDefault.'+icon).addEventListener("click", function(){pickUsernameTagIconDefault(icon);}, false); } function switchSettingsTab(tab) { //console.log("Switch to tab "+tab); if (tab == 0) { document.getElementById('DazeyMod.UsernameTag.SettingsDiv').style.display="none"; document.getElementById('DazeyMod.UsernameTag.Tab').style.backgroundColor="#EAFFFF"; document.getElementById('DazeyMod.UsernameTag.Tab').style.borderBottom="1px solid black"; document.getElementById('DazeyMod.LastSeen.SettingsDiv').style.display=""; document.getElementById('DazeyMod.LastSeen.Tab').style.backgroundColor="#EAEAFF"; document.getElementById('DazeyMod.LastSeen.Tab').style.borderBottom=""; } if (tab == 1) { document.getElementById('DazeyMod.LastSeen.SettingsDiv').style.display="none"; document.getElementById('DazeyMod.LastSeen.Tab').style.backgroundColor="#EAFFFF"; document.getElementById('DazeyMod.LastSeen.Tab').style.borderBottom="1px solid black"; document.getElementById('DazeyMod.UsernameTag.SettingsDiv').style.display=""; document.getElementById('DazeyMod.UsernameTag.Tab').style.backgroundColor="#EAEAFF"; document.getElementById('DazeyMod.UsernameTag.Tab').style.borderBottom=""; } } function refreshUsernameTags() { console.log("refreshUsernameTags()"); uList = document.getElementsByClassName("avatarblock js-avatar"); for (av=0; av<uList.length; av++) { uName = uList[av].getAttribute("data-username"); tmpTxt = DM_UT_Users[uName]; if (typeof tmpTxt==='undefined' || tmpTxt=="" || tmpTxt=="undefined") { // Grey icon document.getElementById('DazeyMod.UTIcon.'+av).src="http://cf.geekdo-images.com/images/pic"+usernameTagIcons[11]; } else { // Colorful icon document.getElementById('DazeyMod.UTIcon.'+av).src = "http://cf.geekdo-images.com/images/pic"+usernameTagIcons[DM_UT_Users[uName+".icon"]]; } console.log(uName); listenerForUsernameTag(av, uName); } } // End refreshUsernameTags() function hideUsernameTagIcons() { for (av=0; av<uList.length; av++) { document.getElementById('DazeyMod.UTIcon.'+av).src="http://cf.geekdo-images.com/images/pic2015885.png"; } } if (DM_UT_Settings["showUsernameTag"]==true) { refreshUsernameTags(); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址