<?php
// voiceover.php
// RJM Programming
// May, 2023
ini_set('max_execution_time', 60000); 
 
$pfolder='';
$ppdf='';
$wostuff='';
$vssfi='img%03d.png';
$bn='*';
$bntwo='.*';
$filepath="";
$pfolderpref='';
if (strpos($_SERVER['SERVER_NAME'], 'rjmprogramming.com.au') !== false) {
  $pfolderpref=''; // '/tmp/';
}

if (isset($_POST['v1cont']) && isset($_POST['v1name'])) {
   $tfile=str_replace('+', ' ', urldecode($_POST['v1name']));
   if (strpos(str_replace('+', ' ', urldecode($_POST['v1name'])), '/') === false) {
     $tfile='/tmp/' . str_replace('+', ' ', urldecode($_POST['v1name']));
     file_put_contents($tfile, base64_decode(explode(";base64,", str_replace(' ','+',urldecode($_POST['v1cont'])))[1])  );
   } else if (strpos($tfile, '//') !== false) {
     file_put_contents('/tmp/' . basename($file), file_get_contents('http://' . explode('//', $tfile)[1]));
     $tfile='/tmp/' . basename($file);
     echo "<html><body onload=\" parent.document.getElementById('scbi').innerHTML='" . $tfile . "'; \"></body></html>";
     exit;
   }
   sleep(300);
   if (file_exists($tfile) && strpos($tfile, '/tmp/') !== false) {
     unlink($tfile);
   }
   exit;
}

if (isset($_POST['v2cont']) && isset($_POST['v2name'])) {
   $tfile=str_replace('+', ' ', urldecode($_POST['v2name']));
   if (strpos(str_replace('+', ' ', urldecode($_POST['v2name'])), '/') === false) {
     $tfile='/tmp/' . str_replace('+', ' ', urldecode($_POST['v2name']));
     file_put_contents($tfile, base64_decode(explode(";base64,", str_replace(' ','+',urldecode($_POST['v2cont'])))[1])  );
   } else if (strpos($tfile, '//') !== false) {
     file_put_contents('/tmp/' . basename($file), file_get_contents('http://' . explode('//', $tfile)[1]));
     $tfile='/tmp/' . basename($file);
     echo "<html><body onload=\" parent.document.getElementById('scbix').innerHTML='" . $tfile . "'; \"></body></html>";
     exit;
   }
   sleep(300);
   if (file_exists($tfile) && strpos($tfile, '/tmp/') !== false) {
     unlink($tfile);
   }
   exit;
}

function untmp($inout, $intypeis) {
  if (strpos(('~' . trim($inout)), '~/tmp/') !== false) {
    if (file_exists(explode('?', trim($inout))[0])) {
    $xcis=file_get_contents(explode('?', trim($inout))[0]);
    exec('rm -f ' . explode('?', trim($inout))[0]);
    return 'data:' . $intypeis . '/' . str_replace('mov','mp4',str_replace('jpg','jpeg',strtolower(explode('.', explode('?', trim($inout))[0])[-1 + sizeof(explode('.', explode('?', trim($inout))[0]))]))) . ';base64,' . base64_encode($xcis);
    } else {
    return '#';
    }
  }
  return trim($inout);
}


foreach (glob($pfolderpref . 'newfolder_*') as $idfilename) {
  if (file_exists($idfilename) && $vssfi == 'img%03d.png') {
    foreach (glob($idfilename . DIRECTORY_SEPARATOR . '*') as $idifilename) {
      if ($vssfi == 'img%03d.png' && strpos($idifilename, '.') !== false) {
        $bnis=basename($idifilename);
        $bn='';
        $bntwo='';
        for ($ibn=0; $ibn<strlen(explode('.', $bnis)[0]); $ibn++) {
           if (substr(substr($bnis, $ibn),0,1) >= '0' && substr(substr($bnis, $ibn),0,1) <= '9') {
             if ($bntwo == '') {
               if (substr(substr($bnis, $ibn),0,1) == '0') {
                 $bntwo='%0' . strlen(substr(explode('.', $bnis)[0], $ibn)) . 'd' . '.' . explode('.', $idifilename)[-1 + sizeof(explode('.', $idifilename))];
               } else {
                 $bntwo='%d' . '.' . explode('.', $idifilename)[-1 + sizeof(explode('.', $idifilename))];
               }
             }
           } else if ($bntwo == '') {
             $bn.=substr(substr($bnis, $ibn),0,1);
           }
        }
        if ($bntwo == '') { 
         $bn='*';
         $bntwo='.' . explode('.', $idifilename)[-1 + sizeof(explode('.', $idifilename))];
        }
        $vssfi=$idfilename . substr(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,0,1) . $bn . $bntwo; 
      }
    }
  }
}

if (isset($_GET['infilegetsize'])) {
   if (strlen($_GET['infilegetsize']) > 0) {
//file_put_contents('x.x','1');
     if (strpos(strtolower(str_replace('+',' ',urldecode($_GET['infilegetsize']))), '.txt') !== false) {
//file_put_contents('x.x','11 ' . strtolower(str_replace('+',' ',urldecode($_GET['infilegetsize']))));
       if (strpos(strtolower(str_replace('+',' ',urldecode($_GET['infilegetsize']))), '.txt;') !== false) {
//file_put_contents('x.xx','111');
       if (!file_exists(explode(';', str_replace('+',' ',urldecode($_GET['infilegetsize'])))[0])) {
//file_put_contents('x.xxx','1111');
       file_put_contents(explode(';', str_replace('+',' ',urldecode($_GET['infilegetsize'])))[0], '');
       }
//file_put_contents('x.xxxx','11111');
       if (strpos(explode(';', str_replace('"','',str_replace('+',' ',urldecode($_GET['infilegetsize']))))[1], '.') !== false) {
       if (strpos(file_get_contents(explode(';', str_replace('+',' ',urldecode($_GET['infilegetsize'])))[0]), "" . basename(explode(';', str_replace('"','',str_replace('+',' ',urldecode($_GET['infilegetsize']))))[1]) . "'") === false) {
       file_put_contents(explode(';', str_replace('+',' ',urldecode($_GET['infilegetsize'])))[0], file_get_contents(explode(';', str_replace('+',' ',urldecode($_GET['infilegetsize'])))[0]) . "file '" . explode(';', str_replace('"','',str_replace('+',' ',urldecode($_GET['infilegetsize']))))[1] . "'" . "\n");
       }
       }
       } else {
//file_put_contents('x.xxxx','111111');
       file_put_contents(str_replace('+',' ',urldecode($_GET['infilegetsize'])), '');
      }
     } else {
//file_put_contents('x.xxxx','111111');
       file_put_contents(str_replace('+',' ',urldecode($_GET['infilegetsize'])), '');
     }
   }
   exit;
}

if (isset($_GET['ffmpeg'])) {
  $fnd=false;
  if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
    if (file_exists('./ffmpeg.txt')) {
      $pplace=file_get_contents('./ffmpeg.txt');
      if (strpos($pplace, 'ffmpeg.exe') !== false) {
        $fnd=true;
      }
    }
    if (!$fnd) {
     $huhexe=shell_exec("where ffmpeg.exe");
     if ($huhexe == '') {
      $huhexes=rglob("C:\\ffmpeg.exe"); //shell_exec("where pdfimages.exe");
      if (sizeof($huhexes) > 0) {
       file_put_contents('./ffmpeg.txt', $huhexes[0]);
       if (strpos($huhexes[0], ' ') !== false) { 
       $huhexes[0]=str_replace('"','',$huhexes[0]);
       echo "<html><body onload='if (window.parent) { if (parent.document.getElementById(\"fcommand\")) { if (1 == 1) { parent.document.getElementById(\"fcommand\").value=parent.document.getElementById(\"fcommand\").value.replace(parent.document.getElementById(\"fcommand\").value.split(\"ffmpeg.exe\")[0] + \"ffmpeg.exe\", String.fromCharCode(34) + \"" . str_replace("\\","\\\\",explode('ffmpeg.exe',$huhexes[0])[0]) . "ffmpeg.exe\").replace('.exe ','.exe' + String.fromCharCode(34) + ' '); } } }'></body></html>";
       } else {
       $huhexes[0]=str_replace('"','',$huhexes[0]);
       echo "<html><body onload='if (window.parent) { if (parent.document.getElementById(\"fcommand\")) { if (1 == 1) { parent.document.getElementById(\"fcommand\").value=parent.document.getElementById(\"fcommand\").value.replace(parent.document.getElementById(\"fcommand\").value.split(\"ffmpeg.exe\")[0] + \"ffmpeg.exe\", \"" . str_replace("\\","\\\\",explode('ffmpeg.exe',$huhexes[0])[0]) . "ffmpeg.exe\").replace('.exe' + String.fromCharCode(34) + ' ', '.exe '); } } }'></body></html>";
       }
      }
     }
    }
  }
  exit;
}

if (isset($_GET['pandoc'])) {
  $fnd=false;
  if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
    if (file_exists('./pandoc.txt')) {
      $pplace=file_get_contents('./pandoc.txt');
      if (strpos($pplace, 'pandoc.exe') !== false) {
        $fnd=true;
      }
    }
    if (!$fnd) {
     $huhexe=shell_exec("where pandoc.exe");
     if ($huhexe == '') {
      $huhexes=rglob("C:\\pandoc.exe"); //shell_exec("where pdfimages.exe");
      if (sizeof($huhexes) > 0) {
       file_put_contents('./pandoc.txt', $huhexes[0]);
       if (strpos($huhexes[0], ' ') !== false) { 
       $huhexes[0]=str_replace('"','',$huhexes[0]);
       echo "<html><body onload='if (window.parent) { if (parent.document.getElementById(\"fcommand\")) { if (1 == 1) { parent.document.getElementById(\"fcommand\").value=parent.document.getElementById(\"fcommand\").value.replace(parent.document.getElementById(\"fcommand\").value.split(\"pandoc.exe\")[0] + \"pandoc.exe\", String.fromCharCode(34) + \"" . str_replace("\\","\\\\",explode('pandoc.exe',$huhexes[0])[0]) . "pandoc.exe\").replace('.exe ','.exe' + String.fromCharCode(34) + ' '); } } }'></body></html>";
       } else {
       $huhexes[0]=str_replace('"','',$huhexes[0]);
       echo "<html><body onload='if (window.parent) { if (parent.document.getElementById(\"fcommand\")) { if (1 == 1) { parent.document.getElementById(\"fcommand\").value=parent.document.getElementById(\"fcommand\").value.replace(parent.document.getElementById(\"fcommand\").value.split(\"pandoc.exe\")[0] + \"pandoc.exe\", \"" . str_replace("\\","\\\\",explode('pandoc.exe',$huhexes[0])[0]) . "pandoc.exe\").replace('.exe' + String.fromCharCode(34) + ' ', '.exe '); } } }'></body></html>";
       }
      }
     }
    }
  }
  exit;
}

if (isset($_GET['magick'])) {
  $fnd=false;
  if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
    if (file_exists('./magick.txt')) {
      $pplace=file_get_contents('./magick.txt');
      if (strpos($pplace, 'magick.exe') !== false) {
        $fnd=true;
      }
    }
    if (!$fnd) {
     $huhexe=shell_exec("where magick.exe");
     if ($huhexe == '') {
      $huhexes=rglob("C:\\magick.exe"); //shell_exec("where magick.exe");
      if (sizeof($huhexes) > 0) {
       file_put_contents('./magick.txt', $huhexes[0]);
      }
     }
    }
  }
  exit;
}


if (isset($_GET['pdfimages'])) {
  $fnd=false;
  if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
    if (file_exists('./pdfimages.txt')) {
      $pplace=file_get_contents('./pdfimages.txt');
      if (strpos($pplace, 'pdfimages.exe') !== false) {
        $fnd=true;
      }
    }
    if (!$fnd) {
     $huhexe=shell_exec("where pdfimages.exe");
     if ($huhexe == '') {
      $huhexes=rglob("C:\\pdfimages.exe"); //shell_exec("where pdfimages.exe");
      if (sizeof($huhexes) > 0) {
       file_put_contents('./pdfimages.txt', $huhexes[0]);
      }
     }
    }
  }
  exit;
}

$rotateadvice="Rotate a video

Rotate 90 clockwise:

ffmpeg -i in.mov -vf \"transpose=1\" out.mov
For the transpose parameter you can pass:

0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip

Use -vf \"transpose=2,transpose=2\" for 180 degrees.";

$rs='';
$outf='';
if (isset($_GET['fcommand'])) {
   if (PHP_OS == "Darwin") {
    putenv('PATH=/usr/local/bin');
   }
//file_put_contents('x.x', str_replace('+',' ',urldecode($_GET['fcommand'])));
   $cmdis=str_replace(') between', ')+between', str_replace('+',' ',urldecode($_GET['fcommand'])));
   if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
     if ($ffmpegpre != '' && strpos($cmdis, 'ffmpeg.') !== false && strpos($cmdis, $ffmpegpre) === false) {
       $cmdis=str_replace('ffmpeg.', $ffmpegpre . 'ffmpeg.', $cmdis);
     } 
     if ($magickpre != '' && strpos($cmdis, $magickverb . '.') !== false && strpos($cmdis, $magickpre) === false) {
       $cmdis=str_replace($magickverb . '.', $magickpre . $magickverb . '.', $cmdis);
     } 
     if ($pdfimagespre != '' && strpos($cmdis, 'pdfimages.') !== false && strpos($cmdis, $pdfimagespre) === false) {
       $cmdis=str_replace('pdfimages.', $pdfimagespre . 'pdfimages.', $cmdis);
     } 
     if ($pandocpre != '' && strpos($cmdis, 'pandoc.') !== false && strpos($cmdis, $pandocpre) === false) {
       $cmdis=str_replace('pandoc.', $pandocpre . 'pandoc.', $cmdis);
     } 
   }

//file_put_contents('x7.x7', $cmdis);
   $precmd=explode('>', $cmdis);
   $outf='';
   $pgif='';
   $pxml='';
   $pdocx='';
   if (strpos($cmdis, '.gif"') !== false) {
     $pgif='"' . explode('"', explode('.gif"', $cmdis)[0])[-1 + sizeof(explode('"', explode('.gif"', $cmdis)[0]))] . '.gif"';
     $outf=$pgif;
   } else if (strpos($cmdis, '.GIF"') !== false) {
     $pgif='"' . explode('"', explode('.GIF"', $cmdis)[0])[-1 + sizeof(explode('"', explode('.GIF"', $cmdis)[0]))] . '.GIF"';
     $outf=$pgif;
   } else if (strpos($cmdis, '.gif') !== false) {
     $pgif='' . explode(' ', explode('.gif', $cmdis)[0])[-1 + sizeof(explode(' ', explode('.gif', $cmdis)[0]))] . '.gif';
     $outf=$pgif;
   } else if (strpos(strtolower($cmdis), '.GIF') !== false) {
     $pgif='' . explode(' ', explode('.GIF', $cmdis)[0])[-1 + sizeof(explode(' ', explode('.GIF', $cmdis)[0]))] . '.GIF';
     $outf=$pgif;
   }
   if (strpos($cmdis, '.xml"') !== false) {
     $pxml='"' . explode('"', explode('.xml"', $cmdis)[0])[-1 + sizeof(explode('"', explode('.xml"', $cmdis)[0]))] . '.xml"';
     $outf=$pxml;
   } else if (strpos($cmdis, '.XML"') !== false) {
     $pxml='"' . explode('"', explode('.XML"', $cmdis)[0])[-1 + sizeof(explode('"', explode('.XML"', $cmdis)[0]))] . '.XML"';
     $outf=$pxml;
   } else if (strpos($cmdis, '.xml') !== false) {
     $pxml='' . explode(' ', explode('.xml', $cmdis)[0])[-1 + sizeof(explode(' ', explode('.xml', $cmdis)[0]))] . '.xml';
     $outf=$pxml;
   } else if (strpos(strtolower($cmdis), '.XML') !== false) {
     $pxml='' . explode(' ', explode('.XML', $cmdis)[0])[-1 + sizeof(explode(' ', explode('.XML', $cmdis)[0]))] . '.XML';
     $outf=$pxml;
   }
   if (strpos($cmdis, '.docx"') !== false) {
     $pdocx='"' . explode('"', explode('.docx"', $cmdis)[0])[-1 + sizeof(explode('"', explode('.docx"', $cmdis)[0]))] . '.docx"';
     $outf=$pdocx;
   } else if (strpos($cmdis, '.DOCX"') !== false) {
     $pdocx='"' . explode('"', explode('.DOCX"', $cmdis)[0])[-1 + sizeof(explode('"', explode('.DOCX"', $cmdis)[0]))] . '.DOCX"';
     $outf=$pdocx;
   } else if (strpos($cmdis, '.docx') !== false) {
     $pdocx='' . explode(' ', explode('.docx', $cmdis)[0])[-1 + sizeof(explode(' ', explode('.docx', $cmdis)[0]))] . '.docx';
     $outf=$pdocx;
   } else if (strpos(strtolower($cmdis), '.DOCX') !== false) {
     $pdocx='' . explode(' ', explode('.DOCX', $cmdis)[0])[-1 + sizeof(explode(' ', explode('.DOCX', $cmdis)[0]))] . '.DOCX';
     $outf=$pdocx;
   }
   
   if ($outf == '' && strpos($cmdis, 'ffmpeg') !== false) {
     $outf=explode(' ', trim($precmd[0]))[-1 + sizeof(explode(' ', trim($precmd[0])))];
   }
   
   if ((strpos($cmdis, 'pdfimages') !== false || strpos($cmdis, 'pdftohtml') !== false || strpos($cmdis, 'pandoc') !== false || strpos($cmdis, 'ffmpeg') !== false) && strpos($cmdis, '-i ' . $pfolderpref . 'newfolder_') === false && strpos($cmdis, $pfolderpref . 'newfolder_') !== false && strpos(strtolower($cmdis), '.rtf') === false && strpos(strtolower($cmdis), '.docx') === false) {
     $pfolder=$pfolderpref . 'newfolder_' . explode(' ', explode(DIRECTORY_SEPARATOR, explode('newfolder_', $cmdis)[1])[0])[0];
//file_put_contents('x8a.x8a', $pfolder); 
     $beforep=explode($pfolder, $cmdis)[0];
     $afterp=explode($pfolder, $cmdis)[1];
     while (file_exists($pfolder)) {
       $pfolder=$pfolderpref . 'newfolder' . '_' . explode('newfolder', $pfolder)[1];
       $cmdis=$beforep . $pfolder . $afterp;
     }
     if (!file_exists($pfolder)) {   mkdir($pfolder); }
   }
   if (strpos($precmd[0], '.ass') !== false && file_exists('sub.ass')) { unlink('sub.ass');  }
   if (strpos($precmd[0], ' list.txt ') !== false && file_exists('list.txt')) { file_put_contents('list.txt', str_replace("'file '", "'" . "\n" . "file '", file_get_contents('list.txt')));  }
//file_put_contents('x7a.x7a', $cmdis . ' ... ' . trim(str_replace('"-minus','" -', str_replace('~!@','',str_replace(' -c COPY -',' -c copy -',str_replace('.ass ','.ass-shortest ',str_replace(' -c copy ',' -c copy -shortest ',str_replace(' -c copy -',' -c COPY -',str_replace('transpose=3" ','transpose=3"-shortest ',str_replace('transpose=2" ','transpose=2"-shortest ',str_replace('transpose=1" ','transpose=1"-shortest ',str_replace('transpose=0" ','transpose=0"-shortest ',str_replace('-auto-orient','-auto-orient-shortest ',str_replace(' -oo ',' -oo-shortest ',str_replace(' -o ','-o-shortest ',str_replace(' -y ','-y-shortest ',  str_replace('-acodec copy','-acodec copy-shortest ',  str_replace('" ','"-shortest ', str_replace('" -','"-minus',   ($precmd[0] . ''))))))))))))))))))));
   $subcmd=explode('-shortest ', trim(str_replace('"-minus','" -', str_replace('~!@','',str_replace(' -c COPY -',' -c copy -',str_replace('.ass ','.ass-shortest ',str_replace(' -c copy ',' -c copy -shortest ',str_replace(' -c copy -',' -c COPY -',str_replace('transpose=3" ','transpose=3"-shortest ',str_replace('transpose=2" ','transpose=2"-shortest ',str_replace('transpose=1" ','transpose=1"-shortest ',str_replace('transpose=0" ','transpose=0"-shortest ',str_replace('-auto-orient','-auto-orient-shortest ',str_replace(' -oo ',' -oo-shortest ',str_replace(' -o ','-o-shortest ',str_replace(' -y ','-y-shortest ',  str_replace('-acodec copy','-acodec copy-shortest ',  str_replace('" ','"-shortest ', str_replace('" -','"-minus',  str_replace(' -vframes 1 ',' -vframes 1-shortest ', str_replace(' yuv420p ', ' yuv420p-shortest ',  ($precmd[0] . ''))))))))))))))))))))));
//file_put_contents('x1777.x1777', $subcmd[0]);
   if ($outf != '' || sizeof($subcmd) > 1) {
      if ($outf == '') {
      $outf=$subcmd[1];
      }
//file_put_contents('x777.x777', $outf);
      if (file_exists($outf)) { 
       $wassuff='';
       while (file_exists($outf . '_was' . $wassuff)) {
//file_put_contents('x77777.x77777', $outf . '_was' . $wassuff);
         if ($wassuff == '') {
           $wassuff='0';
         } else {
           $wassuff='' . (1 + intval('' . $wassuff));
         }
       }
//file_put_contents('x7777.x7777', $outf . '_was' . $wassuff);
       if (file_exists($outf)) {
       if (file_exists($outf . '_was' . $wassuff)) {
          exec('rm -f ' . $outf . '_was' . $wassuff);
       }
       if (4 == 4) {
          exec('mv ' . $outf . ' ' . $outf . '_was' . $wassuff);
       } else {
         rename($outf, $outf . '_was' . $wassuff); 
       }
       }
      }
      if (strpos(strtolower(trim($outf) . '~'), '.pdf~') !== false) {
        $ppdf=trim($outf);
      }
   }
//file_put_contents('x77.x77', $cmdis);
   if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
     $cmdis=str_replace(' > ', ' 2> ', $cmdis);
   } 
   $delpref='';
   $delsuf='';
   $lastfis=explode(' ', trim(explode('>', explode('2>', $cmdis)[0])[0]))[-1 + sizeof(explode(' ', trim(explode('>', explode('2>', $cmdis)[0])[0])))];
   if (strpos($lastfis, '/tmp/') !== false) {
     //if (file_exists($lastfis)) {
       $delpref='rm -f ' . $lastfis . ' ; '; //unlink($lastfis);
     //}
   } else if (strpos($outf, '/tmp/') !== false) {
     //if (file_exists($outf)) {
       $delpref='rm -f ' . $outf . ' ; '; //unlink($lastfis);
     //}
   }
   $insare=explode(' -i ', $cmdis);
   if (sizeof($insare) >= 3) {
     for ($inm=1; $inm < sizeof($insare); $inm++) {
       if (strpos(('~' . explode(' ', $insare[$inm])[0]), '~/tmp/') !== false) {
         $delsuf.=' ; rm -f ' . explode(' ', $insare[$inm])[0];
       }
     }
   }
   if (strpos($_SERVER['SERVER_NAME'], 'rjmprogramming.com.au') !== false) {
      if (strpos(('~' . trim($outf)), '~/tmp/') === false && strpos(('~' . trim($outf)), 'newfolder_') === false) {
         echo "<html><body><p>Sorry, no can do regarding conversion to " . trim($outf) . "</p></body></html>";
         exit;
      } else if (strpos(('~' . ($outf)), '~/tmp/') === false) {
         $outf=trim($outf);
      }
   }
file_put_contents('x.x', $outf . ' ' . $delpref . $cmdis . $delsuf);
   $rs=shell_exec($delpref . $cmdis . $delsuf);
file_put_contents('xx.xx', $rs);
   if ($pgif != '') {
     if (strpos(('~' . trim($outf)), '~/tmp/') !== false) {
       $pgif=untmp(trim($outf), 'image');
     } else {
       $pgif.='?rand=' . rand(0,7654532);
     }
     $rs.='<br><br><img title="' . $outf . '" src="' . $pgif . '"></img>';  
     $outf='';
   }
   if ($pxml != '') {
     $rs.="<br><br><textarea style='width:98%;height:800px;'>" . file_get_contents($outf) . "</textarea>";
     $outf='';
   }
   if ($pdocx != '') {
     if (file_exists($outf)) {
     $rs.="<br><br><textarea style='width:98%;height:800px;'>" . file_get_contents($outf) . "</textarea>";
     if (strpos(realpath($outf), $_SERVER['DOCUMENT_ROOT']) !== false) {
     $wostuff=" window.open('." . str_replace($_SERVER['DOCUMENT_ROOT'],'',realpath($outf)) . "','_blank','top=60,left=60,width=560,height=160'); ";
     } else {
     $wostuff=" window.open('file:" . realpath($outf) . "','_blank','top=60,left=60,width=560,height=160'); ";
     }
     //if (PHP_OS == "Darwin") {
     //  exec('open ' . $outf);
     //} else if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
     //  exec($outf);
     //}
     }
     $outf='';
   }
   if ($pfolder != '') {
     if (strpos($cmdis, 'pandoc') !== false || strpos($cmdis, 'pdftohtml') !== false) {
     $rs.="<br><br><iframe style='width:98%;height:800px;' src='" . $pfolder . "/?rand=" . rand(0,7654532) . "' title='" . $pfolder . "/'></iframe>";
     } else {
     foreach (glob($pfolder . DIRECTORY_SEPARATOR . '*.*') as $ifilename) {
       $rs.='<img title="' . $ifilename . '" src="' . $ifilename . '?rand=' . rand(0,7654532) . '"></img>';  
     }
     }
//if (PHP_OS == "Darwin") {
//   $rs.='<br><br><details style=background-color:yellow;><summary style=background-color:lightblue;>Video and Audio and Image and PDF Files ...</summary><br>' . str_replace("\n","<br>",yourshell_exec("file *.* | egrep -B 0 'ISO Media| image |Audio|WebM|Matroska|.ts:|.srt:|.txt:|.pdf:|.PDF:'")) . '</details>';
//} else if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
//   $rs.='<br><br><details style=background-color:yellow;><summary style=background-color:lightblue;>Video and Audio and Image and PDF  Files ...</summary><br>' . str_replace("\n","<br>",yourshell_exec('"C:\\Program Files (x86)\\GnuWin32\\bin\\file.exe" *.*')) . '</details>';
//}
   } 
   if ($ppdf != '' || strpos(strtolower($outf), '.rtf') !== false) {
     $srcbit=' src=';
     if ($ppdf == '') { 
       if (strpos(('~' . trim($outf)), '~/tmp/') !== false) {
       $ppdf=untmp(trim($outf), 'pdf');
       } else {
       $ppdf=file_get_contents($outf) . "?rand=" . rand(0,7654532); 
       }
       $srcbit=' srcdoc=';
     }
     $outf='';
     if (strpos($srcbit, 'src=') !== false) {
     if (strpos(('~' . trim($ppdf)), '~/tmp/') !== false) {
       $ppdf=untmp(trim($ppdf), 'pdf');
     }
     $rs.="<br><br><iframe style='width:98%;height:800px;' " . $srcbit . "'" . $ppdf . "' title='" . $ppdf . "'></iframe>";
     } else {
     $rs.="<br><br><textarea style='width:98%;height:800px;'>" . $ppdf . "</textarea>";
     if (strpos(realpath($outf), $_SERVER['DOCUMENT_ROOT']) !== false) {
     $wostuff=" window.open('." . str_replace($_SERVER['DOCUMENT_ROOT'],'',realpath($outf)) . "','_blank','top=60,left=60,width=560,height=160'); ";
     } else {
     $wostuff=" window.open('file:" . realpath($outf) . "','_blank','top=60,left=60,width=560,height=160'); ";
     }
     //if (PHP_OS == "Darwin") {
     // exec('open ' . $outf);
     //} else if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
     //  exec($outf);
     //}
     }
//if (PHP_OS == "Darwin") {
//   $rs.='<br><br><details style=background-color:yellow;><summary style=background-color:lightblue;>Video and Audio and Image and PDF Files ...</summary><br>' . str_replace("\n","<br>",yourshell_exec("file *.* | egrep -B 0 'ISO Media| image |Audio|WebM|Matroska|.ts:|.srt:|.txt:|.pdf:|.PDF:'")) . '</details>';
//} else if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
//   $rs.='<br><br><details style=background-color:yellow;><summary style=background-color:lightblue;>Video and Audio and Image and PDF  Files ...</summary><br>' . str_replace("\n","<br>",yourshell_exec('"C:\\Program Files (x86)\\GnuWin32\\bin\\file.exe" *.*')) . '</details>';
//}
   } 
   if ($outf != '') {
     if (file_exists($outf)) {
       $asuff='?rand=' . rand(0,7654532);
       if (strpos($outf, '/tmp/') !== false) {  $asuff=''; }
       if (strpos($cmdis, ' -vframes ') !== false) {
       $rs.="<br><br><img title='" . str_replace("'",'~',str_replace('"','`',$cmdis)) . "' " . ' src="' . untmp($outf, 'image') . $asuff . '"></img>';  
       } else if (strpos($cmdis, '"') !== false) {
       $rs.="<br><br><video title='" . str_replace("'",'~',str_replace('"','`',$cmdis)) . "' " . ' controls><source src="' . untmp($outf, 'video') . $asuff . '" type="video/' . strtolower(explode('.', $outf)[-1 + sizeof(explode('.', $outf))]) . '"></source></video>';  
       } else {
       $rs.='<br><br><video title="' . str_replace("'",'~',str_replace('"','`',$cmdis)) . '" controls><source src="' . untmp($outf, 'video') . $asuff . '" type="video/' . strtolower(explode('.', $outf)[-1 + sizeof(explode('.', $outf))]) . '"></source></video>';  
       }
if (PHP_OS == "Darwin") {
   $rs.='<br><br><details id=mydet style=background-color:yellow;><summary style=background-color:lightgreen;>Video and Audio and Image and Text and PDF Files ...</summary><br>' . str_replace("\n","<br>",yourshell_exec("file * | egrep -B 0 'ISO Media| image |Audio|WebM|Matroska|.ts:|.srt:|.txt:|.pdf:|.PDF:'")) . '</details>';
} else if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
   $rs.='<br><br><details id=mydet style=background-color:yellow;><summary style=background-color:lightgreen;>Video and Audio and Image and Text and PDF Files ...</summary><br>' . str_replace("\n","<br>",yourshell_exec('"C:\\Program Files (x86)\\GnuWin32\\bin\\file.exe" *')) . '</details>';
}
     }
   }
} else if (PHP_OS == "Darwin") {
   $rs.='<details id=mydet style=background-color:yellow;><summary style=background-color:lightblue;>Video and Audio and Image and Text and PDF Files ...</summary><br>' . str_replace("\n","<br>",yourshell_exec("file *.* | egrep -B 0 'ISO Media| image |Audio|WebM|Matroska|.ts:|.srt:|.txt:|.pdf:|.PDF:'")) . '</details>';
} else if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {
   $rs.='<details id=mydet style=background-color:yellow;><summary style=background-color:lightblue;>Video and Audio and Image and Text and PDF Files ...</summary><br>' . str_replace("\n","<br>",yourshell_exec('"C:\\Program Files (x86)\\GnuWin32\\bin\\file.exe" *.*')) . '</details>';
}

$ddn=substr(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,0,1);
$dn='';
$minuspng='-png';
$ffmpegpre='';
$ffmpegsuf='';
$pdfimagespre='';
$pdfimages='pdfimages';
$pdfimagessuf='';
$whereffmpeg="?infilegetsize=";
$wheremagick="?infilegetsize=";
$wherepandoc="?infilegetsize=";
$pandoc='pandoc';
$pandocpre='';
$pandocsuf='';
$magickverb='convert';
$magickpre='';
$magicksuf='';
$startlook='000';
$zerotothree='%03';
$wherepdfimages="?infilegetsize=";

if (PHP_OS == "Darwin") {
  $dn=' /dev/null';
} else if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {

  $minuspng='';
  $startlook='0000';
  $zerothree='%04';
  $ddn=DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR;
  
  $magickverb='magick';
  $magickpre="\"C:\\Program Files\\ImageMagick-7.1.0-Q16-HDRI\\";
  $magicksuf=".exe\"";
  if (!file_exists($magickpre . 'magick' . $magicksuf)) {
   if (file_exists('./magick.txt')) {
     if (!file_exists(file_get_contents('./magick.txt'))) {
       unlink('./magick.txt');
       $wheremagick="?magick=where";
     } else {
       $magickpre="\"" . str_replace('magick.exe','',file_get_contents('./magick.txt')) . "\"";
     }
   }
   if (file_exists('magick' . $ffmpegsuf)) {
     $magickpre="";
   } else if (!file_exists('./magick.txt')) {
     $huhexe=shell_exec("where magick.exe");
     if (strpos($huhexe, 'magick.exe') === false) {
       $wheremagick="?magick=where";
     } else {
       $magickpre=str_replace('magick.exe','',$huhexe);
     }
   }
  }

  $ffmpegpre="\"C:\\Program Files\\ImageMagick-7.1.0-Q16-HDRI\\";
  $ffmpegsuf=".exe\"";
  if (!file_exists($ffmpegpre . 'ffmpeg' . $ffmpegsuf)) {
   if (file_exists('./ffmpeg.txt')) {
     if (!file_exists(file_get_contents('./ffmpeg.txt'))) {
       unlink('./ffmpeg.txt');
       $whereffmpeg="?ffmpeg=where";
     } else {
       $ffmpegpre="\"" . str_replace('ffmpeg.exe','',file_get_contents('./ffmpeg.txt')) . "\"";
     }
   }
   if (file_exists('ffmpeg' . $ffmpegsuf)) {
    $ffmpegpre="";
   } else if (!file_exists('./ffmpeg.txt')) {
     $huhexe=shell_exec("where ffmpeg.exe");
     if (strpos($huhexe, 'ffmpeg.exe') === false) {
       $whereffmpeg="?ffmpeg=where";
     } else {
       $ffmpegpre=str_replace('ffmpeg.exe','',$huhexe);
     }
   }
  }

  $pandocpre="\"C:\\Program Files\\ImageMagick-7.1.0-Q16-HDRI\\";
  $pandocsuf=".exe\"";
  if (!file_exists($pandocpre . 'pandoc' . $pandocsuf)) {
   if (file_exists('./pandoc.txt')) {
     if (!file_exists(file_get_contents('./pandoc.txt'))) {
       unlink('./pandoc.txt');
       $wherepandoc="?pandoc=where";
     } else {
       $pandocpre="\"" . str_replace('pandoc.exe','',file_get_contents('./pandoc.txt')) . "\"";
     }
   }
   if (file_exists('pandoc' . $pandocsuf)) {
    $pandocpre="";
   } else if (!file_exists('./pandoc.txt')) {
     $huhexe=shell_exec("where pandoc.exe");
     if (strpos($huhexe, 'pandoc.exe') === false) {
       $wherepandoc="?pandoc=where";
     } else {
       $pandocpre=str_replace('pandoc.exe','',$huhexe);
     }
   }
  }
  
  $pdfimagespre="\"C:\\MAMP\\htdocs\\xpdf-tools-win-4.04\\bin32\\";
  $pdfimagessuf=".exe\"";
  if (!file_exists($pdfimagespre . 'pdfimages' . $pdfimagessuf)) {
   if (file_exists('./pdfimages.txt')) {
     if (!file_exists(file_get_contents('./pdfimages.txt'))) {
       unlink('./pdfimages.txt');
       $wherepdfimages="?pdfimages=where";
     } else {
       $pdfimagespre="\"" . str_replace('pdfimages.exe','',file_get_contents('./pdfimages.txt')) . "\"";
     }
   }
   if (file_exists('pdfimages' . $pdfimagessuf)) {
     $pdfimagespre="";
   } else if (!file_exists('./pdfimages.txt')) {
     $huhexe=shell_exec("where pdfimages.exe");
     if (strpos($huhexe, 'pdfimages.exe') === false) {
       $wherepdfimages="?pdfimages=where";
     } else {
       $pdfimagespre=str_replace('pdfimages.exe','',$huhexe);
     }
   }
  }
}



function scandir_through($dir, $bname, $bsize) { // thanks to https://www.php.net/manual/en/function.glob.php
    $ds=substr((DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR),0,1);
    if (strpos(('!@' . strtoupper($dir)), '!@C:') !== false) { $dir=str_replace('/','',$dir);  }
    if (substr(strrev($dir),0,1) == substr((DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR),0,1)) {
      $ds='';
    }
    $items = glob($dir . $ds . str_replace(' ','*',$bname));

    for ($i = 0; $i < count($items); $i++) {
        if (is_dir($items[$i])) {
            $add = glob($items[$i] . $ds . str_replace(' ','*',$bname));
            if (filesize($add) == $bsize) {
            //echo $add;
            $items = array_merge($items, $add);
            } //else {
            //echo 'x' . $add . 'x';
            //}
        }
    }

    return $items;
}

function yourshell_exec($incm) {
//file_put_contents('xx.xx', $incm);
  $one="1";
  $two="2";
  $outblurb="<scr" . "ipt> document.getElementById('mydet').style.display='none'; </scr" . "ipt>";
  $partsare=explode("'", $incm);
//file_put_contents('xx.xx', '' . sizeof($partsare));
  if (sizeof($partsare) == 3) {
    if (strpos($incm, ' * ') !== false && strpos($incm, ' | ') !== false) {
      $incm=trim(explode(' | ', $incm)[0]) . '.*';
      $two=$one;
//file_put_contents('xxm.xxm', '' . $incm);
    }
  }
  $blurblines=shell_exec($incm);
  if (trim($blurblines) != '') {
//file_put_contents('xxx.xxx', $blurblines);
  $outblurb="";
  $obs=explode("\n", $blurblines);
  for ($iobs=0; $iobs<sizeof($obs); $iobs++) {
   if (($one == $two || PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') && strpos(str_replace(" image ", "ISO Media", str_replace(".PDF;", "ISO Media", str_replace(".pdf;", "ISO Media", str_replace(".txt;", "ISO Media", str_replace(".srt;", "ISO Media", $obs[$iobs]))))), "ISO Media") === false) {
     $iobs=$iobs;
   } else {
     if (strpos($obs[$iobs], ';') !== false && strpos($obs[$iobs], ':') !== false) {
        if (strpos($obs[$iobs], ';') < strpos($obs[$iobs], ':')) {
       $outblurb.=str_replace(explode(';',$obs[$iobs])[0] . ';','<a title="Click to slot in above" style=cursor:pointer;text-decoration:underline; data-href=# onclick=spanfill(' . "'" . explode(';',$obs[$iobs])[0] . '' . "'" . ');>' . explode(';',$obs[$iobs])[0] . '</a>;',$obs[$iobs]) . "\n";
        } else {
       $outblurb.=str_replace(explode(':',$obs[$iobs])[0] . ':','<a title="Click to slot in above" style=cursor:pointer;text-decoration:underline; data-href=# onclick=spanfill(' . "'" . explode(':',$obs[$iobs])[0] . '' . "'" . ');>' . explode(':',$obs[$iobs])[0] . '</a>;',$obs[$iobs]) . "\n";
        }
     } else if (strpos($obs[$iobs], ';') !== false) {
       $outblurb.=str_replace(explode(';',$obs[$iobs])[0] . ';','<a title="Click to slot in above" style=cursor:pointer;text-decoration:underline; data-href=# onclick=spanfill(' . "'" . explode(';',$obs[$iobs])[0] . '' . "'" . ');>' . explode(';',$obs[$iobs])[0] . '</a>;',$obs[$iobs]) . "\n";
     } else if (strpos($obs[$iobs], ':') !== false) {
       $outblurb.=str_replace(explode(':',$obs[$iobs])[0] . ':','<a title="Click to slot in above" style=cursor:pointer;text-decoration:underline; data-href=# onclick=spanfill(' . "'" . explode(':',$obs[$iobs])[0] . '' . "'" . ');>' . explode(':',$obs[$iobs])[0] . '</a>;',$obs[$iobs]) . "\n";
     } else {
       $outblurb.=$obs[$iobs] . "\n";
     }
   }
  }
  }
  return $outblurb;
}

function ourshell_exec($onea, $twoa = NULL, $threea = NULL) {
   $folder='';
   $pattern=''; 
   $size='';
   $filesa=[];
   if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows' || (strpos(('~@!' . $onea), '~@!forfiles /P "') !== false && strpos(('~@!' . $onea), '/M "') !== false && strpos(('~@!' . $onea), 'find "') !== false)) {
     $folder=explode('"', explode('forfiles /P "', $onea)[1])[0]; // . substr(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR, 0, 1);
     if (7 == 7) { 
       $folder=explode('"', explode('forfiles /P "', $onea)[1])[0]; // . substr(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR, 0, 1);
       $pattern=explode('"', explode('/M "', $onea)[1])[0];
       $size=explode('"', explode('find "', $onea)[1])[0];
       $thiscmd=trim(explode(" | find ", $onea)[0]);
       if (strpos($pattern, ' ') === false) {  $thiscmd=str_replace('/M "' . $pattern . '"', '/M ' . $pattern, $thiscmd);  }
       if (strpos($folder, ' ') === false) {  $thiscmd=str_replace('/P "' . $folder . '"', '/P ' . $folder, $thiscmd);  }
       if (strpos($thiscmd, '"cmd /c ') !== false && substr($thiscmd,-1,1) != '"') { $thiscmd.='"'; }
       if (strpos($thiscmd, "/P C:\\ ") !== false) {         
            if (strpos($thiscmd, "/P C:\\ ") !== false) {   
                     if (strpos($pattern, " ") === false) {       
                            $thiscmd="DIR C:\\" . $pattern . " /S /-C";
                     } else {
                            $thiscmd="DIR \"C:\\" . $pattern . "\" /S /-C";
                     }    
            }
       }
//file_put_contents('xxx.xxx',file_get_contents('xxx.xxx'). "\n" . '' . $size . ' ' . $thiscmd);
       $nofind=shell_exec($thiscmd . ' 2> nul');

//file_put_contents('xxxx.xxxx',file_get_contents('xxxx.xxxx'). "\n" . '' . $size . ' ' . $nofind);
//exit;
       $findings=explode("\n", $nofind);
       $bitbefore='';
       for ($ifindgs=0; $ifindgs<sizeof($findings); $ifindgs++) {
         if (strpos(str_replace("\r","",$findings[$ifindgs]), 'Directory of ') !== false) {
             $bitbefore=explode('Directory of ', str_replace("\r","",$findings[$ifindgs]))[1] . "\\";
         }
         if (strpos((str_replace("\r","",$findings[$ifindgs]) . '~'), $size . '~') !== false) {
            return str_replace('~','',str_replace($size . '~', '', (str_replace("\r","",$findings[$ifindgs]) . '~')));
         } else if (strpos((str_replace("\r","",$findings[$ifindgs]) . ''), $size . ' ') !== false) {
//file_put_contents('xxxxx.xxxxx',$bitbefore . explode($size . ' ', (str_replace("\r","",$findings[$ifindgs]) . ''))[1]);
           return $bitbefore . explode($size . ' ', (str_replace("\r","",$findings[$ifindgs]) . ''))[1];
         }
       }
       if ($folder == "C:\\") { return ''; } 
     } 
     if (strpos(('~@!' . $onea), '~@!forfiles /P "') !== false && strpos(('~@!' . $onea), '/M "') !== false && strpos(('~@!' . $onea), 'find "') !== false) {
       $folder=explode('"', explode('forfiles /P "', $onea)[1])[0] . substr(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR, 0, 1);
       if (strpos($folder, ' ') !== false) {  $folder='"' . $folder . '"';  }
       $pattern=explode('"', explode('/M "', $onea)[1])[0];
       if (strpos($pattern, ' ') !== false || substr(($folder . ' '),0,1) == '"') {  $pattern='"' . $pattern . '"'; if (substr(($folder . ' '),0,1) != '"') {  $folder='"' . $folder . '"';  }  }
       $size=explode('"', explode('find "', $onea)[1])[0];
       //$basis=str_replace('""','',$folder . str_replace(str_replace('"','',explode('.',$pattern)[0]),'*',$pattern));
       $basis=str_replace('""','',$folder . str_replace(str_replace('"','',explode('.',$pattern)[0]),str_replace(' ','*',str_replace('"','',explode('.',$pattern)[0])),$pattern));

       if (strpos($basis, ' ') === false) { $basis=str_replace('"','',$basis);  }
// file_put_contents('xs23.xs23', "swqzzui " . str_replace('""','',$folder . str_replace(str_replace('"','',explode('.',$pattern)[0]),'*',$pattern)) . ' ... ' . $basis . ' --- ' . str_replace('"','',$folder) . ' ' . str_replace('"','',$pattern) . ' ' . $size);
// exit;
       $filesa=scandir_through(str_replace('"','',$folder), str_replace('"','',$pattern), $size);
// file_put_contents('xs423.xs423', "swqzzui " . str_replace('""','',$folder . str_replace(str_replace('"','',explode('.',$pattern)[0]),'*',$pattern)) . ' ... ' . $basis . ' --- ' . str_replace('"','',$folder) . ' ' . str_replace('"','',$pattern) . ' ' . $size);
       if (sizeof($filesa) == 0) { return ''; }
// file_put_contents('xs4423.xs4423', "swqzzui " . str_replace('""','',$folder . str_replace(str_replace('"','',explode('.',$pattern)[0]),'*',$pattern)) . ' ... ' . $basis . ' --- ' . str_replace('"','',$folder) . ' ' . str_replace('"','',$pattern) . ' ' . $size);
       return $filesa[0];
       
       if (4 == 5) {
       
echo "bzmbvzqsswqzzui " . $filesa[0];
 exit;

       $slookfor=str_replace('"','',('' . $pattern));
       //$filesa=foreach (glob('{' . $basis . '}'),GLOB_BRACE);
 echo "zmbvzqsswqzzui " . $filesa[0];
 exit;
      foreach (glob($basis) as $file) {
        $chfile='' . $file;
 echo "mbvzqsswqzzui " . $chfile . ' ' . $slookfor;
 exit;
        if (strpos($chfile, $slookfor) !== false) {
 echo "vzqsswqzzui " . $file;
 exit;
        if (filesize($file) == $size) {
 echo "zqsswqzzui " . $file;
 exit;
    file_put_contents('xm3.xm3', $file . ' ' . $size);
           return $file;
           
        }
        
        }
        }
       }
     }
   }
   return shell_exec($onea, $twoa, $threea);
}

function rsearch($folder, $pattern, $size) { // thanks, anyway, to https://stackoverflow.com/questions/17160696/php-glob-scan-in-subfolders-for-a-file
    $didea='';
    $outputa=[]; 
    $retz='';
    if (PHP_OS == "Darwin") {

      //file_put_contents("x.ksh", "find " . $folder . " -type f -name \"" . $pattern . "\" 2> /dev/null -exec wc -c {} + | egrep '^ " . $size . " ' | sed '/ " . $size . " /s///g'");
      //if ($folder == substr((DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR),0,1)) {
        $didea=shell_exec("find \$HOME/Downloads -type f -name \"" . $pattern . "\" 2> /dev/null -exec wc -c {} + | egrep '^ " . $size . " ' | sed '/ " . $size . " /s///g'");
      //file_put_contents("xx.ksh", $didea);
        if ($didea != '') { return $didea; }
        $didea=shell_exec("find " . rtrim(dirname(__FILE__), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR  . " -type f -name \"" . $pattern . "\" 2> /dev/null -exec wc -c {} + | egrep '^ " . $size . " ' | sed '/ " . $size . " /s///g'");
      //file_put_contents("xxx.ksh", $didea);
        if ($didea != '') { return $didea; }

        $xc=getenv('HOME');
      if ($xc == '') {
      $dirsa = glob('/Users/*', GLOB_ONLYDIR);
      for ($ia=0; $ia<sizeof($dirsa); $ia++) {
      //echo "2:" . $dirsa[$ia] . str_replace('//','/',DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR) . "Downloads";
   //exit;
        if ($didea == '') {
         //$didea=ourshell_exec("forfiles /P \"" . $dirsa[$ia] . "Downloads\" /S /M \"" . $pattern . "\" /C \"cmd /c echo @path@fsize | find \"" . $size . "\" 2>&1", $outputa, $retz);
         $didea=ourshell_exec("forfiles /P \"" . str_replace('//','/',$dirsa[$ia] . "/") . "Downloads\" /S /M \"" . $pattern . "\" /C \"cmd /c echo @path@fsize | find \"" . $size . "\" 2>&1", $outputa, $retz);
       if ($didea != '') { return $didea; }
       }
      }
      if ($didea != '') { return $didea; }
      } else {
        $didea=ourshell_exec("forfiles /P \"" . $xc . str_replace('//','/',DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR) . "Downloads\" /S /M \"" . $pattern . "\" /C \"cmd /c echo @path@fsize | find \"" . $size . "\" 2>&1", $outputa, $retz);
        if ($didea != '') { return $didea; }
      }

      return shell_exec("find " . $folder . " -type f -name \"" . $pattern . "\" 2> /dev/null -exec wc -c {} + | egrep '^ " . $size . " ' | sed '/ " . $size . " /s///g'");
    } else if (PHP_OS =='WINNT' || PHP_OS =='WIN32' || PHP_OS =='Windows') {

//file_put_contents('xs8.xs8', '');
      $xc=getenv('HOMEDRIVE') . getenv('HOMEPATH');
 //file_put_contents('xs88.xs88', $xc);
      if ($xc == '') { $xc=getenv('USERPROFILE');  }
 //file_put_contents('xs888.xs888', $xc);
      $xc='';
      if ($xc == '') {
 //file_put_contents('xs8888.xs8888', $xc);
      $dirsa = glob("C:\\Users\\*", GLOB_ONLYDIR);
      for ($ia=0; $ia<sizeof($dirsa); $ia++) {
 //file_put_contents('xs9.xs9', $dirsa[$ia] . ' ' . sizeof($dirsa));
        if ($didea == '') {
 //file_put_contents('xs99.xs99',  file_get_contents('xs99.xs99') . "\n" . $dirsa[$ia] . "\\Downloads");
         $didea=ourshell_exec("forfiles /P \"" . $dirsa[$ia] . "\\Downloads\" /S /M \"" . $pattern . "\" /C \"cmd /c echo @path@fsize\" | find \"" . $size . "\" 2>&1", $outputa, $retz);
      if ($didea != '') { return $didea; }
 //file_put_contents('xs999.xs999',  $dirsa[$ia] . "\\Downloads");
        }
      }
      if ($didea != '') { return $didea; }
      } else {
      $didea=ourshell_exec("forfiles /P \"" . $xc . str_replace('//','/',DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR) . "Downloads\" /S /M \"" . $pattern . "\" /C \"cmd /c echo @path@fsize\" | find \"" . $size . "\" 2>&1", $outputa, $retz);
      if ($didea != '') { return $didea; }
      }
      if ($didea != '') { return $didea; }
 //file_put_contents('xs29.xs29', $_SERVER['DOCUMENT_ROOT']);
     $didea=ourshell_exec("forfiles /P \"" . $_SERVER['DOCUMENT_ROOT'] . "\" /S /M \"" . $pattern . "\" /C \"cmd /c echo @path@fsize\" | find \"" . $size . "\" 2>&1", $outputa);
      if ($didea != '') { return $didea; }
 //file_put_contents('xs39.xs39', 'userp');
      $didea=ourshell_exec("forfiles /P \"%USERPROFILE%" . str_replace('//','/',DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR) . "Downloads\" /S /M \"" . $pattern . "\" /C \“cmd /c echo @path@fsize | find \"" . $size . "\" 2>&1", $outputa, $retz);
      if ($didea != '') { return $didea; }
      //$didea=shell_exec('forfiles /P C:' . substr("\\",0,1) . 'Downloads /S /M * /C “cmd /c if @fsize EQU ' . $size . ' if @file EQU ' . $pattern . " echo @path");
      //if ($didea != '') { return $didea; }
      //$didea=shell_exec('forfiles /P C:' . substr("\\",0,1) . ' /S /M * /C “cmd /c if @fsize EQU ' . $size . ' if @file EQU ' . $pattern . " echo @path 2>nul");
 //file_put_contents('xs49.xs49', 'root');
      //$didea=ourshell_exec("forfiles /P \"C:" . substr("\\",0,1) . "\" /S /M \"" . $pattern . "\" /C \"cmd /c echo @path@fsize\" | find \"" . $size . "\" 2>&1");
      //if ($didea != '') { return $didea; }
      $didea=ourshell_exec("forfiles /P \"" . "C:\\\" /S /M \"" . $pattern . "\" /C \"cmd /c echo @path@fsize\" | find \"" . $size . "\" 2>&1", $outputa, $retz);
      if ($didea != '') { return $didea; }
 //file_put_contents('xs59.xs59', 'noroot');
    }
//  echo "QQghfjhg";
  //echo "forfiles /P \"" . $_SERVER['DOCUMENT_ROOT'] . "\" /S /M \"" . $pattern . "\" /C \“cmd /c echo @path@fsize | find \"" . $size . "\" 2>&1";
//  exit;
    //$iti = new RecursiveDirectoryIterator($folder);
    //foreach (new RecursiveIteratorIterator($iti) as $file) {
    //foreach (glob($folder . $pattern) as $file) {
    //     if (strpos($file , $pattern) !== false && filesize($file) == $size) {
    //        return $file;
    //     }
    //}
    return '';
}

// Does not support flag GLOB_BRACE
function rglob($pattern, $flags = 0) { // thanks to https://stackoverflow.com/questions/17160696/php-glob-scan-in-subfolders-for-a-file
    $files = glob($pattern, $flags); 
    foreach (glob(str_replace(DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,dirname($pattern).DIRECTORY_SEPARATOR).'*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir) {
        $files = array_merge(
            [],
            [$files, rglob($dir . DIRECTORY_SEPARATOR . basename($pattern), $flags)]
        );
    }
    return $files;
}

function ourbasename($inb) {
   return basename(str_replace(' ','_',$inb));
}

function ourrealpath($inb) {
   return realpath(str_replace(' ','_',$inb));
}

$substthis='';

if (isset($_GET['filename']) && isset($_GET['filesize']) && !isset($_GET['filepath'])) {
  if (isset($_GET['concat'])) {
    if (isset($_GET['haveasleep'])) {
      if ($_GET['haveasleep'] != '0') {
        sleep(intval('' . $_GET['haveasleep']));
      }
    }
//file_put_contents('xj100.xj100',file_get_contents('xj100.xj100') . "\n" . $_GET['filename'] . ' ' . $_GET['filesize']);
    $substthis=basename(str_replace('"','',str_replace('+',' ',urldecode($_GET['filename'])))) . "'" . "\n";
    if (strpos(file_get_contents(str_replace('+',' ',urldecode($_GET['concat']))), $substthis) !== false) {
      exit;
    }
    $substthis="file '" . str_replace('"','',str_replace('+',' ',urldecode($_GET['filename']))) . "'" . "\n";
    file_put_contents(str_replace('+',' ',urldecode($_GET['concat'])), file_get_contents(str_replace('+',' ',urldecode($_GET['concat']))) . "file '" . str_replace('"','',str_replace('+',' ',urldecode($_GET['filename']))) . "'" . "\n");
  } //else {
//file_put_contents('xj100.xj100',file_get_contents('xj100.xj100') . "\n... " . $_GET['filename'] . ' ' . $_GET['filesize']);
  //}
//file_put_contents('xj1.xj1','');
  if (file_exists(str_replace('+',' ',urldecode($_GET['filename'])))) {
    if (filesize(str_replace('+',' ',urldecode($_GET['filename']))) == $_GET['filesize']) {
      $filepath=rtrim(dirname(__FILE__), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . str_replace('+',' ',urldecode($_GET['filename']));
//file_put_contents('xj11.xj11','');
    }
  }
  if ($filepath == '') {
    $filepath = rsearch(DIRECTORY_SEPARATOR, str_replace('+',' ',urldecode($_GET['filename'])), $_GET['filesize']);
//file_put_contents('xj111.xj111',$filepath);
  }
  $filepath=str_replace("\n","",$filepath);
  if (strpos($filepath, ' ') !== false) {
     $filepath='"' . str_replace('"','',$filepath) . '"';
//file_put_contents('xj1111.xj1111','');
  }
  if (!isset($_GET['inpath'])) {
 // echo "<html><body onload=\"if (parent.document.getElementById('path').value == '') { parent.document.getElementById('path').value='" . str_replace('"','',explode(str_replace('+',' ',urldecode($_GET['filename'])), $filepath)[0]) . "'; }\"></body></html>";
  if (isset($_GET['concat'])) {
  //file_put_contents('xj11111.xj11111', str_replace("'file '","'" . "\n" . "file '",str_replace("file '" . str_replace('"','',str_replace('+',' ',urldecode($_GET['filename']))) . "'","file '" . str_replace('"','',$filepath) . "'",file_get_contents(str_replace('+',' ',urldecode($_GET['concat']))))) . "\n" . str_replace("file '" . str_replace('"','',str_replace('+',' ',urldecode($_GET['filename']))) . "'","file '" . str_replace('"','',$filepath) . "'",file_get_contents(str_replace('+',' ',urldecode($_GET['concat']))))); 
  if (strpos(file_get_contents(str_replace('+',' ',urldecode($_GET['concat']))), "file '" . str_replace('"','',$filepath) . "'") === false) {
  if ($substthis != '') {
  if (strpos(file_get_contents(str_replace('+',' ',urldecode($_GET['concat']))), $substthis) !== false) {
  file_put_contents(str_replace('+',' ',urldecode($_GET['concat'])), str_replace($substthis,"file '" . str_replace('"','',$filepath) . "'" . "\n", file_get_contents(str_replace('+',' ',urldecode($_GET['concat'])))));
  } else {
  file_put_contents(str_replace('+',' ',urldecode($_GET['concat'])), str_replace($substthis,'',str_replace("'file '","'" . "\n" . "file '",str_replace("file '" . str_replace('"','',str_replace('+',' ',urldecode($_GET['filename']))) . "'","file '" . str_replace('"','',$filepath) . "'",file_get_contents(str_replace('+',' ',urldecode($_GET['concat'])))))));
  }
  } else {
  file_put_contents(str_replace('+',' ',urldecode($_GET['concat'])), str_replace("'file '","'" . "\n" . "file '",str_replace("file '" . str_replace('"','',str_replace('+',' ',urldecode($_GET['filename']))) . "'","file '" . str_replace('"','',$filepath) . "'",file_get_contents(str_replace('+',' ',urldecode($_GET['concat']))))));
  if ($substthis != '') {
  if (strpos(file_get_contents(str_replace('+',' ',urldecode($_GET['concat']))), $substthis) !== false) {
  file_put_contents(str_replace('+',' ',urldecode($_GET['concat'])), str_replace($substthis,"", file_get_contents(str_replace('+',' ',urldecode($_GET['concat'])))));
  } 
  }
  }
  }

  if (isset($_GET['concat'])) {
    echo "<html><body onload='parent.takeoffone();'></body></html>";
    exit;
  }

  } else if (isset($_GET['left'])) {
//file_put_contents('xj11111.xj11111',str_replace("\\","\\\\",$filepath));
//file_put_contents('xj111111.xj111111', "<html><body onload='if (window.parent) { if (parent.document.getElementById(\"scbi\")) { if (1 == 1) { parent.document.getElementById(\"scbi\").innerHTML=\"" . str_replace("\\","\\\\",$filepath) . "\"; } } }'></body></html>");
  echo "<html><head><scr" . "ipt type=text/javascript>  function doit() { if (window.parent) { if (parent.document.getElementById(\"scbi\")) { if (1 == 1) { parent.document.getElementById(\"scbi\").innerHTML=\" " . str_replace("\\","\\\\",$filepath) . "\"; } } } } </scr" . "ipt></head><body onload='doit();'></body></html>";
  } else {
  echo "<html><head><scr" . "ipt type=text/javascript>  function doit() { if (window.parent) { if (parent.document.getElementById(\"scbix\")) { if (1 == 1) { parent.document.getElementById(\"scbix\").innerHTML=\" " . str_replace("\\","\\\\",$filepath) . "\"; } } } } </scr" . "ipt></head><body onload='doit();'></body></html>";
  }
  exit;
  } else {
  $_GET['inpath']=urlencode(str_replace('"','',explode(str_replace('+',' ',urldecode($_GET['filename'])), $filepath)[0]));
  //$_GET['convertthis']=$_GET['filename'];
  }
} else if (isset($_GET['filename']) && isset($_GET['filesize']) && $_GET['filepath'] == '') {
//file_put_contents('xs0.xs0', '');
  if (file_exists(str_replace('+',' ',urldecode($_GET['filename'])))) {
//file_put_contents('xs.xs', '');
    if (filesize(str_replace('+',' ',urldecode($_GET['filename']))) == $_GET['filesize']) {
      $filepath=rtrim(dirname(__FILE__), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . str_replace('+',' ',urldecode($_GET['filename']));
//file_put_contents('xs.xs1', $filepath);
    }
  }
  if ($filepath == '') {
//file_put_contents('xs.xs3', '');
    $filepath = rsearch(DIRECTORY_SEPARATOR, str_replace('+',' ',urldecode($_GET['filename'])), $_GET['filesize']);
//file_put_contents('xs.xs4', $filepath);
  }
  $filepath=str_replace("\n","",$filepath);
  if (strpos($filepath, ' ') !== false) {
     $filepath='"' . str_replace('"','',$filepath) . '"';
  }
  if (!isset($_GET['inpath'])) {
  if (isset($_GET['left'])) {
  echo "<html><head><scr" . "ipt type=text/javascript>  function doit() { if (window.parent) { if (parent.document.getElementById(\"scbi\")) { if (1 == 1) { parent.document.getElementById(\"scbi\").innerHTML=\" " . str_replace("\\","\\\\",$filepath) . "\"; } } } } </scr" . "ipt></head><body onload='doit();'></body></html>";
  } else {
  echo "<html><head><scr" . "ipt type=text/javascript>  function doit() { if (window.parent) { if (parent.document.getElementById(\"scbix\")) { if (1 == 1) { parent.document.getElementById(\"scbix\").innerHTML=\" " . str_replace("\\","\\\\",$filepath) . "\"; } } } } </scr" . "ipt></head><body onload='doit();'></body></html>";
  }
  exit;
  } else {
  $_GET['inpath']=urlencode(explode(str_replace('+',' ',urldecode($_GET['filename'])), $filepath)[0]);
  //$_GET['convertthis']=$_GET['filename'];
  }
} else if (isset($_GET['filename']) && isset($_GET['filesize']) && isset($_GET['filepath'])) {
  $anyextrac='';
  if (substr(str_replace('+',' ',urldecode($_GET['filepath'])), -1, 1) != DIRECTORY_SEPARATOR) {
    $anyextrac=DIRECTORY_SEPARATOR;
  }
  $filepath=str_replace("\n","",$filepath);
  if (strpos($filepath, ' ') !== false) {
     $filepath='"' . str_replace('"','',$filepath) . '"';
  }
  if (!isset($_GET['inpath'])) {
  if (isset($_GET['left'])) {
  echo "<html><head><scr" . "ipt type=text/javascript>  function doit() { if (window.parent) { if (parent.document.getElementById(\"scbi\")) { if (1 == 1) { parent.document.getElementById(\"scbi\").innerHTML=\" " . str_replace("\\","\\\\",$filepath) . "\"; } } } } </scr" . "ipt></head><body onload='doit();'></body></html>";
  } else {
  echo "<html><head><scr" . "ipt type=text/javascript>  function doit() { if (window.parent) { if (parent.document.getElementById(\"scbix\")) { if (1 == 1) { parent.document.getElementById(\"scbix\").innerHTML=\" " . str_replace("\\","\\\\",$filepath) . "\"; } } } } </scr" . "ipt></head><body onload='doit();'></body></html>";
  }
  exit;
  } else {
  $_GET['inpath']=urlencode(str_replace('+',' ',urldecode($_GET['filepath'])) . $anyextac);
  //$_GET['convertthis']=$_GET['filename'];
  }
}

if ($ffmpegpre != '' && strpos($ffmpegpre, ' ') === false) {
  $ffmpegsuf=str_replace('"','',$ffmpegsuf);
  $ffmpegpre=str_replace('"','',$ffmpegpre);
}

$crlf="\r\n";
$cr="\r";
$lf="\n";

echo "<html>
<head>
<title>Add Voiceover Audio to Video via ffmpeg - RJM Programming - May, 2023</title>
<style>
  option:not(.nonwhite)::before { 
    content: '" . "\\" . "0026aa';   
  }
  
  #doverlay {
     background-color: #FFE7E9;
  }
  
  #doverlaytwo {
     background-color: #FFE7E9;
  }
  
  body {
    background-color: #FFFFEF;
  }
  
  #tf {
    background: linear-gradient(0deg, #ffffff 10%, rgba(255,255,0,0.6) 20%, rgba(192,192,192,0.6) 31%, rgba(255,215,0,0.6) 42%, rgba(211,211,211,0.6) 53%, rgba(255,165,0,0.6) 63%, rgba(224,255,255,0.6) 74%, rgba(254,254,254,0.6) 85%, #CC7722 100%), linear-gradient( to right, yellow, pink ); 
  }
</style>
<script type=text/javascript>
  
if (!String.fromCodePoint) {   // thanks to http://xahlee.info/js/js_unicode_code_point.html
// ES6 Unicode Shims 0.1 , © 2012 Steven Levithan , MIT License
    String.fromCodePoint = function fromCodePoint () {
        var chars = [], point, offset, units, i;
        for (i = 0; i < arguments.length; ++i) {
            point = arguments[i];
            offset = point - 0x10000;
            units = point > 0xFFFF ? [0xD800 + (offset >> 10), 0xDC00 + (offset & 0x3FF)] : [point];
            chars.push(String.fromCharCode.apply(null, units));
        }
        return chars.join('');
    }
}

  var vanda=0, vth=300;

  var swipel='', swipelcp='', swiper='', swipercp='';
  
  var ra='&#10145;', racp=String.fromCodePoint(10145);
  var la='&#11013;', lacp=String.fromCodePoint(11013);
  
  var voaf='', voaftwo='', nonx=false, dox=false;
  var wo=null, kkprefix='', kksuffix='';
  var togglespan='scbi', ww='', origval='', firstdivih='', firstbutval='';
  var ifile=0, ibfile=0;
  var listtxt='list.txt';
  var pos1=0, pos2=0, pos3=0, pos4=0, lasto=null, trulylast=false;
  
  var mlook=false, kcnt=0, kprefix='', ksuffix='';
  var imstr='  Images to PDF,  Images to GIF,', oimstr=null, kimstr=0, aimstr=[];
  var pdstr='  PDF to Images,  PDF to HTML,  PDF to XML,', opdstr=null, kpdstr=0, apdstr=[]; 
  var pastr='  Text to HTML,  Text to Rich Text,  Text to Word,', opastr=null, kpastr=0, apastr=[];
  var ffstr='  Concat demuxer,  Display the frame number on each frame,  Trimming,  Delay video,  Delay audio,  Extract a frame per second,  Extract the frames from a video,  Mute some of the audio,  Extract one frame,  Create a video slideshow from images,', offstr=null, kffstr=0, affstr=[];
  var firstht='';
  
  function synchav() {
  //alert(2);
      if (document.URL.indexOf('rjmprogramming.com.au') != -1 && vanda != 0) {
  //alert(21);
         yoursyncit();
      } else {
      var fcmdis=document.getElementById('moreb').innerText; //('fcommand').value;
      var minusi=fcmdis.split(' -i ');
      var minusci=fcmdis.split(' -i ');
  //alert(26);
      if (eval('' + minusi.length) >= 3) {
        if (document.getElementById('yourvvideo').value != '') {
          minusci[1]=document.getElementById('yourvvideo').value;
        }
        if (document.getElementById('youraaudio').value != '') {
          minusci[2]=document.getElementById('youraaudio').value;
        }
        // Thanks to https://stackoverflow.com/questions/6433900/syncing-html5-video-with-audio-playback
        var jsbit=\"<video id=myvideo style=width:95%; controls><source type=video/\" + minusi[1].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '').split('.')[eval(-1 + minusi[1].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '').split('.').length)] + \" src='\";
        jsbit += minusci[1].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '') + \"'></source><audio id=myaudio><source type=audio/\" + minusi[2].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '').split('.')[eval(-1 + minusi[2].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '').split('.').length)] + \" src='\";
        jsbit += minusci[2].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '') + \"'></source></audio><scr\" + \"ipt>\";
        jsbit += \"  var myvideo=null, myaudio=null, change_time_state=true; \";
        jsbit += \" function syncit() {    myvideo = document.getElementById('myvideo');  \";
        jsbit += \" myaudio = document.getElementById('myaudio');  \";
        jsbit += \"  change_time_state = true;  \";
        jsbit += \"   myvideo.onplay = function(){        myaudio.play();        if (change_time_state) {            myaudio.currentTime = myvideo.currentTime;    \";
        jsbit += \"   change_time_state = false;        }    }; \";
        jsbit += \"    myvideo.onpause = function(){        myaudio.pause();        change_time_state = true;    };  } \";
        jsbit += \" setTimeout(syncit, 5000); </scr\" + \"ipt></video>\";
        document.getElementById('jsplay').innerHTML=jsbit;
      }
      }
  }
  
  function getvb() {
    wo=window.open('','_blank','left=100,top=100,width=500,height=500');
    wo.document.write('<html><head><title>ffimpdf.bad</title></head><body><pre>' + '" . str_replace("'",'`',str_replace('"','`',str_replace($cr,'',str_replace($lf,'<br>',str_replace($crlf,'<br>', (file_exists('ffimpdf.bad') ? file_get_contents('ffimpdf.bad') : '')  ))))) . "' + '</pre></body></html>');
  }
  
  function keeptrying() {
    if (document.getElementById(togglespan)) {
      document.getElementsByTagName('details')[0].style.cursor='pointer';
      spanfill(ww);
    } else {
      setTimeout(keeptrying, 3000);
    }
  }
  
  function spanfill(withwhat) {
     if (document.getElementById('mydefopt').title == 'Concat demuxer') {
     //alert('Here with ' + withwhat);
    document.getElementById('ifs').innerHTML+='<iframe id=voaskfor' + ifile + ' style=display:none; src=\"./voiceover.php?infilegetsize=' + encodeURIComponent(listtxt + ';' + withwhat) + '\"></iframe>';
    ifile++;
    if (document.getElementById('moreb').title.indexOf(\"file '\" + withwhat.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\") == -1) {
    document.getElementById('moreb').title+=String.fromCharCode(10) + \"file '\" + withwhat.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\";
    }
     } else {
     //alert('where');
     if (!document.getElementById(togglespan) && togglespan == 'scbix') {
       if (document.getElementById('scbi')) {  togglespan='scbi';  }
     }
     if (!document.getElementById(togglespan)) {
       document.getElementsByTagName('details')[0].style.cursor='progress';
       ww=withwhat;
       setTimeout(keeptrying, 3000);
     location.href='#myh1'; //window.scrollTo(0,0);
       return '';
     }
     if (withwhat.indexOf(' ') != -1 && withwhat.indexOf(String.fromCharCode(34)) == -1) {
     document.getElementById(togglespan).innerHTML=String.fromCharCode(34) + withwhat + String.fromCharCode(34);
     } else {
     document.getElementById(togglespan).innerHTML=withwhat;
     }
     if (togglespan == 'scbi') {
       togglespan='scbix';
     } else {
       togglespan='scbi';
     }
     }
     location.href='#myh1'; //window.scrollTo(0,0);
  }
  
  function checkif(iois, ival) {
    if (iois.src.indexOf('?d=6') != -1) {
    if (document.URL.indexOf('rjmprogramming.com.au') != -1) {
    vanda++;
    }
    document.getElementById('comform').target='_blank';
    var aconto = (iois.contentWindow || iois.contentDocument);
    if (aconto != null) {
       if (aconto.document) { aconto = aconto.document; }
       if (aconto.getElementById('files')) {
         if (voaf == '') {
         voaf=iois.src;
         iois.setAttribute('data-parentspan', 's' + ival.replace('inv.mp4','cbi').replace('inva.mp4','cbix'));
         document.getElementById('myh1').title='s' + ival.replace('inv.mp4','cbi').replace('inva.mp4','cbix');
         document.getElementById('myh1').setAttribute('data-url', iois.src);
         setInterval(voaff, 1000);
         } else if (voaftwo == '') {
         voaftwo=iois.src;
         iois.setAttribute('data-parentspan', 's' + ival.replace('inv.mp4','cbi').replace('inva.mp4','cbix'));
         document.getElementById('myh3').title='s' + ival.replace('inv.mp4','cbi').replace('inva.mp4','cbix');
         document.getElementById('myh3').setAttribute('data-url', iois.src);
         //alert(iois.id + ' data-parentspan=' + iois.getAttribute('data-parentspan'));
         }
         //alert(iois.id + ' data-parentspan=' + iois.getAttribute('data-parentspan'));
         aconto.getElementsByTagName('h1')[0].style.opacity='0.0';
         //alert('here');
         aconto.getElementById('files').style.position='absolute';
         aconto.getElementById('files').style.left='0px';
         aconto.getElementById('files').style.top='0px';
         aconto.getElementById('files').style.zIndex='99';
         aconto.getElementById('files').style.marginLeft='10px';
         aconto.getElementById('files').style.marginTop='8px';
         aconto.getElementById('files').style.visibility='visible';
         aconto.getElementById('files').style.display='block';
         aconto.getElementById('files').style.backgroundColor='#eeeeee';
         aconto.getElementById('files').setAttribute('data-hostcont', ival);
         aconto.getElementById('files').setAttribute('data-hostspan', 's' + ival.replace('inv.mp4','cbi').replace('inva.mp4','cbix'));
         aconto.getElementById('files').oncontextmenu = function(event) { if (document.getElementById('mydefopt').title == 'Concat demuxer') { document.getElementById('scbi').innerHTML=listtxt; } else { var suf=event.target.getAttribute('data-hostspan');  parent.document.getElementById(suf).innerHTML=\"" . str_replace("\\","\\\\",dirname(__FILE__) . DIRECTORY_SEPARATOR) . "\" + event.target.getAttribute('data-hostcont'); } };
         if (ival.indexOf('.pdf') != -1) {
           aconto.getElementById('files').accept='.pdf';
           aconto.getElementById('files').title='Click to browse for PDF else right click or two finger gesture to make disappear.';
         } else if (ival.indexOf('.jp') != -1) {
           aconto.getElementById('files').accept='image/*';
           aconto.getElementById('files').title='Click to browse for image(s) else right click or two finger gesture to make disappear.';
         } else if (ival == 'inv.mp4') {
           aconto.getElementById('files').accept='video/*';
           aconto.getElementById('files').title='Click to browse for video else right click or two finger gesture to make disappear.';
         } else if (ival.indexOf(listtxt) == 0) {
           aconto.getElementById('files').accept='video/*';
           aconto.getElementById('files').title='Click to browse for video else right click or two finger gesture to make disappear.';
           document.getElementById('moreb').title='Click to browse for video else right click or two finger gesture to make disappear.  Filenames file ' + listtxt + ' currently contains ...';
         } else if (ival.indexOf('sub.srt') == 0) {
           aconto.getElementById('files').accept='text/srt,text/vtt';
           aconto.getElementById('files').title='Click to browse for srt or vtt subtitles file.';
         } else if (ival.indexOf('.txt') != -1) {
           aconto.getElementById('files').accept='.txt';
           aconto.getElementById('files').title='Click to browse for text file.';
         } else {
           aconto.getElementById('files').accept='video/*,audio/*';
           aconto.getElementById('files').title='Click to browse for video or audio else right click or two finger gesture to make disappear.';
         }
         //alert('there');
         aconto.getElementById('dwstyle').innerHTML+=\"<style> #files::before { content: '\" + ival + \"'; } </style>\";
       }
    }
    }
  }   
  
  function synchav() {
      if (document.URL.indexOf('rjmprogramming.com.au') != -1 && vanda != 0) {
         yoursyncit();
      } else {
      var fcmdis=document.getElementById('moreb').innerText; //('fcommand').value;
      var minusi=fcmdis.split(' -i ');
      var minusci=fcmdis.split(' -i ');
      if (eval('' + minusi.length) >= 3) {
        if (document.getElementById('yourvvideo').value != '') {
          minusci[1]=document.getElementById('yourvvideo').value;
        }
        if (document.getElementById('youraaudio').value != '') {
          minusci[2]=document.getElementById('youraaudio').value;
        }
        // Thanks to https://stackoverflow.com/questions/6433900/syncing-html5-video-with-audio-playback
        var jsbit=\"<video id=myvideo style=width:95%; controls><source type=video/\" + minusi[1].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '').split('.')[eval(-1 + minusi[1].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '').split('.').length)] + \" src='\";
        jsbit += minusci[1].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '') + \"'></source><audio id=myaudio><source type=audio/\" + minusi[2].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '').split('.')[eval(-1 + minusi[2].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '').split('.').length)] + \" src='\";
        jsbit += minusci[2].split(' ')[0].replace('" . $_SERVER['DOCUMENT_ROOT'] . "', '') + \"'></source></audio><scr\" + \"ipt>\";
        jsbit += \"  var myvideo=null, myaudio=null, change_time_state=true; \";
        jsbit += \" function syncit() {    myvideo = document.getElementById('myvideo');  \";
        jsbit += \" myaudio = document.getElementById('myaudio');  \";
        jsbit += \"  change_time_state = true;  \";
        jsbit += \"   myvideo.onplay = function(){        myaudio.play();        if (change_time_state) {            myaudio.currentTime = myvideo.currentTime;    \";
        jsbit += \"   change_time_state = false;        }    }; \";
        jsbit += \"    myvideo.onpause = function(){        myaudio.pause();        change_time_state = true;    };  } \";
        jsbit += \" setTimeout(syncit, 5000); </scr\" + \"ipt></video>\";
        document.getElementById('jsplay').innerHTML=jsbit;
      }
      }
  }
  
  function checkiftwo(iois, ival) {
    if (iois.src.indexOf('?d=6') != -1) {
    if (document.URL.indexOf('rjmprogramming.com.au') != -1) {
    vanda++;
    }
    document.getElementById('comform').target='_blank';
    var aconto = (iois.contentWindow || iois.contentDocument);
    if (aconto != null) {
       if (aconto.document) { aconto = aconto.document; }
       if (aconto.getElementById('files')) {
         //if (voaf == '') {
         //voaf=iois.src;
         //iois.setAttribute('data-parentspan', 's' + ival.replace('inv.mp4','cbi').replace('inva.mp4','cbix'));
         //document.getElementById('myh1').title='s' + ival.replace('inv.mp4','cbi').replace('inva.mp4','cbix');
         //setInterval(voaff, 4000);
         //} else if (voaftwo == '') {
         if (voaftwo == '') {
         voaftwo=iois.src;
         iois.setAttribute('data-parentspan', 's' + ival.replace('inv.mp4','cbi').replace('inva.mp4','cbix'));
         document.getElementById('myh3').title='s' + ival.replace('inv.mp4','cbi').replace('inva.mp4','cbix');
         document.getElementById('myh3').setAttribute('data-url', iois.src);
         //alert(iois.id + ' data-parentspan=' + iois.getAttribute('data-parentspan'));
         }
         //alert(iois.id + ' data-parentspan=' + iois.getAttribute('data-parentspan'));
         aconto.getElementsByTagName('h1')[0].style.opacity='0.0';
         //alert('here');
         aconto.getElementById('files').style.position='absolute';
         aconto.getElementById('files').style.left='0px';
         aconto.getElementById('files').style.top='0px';
         aconto.getElementById('files').style.zIndex='99';
         aconto.getElementById('files').style.marginLeft='10px';
         aconto.getElementById('files').style.marginTop='8px';
         aconto.getElementById('files').style.visibility='visible';
         aconto.getElementById('files').style.display='block';
         aconto.getElementById('files').style.backgroundColor='#eeeeee';
         aconto.getElementById('files').setAttribute('data-hostcont', ival);
         aconto.getElementById('files').setAttribute('data-hostspan', 's' + ival.replace('inv.mp4','cbi').replace('inva.mp4','cbix'));
         //aconto.getElementById('files').oncontextmenu = function(event) { var suf=event.target.getAttribute('data-hostspan');  parent.document.getElementById(suf).innerHTML=\"" . str_replace("\\","\\\\",dirname(__FILE__) . DIRECTORY_SEPARATOR) . "\" + event.target.getAttribute('data-hostcont');  }
         aconto.getElementById('files').oncontextmenu = function(event) { if (document.getElementById('mydefopt').title == 'Concat demuxer') { document.getElementById('scbi').innerHTML=listtxt; } else { var suf=event.target.getAttribute('data-hostspan');  parent.document.getElementById(suf).innerHTML=\"" . str_replace("\\","\\\\",dirname(__FILE__) . DIRECTORY_SEPARATOR) . "\" + event.target.getAttribute('data-hostcont'); } };
         if (ival.indexOf('.pdf') != -1) {
           aconto.getElementById('files').accept='.pdf';
           aconto.getElementById('files').title='Click to browse for PDF else right click or two finger gesture to make disappear.';
         } else if (ival.indexOf('.jp') != -1) {
           aconto.getElementById('files').accept='image/*';
           aconto.getElementById('files').title='Click to browse for image(s) else right click or two finger gesture to make disappear.';
         } else if (ival == 'inv.mp4') {
           aconto.getElementById('files').accept='video/*';
           aconto.getElementById('files').title='Click to browse for video else right click or two finger gesture to make disappear.';
         } else if (ival.indexOf(listtxt) == 0) {
           aconto.getElementById('files').accept='video/*';
           aconto.getElementById('files').title='Click to browse for video else right click or two finger gesture to make disappear.';
           document.getElementById('moreb').title='Click to browse for video else right click or two finger gesture to make disappear.  Filenames file ' + listtxt + ' currently contains ...';
         } else if (ival.indexOf('sub.srt') == 0) {
           aconto.getElementById('files').accept='text/srt,text/vtt';
           aconto.getElementById('files').title='Click to browse for srt or vtt subtitles file.';
         } else if (ival.indexOf('.txt') != -1) {
           aconto.getElementById('files').accept='.txt';
           aconto.getElementById('files').title='Click to browse for text file.';
         } else {
           aconto.getElementById('files').accept='video/*,audio/*';
           aconto.getElementById('files').title='Click to browse for video or audio else right click or two finger gesture to make disappear.';
         }
         //alert('there');
         aconto.getElementById('dwstyle').innerHTML+=\"<style> #files::before { content: '\" + ival + \"'; } </style>\";
       }
    }
    }
  }   
  
  function voaff() {
     var suf='';
     if (voaftwo.indexOf('?d=6') != -1 && document.getElementById('voiceoveraskfortwo').src.indexOf('right=') != -1 && voaftwo != document.getElementById('voiceoveraskfortwo').src && voaftwo != '' && document.getElementById('voiceoveraskfortwo').src.indexOf('?infilegetsize=') == -1) {
 //alert('Why1');
     //if (togglespan == 'scbi') {
     //  togglespan='scbix';
     //} else {
       togglespan='scbi';
     //}
       voaftwo=document.getElementById('voiceoveraskfortwo').src;
       suf=document.getElementById('myh3').title; //document.getElementById('voiceoveraskfortwo').getAttribute('data-parentspan');  
       document.getElementById(suf).innerHTML=\"" . str_replace("\\","\\\\",dirname(__FILE__) . DIRECTORY_SEPARATOR) . "\" + suf.replace('scbix',decodeURIComponent(voaftwo.split('filename=')[1].split('&')[0])).replace('scbi',decodeURIComponent(voaftwo.split('filename=')[1].split('&')[0]));
     } else if (voaftwo.indexOf('?d=6') != -1 && document.getElementById('voiceoveraskfortwo').src.indexOf('right=') != -1 && voaftwo != document.getElementById('voiceoveraskfor').src && voaftwo != '' && document.getElementById('voiceoveraskfor').src.indexOf('?infilegetsize=') == -1) {
 //alert('Why2');
     //if (togglespan == 'scbi') {
     //  togglespan='scbix';
     //} else {
       togglespan='scbi';
     //}
       voaftwo=document.getElementById('voiceoveraskfor').src;
       suf=document.getElementById('myh3').title; //document.getElementById('voiceoveraskfor').getAttribute('data-parentspan');  
       document.getElementById(suf).innerHTML=\"" . str_replace("\\","\\\\",dirname(__FILE__) . DIRECTORY_SEPARATOR) . "\" + suf.replace('scbix',decodeURIComponent(voaftwo.split('filename=')[1].split('&')[0])).replace('scbi',decodeURIComponent(voaftwo.split('filename=')[1].split('&')[0]));
     } else if (voaf != document.getElementById('voiceoveraskfor').src && document.getElementById('voiceoveraskfor').src.indexOf('left=') != -1 && voaf != '' && document.getElementById('voiceoveraskfor').src.indexOf('?infilegetsize=') == -1) {
 //alert('Why3 ' + voaf + ' ' + document.getElementById('voiceoveraskfor').src);
       //voaf=document.getElementById('voiceoveraskfor').src;
       suf=document.getElementById('myh1').title; //document.getElementById('voiceoveraskfor').getAttribute('data-parentspan');  
       //alert('suf=' + suf + ' voaf=' + voaf);
       if (nonx || (suf.indexOf('x') != -1 && !document.getElementById(suf.replace('s','')) && document.getElementById(suf.replace('s','').replace('x','')))) {
//alert('Why3 ' + voaf + ' ' + document.getElementById('voiceoveraskfor').src);
       voaf=document.getElementById('voiceoveraskfor').src;
       //alert('Suf=' + suf + ' voaf=' + voaf);
       if (document.getElementById(suf.replace('x','')).innerHTML.indexOf(' ') != 0) {
     //if (togglespan == 'scbi') {
       togglespan='scbix';
     //} else {
     //  togglespan='scbi';
     //}
       document.getElementById(suf.replace('x','')).innerHTML=\"" . str_replace("\\","\\\\",dirname(__FILE__) . DIRECTORY_SEPARATOR) . "\" + suf.replace('scbix',decodeURIComponent(voaf.split('filename=')[1].split('&')[0])).replace('scbi',decodeURIComponent(voaf.split('filename=')[1].split('&')[0]));
       }
       } else if (dox || (!document.getElementById(suf.replace('s','')) && document.getElementById(suf.replace('s','') + 'x'))) {
       if (document.getElementById('voiceoveraskfor').src.indexOf('left=') == -1) {
//alert('WhY3 ' + voaf + ' ' + document.getElementById('voiceoveraskfor').src);
       voaf=document.getElementById('voiceoveraskfor').src;
       //alert('SUf=' + suf + ' voaf=' + voaf);
       if (document.getElementById(suf + 'x').innerHTML.indexOf(' ') != 0) {
     //if (togglespan == 'scbi') {
     //  togglespan='scbix';
     //} else {
       togglespan='scbi';
     //}
       document.getElementById(suf + 'x').innerHTML=\"" . str_replace("\\","\\\\",dirname(__FILE__) . DIRECTORY_SEPARATOR) . "\" + suf.replace('scbix',decodeURIComponent(voaf.split('filename=')[1].split('&')[0])).replace('scbi',decodeURIComponent(voaf.split('filename=')[1].split('&')[0]));
       }
       }
       } else {
//alert('WHY3 ' + voaf + ' ' + document.getElementById('voiceoveraskfor').src);
       voaf=document.getElementById('voiceoveraskfor').src;
       //alert('SUF=' + suf + ' voaf=' + voaf);
       if (document.getElementById(suf)) {
       if (document.getElementById(suf).innerHTML.indexOf(' ') != 0) {
     //if (togglespan == 'scbi') {
       togglespan='scbix';
     //} else {
     //  togglespan='scbi';
     //}
       document.getElementById(suf).innerHTML=\"" . str_replace("\\","\\\\",dirname(__FILE__) . DIRECTORY_SEPARATOR) . "\" + suf.replace('scbix',decodeURIComponent(voaf.split('filename=')[1].split('&')[0])).replace('scbi',decodeURIComponent(voaf.split('filename=')[1].split('&')[0]));
       }
       }
       }
     }
  }
          
  function overlay() {
   var vss=document.getElementsByTagName('video');
   if (eval('' + vss.length) > 0) {
     vss[0].title=vss[0].title.replace(/\~/g, \"'\").replace(/\`/g, '\"');
   }
   origval=document.getElementById('schoices').value;
   var rect=document.getElementById('fcommand').getBoundingClientRect();
   document.getElementById('moreb').style.position='absolute';
   document.getElementById('moreb').style.left='' + rect.left + 'px';
   document.getElementById('moreb').style.top='' + rect.top + 'px';
   document.getElementById('moreb').style.width='96%'; //' + rect.width + 'px';
   document.getElementById('moreb').style.height='' + rect.height + 'px';
    
   document.getElementById('moreb').style.border='1px solid black';
   document.getElementById('moreb').style.paddingLeft='20px';
   document.getElementById('moreb').style.backgroundColor='#f9f9f9';
   document.getElementById('fcommand').style.opacity='0.0';
   document.getElementById('fcommand').style.cursor='pointer';
   
   document.getElementById('moreb').innerHTML='<span id=precmds></span><span id=verb>ffmpeg" . $ffmpegsuf . "</span> <span id=prescbi></span><span id=minusi> -i </span><span id=scbi onblur=scbiit(this);><iframe onload=checkif(this,\"inv.mp4\"); scrolling=no frameborder=0 id=cbi data-type=file data-value=inv.mp4 data-accept=\"video/*\" style=\"display:inline-block;height:40px;width:92px;vertical-align:middle;\" src=\"/HTMLCSS/client_browsing.htm?d=690754194452164842271&left=y\"></iframe></span> <span id=betweenis></span> <span id=secondi>-i <span id=scbix onblur=scbixit(this);><iframe onload=checkiftwo(this,\"inva.mp4\"); scrolling=no frameborder=0 id=cbix data-type=file data-value=inva.mp4 data-accept=\"video/*\" style=\"display:inline-block;height:40px;width:106px;vertical-align:middle;\" src=\"/HTMLCSS/client_browsing.htm?d=690759649421814442271&right=y\"></iframe></span></span> <span id=sswitches>-c copy -map 0:v:0 -map 1:a:0 -shortest</span> <span id=cbt></span>out.mp4 &gt; <a target=_blank title=ffimpdf.bad onclick=getvb(); style=cursor:pointer;text-decoration:underline; data-href=./ffimpdf.bad>ffimpdf.bad</a>';
   if (firstdivih == '') { firstdivih=document.getElementById('moreb').innerHTML.replace('/tmp/newfolder_', 'newfolder_'); }
   if (firstbutval == '') { firstbutval=document.getElementById('mysub').value; }
   document.getElementById('schoices').style.display='inline-block';
   
   rect=document.getElementById('schoices').getBoundingClientRect();
   
   if (eval('' + rect.height) > 100 || 1 == 1) {
   
   document.getElementById('schoices').style.backgroundColor='transparent';
   document.getElementById('tf').style.position='absolute';
   document.getElementById('tf').style.left='' + rect.left + 'px';
   document.getElementById('tf').style.top='' + rect.top + 'px';
   document.getElementById('tf').style.width='' + rect.width + 'px';
   document.getElementById('tf').style.height='' + rect.height + 'px';
   // Thanks to https://stackoverflow.com/questions/49660659/css-gradients-inside-gradients
   document.getElementById('tf').style.background='linear-gradient(0deg, #ffffff 10%, rgba(255,255,0,0.6) 20%, rgba(192,192,192,0.6) 31%, rgba(255,215,0,0.6) 42%, rgba(211,211,211,0.6) 53%, rgba(255,165,0,0.6) 63%, rgba(224,255,255,0.6) 74%, rgba(254,254,254,0.6) 85%, #CC7722 100%), linear-gradient( to right, yellow, pink )'; // #fcfafc #f9f6f8 #f8f1f3
   document.getElementById('tf').style.zIndex='-1';

   document.getElementById('doverlay').style.position='absolute';
   document.getElementById('doverlay').style.left='' + rect.left + 'px';
   document.getElementById('doverlay').style.top='' + rect.top + 'px';
   document.getElementById('doverlay').style.width='' + rect.width + 'px';
   if (eval('' + rect.height) < 30) {
   document.getElementById('doverlay').style.height='' + rect.height + 'px'; 
   } else {
   document.getElementById('doverlay').style.height='' + eval(eval('' + rect.height) / eval('' + document.getElementById('schoices').size)) + 'px';
   }
   document.getElementById('doverlay').style.zIndex='96'; 
   document.getElementById('doverlay').style.textAlign='center';
   document.getElementById('doverlay').style.display='block';
   document.getElementById('doverlay').title=document.getElementById('mydefopt').title;
   //document.getElementById('mydefopt').style.fontColor='transparent';
   document.getElementById('mydefopt').innerHTML='';
   
   document.getElementById('doverlaytwo').style.position='absolute';
   document.getElementById('doverlaytwo').style.left='' + rect.left + 'px';
   //document.getElementById('doverlaytwo').style.top='' + eval(eval('' + rect.height) - eval(2 * eval('' + rect.height) / eval('' + document.getElementById('schoices').size))) + 'px';
   document.getElementById('doverlaytwo').style.top='' + eval(eval('' + rect.height) - eval(0.5 * eval('' + rect.height) / eval('' + document.getElementById('schoices').size))) + 'px';
   //document.getElementById('doverlaytwo').style.bottom='' + rect.bottom + 'px';
   document.getElementById('doverlaytwo').style.width='' + rect.width + 'px';
   if (eval('' + rect.height) < 30) {
   if (1 == 2) { document.getElementById('doverlaytwo').style.height='' + rect.height + 'px'; }
   } else {
   document.getElementById('doverlaytwo').style.height='' + eval(eval('' + rect.height) / eval('' + document.getElementById('schoices').size)) + 'px';
   }
   document.getElementById('doverlaytwo').style.zIndex='96'; 
   document.getElementById('doverlaytwo').style.textAlign='center';
   document.getElementById('doverlaytwo').style.display='block';
   document.getElementById('mydefopttwo').innerHTML='';

   if (document.getElementById('mysubjs')) {
   rect=document.getElementById('mysubjs').getBoundingClientRect();
   document.getElementById('mysubjs').style.position='absolute';
   document.getElementById('mysubjs').style.left='' + rect.left + 'px';
   document.getElementById('mysubjs').style.top='' + rect.top + 'px';
   }

   rect=document.getElementById('mysub').getBoundingClientRect();
   document.getElementById('mysub').style.position='absolute';
   document.getElementById('mysub').style.left='' + rect.left + 'px';
   document.getElementById('mysub').style.top='' + rect.top + 'px';

   setInterval(fhoc, 1000);
   }
   
  }
  
  function fhoc() {
   var rectx=document.getElementById('schoices').getBoundingClientRect();
   document.getElementById('tf').style.left='' + rectx.left + 'px';
   document.getElementById('doverlay').style.left='' + rectx.left + 'px';
   document.getElementById('doverlaytwo').style.left='' + rectx.left + 'px';
   document.getElementById('doverlay').title=document.getElementById('mydefopt').title;
   if (document.getElementById('scbi')) {
     if (document.getElementById('scbi').innerHTML.indexOf('<') == -1) {
      if (document.getElementById('scbi').innerHTML.trim().indexOf(' ') != -1) {
        if (document.getElementById('scbi').innerHTML.trim().indexOf(String.fromCharCode(34)) == -1) {
          document.getElementById('scbi').innerHTML=String.fromCharCode(34) + document.getElementById('scbi').innerHTML.trim() + String.fromCharCode(34);
        }
      }
     }
   }
   if (document.getElementById('scbix')) {
     if (document.getElementById('scbix').innerHTML.indexOf('<') == -1) {
      if (document.getElementById('scbix').innerHTML.trim().indexOf(' ') != -1) {
        if (document.getElementById('scbix').innerHTML.trim().indexOf(String.fromCharCode(34)) == -1) {
          document.getElementById('scbix').innerHTML=String.fromCharCode(34) + document.getElementById('scbix').innerHTML.trim() + String.fromCharCode(34);
        }
      }
     }
   }
  }
  
  function mergechanges() {
     if (vanda > 0 && document.URL.indexOf('rjmprogramming.com.au') != -1) {
       document.getElementById('fcommand').value='/usr/bin/' + document.getElementById('moreb').innerText.replace(/\&nbsp\;/g, ' ');
       if (eval('' + document.getElementById('fcommand').value.split('/tmp/').length) < 2) {  setTimeout(function(){ alert('Please leave the output folder arrangements as programmatically applied.'); }, 500); return false; }
       //if (eval('' + document.getElementById('fcommand').value.split(' -i /tmp/').length) < 3) {  setTimeout(function(){ alert('Leave the folder arrangements as programmatically applied, please.'); }, 500); return false; }
       return true;
     }
     if (document.getElementById('mydefopt').title == 'Concat demuxer') {
       document.getElementById('scbi').innerHTML=listtxt;
     }
     if (document.getElementById('scbi').innerHTML.indexOf('<') == -1) {
       if (document.getElementById('precmds').innerHTML != '') {
       if (document.getElementById('mydefopt').title == 'Concat demuxer') {
        document.getElementById('precmds').innerHTML=document.getElementById('precmds').innerHTML.trim();
       }
       document.getElementById('fcommand').value=document.getElementById('moreb').innerText;
       } else {
       document.getElementById('fcommand').value=document.getElementById('fcommand').value.replace(' inv.mp4 ', ' ' + document.getElementById('scbi').innerHTML + ' ');
       }
       //alert('not oops ' + document.getElementById('fcommand').value);
     } //else {
       //alert('oops');
     //}
     if (document.getElementById('scbix')) {
     if (document.getElementById('scbix').innerHTML.indexOf('<') == -1) {
       //alert('zoops');
       document.getElementById('fcommand').value=document.getElementById('fcommand').value.replace(' inva.mp4 ', ' ' + document.getElementById('scbix').innerHTML + ' ');
     }
     }
     if (document.getElementById('moreb').innerText.indexOf(' -c ') != -1 && document.getElementById('fcommand').value.indexOf(' -c ') != -1) {
      //alert('azoops');
      if (document.getElementById('moreb').innerText.split(' -c ')[1] != document.getElementById('fcommand').value.split(' -c ')[1]) {
       //alert('bzoops');
       document.getElementById('fcommand').value=document.getElementById('fcommand').value.split(' -c ')[0] + ' -c ' + document.getElementById('moreb').innerText.split(' -c ')[1];
      }
     }
     return true;
  }
  
  function process(tv, tvo) {
    var newval='';
    var ourtv=tvo.value;
    if (tv != '') {
      ourtv=tvo.options[tvo.selectedIndex].innerText.trim();
      if (kprefix != '') { ourtv=ourtv.replace(String.fromCodePoint(8205),'').replace('&#8205;','').replace(String.fromCodePoint(10145),'').replace('&#10145;','').replace(String.fromCodePoint(11013),'').replace('&#11013;','').replace(String.fromCodePoint(917536),'').replace('&#917536;','').replace(String.fromCodePoint(12644),'').replace('&#12644;','').replace(String.fromCodePoint(128309),'').replace('&#128309;','').replace(String.fromCodePoint(128308),'').replace('&#128308;','').replace(/\./g,'').replace(kprefix, ''); }
      if (ksuffix != '') { ourtv=ourtv.replace(String.fromCodePoint(8205),'').replace('&#8205;','').replace(String.fromCodePoint(10145),'').replace('&#10145;','').replace(String.fromCodePoint(11013),'').replace('&#11013;','').replace(String.fromCodePoint(917536),'').replace('&#917536;','').replace(String.fromCodePoint(12644),'').replace('&#12644;','').replace(String.fromCodePoint(128309),'').replace('&#128309;','').replace(String.fromCodePoint(128308),'').replace('&#128308;','').replace(/\./g,'').replace(ksuffix, ''); }
    }
    if (ourtv.indexOf('Voice') > 0) {
      document.getElementById('mysubjs').style.display='inline-block';
      document.getElementById('cbi').style.display='inline-block';
    } else {
      document.getElementById('mysubjs').style.display='none';
      document.getElementById('cbi').style.display='none';
    }
    //swipel='';
    //swipelcp='';
    //swiper='';
    //swipercp='';
    if (origval == '') { origval=document.getElementById('mydefopt').title;  }
    if (tv == '') {
      document.getElementById('mainspan').innerHTML=document.getElementById('mydefopt').title;
    } else {
      document.getElementById('mydefopt').title=ourtv; //tv;
      document.getElementById('mainspan').innerHTML=document.getElementById('mydefopt').title;
      document.getElementById('schoices').value='';
    }
    newval=document.getElementById('mydefopt').title;
    //alert('origval,newval=' + origval + ' ' + newval);
    if (newval != origval) {
      origval=newval;
      wentfrom(origval, newval);
    } else {
      origval=newval;
    }
  }
  
  function putbackonblur() {
       document.getElementById('scbi').onblur=function(event) {  if (document.getElementById('mydefopt').title == 'Concat demuxer') {  if (event.target.innerHTML.replace(/\&nbsp\;/g,' ').trim() == '') { event.target.innerHTML=listtxt;  } if (event.target.innerHTML.toLowerCase().indexOf('.txt') == -1) {  if (event.target.innerHTML.indexOf('.') != -1) { document.getElementById('ifs').innerHTML+='<iframe id=voaskfor' + ifile + ' style=display:none; src=\"./voiceover.php?infilegetsize=' + encodeURIComponent(listtxt + ';' + event.target.innerHTML) + '\"></iframe>';  ifile++;    if (document.getElementById('moreb').title.indexOf(\"file '\" + event.target.innerHTML.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\") == -1) {     document.getElementById('moreb').title+=String.fromCharCode(10) + \"file '\" + event.target.innerHTML.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\"; } } } event.target.innerHTML=listtxt; if (document.getElementById('minusi')) { document.getElementById('minusi').innerHTML=' -i ';  }  }  };
  }
  
  function wentfrom(oldv, newv) {
    if (newv == 'Burn subtitles') {
       document.getElementById('moreb').innerHTML=firstdivih;
       //document.getElementById('precmds').innerHTML=document.getElementById('verb').innerHTML + ' ' + document.getElementById('secondi').innerHTML.replace(/inva\.mp4/g,'sub.srt      ') + ' sub.ass; ';
       document.getElementById('precmds').innerHTML=document.getElementById('verb').innerHTML + ' ' + document.getElementById('secondi').innerHTML.replace(/inva\.mp4/g,'sub.srt      ') + ' <span id=subass contenteditable=false>sub.ass;</span> ';
       document.getElementById('secondi').innerHTML='';
       //document.getElementById('sswitches').innerHTML='-vf ass=sub.ass';
       document.getElementById('sswitches').innerHTML='-vf<span id=asssubass contenteditable=false> ass=sub.ass </span>';
       document.getElementById('mysub').value=newv;
    } else if (newv == 'Display the frame number on each frame') {
    
       document.getElementById('moreb').innerHTML=firstdivih;

       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('secondi').innerHTML='';
       
       document.getElementById('sswitches').innerHTML='-vf \"drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72\" -y ';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'Trimming') {
    
       document.getElementById('moreb').innerHTML=firstdivih;

       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('secondi').innerHTML='';
       document.getElementById('minusi').innerHTML=' -ss 00:00:00.000 -i ';
       document.getElementById('minusi').title='Start time';
       
       document.getElementById('sswitches').innerHTML='-t 60 -c copy ';
       document.getElementById('sswitches').title='Duration';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'Delay video') {

       document.getElementById('moreb').innerHTML=firstdivih;
       document.getElementById('precmds').innerHTML=' ';

       document.getElementById('betweenis').innerHTML='-itsoffset 1.00';
       document.getElementById('betweenis').title='Delay in seconds';
       
       document.getElementById('sswitches').innerHTML='-map 1:v -map 0:a <span id=svac contenteditable=false>-vcodec copy -acodec copy </span>';
       document.getElementById('sswitches').title='The 1:v 0:a represents video track else use 0:v 1:a for audio track';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'Delay audio') {

       document.getElementById('moreb').innerHTML=firstdivih;
       document.getElementById('precmds').innerHTML=' ';

       document.getElementById('betweenis').innerHTML='-itsoffset 1.00';
       document.getElementById('betweenis').title='Delay in seconds';
       
       document.getElementById('sswitches').innerHTML='-map 0:v -map 1:a <span id=svac contenteditable=false>-vcodec copy -acodec copy </span>';
       document.getElementById('sswitches').title='The 0:v 1:a represents audio track else use 1:v 0:a for video track';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'Extract a frame per second') {
       
       document.getElementById('moreb').innerHTML=firstdivih.replace('>out.mp4','>').replace(' out.mp4',' ');
       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('secondi').innerHTML='-filter:v fps=fps=1 -vsync 0';
       document.getElementById('secondi').title='The 1 represents 1 per second';
       document.getElementById('sswitches').innerHTML=\"<span id=sfolder contenteditable=false>" . $pfolderpref . "newfolder_" . rand(0,784534) . str_replace("\\","\\\\",$ddn) . "out%d.png\" + '</span>';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'Extract the frames from a video') {
       
       document.getElementById('moreb').innerHTML=firstdivih.replace('>out.mp4','>').replace(' out.mp4',' ');
       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('secondi').innerHTML=\"-vf \" + String.fromCharCode(34) + \"select='between(t,1,5)+between(t,11,15)'\" + String.fromCharCode(34) + \" -vsync 0\";
       document.getElementById('secondi').title='To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds';
       document.getElementById('sswitches').innerHTML=\"<span id=sfolder contenteditable=false>" . $pfolderpref . "newfolder_" . rand(0,784534) . str_replace("\\","\\\\",$ddn) . "out%d.png\" + '</span>';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'Mute some of the audio') {
       
       document.getElementById('moreb').innerHTML=firstdivih;
       document.getElementById('secondi').innerHTML='';
       document.getElementById('precmds').innerHTML=' ';

       document.getElementById('sswitches').innerHTML=\"-vcodec copy -af \" + String.fromCharCode(34) + \"volume=enable='between(t,80,90)'<span id=svolume contenteditable=false>:volume=0\" + String.fromCharCode(34) + \" </span>\";
       document.getElementById('sswitches').title='To replace all audio between 1:20 and 1:30 with silence';

       document.getElementById('mysub').value=newv;  
    } else if (newv == 'Create a video slideshow from images') {
       // ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4
       
       document.getElementById('moreb').innerHTML=firstdivih;

       document.getElementById('minusi').innerHTML='-r 1/5 -i ';
       document.getElementById('minusi').title='Parameter -r marks the image framerate (inverse time of each image); -vf fps=25 marks the true framerate of the output';

       document.getElementById('secondi').innerHTML='';
       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('scbi').innerHTML='" . $vssfi . "';

       document.getElementById('sswitches').innerHTML=' -c:v libx264 -vf fps=25<span id=shat contenteditable=false> -pix_fmt yuv420p </span>';

       document.getElementById('mysub').value=newv;  
    } else if (newv == 'Extract one frame') {
       
       document.getElementById('moreb').innerHTML=firstdivih.replace('>out.mp4','>out.jpg').replace(' out.mp4',' out.jpg');
       document.getElementById('secondi').innerHTML='';
       document.getElementById('precmds').innerHTML=' ';

       document.getElementById('sswitches').innerHTML='-ss 00:00:10.000<span id=svframes contenteditable=false> -vframes 1 </span>';
       document.getElementById('sswitches').title='Extract one frame at 10 second mark';

       document.getElementById('mysub').value=newv;  
    } else if (newv == 'Text to HTML') {
       document.getElementById('moreb').innerHTML=firstdivih.replace('>out.mp4','><span id=sfolder contenteditable=false>" . $pfolderpref . "newfolder_" . rand(0,784534) . str_replace("\\","\\\\",$ddn) . "' + '</span>index.html').replace(' out.mp4',' <span id=sfolder contenteditable=false>" . $pfolderpref . "newfolder_" . rand(0,784534) . str_replace("\\","\\\\",$ddn) . "' + '</span>index.html');
       document.getElementById('secondi').innerHTML='';
       document.getElementById('sswitches').innerHTML=' -o ';

       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('verb').innerHTML='" . $pandoc . $pandocsuf . "';
       document.getElementById('scbi').innerHTML=document.getElementById('scbi').innerHTML.replace(/inv\.mp4/g,'inv.txt      ');
       document.getElementById('minusi').innerHTML=' -s ';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'Text to Word') {
       document.getElementById('moreb').innerHTML=firstdivih.replace('>out.mp4','>out.docx').replace(' out.mp4',' out.docx');
       document.getElementById('secondi').innerHTML='';
       document.getElementById('sswitches').innerHTML=' -o ';

       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('verb').innerHTML='" . $pandoc . $pandocsuf . "';
       document.getElementById('scbi').innerHTML=document.getElementById('scbi').innerHTML.replace(/inv\.mp4/g,'inv.txt      ');
       document.getElementById('minusi').innerHTML=' -s ';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'Text to Rich Text') {
       document.getElementById('moreb').innerHTML=firstdivih.replace('>out.mp4','>out.rtf').replace(' out.mp4',' out.rtf');
       document.getElementById('secondi').innerHTML='';
       document.getElementById('sswitches').innerHTML=' -o ';

       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('verb').innerHTML='" . $pandoc . $pandocsuf . "';
       document.getElementById('scbi').innerHTML=document.getElementById('scbi').innerHTML.replace(/inv\.mp4/g,'inv.txt      ');
       document.getElementById('minusi').innerHTML=' -s ';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'PDF to Images') {
       document.getElementById('moreb').innerHTML=firstdivih.replace('>out.mp4','>" . $minuspng . "').replace(' out.mp4',' " . $minuspng . "');
       document.getElementById('secondi').innerHTML='';
       document.getElementById('sswitches').innerHTML=\"<span id=sfolder contenteditable=false>" . $pfolderpref . "newfolder_" . rand(0,784534) . str_replace("\\","\\\\",$ddn) . "\" + '</span>ideas';

       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('verb').innerHTML='" . $pdfimages . $pdfimagessuf . "';
       document.getElementById('scbi').innerHTML=document.getElementById('scbi').innerHTML.replace(/inv\.mp4/g,'inv.pdf      ');
       document.getElementById('minusi').innerHTML=' -j ';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'PDF to HTML') {
       document.getElementById('moreb').innerHTML=firstdivih.replace('>out.mp4','>').replace(' out.mp4',' ');
       document.getElementById('secondi').innerHTML='';
       document.getElementById('sswitches').innerHTML=\"<span id=sfolder contenteditable=false>" . $pfolderpref . "newfolder_" . rand(0,784534) . str_replace("\\","\\\\",$ddn) . "index\" + '</span>';

       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('verb').innerHTML='" . "pdftohtml" . $pdfimagessuf . "';
       document.getElementById('scbi').innerHTML=document.getElementById('scbi').innerHTML.replace(/inv\.mp4/g,'inv.pdf      ');
       document.getElementById('minusi').innerHTML=' -c ';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'PDF to XML') {
       document.getElementById('moreb').innerHTML=firstdivih.replace('>out.mp4','>out.xml').replace(' out.mp4',' out.xml');
       document.getElementById('secondi').innerHTML='';
       document.getElementById('sswitches').innerHTML='';

       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('verb').innerHTML='" . "pdftohtml" . $pdfimagessuf . "';
       document.getElementById('scbi').innerHTML=document.getElementById('scbi').innerHTML.replace(/inv\.mp4/g,'inv.pdf      ');
       document.getElementById('minusi').innerHTML=' -c -xml ';

       document.getElementById('mysub').value=newv;
    } else if (newv == 'Images to PDF') {
       document.getElementById('moreb').innerHTML=firstdivih.replace('out.mp4','out.pdf');

       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('secondi').innerHTML='';
       document.getElementById('verb').innerHTML='" . $magickverb . $magicksuf . "';
       document.getElementById('sswitches').innerHTML='-auto-orient';
       document.getElementById('sswitches').title='To perform a folder of images (only, we suggest) right click or two finger guesture to left and enter the folder name only';
       document.getElementById('scbi').innerHTML=document.getElementById('scbi').innerHTML.replace(/inv\.mp4/g,'inv.jpg      ');
       document.getElementById('minusi').innerHTML='';
       document.getElementById('scbi').setAttribute('contenteditable', true);
       document.getElementById('scbi').onblur=function(event) {  if (document.getElementById('mydefopt').title == 'Images to PDF') {  if (event.target.innerHTML.replace(/\&nbsp\;/g,' ').trim() == '') { event.target.innerHTML='folder' + \"" . str_replace("\\","\\\\",$ddn) . "*\";  } if (event.target.innerHTML.toLowerCase().indexOf('.txt') == -1) {  if (event.target.innerHTML.indexOf('.') != -1) { document.getElementById('ifs').innerHTML+='<iframe id=voaskfor' + ifile + ' style=display:none; src=\"./voiceover.php?infilegetsize=' + encodeURIComponent(listtxt + ';' + event.target.innerHTML) + '\"></iframe>';  ifile++;    if (document.getElementById('moreb').title.indexOf(\"file '\" + event.target.innerHTML.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\") == -1) {     document.getElementById('moreb').title+=String.fromCharCode(10) + \"file '\" + event.target.innerHTML.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\"; } } } event.target.innerHTML=listtxt; if (document.getElementById('minusi')) { document.getElementById('minusi').innerHTML='';  }  }  };
       document.getElementById('moreb').onblur=function(event) {  if (document.getElementById('mydefopt').title == 'Images to PDF') { if (document.getElementById('minusi')) { var thingos=document.getElementById('minusi').innerHTML.replace(/\&nbsp\;/g,' ').trim().split('-i '); if (thingos.length > 1) { if (thingos[1].trim() != '' && (thingos[1] + '~').toLowerCase().indexOf('.txt~') == -1) { spanfill(thingos[1]); }  } document.getElementById('minusi').innerHTML='';  }  if (!document.getElementById('scbi')) { event.target.innerHTML=event.target.innerHTML.replace('<span id=\"between', '<span id=scbi onblur=scbiit(this); contenteditable=true>' + listtxt + '</span> <span id=\"between');  putbackonblur(); if (event.target.innerHTML.indexOf('> -i </span><span id=\"scbi\"') == -1) { event.target.innerHTML=event.target.innerHTML.replace('</span>' + event.target.innerHTML.split('<span id=\"scbi\"')[0].split('</span>')[-1 + eval(event.target.innerHTML.split('<span id=\"scbi\"')[0].split('</span>').length)],'</span>');   } } }  };
       document.getElementById('moreb').oncontextmenu=function(event) { document.getElementById('scbi').innerHTML='folder' + \"" . str_replace("\\","\\\\",$ddn) . "*\"; };
       
       document.getElementById('mysub').value=newv;
    } else if (newv == 'Images to GIF') {
       document.getElementById('moreb').innerHTML=firstdivih.replace('out.mp4','out.gif');
       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('secondi').innerHTML='';
       document.getElementById('verb').innerHTML='" . $magickverb . $magicksuf . "';
       document.getElementById('sswitches').innerHTML='';
       document.getElementById('scbi').innerHTML=document.getElementById('scbi').innerHTML.replace(/inv\.mp4/g,'inv.jpg      ');
       document.getElementById('minusi').innerHTML='-delay 20 -loop 0 ';
       document.getElementById('minusi').title='To perform a folder of images (only, we suggest) right click or two finger guesture to left and enter the folder name only';
       document.getElementById('scbi').setAttribute('contenteditable', true);
       document.getElementById('scbi').onblur=function(event) {  if (document.getElementById('mydefopt').title == 'Images to GIF') {  if (event.target.innerHTML.replace(/\&nbsp\;/g,' ').trim() == '') { event.target.innerHTML='folder' + \"" . str_replace("\\","\\\\",$ddn) . "*\";  } if (event.target.innerHTML.toLowerCase().indexOf('.txt') == -1) {  if (event.target.innerHTML.indexOf('.') != -1) { document.getElementById('ifs').innerHTML+='<iframe id=voaskfor' + ifile + ' style=display:none; src=\"./voiceover.php?infilegetsize=' + encodeURIComponent(listtxt + ';' + event.target.innerHTML) + '\"></iframe>';  ifile++;    if (document.getElementById('moreb').title.indexOf(\"file '\" + event.target.innerHTML.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\") == -1) {     document.getElementById('moreb').title+=String.fromCharCode(10) + \"file '\" + event.target.innerHTML.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\"; } } } event.target.innerHTML=listtxt; if (document.getElementById('minusi')) { document.getElementById('minusi').innerHTML='';  }  }  };
       document.getElementById('moreb').onblur=function(event) {  if (document.getElementById('mydefopt').title == 'Images to GIF') { if (document.getElementById('minusi')) { var thingos=document.getElementById('minusi').innerHTML.replace(/\&nbsp\;/g,' ').trim().split('-i '); if (thingos.length > 1) { if (thingos[1].trim() != '' && (thingos[1] + '~').toLowerCase().indexOf('.txt~') == -1) { spanfill(thingos[1]); }  } if (1 == 2) { document.getElementById('minusi').innerHTML=''; }  }  if (!document.getElementById('scbi')) { event.target.innerHTML=event.target.innerHTML.replace('<span id=\"between', '<span id=scbi onblur=scbiit(this); contenteditable=true>' + listtxt + '</span> <span id=\"between');  putbackonblur(); if (event.target.innerHTML.indexOf('> -i </span><span id=\"scbi\"') == -1) { event.target.innerHTML=event.target.innerHTML.replace('</span>' + event.target.innerHTML.split('<span id=\"scbi\"')[0].split('</span>')[-1 + eval(event.target.innerHTML.split('<span id=\"scbi\"')[0].split('</span>').length)],'</span>');   } } }  };
       document.getElementById('moreb').oncontextmenu=function(event) { document.getElementById('scbi').innerHTML='folder' + \"" . str_replace("\\","\\\\",$ddn) . "*\"; };
       
       document.getElementById('mysub').value=newv;
    } else if (newv == 'Rotate a video') {
       document.getElementById('moreb').innerHTML=firstdivih;

       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('secondi').innerHTML='';
       
       document.getElementById('sswitches').innerHTML='<span id=notranspose contenteditable=false>-vf \"transpose=</span><span id=transpose contenteditable=true>1</span><span id=nottranspose contenteditable=false>\" </span>';
       document.getElementById('sswitches').title='" . str_replace("\n", "' + String.fromCharCode(10) + '",$rotateadvice) . "';
       document.getElementById('sswitches').oncontextmenu=function(event) { alert(event.target.title); };

       document.getElementById('mysub').value=newv;
    } else if (newv == 'Concat demuxer') {
       document.getElementById('precmds').innerHTML=' ';
       document.getElementById('secondi').innerHTML='';
       document.getElementById('prescbi').innerHTML=' -f concat -safe 0 ';
       document.getElementById('scbi').innerHTML=document.getElementById('scbi').innerHTML.replace(/inv\.mp4/g,listtxt + '      ').replace('left=y','concat=' + encodeURIComponent(listtxt));
       document.getElementById('scbi').setAttribute('contenteditable', true);
       document.getElementById('scbi').onblur=function(event) {  if (document.getElementById('mydefopt').title == 'Concat demuxer') {  if (event.target.innerHTML.replace(/\&nbsp\;/g,' ').trim() == '') { event.target.innerHTML=listtxt;  } if (event.target.innerHTML.toLowerCase().indexOf('.txt') == -1) {  if (event.target.innerHTML.indexOf('.') != -1) { document.getElementById('ifs').innerHTML+='<iframe id=voaskfor' + ifile + ' style=display:none; src=\"./voiceover.php?infilegetsize=' + encodeURIComponent(listtxt + ';' + event.target.innerHTML) + '\"></iframe>';  ifile++;    if (document.getElementById('moreb').title.indexOf(\"file '\" + event.target.innerHTML.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\") == -1) {     document.getElementById('moreb').title+=String.fromCharCode(10) + \"file '\" + event.target.innerHTML.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\"; } } } event.target.innerHTML=listtxt; if (document.getElementById('minusi')) { document.getElementById('minusi').innerHTML=' -i ';  }  }  };
       document.getElementById('moreb').onblur=function(event) {  if (document.getElementById('mydefopt').title == 'Concat demuxer') {  if (document.getElementById('minusi')) { var thingos=document.getElementById('minusi').innerHTML.replace(/\&nbsp\;/g,' ').trim().split('-i '); if (thingos.length > 1) { if (thingos[1].trim() != '' && (thingos[1] + '~').toLowerCase().indexOf('.txt~') == -1) { spanfill(thingos[1]); }  } document.getElementById('minusi').innerHTML=' -i ';  }  if (!document.getElementById('scbi')) { event.target.innerHTML=event.target.innerHTML.replace('<span id=\"between', '<span id=scbi onblur=scbiit(this); contenteditable=true>' + listtxt + '</span> <span id=\"between');  putbackonblur(); if (event.target.innerHTML.indexOf('> -i </span><span id=\"scbi\"') == -1) { event.target.innerHTML=event.target.innerHTML.replace('</span>' + event.target.innerHTML.split('<span id=\"scbi\"')[0].split('</span>')[-1 + eval(event.target.innerHTML.split('<span id=\"scbi\"')[0].split('</span>').length)],'</span>');   } } }  };
       document.getElementById('sswitches').innerHTML='-c copy';
       document.getElementById('mysub').value=newv;
   //alert('./voiceover.php" . $whereffmpeg . "' + encodeURIComponent(listtxt));
       document.getElementById('ffmwhere').src='./voiceover.php" . $whereffmpeg . "' + encodeURIComponent(listtxt);
   //alert('voiceover.php" . $whereffmpeg . "' + encodeURIComponent(listtxt));
    } else if (newv == 'Add Voiceover Audio to Video') {
       document.getElementById('moreb').innerHTML=firstdivih;
       document.getElementById('mysub').value=firstbutval;
    }
  }
  
  function takeoffone() {
    ibfile--;
    if (ibfile <= 0) {
      document.getElementById('mysub').style.cursor='pointer';
    } else {
      document.getElementById('mysub').style.cursor='progress';
    }
  }
  
  function organizefilenamesize(fn, fs) {
    document.getElementById('ifs').innerHTML+='<iframe id=voaskfor' + ifile + ' style=display:none; src=\"./voiceover.php?concat=' + encodeURIComponent('list.txt') + '&filename=' + encodeURIComponent(fn) + '&haveasleep=' + eval(3 * eval('' + ifile)) + '&filesize=' + fs + '\"></iframe>';
    if (ibfile == 0) {
      document.getElementById('mysub').style.cursor='progress';
    }
    ifile++;
    ibfile++;
    if (document.getElementById('moreb').title.indexOf(\"file '\" + fn.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\") == -1) {
    document.getElementById('moreb').title+=String.fromCharCode(10) + \"file '\" + fn.replace(String.fromCharCode(34),'').replace(String.fromCharCode(34),'') + \"'\";
    }
  }
       
    function fixh(inf) {
       var theht=document.getElementById('myh1').title;
       var vsinf=inf;
       var outinf=inf;
       if (kkprefix != '') {
          vsinf=vsinf.replace(kkprefix, '');
       }
       if (kksuffix != '') {
          vsinf=vsinf.replace(kksuffix, '');
       }       
       if (vsinf != outinf) {
          document.getElementById('myh1').title=theht.replace(vsinf,outinf);
       }
       return inf;
    }
  
  function betweeneatatjoes() {
     var origt='', origrest='';
     var origkkprefix='', origkksuffix='', origkprefix='', origksuffix='';
     kkprefix=swipelcp + '...';
     kksuffix='...' + swipercp;
     if (firstht != '') {
       document.getElementById('myh1').title=firstht;
     }
     if (kprefix == '' && ksuffix == '') {
       kprefix=swipel + '&#128309;..';
       kkprefix=swipelcp + String.fromCodePoint(128309) + '..';
       ksuffix='...' + swiper;
       //document.getElementById('doverlaytwo').style.marginTop='20px';
     } else if (kprefix == swipel + '&#128309;..') {
       kprefix=swipel + '.&#128309;.';
       kkprefix=swipelcp +'.' + String.fromCodePoint(128309) + '.';
       ksuffix='...' + swiper;
     } else if (kprefix == swipel + '.&#128309;.') {
       kprefix=swipel + '..&#128309;';
       kkprefix=swipelcp +'..' + String.fromCodePoint(128309) + '';
       ksuffix='...' + swiper;
     } else if (kprefix == swipel + '..&#128309;') {
       ksuffix='&#128309;..' + swiper;
       kksuffix=String.fromCodePoint(128309) + '..' + swipercp;
       kprefix=swipel + '...' + swiper;
     } else if (ksuffix == '&#128309;..' + swiper) {
       ksuffix='.&#128308;.' + swiper;
       kksuffix='.' + String.fromCodePoint(128308) + '.' + swipercp;
       kprefix=swipel + '...';
     } else if (ksuffix == '.&#128308;.' + swiper) {
       ksuffix='..&#128308;' + swiper;
       kksuffix='..' + String.fromCodePoint(128308) + '' + swipercp;
       kprefix=swipel + '...';
     } else {
       kprefix=swipel + '&#8205;..';
       kkprefix=swipelcp + '..' + String.fromCodePoint(8205) + '..';
       ksuffix='...' + swiper;
       //document.getElementById('doverlaytwo').style.marginTop='0px';
     }
      
     origkkprefix=kkprefix;
     origkksuffix=kksuffix;
     origkprefix=kprefix;
     origksuffix=ksuffix;
     
     if (oimstr) {
       origt=oimstr.getAttribute('data-title');
       if (lasto == oimstr) {
        kkprefix=origkkprefix;
        kksuffix=origkksuffix;
        kprefix=origkprefix;
        ksuffix=origksuffix;
       } else if (swipel + swiper != '') {
        kkprefix=origkkprefix.replace(swipelcp,'');
        kksuffix=origkksuffix.replace(swipercp,'');
        kprefix=origkprefix.replace(swipel,'');
        ksuffix=origksuffix.replace(swiper,'');
       }       
       if (kimstr == 0) {
         oimstr.innerHTML='  ' + kprefix + aimstr[kimstr] + ksuffix;
         origrest=(origt.split('' + aimstr[kimstr])[1] + ',' + origt.split('' + aimstr[kimstr])[0]).trim().replace(/\,\,/g,'').replace('undefined','');
         oimstr.title=fixh(kkprefix + aimstr[kimstr] + kksuffix) + origrest;
       } else {
         oimstr.innerHTML='  ' + kprefix + aimstr[eval(-1 + kimstr)] + ksuffix;
         origrest=(origt.split('' + aimstr[eval(-1 + kimstr)])[1] + ',' + origt.split('' + aimstr[eval(-1 + kimstr)])[0]).trim().replace(/\,\,/g,'').replace('undefined','');
         oimstr.title=fixh(kkprefix + aimstr[eval(-1 + kimstr)] + kksuffix) + origrest;
       }
     }
     if (opdstr) {
       origt=opdstr.getAttribute('data-title');
       if (lasto == opdstr) {
        kkprefix=origkkprefix;
        kksuffix=origkksuffix;
        kprefix=origkprefix;
        ksuffix=origksuffix;
       } else if (swipel + swiper != '') {
        kkprefix=origkkprefix.replace(swipelcp,'');
        kksuffix=origkksuffix.replace(swipercp,'');
        kprefix=origkprefix.replace(swipel,'');
        ksuffix=origksuffix.replace(swiper,'');
       }
       if (kpdstr == 0) {
         opdstr.innerHTML='  ' + kprefix + apdstr[kpdstr] + ksuffix;
         origrest=(origt.split('' + apdstr[kpdstr])[1] + ',' + origt.split('' + apdstr[kpdstr])[0]).trim().replace(/\,\,/g,'').replace('undefined','');
         opdstr.title=fixh(kkprefix + apdstr[kpdstr] + kksuffix) + origrest;
       } else {
         opdstr.innerHTML='  ' + kprefix + apdstr[eval(-1 + kpdstr)] + ksuffix;
         origrest=(origt.split('' + apdstr[eval(-1 + kpdstr)])[1] + ',' + origt.split('' + apdstr[eval(-1 + kpdstr)])[0]).trim().replace(/\,\,/g,'').replace('undefined','');
         opdstr.title=fixh(kkprefix + apdstr[eval(-1 + kpdstr)] + kksuffix) + origrest;
       }
     }
     if (opastr) {
       origt=opastr.getAttribute('data-title');
       if (lasto == opastr) {
        kkprefix=origkkprefix;
        kksuffix=origkksuffix;
        kprefix=origkprefix;
        ksuffix=origksuffix;
       } else if (swipel + swiper != '') {
        kkprefix=origkkprefix.replace(swipelcp,'');
        kksuffix=origkksuffix.replace(swipercp,'');
        kprefix=origkprefix.replace(swipel,'');
        ksuffix=origksuffix.replace(swiper,'');
       }
       if (kpastr == 0) {
         opastr.innerHTML='  ' + kprefix + apastr[kpastr] + ksuffix;
         origrest=(origt.split('' + apastr[kpastr])[1] + ',' + origt.split('' + apastr[kpastr])[0]).trim().replace(/\,\,/g,'').replace('undefined','');
         opastr.title=fixh(kkprefix + apastr[kpastr] + kksuffix) + origrest;
       } else {
         opastr.innerHTML='  ' + kprefix + apastr[eval(-1 + kpastr)] + ksuffix;
         origrest=(origt.split('' + apastr[eval(-1 + kpastr)])[1] + ',' + origt.split('' + apastr[eval(-1 + kpastr)])[0]).trim().replace(/\,\,/g,'').replace('undefined','');
         opastr.title=fixh(kkprefix + apastr[eval(-1 + kpastr)] + kksuffix) + origrest;
       }
     }
     if (offstr) {
       origt=offstr.getAttribute('data-title');
       if (lasto == offstr) {
        kkprefix=origkkprefix;
        kksuffix=origkksuffix;
        kprefix=origkprefix;
        ksuffix=origksuffix;
       } else if (swipel + swiper != '') {
        kkprefix=origkkprefix.replace(swipelcp,'');
        kksuffix=origkksuffix.replace(swipercp,'');
        kprefix=origkprefix.replace(swipel,'');
        ksuffix=origksuffix.replace(swiper,'');
       }
       if (kffstr == 0) {
         offstr.innerHTML='  ' + kprefix + affstr[kffstr] + ksuffix;
         origrest=(origt.split('' + affstr[kffstr])[1] + ',' + origt.split('' + affstr[kffstr])[0]).trim().replace(/\,\,/g,'').replace('undefined','');
         offstr.title=fixh(kkprefix + affstr[kffstr] + kksuffix) + origrest;
       } else {
         offstr.innerHTML='  ' + kprefix + affstr[eval(-1 + kffstr)] + ksuffix;
         origrest=(origt.split('' + affstr[eval(-1 + kffstr)])[1] + ',' + origt.split('' + affstr[eval(-1 + kffstr)])[0]).trim().replace(/\,\,/g,'').replace('undefined','');
         offstr.title=fixh(kkprefix + affstr[eval(-1 + kffstr)] + kksuffix) + origrest;
       }
     }
     kcnt++;
     swipel='';
     swipelcp='';
     swiper='';
     swipercp='';
     if (kcnt < 7) {  setTimeout(betweeneatatjoes, 1000); }
  }
  
  function eatatjoes() {
     kcnt=0;
     kprefix='';
     ksuffix='';
     document.getElementById('doverlaytwo').style.marginTop='0px';
     if (oimstr) {
       if (kimstr >= eval('' + aimstr.length)) {
         kimstr=0;
         oimstr.innerHTML='  ' + aimstr[kimstr];
       } else {
         oimstr.innerHTML='  ' + aimstr[kimstr];
         kimstr++;
       }
     }
     if (opdstr) {
       if (kpdstr >= eval('' + apdstr.length)) {
         kpdstr=0;
         opdstr.innerHTML='  ' + apdstr[kpdstr];
       } else {
         opdstr.innerHTML='  ' + apdstr[kpdstr];
         kpdstr++;
       }
     }
     if (opastr) {
       //alert(apastr.length);
       if (kpastr >= eval('' + apastr.length)) {
         kpastr=0;
         opastr.innerHTML='  ' + apastr[kpastr];
       } else {
         opastr.innerHTML='  ' + apastr[kpastr];
         kpastr++;
       }
     }
     if (offstr) {
       if (kffstr >= eval('' + affstr.length)) {
         //if (trulylast) {
         //   alert('why? ' + ' kffstr=' + kffstr + ' when affstr.length=' + affstr.length);
         //}
         kffstr=0;
         offstr.innerHTML='  ' + affstr[kffstr];
       } else {
         offstr.innerHTML='  ' + affstr[kffstr];
         kffstr++;
       }
     }
     trulylast=false;
     setTimeout(betweeneatatjoes, 1000);
  }
  
  function wasplace(thiso, e) {
    e = e || window.event;
    e.preventDefault();
       if (e.touches) {
       if (e.touches[0].pageX) {
       pos1 = e.touches[0].pageX;
       pos2 = e.touches[0].pageY;
       } else {
       pos1 = e.touches[0].clientX;
       pos2 = e.touches[0].clientY;
       }
       //console.log('pos3=' + pos3 + ',pos4=' + pos4);
       } else if (e.clientX || e.clientY) {
        pos1 = e.clientX;
        pos2 = e.clientY;
       } else {
        pos1 = e.pageX;
        pos2 = e.pageY;
       }
       lasto=e.target;
  }
  
  function isplace(thiso, e) {
    var kkk=0;
    e = e || window.event;
    e.preventDefault();
       if (e.touches) {
       if (e.touches[0].pageX) {
       pos3 = e.touches[0].pageX;
       pos4 = e.touches[0].pageY;
       } else {
       pos3 = e.touches[0].clientX;
       pos4 = e.touches[0].clientY;
       }
       //console.log('pos3=' + pos3 + ',pos4=' + pos4);
       } else if (e.clientX || e.clientY) {
        pos3 = e.clientX;
        pos4 = e.clientY;
       } else {
        pos3 = e.pageX;
        pos4 = e.pageY;
       }
       if (lasto == e.target) {
        if (Math.abs(pos1 - pos3) >= 70) {
          if (pos3 > pos1) { // swipe right
            swiper=ra;
            swipercp=racp;
            if (e.target == opastr) {
              kkk=eval(1 + eval('' + kpastr));
              if (kkk >= eval('' + apastr.length)) {
                kpastr=eval('' + kpastr);
              } else {
                kpastr=kkk;
              }
            } else if (e.target == opdstr) {
              kkk=eval(1 + eval('' + kpdstr));
              if (kkk >= eval('' + apdstr.length)) {
                kpdstr=eval('' + kpdstr);
              } else {
                kpdstr=kkk;
              }
            } else if (e.target == oimstr) {
              kkk=eval(1 + eval('' + kimstr));
              if (kkk >= eval('' + aimstr.length)) {
                kimstr-=eval('' + kimstr);
              } else {
                kimstr=kkk;
              }
            } else if (e.target == offstr) {
              kkk=eval(1 + eval('' + kffstr));
              if (kkk >= eval('' + affstr.length)) {
                kffstr-=eval('' + kffstr);
              } else {
                kffstr=kkk;
              }
            }
          } else { // swipe left
            swipel=la;
            swipelcp=lacp;
            if (e.target == opastr) {
              kkk=eval(-1 + eval('' + kpastr));
              if (kkk <= 0) {
                kpastr=eval(-1 + eval('' + apastr.length));
                trulylast=true;
              } else {
                kpastr=kkk;
              }
            } else if (e.target == opdstr) {
              kkk=eval(-1 + eval('' + kpdstr));
              if (kkk <= 0) {
                kpdstr=eval(-1 + eval('' + apdstr.length));
                trulylast=true;
              } else {
                kpdstr=kkk;
              }
            } else if (e.target == oimstr) {
              kkk=eval(-1 + eval('' + kimstr));
              if (kkk <= 0) {
                kimstr=eval(-1 + eval('' + aimstr.length));
                trulylast=true;
              } else {
                kimstr=kkk;
              }
            } else if (e.target == offstr) {
              console.log('kffstr coming into swipe left=' + kffstr + ' and affstr.length=' + affstr.length);
              kkk=eval(-1 + eval('' + kffstr));
              console.log('kffstr coming into swipe left=' + kffstr + ' and kkk=' + kkk);
              if (kkk <= 0) {
                kffstr=eval(-1 + eval('' + affstr.length));
                trulylast=true;
              console.log('kffstr coming into swipe left=' + kffstr + ' and kkk=' + kkk + ' back to end with kffstr=' + kffstr);
              } else {
                kffstr=kkk;
              console.log('kffstr coming into swipe left=' + kffstr + ' and kkk=' + kkk + ' not back to end with kffstr=' + kffstr);
              }
            }
          }
        }
        //alert('swipe distance = ' + Math.abs(pos1 - pos3));
       }
       lasto=e.target;
  }
  
  function andthen(iidea) {
     var outidea=iidea;
     var fndpos=-1;
     var optsare=document.getElementsByTagName('option'), ioptsare=0; 
     var iimstr=(imstr.indexOf(',') == -1 ? -1 : outidea.indexOf(imstr.split(',')[0].trim() + ','));
     mlook=false;
     if (iimstr != -1) {
        if ((imstr.split(',')[0].trim() + ',') != imstr.trim()) {
          if (document.getElementById('oimagemagick')) {
             oimstr=document.getElementById('oimagemagick');
             oimstr.onmouseover=function(event) { wasplace(oimstr, event);  };
             oimstr.onmouseout=function(event) { isplace(oimstr, event);  };
             mlook=true;
             aimstr=imstr.trim().replace(/\,\ \ /g,',').replace(/\,\ /g,',').replace(/\,$/g,'').split(',');
             oimstr.title=imstr.trim().replace(/\,$/g, '');
             oimstr.setAttribute('data-title', imstr.trim().replace(/\,$/g, ''));
          } else {
             for (ioptsare=0; ioptsare<optsare.length; ioptsare++) {
                if (optsare[ioptsare].value == imstr.split(',')[0].trim()) {
                  oimstr=optsare[ioptsare];
                  oimstr.onmouseover=function(event) { wasplace(oimstr, event);  };
                  oimstr.onmouseout=function(event) { isplace(oimstr, event);  };
                  mlook=true;
                  aimstr=imstr.trim().replace(/\,\ \ /g,',').replace(/\,\ /g,',').replace(/\,$/g,'').split(',');
                  oimstr.title=imstr.trim().replace(/\,$/g, '');
                  oimstr.setAttribute('data-title', imstr.trim().replace(/\,$/g, ''));
                } 
             }
          }
          outidea=outidea.replace(imstr.split(',')[0].trim(), imstr.split(',')[0].trim() + '' + (imstr.replace(imstr.split(',')[0],'').trim() + ',').replace(',,',',').replace(/\,$/g,''));
        }
     }
     var ipdstr=(pdstr.indexOf(',') == -1 ? -1 : outidea.indexOf(pdstr.split(',')[0].trim() + ','));
     if (ipdstr != -1) {
        if ((pdstr.split(',')[0].trim() + ',') != pdstr.trim()) {
          if (document.getElementById('opdfimages')) {
             opdstr=document.getElementById('opdfimages');
             opdstr.onmouseover=function(event) { wasplace(opdstr, event);  };
             opdstr.onmouseout=function(event) { isplace(opdstr, event);  };
             mlook=true;
             apdstr=pdstr.trim().replace(/\,\ \ /g,',').replace(/\,\ /g,',').replace(/\,$/g,'').split(',');
             opdstr.title=pdstr.trim().replace(/\,$/g, '');
             opdstr.setAttribute('data-title', pdstr.trim().replace(/\,$/g, ''));
        } else {
             for (ioptsare=0; ioptsare<optsare.length; ioptsare++) {
                if (optsare[ioptsare].value == pdstr.split(',')[0].trim()) {
                  opdstr=optsare[ioptsare];
                  opdstr.onmouseover=function(event) { wasplace(opdstr, event);  };
                  opdstr.onmouseout=function(event) { isplace(opdstr, event);  };
                  mlook=true;
                  apdstr=pdstr.trim().replace(/\,\ \ /g,',').replace(/\,\ /g,',').replace(/\,$/g,'').split(',');
                  opdstr.title=pdstr.trim().replace(/\,$/g, '');
                  opdstr.setAttribute('data-title', pdstr.trim().replace(/\,$/g, ''));
                } 
             }
          }
          outidea=outidea.replace(pdstr.split(',')[0].trim(), pdstr.split(',')[0].trim() + '' + (pdstr.replace(imstr.split(',')[0],'').trim() + ',').replace(',,',',').replace(/\,$/g,''));
        }
     }
     var ipastr=(pastr.indexOf(',') == -1 ? -1 : outidea.indexOf(pastr.split(',')[0].trim() + ','));
     if (ipastr != -1) {
        if ((pastr.split(',')[0].trim() + ',') != pastr.trim()) {
          if (document.getElementById('opandoc')) {
             opastr=document.getElementById('opandoc');
             opastr.onmouseover=function(event) { wasplace(opastr, event);  };
             opastr.onmouseout=function(event) { isplace(opastr, event);  };
             mlook=true;
             apastr=pastr.trim().replace(/\,\ \ /g,',').replace(/\,\ /g,',').replace(/\,$/g,'').split(',');
             opastr.title=pastr.trim().replace(/\,$/g, '');
             opastr.setAttribute('data-title', pastr.trim().replace(/\,$/g, ''));
          } else {
             for (ioptsare=0; ioptsare<optsare.length; ioptsare++) {
                if (optsare[ioptsare].value == pastr.split(',')[0].trim()) {
                  opastr=optsare[ioptsare];
                  opastr.onmouseover=function(event) { wasplace(opastr, event);  };
                  opastr.onmouseout=function(event) { isplace(opastr, event);  };
                  mlook=true;
                  apastr=pastr.trim().replace(/\,\ \ /g,',').replace(/\,\ /g,',').replace(/\,$/g,'').split(',');
                  opastr.title=pastr.trim().replace(/\,$/g, '');
                  opastr.setAttribute('data-title', pastr.trim().replace(/\,$/g, ''));
                } 
             }
          }
          outidea=outidea.replace(pastr.split(',')[0].trim(), pastr.split(',')[0].trim() + '' + (pastr.replace(imstr.split(',')[0],'').trim() + ',').replace(',,',',').replace(/\,$/g,''));
        }
     }
     var iffstr=(ffstr.indexOf(',') == -1 ? -1 : outidea.indexOf(ffstr.split(',')[0].trim() + ','));
     if (iffstr != -1) {
        if ((ffstr.split(',')[0].trim() + ',') != ffstr.trim()) {
          if (document.getElementById('offmpeg')) {
             offstr=document.getElementById('offmpeg');
             offstr.onmouseover=function(event) { wasplace(offstr, event);  };
             offstr.onmouseout=function(event) { isplace(offstr, event);  };
             mlook=true;
             affstr=ffstr.trim().replace(/\,\ \ /g,',').replace(/\,\ /g,',').replace(/\,$/g,'').split(',');
             offstr.title=ffstr.trim().replace(/\,$/g, '');
             offstr.setAttribute('data-title', ffstr.trim().replace(/\,$/g, ''));
          } else {
             for (ioptsare=0; ioptsare<optsare.length; ioptsare++) {
                if (optsare[ioptsare].value == ffstr.split(',')[0].trim()) {
                  offstr=optsare[ioptsare];
                  offstr.onmouseover=function(event) { wasplace(offstr, event);  };
                  offstr.onmouseout=function(event) { isplace(offstr, event);  };
                  mlook=true;
                  affstr=ffstr.trim().replace(/\,\ \ /g,',').replace(/\,\ /g,',').replace(/\,$/g,'').split(',');
                  offstr.title=ffstr.trim().replace(/\,$/g, '');
                  offstr.setAttribute('data-title', ffstr.trim().replace(/\,$/g, ''));
                } 
             }
          }
          outidea=outidea.replace(ffstr.split(',')[0].trim(), ffstr.split(',')[0].trim() + '' + (ffstr.replace(imstr.split(',')[0],'').trim() + ',').replace(',,',',').replace(/\,$/g,''));
        }
     }
     if (mlook) { setInterval(eatatjoes, 8000); }
     if (firstht == '') {
       firstht=outidea.replace('Concat demuxerConcat demuxer', 'Concat demuxer').replace('PDF to ImagesPDF to Images', 'PDF to Images');
     }
     return outidea.replace('Concat demuxerConcat demuxer', 'Concat demuxer').replace('PDF to ImagesPDF to Images', 'PDF to Images');
  }
  
  function onl() {
      setTimeout(function(){
      var ris=document.getElementById('mysubjs').getBoundingClientRect();
      document.getElementById('cbi').style.top='' + eval(6 + eval('' + ris.top)) + 'px';
      document.getElementById('cbi').style.left='' + eval(10 + eval('' + ris.right)) + 'px';
      document.getElementById('cbi').style.display='inline-block';
      }, 6000);
      " . $wostuff . " document.getElementById('mainspan').title=andthen(document.getElementById('schoices').innerText.replace(/\&nbsp\;/g,' ').replace(/\ \ /g,', '));  overlay(); if (document.URL.indexOf('rjmprogramming.com.au/') != -1 && document.URL.indexOf('&') == -1) {   if (('' + window.navigator.platform).toLowerCase().indexOf('mac') == 0) { window.open('HTTP://localhost:8888/voiceover.php','_blank','top=50,left=50,width=' + eval(0.8 * screen.width) + ',height=600'); } else {  window.open('HTTP://localhost/voiceover.php','_blank','top=50,left=50,width=' + eval(0.8 * screen.width) + ',height=600');  }  }
  }
  
  function yoursyncit() {
   if (vanda >= 2) {
    document.getElementById('vonr').style.display='block';
    var cx=document.getElementById('vonr').innerHTML;
    document.getElementById('vonr').innerHTML=cx;
    setTimeout(ysyncit, 5000);
    location.href='#vonr';
   }
  }
  
  function vthnew() {
    if (document.getElementById('pprogress')) {
      vth--;
      document.getElementById('pprogress').value='' + vth;
      if (vth > 0) {
        setTimeout(vthnew, 1000);
      }
    }
  }
  
  function sprogit() {
    if (document.getElementById('sprogress').innerHTML == '') {
      document.getElementById('sprogress').innerHTML='<meter style=display:inline-block; id=pprogress value=300 max=300 min=0></meter>';
      setTimeout(vthnew, 1000);
    }
  }

  function scbiit(spanoel) {
    document.getElementById('v1name').value=spanoel.innerText.replace(/\&nbsp\;/g, ' ');
    document.getElementById('v1sub').click();
  }

  function scbixit(spanoel) {
    document.getElementById('v2name').value=spanoel.innerText.replace(/\&nbsp\;/g, ' ');
    document.getElementById('v2sub').click();
  }
  
  function v1look() {
    if (document.getElementById('v1name').value != '' && document.getElementById('v1cont').value != '') {
     setTimeout(function(){
     if (document.getElementById('moreb').innerText.indexOf('/tmp/newfolder_') != -1) {
       document.getElementById('cbt').innerHTML='';
     }
     }, 2000);
     setTimeout(function(){ sprogit(); document.getElementById('v1sub').click(); }, 8000);
    } else {
     setTimeout(v1look, 1000);
    }
  }
  
  function v2look() {
    if (document.getElementById('v2name').value != '' && document.getElementById('v2cont').value != '') {
     setTimeout(function(){ sprogit(); document.getElementById('v2sub').click(); }, 8000);
    } else {
     setTimeout(v2look, 1000);
    }
  }

  setTimeout(v1look, 1000);
  setTimeout(v2look, 1000);

  setTimeout(onl, 2000);
</script>
</head>
<body data-onload=\" " . $wostuff . " document.getElementById('mainspan').title=andthen(document.getElementById('schoices').innerText.replace(/\&nbsp\;/g,' ').replace(/\ \ /g,', '));  overlay(); if (document.URL.indexOf('rjmprogramming.com.au/') != -1 && document.URL.indexOf('&') == -1) {   if (('' + window.navigator.platform).toLowerCase().indexOf('mac') == 0) { window.open('HTTP://localhost:8888/voiceover.php','_blank','top=50,left=50,width=' + eval(0.8 * screen.width) + ',height=600'); } else {  window.open('HTTP://localhost/voiceover.php','_blank','top=50,left=50,width=' + eval(0.8 * screen.width) + ',height=600');  }  }\">
<h1 id=myh1 style=vertical-align:top;><span id=mainspan style=vertical-align:top;>Add Voiceover Audio to Video</span><span style=vertical-align:top;> via </span><a style=vertical-align:top; target=_blank title=ffmpeg href='//ffmpeg.org'>FFmpeg</a>&nbsp<select size=9 onchange=process(this.value,this); style='display:none;background-color:#fefefe;overflow-y:auto;font-size:8px;width:15%;border:2px dotted green;' title='Media and document action items ... please note you can hover swipe right or left, accurately, and with panache, regarding animated options to speed up transitions between option values' id=schoices><option class=nonwhite style=text-align:center; id=mydefopt title='Add Voiceover Audio to Video' value=''>&#10549; Image&#11015;Magick &#10550;</option><option value='Add Voiceover Audio to Video'> Add Voiceover Audio to Video&nbsp;</option><option id=oimagemagick style='text-align:center;' value='Images to PDF'>  Images to PDF</option><option id=opdfimages style='text-align:right;' value='PDF to Images'>  PDF to Images</option><option value='Burn subtitles'>  Burn subtitles</option><option value='Concat demuxer'>  Concat demuxer</option><option value='Rotate a video'>  Rotate a video</option><option id=opandoc style=text-align:center; value='Text to HTML'>  Text to HTML</option><option class='nonwhite' style=text-align:center; id=mydefopttwo title='pandoc' value=''>  pan&#11014;doc</option></select>&nbsp;<a style=vertical-align:top; target=_blank title=pdfimages href='//www.xpdfreader.com/pdfimages-man.html'>Pdfimages</a></h1>
<h3 id=myh3>RJM Programming <a target=_self title=Rerun href='./voiceover.php'>-</a> May, 2023 ... thanks to <a target=_blank title='FFmpeg cheat sheet' href='//gist.github.com/steven2358/ba153c642fe2bb1e47485962df07c730'>FFmpeg cheat sheet</a></h3>
<br><br><br><br><br><form id=comform onsubmit='return mergechanges();' method=GET action=./voiceover.php>
<textarea id=fcommand name=fcommand value='' style='cursor:progress;width:98%;height:50px;'>
" . $ffmpegpre . "ffmpeg" . $ffmpegsuf . " -i inv.mp4 -i inva.mp4 -c copy -map 0:v:0 -map 1:a:0 -shortest out.mp4 > ffimpdf.bad
</textarea><br><br>
<span><input id=mysub name=mysub type=submit value='Create New Video with Audio Voiceover' style='background-color:lightgreen;display:inline-block;'></input>&nbsp;&nbsp;<input onclick=synchav(); id=mysubjs type=button value='Try Javascript Synchronize' style='background-color:yellow;display:inline-block;'></input>&nbsp;&nbsp;<iframe title='Select one video and one audio.' onload=checkit(this); scrolling=no frameborder=0 id=cbi data-type=file data-value=inv.mp4 data-accept=video/*audio/* src='/HTMLCSS/client_browsing.htm?numhastobe=2&typehastobe=videoaudio&rand=" . rand(0,18967564) . "' style='display:none;position:absolute;top:0px;left:150px;width:173px;height:218px;margin-top:-204px;'></iframe>&nbsp;&nbsp;</span><br>
</form>
<span id=sprogress></span><br><br><div id=jsplay></div><hr></hr><br><br>
<div>" . $rs . "</div><br>
<div id=moreb contenteditable=true></div>
<iframe id=voaskfor style=display:none; src=./voiceover.php?infilegetsize=></iframe>
<iframe id=voiceoveraskfor style=display:none; src=./voiceover.php?infilegetsize=></iframe>
<iframe id=voiceoveraskfortwo style=display:none; src=./voiceover.php?infilegetsize=></iframe>
<iframe id=ffmwhere style=display:none; src=./voiceover.php" . $whereffmpeg . "></iframe>
<iframe id=magwhere style=display:none; src=./voiceover.php" . $wheremagick . "></iframe>
<iframe id=pdfwhere style=display:none; src=./voiceover.php" . $wherepdfimages . "></iframe>
<iframe id=pdfwhere style=display:none; src=./voiceover.php" . $wherepandoc . "></iframe>
<div id=doverlay style=display:none;font-size:8px;>&#10549; <a target=_blank title=ImageMagick href='//imagemagick.org'>Image&#11015;Magick</a> &#10550;</div>
<div id=doverlaytwo style=display:none;font-size:8px;><a target=_blank title=pandoc href='//pandoc.org/'>Pan&#11014;doc</a></div>
<div id=ifs style=display:none;></div>
<div id=tf></div>
<div id=vostyle style=display:none;></div>
<div id=vonr style=display:none;>
<video id=yourvideo style=width:95%; controls>
<source id=yourvsource type=video/mp4 src=/squidgy.mp4></source>
<audio id=youraudio>
<source id=yourasource type=audio/mp4 src=/squidgy.m4a></source></audio>
<script>
  // Thanks to https://stackoverflow.com/questions/6433900/syncing-html5-video-with-audio-playback

  var aconto=null;
  var yourvideo=null, youraudio=null, ychange_time_state=true;
  

 function checkit(iois) {
  if (iois != null) {
    aconto = (iois.contentWindow || iois.contentDocument);
    if (aconto != null) {
       if (aconto.document) { aconto = aconto.document; }
       if (aconto.body != null) {
        aconto.body.style.backgroundColor='transparent';
        aconto.getElementsByTagName('h1')[0].style.visibility='hidden';
        aconto.getElementsByTagName('h3')[0].style.visibility='hidden';
       }
    }
  }
 }
 
  function lfsav() {
    if (document.getElementById('youraaudio').value.indexOf('data:') == 0 && document.getElementById('yourvvideo').value.indexOf('data:') == 0 && document.getElementById('youraaudio').title == '' && document.getElementById('yourvvideo').title == '') {
      document.getElementById('youraaudio').title=' ';
      document.getElementById('yourvvideo').title=' ';
      synchav();
    }
  }
  
  function ysyncit() {
    yourvideo = document.getElementById('yourvideo');
    youraudio = document.getElementById('youraudio');
    ychange_time_state = true;

    yourvideo.onplay = function(){
        youraudio.play();
        if (ychange_time_state){
            youraudio.currentTime = yourvideo.currentTime;
            ychange_time_state = false;
        }
    }

    yourvideo.onpause = function(){
        youraudio.pause();
        ychange_time_state = true;
    }
  }

  if (1 == 2) { setTimeout(ysyncit, 5000); }
  
  setInterval(lfsav, 1000);
</script>
</video>
</div>
<form id=v1form style=display:none; method=POST action=./voiceover.php target=v1if>
<input id=v1name name=v1name value='' type=hidden></input>
<input id=v1cont name=v1cont value='' type=hidden></input>
<input id=v1sub type=submit value=Write style=display:none;></input>
</form>
<iframe src=/About_Us.html style=display:none; name=v1if id=v1if></iframe>
<form id=v2form style=display:none; method=POST action=./voiceover.php target=v2if>
<input id=v2name name=v2name value='' type=hidden></input>
<input id=v2cont name=v2cont value='' type=hidden></input>
<input id=v2sub type=submit value=Write style=display:none;></input>
</form>
<iframe src=/About_Us.html style=display:none; name=v2if id=v2if></iframe>
<input onchange=alert(56); id=yourvvideo value='' title='' type=hidden></input>
<input onchange=alert(256); id=youraaudio value='' title='' type=hidden></input>
</body>
</html>";

?>
