home *** CD-ROM | disk | FTP | other *** search
/ Chip 2009 November / Chip_2009.11_CD.iso / I386 / OOBEUTIL.JS_ / oobeutil.js
Encoding:
Text File  |  2007-01-24  |  9.5 KB  |  415 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8. var ERR_ACT_UNINITIALIZED         = -1;
  9. var ERR_ACT_SUCCESS               = 0;
  10. var ERR_ACT_INACCESSIBLE          = 1;
  11. var ERR_ACT_INVALID_PID           = 2;
  12. var ERR_ACT_USED_PID              = 3;
  13. var ERR_ACT_INTERNAL_WINDOWS_ERR  = 4;
  14. var ERR_ACT_BLOCKED_PID           = 5;
  15. var ERR_ACT_CORRUPTED_PID         = 6;
  16. var ERR_ACT_NETWORK_FAILURE       = 7;
  17. var ERR_ACT_DEDICATED_PID_ENTRY   = 8;
  18.  
  19.  
  20. var COMPAREMODE_BINARY  = 0;
  21. var COMPAREMODE_TEXT    = 1;
  22.  
  23.  
  24. var g_ProductName = "Windows XP";
  25. var g_ActivationRequired = window.external.NeedActivation();
  26. var g_DoActivation = false;
  27. var g_ActivationStatus = ERR_ACT_UNINITIALIZED;
  28. var g_act_specific_error = 0;
  29. var g_OOBEMUIDir = window.external.GetOOBEMUIPath();
  30.  
  31.  
  32. var L_MissingOEMName_Text = "╬°ΦßΩα: ε≥±≤≥±≥Γ≤σ≥ φατΓαφΦσ ╚┬╥ Γ ±σΩ÷ΦΦ [Branding] ⌠αΘδα OOBEINFO.INI.";
  33.  
  34.  
  35. var DebugObj = null;
  36.  
  37. var APP_UPDATE_MODE = 6;
  38.  
  39.  
  40. var KeyEsc = 0x1B;
  41. var KeyEnter = 0xD;
  42. var KeyBackSpc = 0x8;
  43. var KeyDelete = 0x2E;
  44. var KeyTab = 0x9;
  45. var KeyDwnArrow = 0x28;
  46. var KeyUpArrow = 0x26;
  47. var KeyLeftArrow = 0x25;
  48. var KeyRightArrow = 0x27;
  49.  
  50.  
  51. if (null == DebugObj){
  52.     DebugObj = new Object;
  53.     DebugObj = window.external.Debug;
  54. }
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64. function trace(sMsg)
  65. {
  66.     DebugObj.Trace(sMsg);
  67. }
  68.  
  69.  
  70. function Navigate(strURL)
  71. {
  72.     
  73.     try
  74.     {
  75.        g.document.body.style.cursor = "default";
  76.     }
  77.     catch(e){}
  78.  
  79.     strURL = g_OOBEMUIDir + "\\" + strURL;
  80.  
  81.     trace("Navigate: " + strURL);
  82.     g.navigate(strURL);
  83. }   
  84.  
  85.  
  86. var g_CheckFinishAgain = true;
  87. function CheckFinishStatus()
  88. {
  89.     if (g_CheckFinishAgain)
  90.     {
  91.         if (g_DoActivation)
  92.             g_IsActivationSuccessful = true;
  93.         else
  94.             g_IsActivationSuccessful = false;
  95.         if (g_PostToMS)
  96.             g_IsMSRegistrationSuccessful = true;
  97.         else
  98.             g_IsMSRegistrationSuccessful = false;
  99.  
  100.         if (g_PostToOEM)
  101.             g_IsOEMRegistrationSuccessful = true;
  102.         else
  103.             g_IsOEMRegistrationSuccessful = false;
  104.     }
  105. }
  106.  
  107. <!--REQUIRED FUNCTION NAME-->
  108. function ActivationComplete(status, status_errcode)
  109. {
  110. g_CheckFinishAgain = true;
  111.     if ( status != null) {
  112.  
  113.         g_ActivationStatus = status;
  114.  
  115.         if ( g_ActivationStatus != ERR_ACT_SUCCESS ) {
  116.  
  117.             trace("Activation failed.  Error = " + g_ActivationStatus);
  118.  
  119.             
  120.             g_IsActivationSuccessful      = false;
  121.             g_IsMSRegistrationSuccessful  = false;
  122.             g_IsOEMRegistrationSuccessful = false;
  123.  
  124.             g_act_specific_error = status_errcode;
  125.             GoNavigate(CKPT_ACT_MSG);
  126.             return;
  127.         }
  128.         else
  129.         {
  130.             CheckFinishStatus();
  131.             
  132.             g_CheckFinishAgain = false;
  133.         }
  134.  
  135.         g_ActivationRequired = false;
  136.         g_DoActivation = false;
  137.         StatusObj.set_Status(MS_REGISTRATION, true);
  138.     }
  139.  
  140.     if (g_PostToOEM)
  141.     {
  142.         if (0 == RegisterObj.get_OEMAddRegPage)
  143.         {
  144.             window.external.PostRegData(POST_TO_OEM);
  145.             StatusObj.set_Status(OEM_REGISTRATION, true);
  146.             g_IgnoreDialErr = true;
  147.             PopCKPT(CKPT_REGDIAL);
  148.             PopCKPT(CKPT_REGISTER3);
  149.             PopCKPT();    
  150.             CheckFinishStatus();
  151.             if (InReminderMode())
  152.                 GoNavigate(CKPT_ACT_MSG);      
  153.             else
  154.                 GoNavigate(CKPT_ICONN);        
  155.         }
  156.         else
  157.         {
  158.             
  159.             
  160.             
  161.             
  162.             g_IgnoreDialErr = true;
  163.  
  164.             if ( APP_REG_MODE == window.external.Directions.get_AppMode() )
  165.             {
  166.                 Navigate("html\\oemreg\\roemadd.htm");
  167.             }
  168.             else
  169.             {
  170.                 Navigate("html\\oemreg\\oemadd.htm");
  171.             }
  172.         }
  173.     }
  174.     else
  175.     {
  176.         g_IgnoreDialErr = true;
  177.  
  178.         PopCKPT(CKPT_REGDIAL);
  179.         PopCKPT(CKPT_REGISTER3);
  180.         PopCKPT();    
  181.         CheckFinishStatus();
  182.         if (InReminderMode())
  183.             GoNavigate(CKPT_ACT_MSG);    
  184.         else
  185.             GoNavigate(CKPT_ICONN);      
  186.     }
  187.  
  188.     if ((g_PostToMS && g_PostToOEM && (1 == RegisterObj.get_PostToOEM)) ||
  189.         ((0 == RegisterObj.get_PostToOEM) && g_PostToMS))
  190.     {
  191.         if ( APP_REG_MODE == window.external.Directions.get_AppMode() )
  192.         {
  193.             
  194.             
  195.             
  196.             window.external.StopRemind(REMIND_REG);
  197.         }
  198.         else
  199.         {
  200.             
  201.             
  202.             
  203.             window.external.DeleteRemind(REMIND_REG);
  204.         }
  205.     }
  206. }
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213. var SORT_DEFAULT                = 0x0;     
  214.  
  215. var LANG_JAPANESE               = 0x11;
  216. var LANG_KOREAN                 = 0x12;
  217. var LANG_CHINESE                = 0x04;
  218.  
  219. var SUBLANG_KOREAN              = 0x01;    
  220. var SUBLANG_CHINESE_TRADITIONAL = 0x01;    
  221. var SUBLANG_CHINESE_SIMPLIFIED  = 0x02;    
  222. var SUBLANG_DEFAULT             = 0x01;    
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232. function MAKELANGID(p, s)
  233. {
  234.     return (( s << 10) | p);
  235. }
  236.  
  237. function MAKELCID(lgid, srtid)
  238. {
  239.     return ((srtid << 16) | lgid);
  240. }
  241.  
  242. function IsKoreanLocale() {
  243.    var language = ApiObj.get_UserDefaultUILanguage();
  244.    if (language == MAKELCID(MAKELANGID(LANG_KOREAN, SUBLANG_KOREAN), SORT_DEFAULT)) {
  245.       return true;
  246.    }
  247.  
  248.    return false;
  249. }
  250.  
  251. function IsFarEastLocale()
  252. {
  253.     
  254.     
  255.     var language = ApiObj.get_UserDefaultUILanguage();
  256.  
  257.     if (language == MAKELCID(MAKELANGID(LANG_KOREAN, SUBLANG_KOREAN), SORT_DEFAULT) ||
  258.         language == MAKELCID(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL), SORT_DEFAULT) ||
  259.         language == MAKELCID(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED), SORT_DEFAULT) ||
  260.         language == MAKELCID(MAKELANGID(LANG_JAPANESE, SUBLANG_DEFAULT), SORT_DEFAULT))
  261.         return true
  262.     else
  263.         return false;
  264. }
  265.  
  266. function StorePid()
  267. {
  268.     var strPid = "";
  269.  
  270.     for (var i = 0; i < 4; i++)
  271.     {
  272.         strPid += g.edtProductKey[i].value;
  273.         strPid += '-';
  274.     }
  275.  
  276.     strPid += g.edtProductKey[i].value;
  277.  
  278.     PidObj.set_PID(strPid);
  279. }
  280.  
  281.  
  282.  
  283.  
  284.  
  285. var g_AU_radiosticky = null;  
  286. var L_IntroSlipstream_Text = "└Γ≥ε∞α≥Φ≈σ±Ωεσ εßφεΓδσφΦσ Windows ∞εµσ≥ ≡σπ≤δ ≡φε ∩≡εΓσ≡ ≥ⁿ φαδΦ≈Φσ ∩ε±δσΣφΦ⌡ Γαµφ√⌡ εßφεΓδσφΦΘ Σδ  ²≥επε Ωε∞∩ⁿ■≥σ≡α Φ αΓ≥ε∞α≥Φ≈σ±ΩΦ ≤±≥αφαΓδΦΓα≥ⁿ Φ⌡. ┬αµφ√σ εßφεΓδσφΦ  - ²≥ε Φ±∩≡αΓδσφΦ  ßστε∩α±φε±≥Φ, Ω≡Φ≥Φ≈σ±ΩΦσ εßφεΓδσφΦ  Φ ∩αΩσ≥√ εßφεΓδσφΦ .";
  287. var L_IntroUpdate_Text = "┴δαπεΣα≡Φ∞ Γα± τα ≤±≥αφεΓΩ≤ ╧αΩσ≥α εßφεΓδσφΦ  2 Σδ  Windows XP. ╧≡σµΣσ ≈σ∞ ταΓσ≡°Φ≥ⁿ ∩≡ε÷σ±± ≤±≥αφεΓΩΦ, ≡σΩε∞σφΣ≤σ≥±  ∩εΣ∩Φ±α≥ⁿ±  φα └Γ≥ε∞α≥Φ≈σ±Ωεσ εßφεΓδσφΦσ. └Γ≥ε∞α≥Φ≈σ±Ωεσ εßφεΓδσφΦσ Windows ∞εµσ≥ ≡σπ≤δ ≡φε ∩≡εΓσ≡ ≥ⁿ φαδΦ≈Φσ ∩ε±δσΣφΦ⌡ Γαµφ√⌡ εßφεΓδσφΦΘ Σδ  ²≥επε Ωε∞∩ⁿ■≥σ≡α Φ αΓ≥ε∞α≥Φ≈σ±ΩΦ ≤±≥αφαΓδΦΓα≥ⁿ Φ⌡. ┬αµφ√σ εßφεΓδσφΦ  - ²≥ε Φ±∩≡αΓδσφΦ  ßστε∩α±φε±≥Φ, Ω≡Φ≥Φ≈σ±ΩΦσ εßφεΓδσφΦ  Φ ∩αΩσ≥√ εßφεΓδσφΦ .";
  288.  
  289. function AutoUpdateLoadMe()
  290. {
  291.     InitFrameRef();
  292.  
  293.     
  294.     if (window.external.GetNoWelcomeFinish())
  295.     {
  296.         g.btnNext = g.btnFinish;
  297.         g.FiniBtnLocalText.style.display = "inline";
  298.         g.btnFinish.style.display = "inline";
  299.     }
  300.     else
  301.     {
  302.         g.NextBtnLocalText.style.display = "inline";
  303.         g.btnNext.style.display = "inline";
  304.     }
  305.  
  306.     
  307.     
  308.     g.tabl3.style.width="105%"    
  309.  
  310.     
  311.     
  312.     
  313.     if (g_AU_radiosticky == null)
  314.         g.btnNext.disabled = true;
  315.     else if (g_AU_radiosticky == 1)
  316.         g.radioAgree.checked = true;
  317.     else
  318.         g.radioDisAgree.checked = true;
  319.  
  320.     InitNewButtons();
  321.     g.btnNext.onclick = AUNextBtnHandler;
  322.  
  323.     if (APP_UPDATE_MODE == window.external.Directions.get_AppMode())
  324.     {
  325.         g.BackBtnLocalText.style.display = "none";
  326.         g.btnBack.style.display = "none";
  327.         g_FirstFocusElement = g.au_privacy_policy_link;
  328.         g_FirstFocusElement.focus();
  329.         g.AutoUpdateIntro.innerText = L_IntroUpdate_Text;
  330.     }
  331.     else
  332.     {
  333.         g_FirstFocusElement = g.btnBack;
  334.         g_FirstFocusElement.focus();
  335.         g.AutoUpdateIntro.innerText = L_IntroSlipstream_Text;
  336.     }
  337.  
  338.     try
  339.     {
  340.         g.document.body.onkeydown = AUOnKeyDown;
  341.     }
  342.     catch(e)
  343.     {
  344.     }
  345. }
  346.  
  347. function AUNextBtnHandler()
  348. {
  349.     StoreAU();
  350.     GoNext();
  351. }
  352.  
  353. function AUOnKeyDown()
  354. {
  355.  
  356.     if (KeyEsc == g.event.keyCode)
  357.     {
  358.         g.event.returnValue = false;
  359.         g.event.keyCode = 0;
  360.     }
  361.  
  362.     OnKeyDown();
  363. }
  364.  
  365. function AURadioClicked()
  366. {
  367.     
  368.     if(g.btnNext.disabled && (g.radioAgree.checked || g.radioDisAgree.checked))
  369.     {
  370.         g.btnNext.onmouseover = HandleNextButtonMouseOver;
  371.         g.btnNext.onmouseout  = HandleNextButtonMouseOut;
  372.         g.btnNext.onmousedown = HandleNextButtonMouseDown;
  373.         g.btnNext.className="newbuttonsNext";
  374.         g.btnNext.disabled = false;
  375.         g.btnNext.onclick = AUNextBtnHandler;
  376.         g.btnNext.focus();
  377.     }
  378.  
  379.     if (g.radioAgree.checked)
  380.     {
  381.         g_AU_radiosticky=1;
  382.     }
  383.     else
  384.     {
  385.         g_AU_radiosticky=2;
  386.     }
  387. }
  388.  
  389. function StoreAU()
  390. {
  391.     AutoUpdateObj.set_Acceptance = g.radioAgree.checked;
  392. }
  393.  
  394.  
  395.  
  396. function navigatetoPrivacy(PrivPage)
  397. {
  398.     if(g_CurrentCKPT == CKPT_REGISTER1) {
  399.         Reg1SaveRadioState();
  400.     }
  401.  
  402.     if(g_CurrentCKPT == CKPT_REGISTER3) {
  403.         Reg3SaveSettings();
  404.     }
  405.  
  406.     if (PrivPage == "MS")
  407.         Navigate("setup\\prvcyMS.htm");
  408.     else if (PrivPage == "Activation_Policy")
  409.         Navigate("setup\\act_plcy.htm");
  410.     else if (PrivPage == "AutoUpdate_Policy")
  411.         Navigate("setup\\au_plcy.htm");
  412.     else
  413.         Navigate("setup\\OEMpriv.htm");
  414. }
  415.