home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 May / Chip_2001-05_cd2.bin / ChipCD / browsery / netscape601_eng / n2p.xpi / install.js
Encoding:
JavaScript  |  2001-02-02  |  5.6 KB  |  197 lines

  1. // this function verifies disk space in kilobytes
  2. function verifyDiskSpace(dirPath, spaceRequired)
  3. {
  4.   var spaceAvailable;
  5.  
  6.   // Get the available disk space on the given path
  7.   spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
  8.  
  9.   // Convert the available disk space into kilobytes
  10.   spaceAvailable = parseInt(spaceAvailable / 1024);
  11.  
  12.   // do the verification
  13.   if(spaceAvailable < spaceRequired)
  14.   {
  15.     logComment("Insufficient disk space: " + dirPath);
  16.     logComment("  required : " + spaceRequired + " K");
  17.     logComment("  available: " + spaceAvailable + " K");
  18.     return(false);
  19.   }
  20.  
  21.   return(true);
  22. }
  23.  
  24. function updateWinReg4Ren8dot3() 
  25. {
  26.   var fProgram      = getFolder("Program");
  27.   var fTemp         = getFolder("Temporary");
  28.  
  29.   //Notes:
  30.   // can't use a double backslash before subkey - Windows already puts it in.            
  31.   // subkeys have to exist before values can be put in.
  32.   var subkey;  // the name of the subkey you are poking around in
  33.   var valname; // the name of the value you want to look at
  34.   var value;   // the data in the value you want to look at.
  35.   var winreg = getWinRegistry() ;
  36.  
  37.   if(winreg != null) 
  38.   {
  39.     // Here, we get the current version.
  40.     winreg.setRootKey(winreg.HKEY_CURRENT_USER) ;  // CURRENT_USER
  41.     subkey  = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce" ;
  42.  
  43.     winreg.createKey(subkey,"");
  44.     valname = "ren8dot3";
  45.     value   = fProgram + "ren8dot3.exe " + fTemp + "ren8dot3.ini";
  46.     err     = winreg.setValueString(subkey, valname, value);
  47.   }
  48. }
  49.  
  50. function prepareRen8dot3(listLongFilePaths)
  51. {
  52.   var fTemp                 = getFolder("Temporary");
  53.   var fProgram              = getFolder("Program");
  54.   var fRen8dot3Ini          = getWinProfile(fTemp, "ren8dot3.ini");
  55.   var bIniCreated           = false;
  56.   var fLongFilePath;
  57.   var sShortFilePath;
  58.  
  59.   if(fRen8dot3Ini != null)
  60.   {
  61.     for(i = 0; i < listLongFilePaths.length; i++)
  62.     {
  63.       fLongFilePath   = getFolder(fProgram, listLongFilePaths[i]);
  64.       sShortFilePath  = File.windowsGetShortName(fLongFilePath);
  65.       if(sShortFilePath)
  66.       {
  67.         fRen8dot3Ini.writeString("rename", sShortFilePath, fLongFilePath);
  68.         bIniCreated = true;
  69.       }
  70.     }
  71.  
  72.     if(bIniCreated)
  73.       updateWinReg4Ren8dot3() ;
  74.   }
  75.  
  76.   return(0);
  77. }
  78.  
  79. function updateNet2FoneIni()
  80. {
  81.   var fWindows;
  82.   var wpN2PIni;
  83.   var wpErr;
  84.  
  85.   fWindows = getFolder("Windows");
  86.   wpN2PIni = getWinProfile(fWindows, "net2fone.ini");
  87.  
  88.   wpErr = wpN2PIni.writeString("AccountInfo", "source", "NETSCAPE_UREG");
  89.   wpErr = wpN2PIni.writeString("URLS"       , "REGURL", "http://www.net2phone.com/cgi-bin/clienturl.cgi?brand=netscape&language=english&action=%X%&acctnum=%A%&source=%S%"); 
  90.   return(wpErr);
  91. }
  92.  
  93. function getN2PFolder()
  94. {
  95.   var fN2P;
  96.   var winReg = getWinRegistry();
  97.  
  98.   if(winReg != null)
  99.   {
  100.     winReg.setRootKey(winReg.HKEY_LOCAL_MACHINE);
  101.     subKey    = "SOFTWARE\\Net2Phone\\Install";
  102.     valueName = "Directory";
  103.     fN2Pstr   = winReg.getValueString(subKey, valueName);
  104.     if((fN2Pstr == null) || (fN2Pstr == ""))
  105.     {
  106.       subKey          = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion";
  107.       valueName       = "ProgramFilesDir";
  108.       fCommonFilesDir = winReg.getValueString(subKey, valueName);
  109.       fN2Pstr         = fCommonFilesDir + "\\Net2Phone\\";
  110.     }
  111.  
  112.     fN2P = getFolder("file:///", fN2Pstr);
  113.   }
  114.   else
  115.   {
  116.     logComment("getWinRegsitry() failed: " + winReg);
  117.   }
  118.  
  119.   return fN2P;
  120. }
  121.  
  122. // main
  123. var srDest;
  124. var err;
  125. var cErr;
  126. var fN2P;
  127. var fN2PFinal;
  128. var fN2PExecute;
  129. var fileN2PIni;
  130. var fWindows;
  131. var fTemp;
  132. var rv;
  133.  
  134. srDest = 2913;
  135. err    = initInstall("Net2Phone", "/IDT/Net2Phone", "10.2.8.0"); 
  136. logComment("initInstall() returned: " + err);
  137.  
  138. fN2PFinal = getN2PFolder();
  139. fTemp     = getFolder("Temporary");
  140. fN2P      = getFolder("Temporary");
  141. if(verifyDiskSpace(fN2P, srDest))
  142. {
  143.   setPackageFolder(fN2PFinal);
  144.   err  = addDirectory("/IDT/Net2Phone",
  145.                       "10.2.8.0",
  146.                       "net2phone",          // dir name in jar to extract 
  147.                       fN2P,                 // Where to put this file (Returned from getFolder) 
  148.                       "",                   // subdir name to create relative to communicatorFolder
  149.                       true);                // Force Flag 
  150.   logComment("addDirectory() returned: " + err);
  151.  
  152.   if(!err)
  153.   {
  154.     fWindows   = getFolder("Windows");
  155.     fileN2PIni = getFolder("file:///", fWindows + "net2fone.ini");
  156.     rv         = File.exists(fileN2PIni);
  157.     logComment("fileExists() returned: " + rv);
  158.     if(rv == false)
  159.     {
  160.       logComment("File not found: " + fileN2PIni);
  161.       fileN2PIni = getFolder("file:///", fTemp + "net2fone.ini");
  162.       cErr       = File.copy(fileN2PIni, fWindows);
  163.       logComment("File.copy() of " + fileN2PIni + " returned: " + cErr);
  164.     }
  165.     else
  166.     {
  167.       logComment("File found: " + fileN2PIni);
  168.       wpErr = updateNet2FoneIni();
  169.       logComment("updateNet2Fone returned: " + wpErr);
  170.     }
  171.   }
  172.   else
  173.     cancelInstall(err);
  174.  
  175.   // check return value
  176.   if(!err)
  177.   {
  178.     fN2PExecute = getFolder(fN2P, "setupN2P.exe");
  179.     err = fileExecute(fN2PExecute, "/nofax /silent /donotstart");
  180.     logComment("fileExecute() returned: " + err);
  181.  
  182.     fileN2PIni = getFolder("file:///", fTemp + "net2fone.ini");
  183.     err = fileDelete(fileN2PIni);
  184.     logComment("fileDelete() returned: " + err);
  185.  
  186.     err = performInstall(); 
  187.     logComment("performInstall() returned: " + err);
  188.   }
  189.   else
  190.     cancelInstall(err);
  191. }
  192. else
  193.   cancelInstall(INSUFFICIENT_DISK_SPACE);
  194.  
  195. // end main
  196.  
  197.