<?php
//-->-->-->-->-->-->-->-->-->-->-->-->-->-->
   
  $bNewFile = false;     //-- 
  $sFilePath = '';       //-- the name and full path to the text file
  $sFileContents = '';   //-- the contents of the text file
  $aaTextLines = '';     //--
  $iBackups = 4;         //-- the number of backup files to create

  $sFilePath = $_POST['saveFilePath'];
  $sFilePathEncoded = htmlspecialchars($sFilePath);
  $sFilePathUrlEncoded = htmlspecialchars(urlencode($sFilePath));

  $sCurrentDirectory = dirname($sFilePath);
  $sCurrentWebDirectory =   
    str_replace('/usr50/home/retrovox/public_html', '', $sCurrentDirectory);

  $sFileContents = $_POST['fileContents'];

  //-- This is the base-name for the backup files
  $sBackupFileBaseName = preg_replace("/\..*$/", "-old", $sFilePath);

  if ($sFilePath == '')
  {
    echo "
      <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 3.2//EN'>
      <html>
       <META HTTP-EQUIV='Content-Type' CONTENT='text/html; CHARSET='iso-8859-1'>
       <META HTTP-EQUIV='Keywords'
		CONTENT='Retrovox, edit, file, unspecified'>
       <META HTTP-EQUIV='Description'
		CONTENT='Retrovox notepad, file-name unspecified'>
	      <LINK REV='made' HREF='mailto:matth3wbishop@yahoo.com'>

      <head><title>Retrovox Notepad, (No file name specified)</title>
      </head>
      <body>
      <center><h1>No file name specified</h1></center>
      <p>You did not specify any file to be edited.
        <ul>
          <li>
          This may indicate that the script <em>retrovox-notepad.php</em>
          is not working correctly.</li>
          <li>
          Or it may indicate that you have typed the address of this 
          page directly in your web-browser rather than arriving here after
          submiting the form in the script <em>retrovox-notepad.php</em></li>
          <li>
          No changes to any text file have been saved.</li>
        </ul>
        <ol  type = 'a'>
          <li>
          <a href = 'retrovox-notepad-choose-file.php'>
          Choose a file to edit
          </a></li>
          <li>
          <a href = 'move-file-form.php'>
          Copy a file
          </a></li>
        </ol>
      </body>
      </html>";
      exit;
  } //-- if no file specified

  if (!is_writable($sFilePath))
  {
    echo "
      <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 3.2//EN'>
      <html>
       <META HTTP-EQUIV='Content-Type' CONTENT='text/html; CHARSET='iso-8859-1'>
       <META HTTP-EQUIV='Keywords'
		CONTENT='Retrovox, edit, file, unwritable'>
       <META HTTP-EQUIV='Description'
		CONTENT='Retrovox notepad, file unwritable'>
	      <LINK REV='made' HREF='mailto:matth3wbishop@yahoo.com'>

      <head><title>Retrovox Notepad, (File is not writable)</title>
      </head>
      <body>
      <center><h1>The file is not writable</h1></center>
      <p>
       The file-name \"<em>$sFilePathEncoded</em>\" has its permissions
       set so that is cannot be edited (updated or modified in any way).
       You may be able to overcome this problem by typing 
       <pre>
           chmod a+w $sFilePath
       </pre>
       when you are logged into the Retrovox server.</p>
       <p>
       This message may indicate that the script retrovox-notepad.php is not
       working properly. No changes to the text file have been saved.
       </p>
       <br>
       <ol>
         <li><a href = 'retrovox-notepad-choose-file.php'>
         Re-enter the file name</a></li>
         <li><a href = \"$sFilePath\">
         View the contents of the directory (folder)</a></li>
         </ol>
           
      </body>
      </html>";
      return;
  } 
  //-- if file not writeable

  if (is_dir($sFilePath))
  {
    echo "
      <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 3.2//EN'>
      <html>
       <META HTTP-EQUIV='Content-Type' CONTENT='text/html; CHARSET='iso-8859-1'>
       <META HTTP-EQUIV='Keywords'
		CONTENT='Retrovox, edit, file, directory'>
       <META HTTP-EQUIV='Description'
		CONTENT='Retrovox notepad, the path is a directory'>
	      <LINK REV='made' HREF='mailto:matth3wbishop@yahoo.com'>

      <head><title>Retrovox Notepad, (The path is a directory)</title>
      </head>
      <body>
      <center><h1>The path is a directory</h1></center>
	  <p>
          The file-name \"<em>$sFilePathEncoded</em>\" for the file which you
          have been editing is a directory (folder). This probably indicates 
          that the script retrovox-notepad.php or retrovox-notepad-new.php 
          is not working properly.
          The Retrovox Notepad system is for editing text files located on the
          server. 
          </p>
          <br>
          <a href = 'retrovox-notepad-choose-file.php'>
          Re-enter the file name</a>
      </body>
      </html>";
     return; 
  } //-- if file is a directory

  if (file_exists($sFilePath))
  {
    for ($ii = $iBackups; $ii > 0; $ii--)
    {
       $sNewName = "$sBackupFileBaseName$ii.txt";
       $sOldName = "$sBackupFileBaseName".($ii-1).".txt";
       if (file_exists($sOldName))
       {
          rename($sOldName, $sNewName);
       } //-- if
    } //-- for

    rename($sFilePath, $sBackupFileBaseName."1.txt");
    //unlink($sFilePath);
  } //-- if file exists

  //-- save the changes
  $fileHandler = fopen($sFilePath, "w");
  fwrite($fileHandler, stripslashes($sFileContents));
  fclose($fileHandler);


//--<--<--<--<--<--<--<--<--<--<--<--<--<--<
?>

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 3.2//EN'>
<html>
 <META HTTP-EQUIV='Content-Type' CONTENT='text/html; CHARSET='iso-8859-1'>
 <META HTTP-EQUIV='Keywords'
          CONTENT='Retrovox, edit, file, save'>
 <META HTTP-EQUIV='Description'
          CONTENT='Retrovox notepad, save file changes'>
        <LINK REV='made' HREF='mailto:matth3wbishop@yahoo.com'>

<head><title>Retrovox Notepad  (File changes saved)</title>
</head>
<body>
<center><h1>The file has been saved:</h1></center>
    <p>
    The changes which you made to the text file<br>
    &nbsp;&nbsp;<em><?=$sFilePathEncoded?></em><br>
    have been saved.
    </p>
    <br>

<?php
//-->-->-->-->-->-->-->-->-->-->-->-->-->-->
    echo "
     <strong>The following backup files for this text file currently exist
     </strong>
     <ul>";
    for ($ii = $iBackups; $ii > 0; $ii--)
    {
       $sBackupFileName = "$sBackupFileBaseName$ii.txt";
       $sCurrentPath = 
          htmlspecialchars(urlencode(
            $sBackupFileName));
       $sCurrentWebPath = 
          htmlspecialchars(
            str_replace(
              '/usr50/home/retrovox/public_html', '', $sBackupFileName));

       if (file_exists($sBackupFileName))
       {
          echo "
            <li>$sBackupFileName 
          (<a href = \"$sCurrentWebPath\">view</a>|
          <a href = \"/manage/notepad/retrovox-notepad.php?file=$sCurrentPath\">edit</a>)</li>";
       } //-- if
    } //-- for
    echo "</ul>";

    $sFileWebPath = 
          htmlspecialchars(
            str_replace(
              '/usr50/home/retrovox/public_html', '', $sFilePath));

//--<--<--<--<--<--<--<--<--<--<--<--<--<--<
?>

    <ol>
      <li><a href = '<?=$sFileWebPath?>'>
      View the file as a web-page</a></li>
      <li>
<a href = 'retrovox-notepad.php?file=<?=htmlspecialchars($sFilePath)?>'>
      Continue editing the same file</a></li>
      <li>
<a href = 'retrovox-notepad-choose-file.php?file=<?=$sFilePathUrlEncoded?>'>
      Edit a different or new file</a></li>
    </ol>   

    <form  action = 'retrovox-notepad.php'  method = 'get'>
    <input   type = 'submit'  
            value = 'Switch to a Different File'>
    <select  name = 'file'>
<?php
//-->-->-->-->-->-->-->-->-->-->-->-->-->-->

      $aaFiles = '';
      $dh  = opendir($sCurrentDirectory);
      while (false !== ($sMemberFileName = readdir($dh)))
      {
         $aaFiles[] = $sMemberFileName;
      }
       
      sort($aaFiles);
      reset($aaFiles);
      
      foreach ($aaFiles as $sMemberFileName)
      {
        echo "
        <option 
        value = '".htmlspecialchars($sCurrentDirectory."/".$sMemberFileName)."'>
          $sMemberFileName</option> ";
      }


//--<--<--<--<--<--<--<--<--<--<--<--<--<--<
?>
    </select>
    </form>

</body>
</html>