|
|
<HTML> <HEAD> <TITLE>Microsoft Out-of-Box Experience</TITLE> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language=jscript> // This is intended to hold all the script needed
// in the default & offline OOBE HTML pages.
//
// We want to separate the layout (HTML) from the script.
// At the same time, it's helpful to have all the code
// in one place to make it easier to understand the flow
// from page to page.
// Checkpoint constants
var CKPT_START = 1; var CKPT_TAPI = 2; var CKPT_DIALING = 3; var CKPT_DIALTONE = 4; var CKPT_MSNINTRO = 6; var CKPT_WINMSNEULA = 7; var CKPT_IAASSIGNED = 8; var CKPT_PASSPORT = 9; var CKPT_PIDKEY = 10; var CKPT_MSNPORTAL = 12; var CKPT_MODEMCANCEL = 13; var CKPT_MOUSE = 14; var CKPT_REGKB = 15; var CKPT_OEMHW = 16; var CKPT_USERINFO = 17; var CKPT_EULA = 18; var CKPT_PID = 19; var CKPT_OEMISP1 = 20; var CKPT_OEMISP2 = 21; var CKPT_OEMISP3 = 22; var CKPT_CONGRATS = 23; var CKPT_CONNECT = 24; var CKPT_OEMREG = 25; var CKPT_INSTALLED = 26; var CKPT_ERROR = 27; var CKPT_REGKBCOMMIT = 28; var CKPT_BADPID = 29; var CKPT_MSNINFO = 30; var CKPT_MSNIDPASS = 31; var CKPT_MSNCONSET = 32; var CKPT_MSNPAYMENT = 33; var CKPT_PRIVACYGUARANTEE = 34; var CKPT_PASSSIGN = 35; var CKPT_REGISTER = 36;
// CheckDialReady errors
var ERR_COMM_NO_ERROR = 0; var ERR_COMM_OOBE_COMP_MISSING = 1; var ERR_COMM_UNKNOWN = 2; var ERR_COMM_NOMODEM = 3; var ERR_COMM_RAS_TCP_NOTINSTALL = 4;
// Dialing errors
var DERR_DIALTONE = -1; var DERR_BUSY = -2; var DERR_SERVERBUSY = -3;
// Various objects
var TapiObj = null; var InfoObj = null; var EulaObj = null; var LangObj = null; var PidObj = null; var StatusObj = null; var DirObj = null;
// References to objects on msoobeMain
var g = null;
// global string
var g_strPrefix = "";
// Mandatory Initialization Code
if (StatusObj == null) { StatusObj = new Object; StatusObj = window.external.Status; } if (DirObj == null) { DirObj = new Object; DirObj = window.external.Directions; } if (InfoObj == null) { InfoObj = new Object; InfoObj = window.external.UserInfo; } // END Initialization Code
// start.htm
function Start_OnKeyPress() { // Treat the enter key like the next button
// since the user hasn't gone through the mouse tutorial yet.
if ((g.event.keyCode == 13) && (g.btnNext.disabled == false)) { GoNext(CKPT_START); } }
// Function: Start_LoadMe
// Description: This function is called after start.htm is
// loaded. we then initialize Items on the page.
// we also populate the edits with any values already
// found in the registry.
//
function Start_LoadMe() { InitGlobals();
// disable the next button until any field has a value.
g.btnNext.disabled = true;
InfoObj = new Object; InfoObj = window.external.UserInfo; g.edt_FirstName.value = InfoObj.get_FirstName(); g.edt_MiddleName.value = InfoObj.get_MiddleInitial(); g.edt_LastName.value = InfoObj.get_LastName();
// set focus on the first edit field.
g.edt_FirstName.focus(); Start_CheckEnableNextButton(); InitButtons(); }
// Function: Start_CheckEdits
// Description: This function is called everytime an OnClick
// event fires on the page. This is done so if the user
// loses focus from one of the edits we can push them
// in the right direction and hint them along the way
// Or if all elements are filled then we enabled
// the next button or if any value is 0 then we
// disable the next button
//
function Start_CheckEdits() { if ((g.event.srcElement != g.edt_FirstName) && (g.event.srcElement != g.edt_MiddleName) && (g.event.srcElement != g.edt_LastName)) { Start_CheckEnableNextButton(); } }
// Function: Start_CheckEnableNextButton
// Description: This function is called everytime a keyup
// event fires on a edit box for first, middle, or last
// name. We then see if we should enable or disable the
// next button based on if every field has a value.
//
function Start_CheckEnableNextButton() { if ((g.edt_FirstName.value.length != 0) || (g.edt_MiddleName.value.length != 0) || (g.edt_LastName.value.length != 0)) { g.btnNext.disabled = false; InitButtons(); } else { g.btnNext.disabled = true; InitButtons(); } } // END start.htm
// tapi.htm
function TapiLoadMe() { InitGlobals(); TapiObj = new Object; TapiObj = window.external.Tapi; InitButtons(); RetrieveTapi(); }
function StoreTapi() { TapiObj.set_CountryIndex = g.selCountry.selectedIndex; // TapiObj.set_AreaCode = g.edtAreaCode.value;
TapiObj.set_PhoneSystem = radioTouchTone.value ? 1 : 0; // TapiObj.set_CallWaiting = g.edtCallWaiting.value;
TapiObj.set_DialOut = g.edtOutsideLine.value; }
function RetrieveTapi() { var fTapi = TapiObj.IsTAPIConfigured; var ilen = TapiObj.get_NumOfCountry; for (var i = 0; i < ilen; i++) { var oOption = g.document.createElement("OPTION"); oOption.text = TapiObj.get_CountryNameForIndex(i); g.selCountry.add(oOption); } g.selCountry.selectedIndex = TapiObj.get_CountryIndex;
//g.edtAreaCode.value = TapiObj.get_AreaCode;
radioTouchTone.value = TapiObj.get_PhoneSystem ? true : false; g.edtCallWaiting.value = //(TapiObj.get_CallWaiting == "") ? TapiObj.get_CallWaiting :
"*70"; g.edtOutsideLine.value = TapiObj.get_DialOut; }
function tapi_CallWaitingClicked() { if (radioCallWaiting[0].checked == true) { spanCallWaitingDisable.style.visibility = "visible"; } else { spanCallWaitingDisable.style.visibility = "hidden"; } }
function tapi_OutsideLineClicked() { if (radioOutsideLine[0].checked == true) { spanOutsideLine.style.visibility = "visible"; } else { spanOutsideLine.style.visibility = "hidden"; } } // END tapi.htm
// connect.htm
function connect_LoadMe() { InitGlobals(); InitButtons(); setTimeout("DoDial()" , 40); }
function DoDial() { g.spnDialing.style.color = 0x990000; g.spnConnecting.style.color = 0x999999; g.spnConnected.style.color = 0x999999; window.external.Dial("msobe.idp"); }
<!--REQUIRED FUNCTION PROTOTYPE :: DO NOT ALTER--> function OnDialing() { //"Dialing"
}
<!--REQUIRED FUNCTION PROTOTYPE :: DO NOT ALTER--> function OnConnecting() { //"Connecting"
g.spnDialing.style.color = 0x999999; g.spnConnecting.style.color = 0x990000; g.spnConnected.style.color = 0x999999; }
<!--REQUIRED FUNCTION PROTOTYPE :: DO NOT ALTER--> function OnDownloading() { //"Downloading"
g.spnDialing.style.color = 0x999999; g.spnConnecting.style.color = 0x999999; g.spnConnected.style.color = 0x990000; }
<!--REQUIRED FUNCTION PROTOTYPE :: DO NOT ALTER--> function OnDisconnect() { //"Disconnected"
; }
<!--REQUIRED FUNCTION PROTOTYPE :: DO NOT ALTER--> function OnDialingError(derr) { //"dial error"
window.external.Hangup();
switch (derr) { case DERR_DIALTONE: g.navigate("error.htm"); break;
case DERR_BUSY: break;
case DERR_SERVERBUSY: break; } } // END dial.htm
// userinfo.htm
function UserInfoLoadMe() { RetrieveUserInfo(); }
function StoreUserInfo() { InfoObj.set_FirstName = g.edt_FirstName.value; InfoObj.set_MiddleInitial = g.edt_MiddleInitial.value; InfoObj.set_LastName = g.edt_LastName.value; InfoObj.set_CompanyName = g.edt_CompanyName.value; InfoObj.set_Address = g.txt_Address.value; InfoObj.set_City = g.edt_City.value; InfoObj.set_State = g.sel_State.value; InfoObj.set_Zip = g.edt_Zip.value; InfoObj.set_PrimaryEmail = g.edt_PrimaryEmail.value; InfoObj.set_SecondaryEmail = g.edt_SecondaryEmail.value; InfoObj.set_AreaCode = g.edt_AreaCode.value; InfoObj.set_Prefix = g.edt_Prefix.value; InfoObj.set_Number = g.edt_Number.value; }
function RetrieveUserInfo() { g.edt_FirstName.value = InfoObj.get_FirstName; g.edt_MiddleInitial.value = InfoObj.get_MiddleInitial; g.edt_LastName.value = InfoObj.get_LastName; g.edt_CompanyName.value = InfoObj.get_CompanyName; g.txt_Address.value = InfoObj.get_Address; g.edt_City.value = InfoObj.get_City; g.sel_State.value = InfoObj.get_State; g.edt_Zip.value = InfoObj.get_Zip; g.edt_PrimaryEmail.value = InfoObj.get_PrimaryEmail; g.edt_SecondaryEmail.value = InfoObj.get_SecondaryEmail; g.edt_AreaCode.value = InfoObj.get_AreaCode; g.edt_Prefix.value = InfoObj.get_Prefix; g.edt_Number.value = InfoObj.get_Number; } // END userinfo.htm
// eula.htm
function EulaLoadMe() { InitGlobals(); EulaObj = new Object; EulaObj = window.external.Eula; if (StatusObj.get_EULACompleted) { RetrieveEula(); } else { g.btnNext.disabled = true; } InitButtons(); }
function EulaRadioClicked(fAccept) { g.btnNext.disabled = false; g.btnNext.src = g_strPrefix + "images/rhtdef.gif"; g.btnNextText.style.color = "black"; StoreEula(); }
function StoreEula() { EulaObj.set_EULAAcceptance = (radioEULA(0).checked == true) ? true : false; }
function RetrieveEula() { Agreement.value = EulaObj.get_EULAAcceptance; }
// END eula.htm
// regkbcmt.htm
function RegKBCmt_LoadMe() { InitButtons(); } // END regkbcmt.htm
// regkb.htm
function RegKBLoadMe() { InitGlobals(); LangObj = new Object; LangObj = window.external.Language; InitButtons(); RetrieveRegKB(); }
function StoreRegKB() { LangObj.set_RegionIndex = g.selRegion.selectedIndex; LangObj.get_KeyboardLayoutIndex = g.selKeyboard.selectedIndex; }
function RetrieveRegKB() { var ilen = LangObj.get_NumOfRegions; for (var i = 0; i < ilen; i++) { var oOption = g.document.createElement("OPTION"); oOption.text = LangObj.get_RegionName(i); g.selRegion.add(oOption); } g.selRegion.selectedIndex = LangObj.get_RegionIndex; ilen = LangObj.get_NumOfKeyboardLayouts; for (i = 0; i < ilen; i++) { var oOption = g.document.createElement("OPTION"); oOption.text = LangObj.get_KeyboardLayoutName(i); g.selKeyboard.add(oOption); } g.selKeyboard.selectedIndex = LangObj.get_KeyboardLayoutIndex; }
// END regkb.htm
// badpid.htm
function badpid_LoadMe() { InitGlobals(); InitButtons(); }
// pid.htm
function PID_LoadMe() { InitGlobals(); PidObj = new Object; PidObj = window.external.ProductID; RetrievePid(); g.btnNext.disabled = false; InitButtons(); PID_CheckLength(); }
function PID_CheckLength() { var iLength = 0; for (iElement = 0; iElement < 5; iElement++) { iLength += g.edtProductKey[iElement].value.length; if (iLength < 5 * iElement) break; }
if (iLength == 25) { g.btnNext.disabled = false; g.btnNext.src = g_strPrefix + "../images/rhtdef.gif"; g.btnNextText.style.color= "black"; } else { g.btnNext.disabled = true; g.btnNext.src = g_strPrefix + "../Images/rhtdsld.gif"; g.btnNextText.style.color= "gray"; } }
function RetrievePid() { // retrieves the pid if avialable.
var strPid = PidObj.get_PID(); // if there is no PID then we set the
// focus to the first field
if (strPid.length == 0) { g.edtProductKey[0].focus(); } // else we populate the fields with the
// sections of the PID and then put the
// focus onto the next button for validation.
else { for(i = 0; i < 5; i++) { g.edtProductKey[i].value = strPid.substr(i * 5, 5); } g.btnNext.focus(); } }
function ValidatePid() { var strPid = "";
for(i = 0; i < 5; i++) { strPid += g.edtProductKey[i].value; }
return PidObj.ValidatePID(strPid); }
function StorePid() { var strPid = "";
for(i = 0; i < 5; i++) { strPid += g.edtProductKey[i].value; } PidObj.set_PID(strPid); StatusObj.set_PIDCompleted = true; }
function ProductIDKeyPress() { // if the length is 5 then we want to move the focus
// to the next field and also save the input to the
// next field
if (g.event.srcElement.value.length == 5) { // find the index at which we are.
for (i = 0; i < 5; i++) { // find which index we are so we
// know which one to move to next
if (g.edtProductKey[i] == g.event.srcElement) { // if we are in the last field move to the next button
// else move to the key code to the next field and don't
// put the value into the current field
if (i == 4) { g.btnNext.focus(); } else { g.edtProductKey[i+1].value += String.fromCharCode(g.event.keyCode); } g.event.returnValue = false; break; } } }
} function ProductIDKeyUp() { PID_CheckLength();
// only need to do move forward
// or backwards if length is 0 or 5
if ((g.event.srcElement.value.length == 5) || (g.event.srcElement.value.length == 0)) { for (i = 0; i < 5; i++) { // find which index we are so we
// know which one to move to next
if (g.edtProductKey[i] == g.event.srcElement) { // if we maxed the length of the field then
// move forward
if (g.event.srcElement.value.length == 5) { // if we are in the last field move to the next button
// else move to the next productID field
if (i == 4) { g.btnNext.focus(); } else { g.edtProductKey[i+1].focus(); } } // if we have not data in the field
// then we most have deleted the contents
else // length = 0
{ // only need to move the focus if we
// are not in the first field.
if (i != 0) { g.edtProductKey[i-1].focus(); } } break; } } } } // END pid.htm
// error.htm
function Error_LoadMe() { InitGlobals(); InitButtons(); } // END error.htm
// ispsgnup.htm
// END ispsgnup.htm
// speedy2.htm
// END speedy2.htm
// speedy3.htm
// END speedy3.htm
// mouse.htm
function mouse_LoadMe() { InitGlobals("../../"); InitButtons(); } // END mouse.htm
// oemhw.htm
function oemhw_LoadMe() { btnNext.disabled = true; InitButtons("../"); }
function oemhw_HearSoundClicked() { if (event.srcElement == radioHearSound[0]) { radioHearSound[0].checked = true; radioHearSound[1].checked = false; btnNext.disabled = false; InitButtons(); } else if (event.srcElement == radioHearSound[1]) { radioHearSound[0].checked = false; radioHearSound[1].checked = true; btnNext.disabled = false; InitButtons(); } }
// END oemhw.htm
// oemreg.htm
function oemreg_LoadMe() { InitGlobals("../../"); g.edt_FirstName.value = InfoObj.get_FirstName(); g.edt_MiddleInitial.value = InfoObj.get_MiddleInitial(); g.edt_LastName.value = InfoObjt.get_LastName(); InitButtons(); } // END oemreg.htm
// oemlegal.htm
function oemlegal_LoadMe() { InitGlobals("../../"); InitButtons(); } // END oemlegal.htm
// oemadd.htm
// END oemadd.htm
// msneula.htm
function msneula_LoadMe() { InitGlobals(); g.btnNext.disabled = false; InitButtons(); } // END msneula.htm
// msnsign.htm
function msnsign_LoadMe() { InitGlobals(); InitButtons(); }
function msnsign_SignupWishClicked() { for (iElement = 0; iElement < 4; iElement++) { radioSignupWish[iElement].checked = false; } event.srcElement.checked = true; } // END msnsign.htm
// msninfo.htm
function msninfo_LoadMe() { InitGlobals(); g.edt_FirstName.value = InfoObj.get_FirstName(); g.edt_MiddleInitial.value = InfoObj.get_MiddleInitial(); g.edt_LastName.value = InfoObj.get_LastName(); btnNext.disabled = false; InitButtons(); } // END msninfo.htm
// msnidpss.htm
function msnidpss_LoadMe() { InitGlobals(); g.btnNext.disabled = false; InitButtons(); }
function msnidpss_NameSelectionClicked() { for (iElement = 0; iElement < 4; iElement++) { radioNameSelection[iElement].checked = false; } event.srcElement.checked = true; } // END msnidpss.htm
// msnconset.htm
function msnconset_LoadMe() { InitGlobals(); InitButtons(); } // END msnconset.htm
// msnpymnt.htm
function msnpymnt_LoadMe() { InitGlobals(); g.btnNext.disabled = false; InitButtons(); } // END msnpymnt.htm
// passsign.htm
function passsign_LoadMe() { InitGlobals(); InitButtons(); }
function passsign_WantPassportClicked() { if (event.srcElement == radioWantPassport[0]) { radioWantPassport[0].checked = true; radioWantPassport[1].checked = false; } else { radioWantPassport[0].checked = false; radioWantPassport[1].checked = true; } } // END passsign.htm
// passact.htm
// END passact.htm
// passreg.htm
function passreg_LoadMe() { InitGlobals(); g.edt_FirstName.value = InfoObj.get_FirstName(); g.edt_MiddleInitial.value = InfoObj.get_MiddleInitial(); g.edt_LastName.value = InfoObj.get_LastName(); InitButtons(); } // END passreg.htm
// register.htm
function register_LoadMe() { InitGlobals(); g.edt_FirstName.value = InfoObj.get_FirstName(); g.edt_MiddleInitial.value = InfoObj.get_MiddleInitial(); g.edt_LastName.value = InfoObj.get_LastName(); InitButtons(); } // END register.htm
// congrats.htm
function congrats_LoadMe() { InitGlobals(); InitButtons(); }
function congrats_AccessInternetClicked() { if (event.srcElement == radioAccessInternet[0]) { radioAccessInternet[0].checked = true; radioAccessInternet[1].checked = false; } else { radioAccessInternet[0].checked = false; radioAccessInternet[1].checked = true; } } // END congrats.htm
// eulawarn.htm
// END eulawarn.htm
// installd.htm
function installd_LoadMe() { InitGlobals(); InitButtons(); } // END installd.htm
// usemodem.htm
function usemodem_LoadMe() { InitGlobals(); InitButtons(); } // END usemodem.htm
// MISC Functions
// Function: DoOfflineOnlineModeFromStart
// Description: picks which direction to go based
// on OEM decision in OOBEWiz and if Modem Available
// if either fail then we do offline navigation by
// calling DoOffline.
//
function DoOfflineOnlineModeFromStart() { // online navigation if successful
// else offline navigation
// TODO: Needs to be dealt with
if ( 1/*need to get OOBEwiz default-OnlineMode */ && window.external.CheckDialReady() == ERR_COMM_NO_ERROR) { g.navigate("tapi.htm"); } else { g.navigate(".." + OfflineStart()); } }
// Function: OfflineStart
// Description: We want to start offline mode.
// Figure out which page to start at.
//
function OfflineStart() { if (!StatusObj.get_EULACompleted) { return "/setup/eula.htm"; } else if (!StatusObj.get_PIDCompleted) { return "/setup/pid.htm"; } else if (window.external.CheckDialReady == ERR_COMM_NOMODEM) { return "/setup/installd.htm"; } else if (DirObj.get_ISPSignup.toUpperCase != "MSN") { return "/html/ispsgnup/ispsgnup.htm"; } else if (StatusObj.get_ISPSignupCompleted) { return "/setup/congrats.htm"; } else { return "/setup/installd.htm"; } }
// Function: GoMouseTutorial
// Description: Sees if we already did the mouse
// tutorial if not then we see if there is a
// mouse tutorial to do then if there is one
// we check to see if it is an .exe or not
// if not we navigate to the page else we
// start a process
//
function GoMouseTutorial() { var bReturnValue = false; if (!StatusObj.get_MouseTutorCompleted()) { // get mouse tutorial string
var strMouseTutorial = DirObj.get_DoMouseTutorial(); if (strMouseTutorial.length != 0) { /* if .exe in mouse string then execute that app else navigate to the file */ // TODO: check to see if exe and create process
if (0) { // need to check if exe and execute else navigate
} else { g.navigate("../html/mouse/" + strMouseTutorial); } bReturnValue = true; } } // return if we navigated to the mouse tutorial or not
return bReturnValue; }
// Function: GoRegionalKeyboard
// Description: Sees if we already did the
// regional/keyboard settings if not
// we check to see if we should if so then
// we navigate to the regional settings page.
//
function GoRegionalKeyboard() { var bReturnValue = false;
if (!StatusObj.get_LanguageCompleted()) { if (DirObj.get_DoRegionalKeyboard() == 1) { g.navigate("regkb.htm"); bReturnValue = true; } } // return if we navigated to the page or not.
return bReturnValue; }
// Function: GoOEMHardwareCheck
// Description: Sees if we already did the
// OEM HardwareCheck if not we see if we
// should do the OEM hardware check. if we
// should do the check we navigate to the page
//
function GoOEMHardwareCheck() { var bReturnValue = false;
// if (!StatusObj.get_OEMHWCompleted())
{ if (DirObj.get_DoOEMHardwareCheck() == 1) { g.navigate("../html/oemhw/oemhw.htm"); bReturnValue = true; } } // return if we navigated to the page or not.
return bReturnValue; }
// Page Navigation
function GoCancel(ckpt) { if (g.spanRestore != null) { g.btnCancel.src = g_strPrefix + "images/lftclkw.gif"; } else { g.btnCancel.src = g_strPrefix + "images/clicked.gif"; } switch (ckpt) { case CKPT_TAPI: g.navigate(".." + OfflineStart()); break;
case CKPT_CONNECT: window.external.Hangup(); g.navigate("usemodem.htm"); break;
case CKPT_MODEMCANCEL: g.navigate(".." + OfflineStart()); break;
case CKPT_MSNINTRO: window.external.Hangup(); g.navigate(".." + OfflineStart()); break; case CKPT_MSNINFO: window.external.Hangup(); g.navigate(".." + OfflineStart()); break; case CKPT_MSNPAYMENT: break; case CKPT_PASSSIGN: break; case CKPT_PASSPORT: break; case CKPT_REGISTER: break; } }
function GoRestore(ckpt) { if (g.spanCancel != null) { g.btnRestore.src = g_strPrefix + "images/rhtclkw.gif"; } else { g.btnRestore.src = g_strPrefix + "images/clicked.gif"; }
switch (ckpt) { case CKPT_OEMISP1: alert("need to navigate"); break; } }
function GoBack(ckpt) { if (g.spanNext != null) { g.btnBack.src = g_strPrefix + "images/lftclk.gif"; } else { g.btnBack.src = g_strPrefix + "images/clicked.gif"; }
switch (ckpt) { case CKPT_TAPI: StoreTapi(); g.navigate("start.htm"); break;
case CKPT_MOUSE: g.navigate("../../setup/start.htm"); break;
case CKPT_REGKB: // go back to start since Mouse has already been completed.
g.navigate("../../setup/start.htm"); break; case CKPT_OEMHW: // go back to start since RegKB and Mouse have already been completed.
g.navigate("../../setup/start.htm"); break; case CKPT_USERINFO: StoreUserInfo(); g.navigate("regkb.htm"); break;
case CKPT_EULA: g.navigate("start.htm"); break; case CKPT_MSNINTRO: window.external.Hangup(); g.navigate("../setup/tapi.htm"); break;
case CKPT_WINMSNEULA: break;
case CKPT_IAASSIGNED: break;
case CKPT_PASSPORT: break;
case CKPT_MSNPORTAL: break; case CKPT_PID: g.navigate("eula.htm"); break; case CKPT_OEMISP1: g.navigate("pid.htm"); break; case CKPT_OEMISP2: g.navigate("speedy.htm"); break; case CKPT_OEMISP3: g.navigate("speedy2.htm"); break; case CKPT_OEMREG: break; case CKPT_INSTALLED: break;
case CKPT_CONGRATS: g.navigate("pid.htm"); break; case CKPT_MODEMCANCEL: window.navigate("tapi.htm"); break;
case CKPT_ERROR: break; case CKPT_REGKBCOMMIT: break; case CKPT_BADPID: break; case CKPT_MSNINFO: break; case CKPT_MSNIDPASS: break; case CKPT_MSNCONSET: break; case CKPT_MSNPAYMENT: break; case CKPT_PRIVACYGUARANTEE: break; case CKPT_PASSSIGN: break; case CKPT_PASSPORT: break; case CKPT_REGISTER: break; default: g.navigate(ckpt); break; } }
function GoNext(ckpt, oobePath) { if (g.spanBack != null) { g.btnNext.src = g_strPrefix + "images/rhtclk.gif"; } else { g.btnNext.src = g_strPrefix + "images/clicked.gif"; }
switch (ckpt) { case CKPT_START: // Store user name values into registry for later use.
InfoObj.set_FirstName = g.edt_FirstName.value; InfoObj.set_MiddleInitial = g.edt_MiddleName.value; InfoObj.set_LastName = g.edt_LastName.value;
// if we haven't done the mouse tutor we do that
// else we try the regional settings
// else we try the OEM hardware check
// else we go do Online/Offline Registration
if (GoMouseTutorial()) ; // do nothing we already navigated
else if (GoRegionalKeyboard()) ; // do nothing we already navigated
else if (GoOEMHardwareCheck()) ; // do nothing we already navigated
else DoOfflineOnlineModeFromStart(); break; case CKPT_TAPI: StoreTapi(); g.navigate("connect.htm"); break; case CKPT_DIALTONE: g.navigate("connect.htm"); break;
case CKPT_MOUSE: // we completed the mouse tutor so mark it
StatusObj.set_MouseTutorCompleted(); // if we haven't done the regional settings we do it
// else we try the OEM hardware check
// else we go do Online/Offline Registration
if (!GoRegionalKeyboard()) ; // do nothing we already navigated
else if (!GoOEMHardwareCheck()) ; // do nothing we already navigated
else DoOnlineOfflineMode(); break; case CKPT_REGKB: // we finished the REGKB so we set it as done.
StatusObj.set_LanguageCompleted(); StoreRegKB(); if (g.selRegion.selectedIndex != LangObj.get_RegionIndex) { window.external.shutdown(); } else { // if we haven't done the OEM hardware check we do it
// else we go do Online/Offline Registration
if (!GoOEMHardwareCheck()) ; // do nothing we already navigated
else DoOnlineOfflineMode(); } break; case CKPT_OEMHW: // we finished the OEM Hardware check so we set it as done.
StatusObj.set_OEMHWCompleted(); // then we go do Online/Offline Registration.
DoOnlineOfflineMode(); break; case CKPT_USERINFO: StoreUserInfo(); g.navigate("eula.htm"); /* if (window.parent.g_bHasPassport == true) { alert("Post User data to MSDATA\n" + "Stamp USER.EXE and post to Registry\n" + "Disconnect\n" + "Navigate to OFFLINE MODE\n"); } else if (window.parent.g_bOEMRegister == true) { alert("OEM add'l user info"); alert("Post to OEM"); if (window.parent.g_bWantPassport == true) { g.navigate("passact.htm"); } else { alert("Stamp USER.EXE and post to Registry"); alert("Disconnect"); alert("Navigate to OFFLINE MODE"); } } else if (window.parent.g_bWantPassport == true) { g.navigate("passact.htm"); } else { alert("Stamp USER.EXE and post to Registry"); alert("Disconnect"); alert("Navigate to OFFLINE MODE"); } */ break; case CKPT_EULA: var strDialog = "resizeable:no; scrollbars:no; status:no; " + "dialogHeight:200px; dialogWidth:450px; border:thick; center:yes; help:no; maximize:no; minimize:no; ";
if (radioEULA(0).checked == true) { StatusObj.set_EULACompleted = true; g.navigate(".." + OfflineStart()); } else if (window.showModalDialog("eulawarn.htm", "EULAWarn", strDialog)) { window.external.PowerDown(); } break; case CKPT_PID: if (ValidatePid()) { StorePid(); g.navigate(".." + OfflineStart()); } else { alert("You must enter a valid Product Key for Windows to continue"); } break; case CKPT_OEMISP1: g.navigate("speedy2.htm"); break; case CKPT_OEMISP2: g.navigate("speedy3.htm"); break; case CKPT_OEMISP3: g.navigate("congrats.htm"); break; case CKPT_CONGRATS: window.external.Finish(); break;
case CKPT_MSNINTRO: g.navigate("msneula.htm"); break;
case CKPT_WINMSNEULA: window.external.Hangup(); g.navigate(".." + OfflineStart()); break;
case CKPT_IAASSIGNED: break;
case CKPT_PASSPORT: break;
case CKPT_MSNPORTAL: break;
case CKPT_OEMREG: break; case CKPT_INSTALLED: break;
case CKPT_ERROR: break; case CKPT_REGKBCOMMIT: break; case CKPT_BADPID: break; case CKPT_MSNINFO: break; case CKPT_MSNIDPASS: break; case CKPT_MSNCONSET: break; case CKPT_MSNPAYMENT: break; case CKPT_PRIVACYGUARANTEE: break; case CKPT_PASSSIGN: break; case CKPT_PASSPORT: break; case CKPT_REGISTER: break; default: g.navigate(ckpt); break; } } // END Page Navigation
// Button Event Handlers and Initialization
// Function: InitGlobals
// Description: Sets up globals to point to buttons
// Since the buttons exist on the child frame,
// we want to have quick access to them without
// going through the collections.
// WARNING: Call this function at the top of XXX_LoadMe()
//
function InitGlobals() { g = document.frames("msoobeMain"); g_strPrefix = (arguments[0] != null) ? arguments[0] : "../"; }
function InitButtons() { InitPairedButton(g.spanNext, g.btnNext, g.btnNextText, "images/rhtdef.gif", "images/rhtdsld.gif", g.spanBack, "backButton", "backButtonText"); InitPairedButton(g.spanBack, g.btnBack, g.btnBackText, "images/lftdef.gif", "images/lftdsld.gif", g.spanNext, "backButton", "backButtonText"); InitPairedButton(g.spanRestore, g.btnRestore, g.btnRestoreText, "images/rhtdefw.gif", "images/rhtdsldw.gif", g.spanCancel, "cancelButton", "cancelButtonText"); InitPairedButton(g.spanCancel, g.btnCancel, g.btnCancelText, "images/rhtdefw.gif", "images/rhtdsldw.gif", g.spanRestore, "restoreButton", "restoreButtonText"); }
function InitPairedButton(span, btn, btnText, img, imgDisabled, span2, btnClass, btnTextClass) { if (span != null) { if (span2 == null) { btn.className = btnClass; btnText.className = btnTextClass; btnText.style.textAlign="center"; btnText.style.width = "105px"; btnText.style.left = btn.style.left; } if (btn.disabled == null || !btn.disabled) { if (span2 == null) { btn.src = g_strPrefix + "images/default.gif"; } else { btn.src = g_strPrefix + img; } btnText.style.color= "black"; } else { if (span2 == null) { btn.src = g_strPrefix + "images/disabled.gif"; } else { btn.src = g_strPrefix + imgDisabled; } btnText.style.color= "gray"; } span.onmouseover = HoverOnButton; span.onmouseout = HoverOffButton; } }
///////////////////////////////////////////////////////////
// Function: HoverOnButton
// Description: This function is attached to a onmouseover
// event for a button span. We use the event source to
// determine which button it occured on and change that
// button to it's higlighted or hover state.
//
function HoverOnButton() { switch (g.event.srcElement) { case g.btnCancel: case g.btnCancelText: HoverOnPairedButton(g.btnCancel, g.btnCancelText, "images/lfthvr.gif", g.btnRestore); break;
case g.btnRestore: case g.btnRestoreText: HoverOnPairedButton(g.btnRestore, g.btnRestoreText, "images/rhthvrw.gif", g.btnCancel); break;
case g.btnBack: case g.btnBackText: HoverOnPairedButton(g.btnBack, g.btnBackText, "images/lfthvr.gif", g.btnNext); break;
case g.btnNext: case g.btnNextText: HoverOnPairedButton(g.btnNext, g.btnNextText, "images/rhthvr.gif", g.btnBack); break; } }
function HoverOnPairedButton(btn, btnText, img, btn2) { if (btn.disabled == null || !btn.disabled) { if (g.event.fromElement != btn && g.event.fromElement != btnText) { if (btn2 == null) { btn.src = g_strPrefix + "images/hover.gif"; } else { btn.src = g_strPrefix + img; } btnText.style.fontWeight = "bold"; btnText.style.color = "yellow"; } } }
///////////////////////////////////////////////////////////
// Function: HoverOffButton
// Description: This function is attached to a onmouseout
// event for a button span. We use the event source to
// determine which button it occured on and change that
// button back to it's normal state.
//
function HoverOffButton() { switch (g.event.srcElement) { case g.btnCancel: case g.btnCancelText: HoverOffPairedButton(g.btnCancel, g.btnCancelText, "images/lftdefw.gif", g.btnRestore); break;
case g.btnRestore: case g.btnRestoreText: HoverOffPairedButton(g.btnRestore, g.btnRestoreText, "images/rhtdefw.gif", g.btnCancel); break;
case g.btnBack: case g.btnBackText: HoverOffPairedButton(g.btnBack, g.btnBackText, "images/lftdef.gif", g.btnNext); break;
case g.btnNext: case g.btnNextText: HoverOffPairedButton(g.btnNext, g.btnNextText, "images/rhtdef.gif", g.btnBack); break; } }
function HoverOffPairedButton(btn, btnText, img, btn2) { if (btn.disabled == null || !btn.disabled) { if (g.event.toElement != btn && g.event.toElement != btnText) { if (btn2 == null) { btn.src = g_strPrefix + "images/default.gif"; } else { btn.src = g_strPrefix + img; } btnText.style.fontWeight = "normal"; btnText.style.color = "black"; } } } // END Button Event Handlers and Initialization
</script> </HEAD>
<FRAMESET FRAMEBORDER=no COLS="100%" ROWS="100%"> <FRAME NAME="msoobeMain" SRC="setup/start.htm" FRAMEBORDER=no SCROLLING=no> </FRAMESET> </HTML>
|