// // Global variables shared with the other pages // var g_bOsPersonal = false; var g_oUserList = null; var g_oSelectedUser = null; var g_strLoggedOnUserName = null; var g_szInitialTask = null; var g_bInitialTaskCompleted = false; var g_bRunningAsOwner = false; // Used when deleting an account var g_bDeleteFiles = false; // // Methods shared with the other pages // var g_oShell = null; function GetShell() { if (null == g_oShell) g_oShell = new ActiveXObject("Shell.Application"); return g_oShell; } var g_oWShell = null; function GetWShell() { if (null == g_oWShell) g_oWShell = new ActiveXObject("WScript.Shell"); return g_oWShell; } var g_oLocalMachine = null; function GetLocalMachine() { if (null == g_oLocalMachine) g_oLocalMachine = new ActiveXObject("Shell.LocalMachine"); return g_oLocalMachine; } var g_szAdminAccountName = null; function GetAdminName() { if (!g_szAdminAccountName) { g_szAdminAccountName = GetLocalMachine().AccountName(500); // DOMAIN_USER_RID_ADMIN if (!g_szAdminAccountName) g_szAdminAccountName = "Administrator"; } return g_szAdminAccountName; } var g_szGuestAccountName = null; function GetGuestName() { if (!g_szGuestAccountName) { g_szGuestAccountName = GetLocalMachine().AccountName(501); // DOMAIN_USER_RID_GUEST if (!g_szGuestAccountName) g_szGuestAccountName = "Guest"; } return g_szGuestAccountName; } function IsSelf() { if (!g_oSelectedUser || !g_strLoggedOnUserName) return false; return (g_oSelectedUser.setting("LoginName").toLowerCase() == g_strLoggedOnUserName); } function GetUserDisplayName(oUser) { var szDisplayName = oUser.setting("DisplayName"); if (!szDisplayName) szDisplayName = oUser.setting("LoginName"); // Truncate really long names if (szDisplayName && szDisplayName.length > 20) { //var iBreak = szDisplayName.lastIndexOf(' ',17); //if (-1 == iBreak) iBreak = 17; //szDisplayName = szDisplayName.substring(0,iBreak) + "..."; szDisplayName = szDisplayName.substring(0,17) + "..."; } // // NTRAID#NTBUG9-343499-2001/04/03-jeffreys // // Convert '<' to ">" so HTML is displayed as text // if (szDisplayName) szDisplayName = szDisplayName.replace(/ 0) { idDescription.innerHTML = szDescription; idDescription.style.display = 'block'; } else idDescription.style.display = 'none'; if (szRelatedTasks && szRelatedTasks.length > 0) { idRelatedTaskLinks.innerHTML = szRelatedTasks; idRelatedTasks.style.display = 'block'; SetRelativeTasks(idRelatedTaskLinks.children, 2); } else idRelatedTasks.style.display = 'none'; if (szLearnAbout && szLearnAbout.length > 0) { idLearnAboutLinks.innerHTML = szLearnAbout; idLearnAbout.style.display = 'block'; SetRelativeTasks(idLearnAboutLinks.children, 2); } else idLearnAbout.style.display = 'none'; } function CreateUserDisplayHTML2(szName, szSubtitle, szPicture) { return '

'+szName+'

'+szSubtitle+'

'; } var g_AccountProps = new Array(L_Guest_Property, L_Limited_Property, L_UnknownAcct_Property, L_Owner_Property); function CreateUserDisplayHTML(oUser, szSubtitle) { if (!szSubtitle) { szSubtitle = g_AccountProps[oUser.setting("AccountType")]; if (oUser.passwordRequired) szSubtitle += '
' + L_Password_Property; } return CreateUserDisplayHTML2(GetUserDisplayName(oUser), szSubtitle, oUser.setting("Picture")); } var g_HelpWindow = null; var g_szHelpUrl = null; function LaunchHelp(szHTM) { if (szHTM && szHTM.length > 0) { if (null == g_HelpWindow) { var args = new Object; args.mainWindow = window; args.szHTM = szHTM; if (null == g_szHelpUrl) g_szHelpUrl = GetWShell().ExpandEnvironmentStrings("MS-ITS:%windir%\\help\\nusrmgr.chm::/"); g_HelpWindow = window.showModelessDialog(g_szHelpUrl + "HelpFrame.htm", args, "border=thick; center=0; dialogWidth=30em; dialogHeight=34em; help=0; minimize=1; maximize=1; resizable=1; status=0;"); } else { try { g_HelpWindow.ShowHelp(g_szHelpUrl + szHTM); } catch (e) { g_HelpWindow.close(); g_HelpWindow = null; } } } } function EnableGuest(bEnable) { if (!bEnable) { var oGuest = g_oUserList(GetGuestName()); if (oGuest && oGuest.isLoggedOn) { alert(L_DisableGuestInUse_ErrorMessage); return false; } } try { if (bEnable) { GetLocalMachine().EnableGuest(1); // Force a new enumeration. g_oSelectedUser = null; g_oUserList = null; g_oUserList = new ActiveXObject("Shell.Users"); } else GetLocalMachine().DisableGuest(1); } catch (e) { } g_Navigator.navigate("mainpage2.htm", true); } // // Methods specific to the main frame // function PageInit() { // Load shgina. If this fails, we can't do anything at all. try { g_oUserList = new ActiveXObject("Shell.Users"); } catch (e) { alert(L_SHGinaLoad_ErrorMessage); window.close(); return; } // Initialize globals g_bOsPersonal = GetShell().GetSystemInformation("IsOS_Personal"); g_oSelectedUser = g_oUserList.currentUser; if (g_oSelectedUser) { g_strLoggedOnUserName = g_oSelectedUser.setting("LoginName").toLowerCase(); g_bRunningAsOwner = (3 == g_oSelectedUser.setting("AccountType")); } else if (false == g_bOsPersonal) { // Running Pro and couldn't get currentUser, therefore // we've probably just disjoined a domain without rebooting // and the current user is probably a domain account. That's // the only scenario I can come up with where we hit this, // and it has actually happened in the BVT lab. // // The fact that they had the ability to disjoin the domain // implies owner. g_bRunningAsOwner = true; } else { // If we're running Personal and can't get currentUser, // then we're SOL. alert(L_NoCurrentUser_ErrorMessage); window.close(); return; } // Parse the command line to see if we were given an initial task if (idUM.commandLine) { // It may be necessary in the future to split the command line // into multiple arguments. But for now this is good enough. var iInitialTask = idUM.commandLine.indexOf("initialTask="); if (-1 != iInitialTask) { // 12 == strlen("initialTask=") g_szInitialTask = idUM.commandLine.substring(iInitialTask+12); } } g_Navigator = new Navigator(idContent); if (g_Navigator) g_Navigator.navigate(g_bRunningAsOwner ? "mainpage2.htm" : "mainpage.htm"); } // // Navigator object implementation // var g_Navigator = null; function push(url) { if (url) { if (this.current < 0 || url != this.stack[this.current]) this.stack[++this.current] = url; // Make sure there's nothing left on the stack after this this.stack.length = this.current + 1; } } function navigate(urlTo, bTrim) { // Check for empty stack if (this.current < 0) bTrim = false; if (bTrim) { // Look backwards for the page, trimming as we go while (this.current >= 0) { // Trim the stack to the current location this.stack.length = this.current + 1; // Is the page here on the stack? if (urlTo == this.stack[this.current]) break; if (0 == this.current) { // Got all the way back to the beginning and didn't // find it. Push it and stop. this.push(urlTo); break; } --this.current; } } else { // Normal navigation this.push(urlTo); } this.SetBtnState(); this.frame.navigate(urlTo); } function back(nCount) { if (this.current > 0) { if (!nCount) nCount = 1; if (-1 == nCount) this.current = 0; else this.current = Math.max(0, this.current - nCount); this.frame.navigate(this.stack[this.current]); } this.SetBtnState(); } function forward() { if (this.current < this.stack.length - 1) this.frame.navigate(this.stack[++this.current]); this.SetBtnState(); } function SetBtnState() { idToolbar.enabled(0) = (this.current > 0); idToolbar.enabled(1) = (this.current != this.stack.length - 1); idToolbar.enabled(2) = (this.current > 0); } function Navigator(frame) { // methods this.push = push; this.navigate = navigate; this.back = back; this.forward = forward; this.SetBtnState = SetBtnState; // properties this.frame = frame; this.current = -1; this.stack = new Array(); this.SetBtnState(); }