<?php
  // gimp_guillotine_followup.php
  // RJM Programming
  // August, 2018
  // Follow up on a Gimp ...
  // 1) Create Gimp Guides
  // 2) "Image -> Transform -> Guillotine"
  
  $ext="";
  $tablebit="";
  $mapbit="";
  $lastmt="";
  $lasttopoffset=0;
  $allhtml=false;
  $vh="";
  $iflist="";
  $iflistd="";
  $jflist="";
  $jflistd="";
  
  $affmpeg="";
  $aconvert="";
  $ainhouseslideshow="";
  $amultibackground="";
  $amultiborder="";

  $bitffmpeg="";
  $bitconvert="";
  $bitinhouseslideshow="";
  $bitmultibackground="";
  $bitmultiborder="";

  $bffmpeg="&nbsp;<input style='background-color:lightgreen;display:none;' type=submit value='Process with Fade In Fade Out Video via ffmpeg' name=ffmpeg></input>";
  if (command_exists("ffmpeg") || file_exists("/usr/local/bin/ffmpeg") || is_link("/usr/local/bin/ffmpeg")) {  $bffmpeg=str_replace("display:none;","display:INLINE-BLOCK;",$bffmpeg); }
  $bconvert="&nbsp;<input style='background-color:lightgreen;display:none;' type=submit value='Process with PDF Slideshow' name=pdfslideshow></input>";
  if (command_exists("convert") || file_exists("/usr/local/bin/convert") || is_link("/usr/local/bin/convert")) {  $bconvert=str_replace("display:none;","display:INLINE-BLOCK;",$bconvert); }
  $binhouseslideshow="&nbsp;<input style='background-color:lightgreen;display:INLINE-BLOCK;' type=submit value='Process with Inhouse Slideshow' name=inhouseslideshow></input>";

  $bmultibackground="&nbsp;<input style='background-color:lightgreen;display:INLINE-BLOCK;' type=submit value='Process with Multiple Background Images' name=multibackground></input>";
  $bmultiborder="&nbsp;<input style='background-color:lightgreen;display:INLINE-BLOCK;' type=submit value='Process with Random Border Images' name=multiborder></input>";

  $bittransitionhtml="";
  $btransitionhtml="&nbsp;<input style='background-color:lightgreen;display:none;' type=submit value='Process with keyframe Transition CSS Animation' name=transition></input>";
  $transitionhtml="";
  if (file_exists("keyframes_test.html")) {
   $transitionhtml=file_get_contents("keyframes_test.html");;
  } else if (file_exists("keyframes/keyframes_test.html")) {
   $transitionhtml=file_get_contents("keyframes/keyframes_test.html");;
  } else if (file_exists("../HTMLCSS/keyframes/keyframes_test.html")) {
   $transitionhtml=file_get_contents("../HTMLCSS/keyframes/keyframes_test.html");;
  }
  if ($transitionhtml != "") {  $btransitionhtml=str_replace("display:none;","display:INLINE-BLOCK;",$btransitionhtml); }
  
  $slideshowtitle = "Slideshow Title";
  $zero = "0";
  
  $prewith0 = "youllneverfindthis";
  $with0 = "youllneverfindthis";
  $prewith = "lastone=0";
  $with = "lastone=0";
  $firsttd = "<td id='t0'><span id='s0'><a href='#' title=" . '"' . "Movie'ize Here vs Follow Red Right Arrows with Bottom Scrollbar" . '"' . " onclick='havealook(0);' id='a0'>@</a></span><span style=" . '"' . "color:red;font-size:14px;" . '"' . "><b>--&gt;</b></span></td><td><img onclick=" . '"' . "onck(this);" . '"' . " id=" . '"' . "i0" . '"' . " src=" . '"' . "$2.1" . '"' . " title=" . '"' . "$1" . '"' . " /></td>";
  $lasttd = "<td id='t1'><span style=" . '"' . "color:red;font-size:14px;" . '"' . "><b>--&gt;</b></span></td><td><img onclick=" . '"' . "onck(this);" . '"' . " id=" . '"' . "i1" . '"' . " src=" . '"' . "$2.2" . '"' . " title=" . '"' . "$1" . '"' . " /></td>";

  $xtemp="
<html>
<head>
<title>Slideshow Creator - RJM Programming - December, 2014</title>
<script type=" . '"' . "text/javascript" . '"' . ">
var olist=',';
var ttl = ' ... click to have this slide stay longer';
var d1ih='';
var nextone=0;
var lastone=" . $zero . ";
var ilastone=0;
var haveseen=0;
var aminterested=0;
var doit=1;
function andthen() {
  d1ih='<td id=" . '"' . "t1" . '"' . ">' + document.getElementById('t1').innerHTML + '</td>';
}
function onck(that) {
  doit=0;
}
function havealook(backto) {
  var thissrc='';
  var prefix='';
  if (doit == 0) {
  doit = 1;
  } else {
  if (aminterested != 0 || backto == 0) {
  var cit = document.getElementById('s0');
  if (nextone == lastone) {
    thissrc = document.getElementById('i' + nextone).src;
    cit.innerHTML = prefix + " . '"' . "<img onclick='onck(this);' id='j" . '"' . " + nextone + " . '"' . "' src='" . '"' . " + thissrc + " . '"' . "' title='" . '"' . " + document.getElementById('i' + nextone).title + ttl + " . '"' . "' />" . '"' . ";
    nextone=0;
  } else {
    thissrc = document.getElementById('i' + nextone).src;
    if (backto != 0 && nextone == 0) {
       prefix = 'Start of Movie: ';
    }
    cit.innerHTML = prefix + " . '"' . "<img onclick='onck(this);' id='j" . '"' . " + nextone + " . '"' . "' src='" . '"' . " + thissrc + " . '"' . "' title='" . '"' . " + document.getElementById('i' + nextone).title + ttl + " . '"' . "' />" . '"' . ";
    nextone = nextone + 1;
    if (nextone > 1) haveseen = 1;
  }
  if (backto == 0) {
    nextone = backto;
    aminterested = 1;
  }
  }
  var nnext = eval(nextone + 0);
  var llast = eval(lastone + 1);
  if (nnext >= 1 && nnext <= llast) {
    nnext = nnext;
  } else if (prefix != '') {
    nnext = 1;  //llast;
  } else if (aminterested != 0 && haveseen == 1) {
    nnext = llast;
  } else if (aminterested != 0) {
    nnext = 1;
  } else if (nnext == 0) {
    nnext = 1;
  }
  document.title=document.getElementById('i' + nextone).title + " . '"' . " Slide " . '"' . " + nnext + " . '"' . " of " . '"' . " + llast;
  }
}
window.setInterval(function(){havealook(1)},2000); 
</script>
<title>$1 Slide 1 of</title>
</head>
<body onload=" . '"' . "document.title=document.title + ' ' + lastone; document.getElementById('a0').click(); " . '"' . ">
<table>
<tr>
<td id='t0'><span id='s0'><a href='#' title=" . '"' . "Movie'ize Here vs Follow Red Right Arrows with Bottom Scrollbar" . '"' . " onclick='havealook(0);' id='a0'>@</a></span><span style=" . '"' . "color:red;font-size:14px;" . '"' . "><b>--&gt;</b></span></td><td><img onclick=" . '"' . "onck(this);" . '"' . " id=" . '"' . "i0" . '"' . " src=" . '"' . "$2.1" . '"' . " title=" . '"' . "$1" . '"' . " /></td>
<td id='t1'><span style=" . '"' . "color:red;font-size:14px;" . '"' . "><b>--&gt;</b></span></td><td><img onclick=" . '"' . "onck(this);" . '"' . " id=" . '"' . "i1" . '"' . " src=" . '"' . "$2.2" . '"' . " title=" . '"' . "$1" . '"' . " /></td>
</tr>
</table>
</body>
</html>
";

 $template = str_replace("$" . "1", $slideshowtitle, str_replace($prewith0, $with0, str_replace($prewith, $with, $xtemp)));

 function str_replace_first($from, $to, $content) { // thanks to https://stackoverflow.com/questions/1252693/using-str-replace-so-that-it-only-acts-on-the-first-match
    $from = '/'.preg_quote($from, '/').'/';
    return preg_replace($from, $to, $content, 1);
 } 

 function perhapsmodify($bighuh) {
   global $template, $transitionhtml;
   if (strpos($bighuh, 'inhousesl' . 'ideshoww') !== false) {
     return str_replace("<iframe style='width:100%;height:800px;' id=inhouseslideshoww src='gimp_guillotine.htm'></iframe>","<div>" . str_replace("</scr" . "ipt>", " function zxc() { parent.document.getElementById('inhouseslideshowd').open=true;  document.getElementById('a0').click(); } setTimeout(zxc,2000); </scr" . "ipt>",explode("</head>",explode("<head>",$template)[1])[0]) . " <table> " . explode("</body>",explode("<table>",$template)[1])[0] . "</div>",$bighuh);
   } else if (strpos($bighuh, 'transi' . 'tionw') !== false) {
     $transitionhtml=str_replace_first('div','.div',str_replace('<div></div>','<div class=div></div>',$transitionhtml));
     return str_replace("<iframe style='width:100%;height:800px;' id=transitionw src=" . explode("</iframe", explode("<iframe style='width:100%;height:800px;' id=transitionw src=",$bighuh)[1])[0] . "</iframe>","<div>" . str_replace("</scr" . "ipt>", " function zxc() { parent.document.getElementById('transitiond').open=true;   } setTimeout(zxc,2000); </scr" . "ipt>",explode("</head>",explode("<head>",$transitionhtml)[1])[0]) . explode("</body>",explode("<body>",$transitionhtml)[1])[0] . "</div>",$bighuh);
   } else {
     return $bighuh;
   }
 }
  
 function new_content($zfilename) {
    global $ext;
    return 'data:image/' . substr($ext,1) . ";base64," . base64_encode(file_get_contents($zfilename));
 }
 
 function new_pdf($posturl) {
    global $template, $slideshowtitle, $prewith0, $with0, $prewith, $with, $xtemp, $ext, $iflist, $iflistd, $firsttd, $lasttd;
    if ($posturl == "") { $posturl=$iflist; } 
    if (strpos($posturl, ",") !== false) {
      $pref="convert ";
      $rtopref="";
      $exlist = explode(",",$posturl);
      for ($iy=0; $iy<sizeof($exlist); $iy++) {
       $rtopref.=' ' . $exlist[$iy] . ' ';
      }
      if (file_exists('gimp_guillotine.pdf')) { unlink('gimp_guillotine.pdf'); }
      exec(str_replace(" ./", " " . getcwd() . "/",$pref . $rtopref . ' ./gimp_guillotine.pdf'));
      if (!file_exists('gimp_guillotine.pdf')) {
        exec(str_replace(" ./", " " . getcwd() . "/","/usr/local/bin/" . $pref . $rtopref . ' ./gimp_guillotine.pdf'));
      } 
      if (!file_exists('gimp_guillotine.pdf')) { 
       echo str_replace(" ./", " " . getcwd() . "/",$pref . $rtopref . ' ./gimp_guillotine.pdf');
      }
    }
 }

 function new_video($posturl) {
    global $template, $slideshowtitle, $prewith0, $with0, $prewith, $with, $xtemp, $ext, $iflist, $iflistd, $firsttd, $lasttd, $bimg;
    if ($posturl == "") { $posturl=$iflist; } 
    if (strpos($posturl, ",") !== false) {
      $pref="ffmpeg ";
      $rtopref="";
      $midbit="[0:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=out:st=4:d=1[v0]; ";
      $nexttolast=" ";
      $exlist = explode(",",$posturl);
      for ($iy=0; $iy<sizeof($exlist); $iy++) {
       $rtopref.=' -loop 1 -t 5 -i ' . $exlist[$iy] . ' ';
       if ($iy > 0) $midbit.='[' . $iy . ':v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v' . $iy . ']; ';
       $nexttolast.='[v' . $iy . ']';
      }
      if (file_exists('gimp_guillotine.mp4')) { unlink('gimp_guillotine.mp4'); }
      exec(str_replace(" ./", " " . getcwd() . "/",$pref . $rtopref . ' -filter_complex "' . $midbit . $nexttolast . 'concat=n=' . sizeof($exlist) . ':v=1:a=0,format=yuv420p[v]" -map "[v]" ./gimp_guillotine.mp4'));
      if (!file_exists('gimp_guillotine.mp4')) {
        exec(str_replace(" ./", " " . getcwd() . "/","/usr/local/bin/" . $pref . $rtopref . ' -filter_complex "' . $midbit . $nexttolast . 'concat=n=' . sizeof($exlist) . ':v=1:a=0,format=yuv420p[v]" -map "[v]" ./gimp_guillotine.mp4'));
      } 
      $bimgx=$bimg;
      if (file_exists('gimp_guillotine.mp4')) { 
      $bimg=" document.getElementById(\"ffmpegc\").src=\"" . 'data:video/mp4;base64,' . base64_encode(file_get_contents('gimp_guillotine.mp4')) . "\"; " . $bimpx;
      } else {
      $bimg=" document.getElementById(\"ffmpegc\").src=\"gimp_guillotine.mp4\"; " . $bimpx;
      echo str_replace(" ./", " " . getcwd() . "/",$pref . $rtopref . ' -filter_complex "' . $midbit . $nexttolast . 'concat=n=' . sizeof($exlist) . ':v=1:a=0,format=yuv420p[v]" -map "[v]" ./gimp_guillotine.mp4');
      }
   }
 }

 function new_transition($posturl) {
    global $transitionhtml, $jflist, $jflistd;
    if ($posturl == "") { $posturl=$jflist; } 
    $jsct="
    var parlist=['" . str_replace(",", "','", $posturl) . "'];
    var divo=null; 
    var iparlist=0; 
    function workit() {
      if (divo == null) { 
        divo=document.getElementsByTagName('div')[eval(-1 + document.getElementsByTagName('div').length)]; 
      } 
      if (iparlist >= parlist.length) iparlist=0; 
      divo.style.backgroundRepeat='no-repeat'; 
      divo.style.backgroundPosition=' ' + parent.document.getElementById('lefttop').value.split(',')[eval(iparlist * 2)] + 'px ' + parent.document.getElementById('lefttop').value.split(',')[eval(iparlist * 2 + 1)] + 'px'; 
      divo.style.backgroundImage=\"url('\" + parent.document.getElementById(parlist[iparlist]).src + \"')\"; 
      iparlist++; 
      setTimeout(workit, 6000); 
    } 
    setTimeout(workit, 500);  
    ";
    if (strpos($transitionhtml, "</scr" . "ipt>") !== false) {
    $transitionhtml=str_replace("</scr" . "ipt>", $jsct . "</scr" . "ipt>", str_replace("background:","border:", str_replace("height:","height:1",  str_replace("width:","width:10", str_replace("width:100px","width:99px",   str_replace("<p>","<!--p>", str_replace("</p>","</p-->",  str_replace("animation-delay:", "background-position: 20px 20px; \n animation-iteration-count: infinite; \n animation-delay:", $transitionhtml))))))));
    } else {
    $transitionhtml=str_replace("</head>", "<scr" . "ipt type='text/javascript'> " . $jsct . "</scr" . "ipt></head>", str_replace("background:","border:", str_replace("height:","height:1",  str_replace("width:","width:10", str_replace("width:100px","width:99px",   str_replace("<p>","<!--p>", str_replace("</p>","</p-->",  str_replace("animation-delay:", "animation-iteration-count: infinite; \n animation-delay:", $transitionhtml))))))));
    }
    file_put_contents('gimp_guillotine.html', $transitionhtml);
 }

 function new_template($posturl) {
    global $template, $slideshowtitle, $prewith0, $with0, $prewith, $with, $xtemp, $ext, $iflist, $iflistd, $firsttd, $lasttd;
    if ($posturl == "") { $posturl=$iflist; } 
    if (strpos($posturl, ",") !== false) {
      $xtemp = str_replace("lastone=0","lastone=" . (-1 + sizeof(explode(",",$posturl))), $xtemp);
      $purl = str_replace(",", "@!", $posturl);
      $with = str_replace("lastone=0", "lastone=" . (strlen($purl) - 1 - strlen(urldecode($_POST['url']))), $with);
      $exlist = explode(",",$posturl);
      $zero = sizeof($exlist) - 1;
      $prewith = "$" . "2.1";
      $with = new_content($exlist[0]);
      $prewith0 = $lasttd;
      $with0 = str_replace("$" . "2.2", new_content($exlist[1]), $lasttd);
      if (sizeof($exlist) > 2) {
        for ($iy=2; $iy<sizeof($exlist); $iy++) {
          $with0 .= "\n" . str_replace("$" . "2.2", new_content($exlist[$iy]), str_replace("t1", "t" . $iy, str_replace("i1", "i" . $iy, $lasttd)));
        }
      }
    } else {
      $prewith = $lasttd;
      $with = "";
      $prewith0 = "$" . "2.1";
      $with0 = $posturl;
    }
    $template = str_replace("$" . "1", $slideshowtitle, str_replace($prewith0, $with0, str_replace($prewith, $with, $xtemp)));
    file_put_contents("gimp_guillotine.htm", $template);
 }
 
 function command_exists($command) { // thanks to https://stackoverflow.com/questions/12424787/how-to-check-if-a-shell-command-exists-from-php/18540185
    if (strtolower(substr(PHP_OS, 0, 3)) === 'win') {
        $fp = popen("where $command", "r");
        $result = fgets($fp, 255);
        $exists = !preg_match('#Could not find files#', $result);
        pclose($fp);   
    } else { # non-Windows
        if (file_exists("/usr/local/bin/" . $command)) return true;
        $fp = popen("which $command", "r");
        $result = fgets($fp, 255);
        $exists = !empty($result);
        pclose($fp);
    }

    return $exists; 
  }
  
  function less($ins) {
    return str_replace(".","",str_replace(substr("\\",0,1),"",str_replace("/","",$ins)));
  }
  
  function selresults($rs) {
    $outc="";
    $recs=explode("\n", $rs);
    for ($irecs=0; $irecs<sizeof($recs); $irecs++) {
      $outc.='<option value="' . $recs[$irecs] . '">' . $recs[$irecs] . '</option>';
    }
    return $outc;
  }
  
  function dotable($pcol,$prow,$pfilename, $pwidth, $pheight, $pbdel,$mt) {
    global $tablebit, $ext, $lastmt, $includesare;
    $tvh="";
    if (strpos($includesare, $pfilename) !== false || $includesare == '') {
      $tvh="";
    } else {
      $tvh="visibility:hidden;";
    }
    if (strpos($pbdel,"<br>") !== false) {
      //$tablebit=str_replace('</TR>','</tr>',$tablebit);
      //$tablebit=str_replace('</table>','<tr></TR></table>'$tablebit);
      if ($tablebit == "") {
      $tablebit='<hr><details id=tabled><summary id=tables>Table view <a href=#canvasb title=Top>...</a></summary><table cellpadding="0" border="0" cellspacing="0"><tr></tr></table></details>';
      } else {
      $tablebit=str_replace('</tr></table>','</tr><tr' . $mt . '></tr></table>',$tablebit);
      $lastmt=$mt; // thanks to https://stackoverflow.com/questions/24148495/negative-margin-on-table-row
      }
      for ($xcol=0; $xcol<$pcol; $xcol++) {
        $tablebit=str_replace('</tr></table>','<td></td></tr></table>',$tablebit);
      }
      $tablebit=str_replace('</tr></table>','<td id=td' . less($pfilename) . '><img id=i' . less($pfilename) . ' alt=" " src="data:image/' . substr($ext,1) . ";base64," . base64_encode(file_get_contents($pfilename)) . '" style="' . str_replace(' style=margin-','position:relative;',$lastmt) . 'width: ' . $pwidth . 'px;  height: ' . $pheight . 'px; border-width: 0px;' . $tvh . '"></td></tr></table>',$tablebit);
    } else {
      if ($tablebit == "") {
       $tablebit='<table cellpadding="0" border="0" cellspacing="0"><tr></tr></table>';
       $lastmt="";
      }
      $tablebit=str_replace('</tr></table>','<td id=td' . less($pfilename) . '><img id=i' . less($pfilename) . ' alt=" " src="data:image/' . substr($ext,1) . ";base64," . base64_encode(file_get_contents($pfilename)) . '" style="' . str_replace(' style=margin-','position:relative;',$lastmt) . 'width: ' . $pwidth . 'px;  height: ' . $pheight . 'px; border-width: 0px;' . $tvh . '"></td></tr></table>',$tablebit);
    }
  } 
  
  function domap($pcol,$prow,$pfilename, $pwidth, $pheight, $pbdel,$pleft,$ptop) {
    global $mapbit, $lasttopoffset, $includesare;
    if ($mapbit == "") {
     if ($lasttopoffset == 0 && $ptop != 0) {
       $lasttopoffset=$ptop;
     }
     $mapbit='<hr><details id=mapd><summary id=maps>Image Map view <a href=#canvasb title=Top>...</a></summary><img id=mapi src="" width="" height="" border="0" usemap="#map" /><map name="map"></map></details>';
    }
    if (strpos($includesare, $pfilename) !== false || $includesare == '') {
    $mapbit=str_replace('</map>','<area shape="rect" coords="' . $pleft . ',' . ($ptop - $lasttopoffset) . ',' . ($pleft + $pwidth) . ',' . ($ptop - $lasttopoffset + $pheight) . '" href="mailto:?body=w_' . $pcol . '_' . $prow . '&subject=Image%20Map" /></map>',$mapbit);
    }
  } 
  
  function rettb($tbit) {
    if ($tbit != "") { 
     return "<hr><details id=dmargind><summary id=dmargins>Div Margin view <a href=#canvasb title=Top>...</a></summary>" . $tbit . "</details>"; 
    } 
    return "";
  }
  
  if (!isset($_GET['donothing']) || isset($_POST['filespec']) || isset($_GET['filespec'])) {
  $img_filelist="";
  $gimp_place="";
  //$secondbit="<br><textarea id=tresults style='display:none;' cols=180 rows=10></textarea>";
  $secondbit="<br><select onchange=showthese(); size=1 title='Optionally select subset of images of interest to display' id=tresults style='display:none;' multiple></select><br><input style=display:none; type=button value=Display onclick=showthese();></input>";
  $commis="";
  $commresult="";
  $results="";
  $fspec="";
  $jscr="";
  $imagec="";
  $imagex="";
  $cwidth="500";
  $cheight="500";
  $imgd="";
  $ifm="<iframe style='display:none;' src='./gimp_guillotine_followup.php?temp_file_list=" . urlencode($temp_file_list) . "&command=" . urlencode($commis) . "'></iframe>";
  $thirdbit="";
  $fourthbit="";
  $none="none";
  $below="Image";
  $bimg="";
  $subject='Perhaps a Gimp Guillotine Image';
  $to='';
  $headers='';
  $via='mycanvas';
  $includesare='';
  if (isset($_GET['include'])) { $includesare=str_replace("+"," ",urldecode($_GET['include']));   }
  if (isset($_GET['filespec'])) { $fspec=str_replace("+"," ",urldecode($_GET['filespec'])); if (strpos($fspec, "#") !== false) {  $parts=explode("#",$fspec); if (strpos($parts[1],"@") !== false) { if (strpos($parts[1],"+") !== false || strpos($parts[1]," ") !== false) {  $allhtml=true; }  $to=str_replace(" ","",str_replace("+","",$parts[1]));  $fspec=$parts[0];   }   }  }
  if (isset($_GET['divmarginuse'])) { $none="INLINE-BLOCK;opacity:0.5;z-index:-6"; $via='topdiv'; }
  if (isset($_GET['canvas'])) { $bimg=" bimg(true); "; }
  if (isset($_GET['canvasnorepeat'])) { $bimg=" bimg(false); "; }
  if (isset($_GET['canvasa'])) { $bimg=" clearalot=true; precanvasanimation(true); canvasanimation(); "; }
  if (isset($_GET['canvaspa'])) { $bimg=" clearalot=false;  precanvasanimation(true); canvasanimation();  "; }
  if (isset($_GET['canvasnorepeata'])) { $bimg=" clearalot=true; precanvasanimation(false); canvasanimation(); "; }
  if (isset($_GET['canvasnorepeatpa'])) { $bimg=" clearalot=false;  precanvasanimation(false); canvasanimation(); "; }
  
  if (isset($_GET['ffmpeg'])) { $bimg=" document.getElementById(\"ffmpega\").click(); "; $affmpeg=" or <a id=ffmpega onclick='doopen(this);' href='#ffmpegd' title='Video Use'>Video</a>"; $bitffmpeg="<hr><details id=ffmpegd><summary id=ffmpegs>Fade In Fade Out Video view <a href=#canvasb title=Top>...</a> <a target=_blank href='gimp_guillotine.mp4' title='application/mp4'>+</a></summary><video style='width:100%;height:800px;' id=ffmpegv controls><source id=ffmpegc type='video/mp4' src=''></source></video></details>"; }
  if (isset($_GET['pdfslideshow'])) { $bimg=" document.getElementById(\"converta\").click(); ";  $aconvert=" or <a id=converta onclick='doopen(this);' href='#convertd' title='PDF Use'>PDF</a>";  $bitconvert="<hr><details id=convertd><summary id=pdfslideshows>PDF Slideshow view <a href=#canvasb title=Top>...</a></summary><iframe style='width:100%;height:800px;' id=pdfslideshoww src='gimp_guillotine.pdf'></iframe></details>"; }
  if (isset($_GET['inhouseslideshow'])) { $bimg=" document.getElementById(\"inhouseslideshoww\").src=\"gimp_guillotine.htm?rand=\" + Math.floor(Math.random() * 5465564); document.getElementById(\"inhouseslideshowa\").click(); "; $ainhouseslideshow=" or <a id=inhouseslideshowa onclick='doopen(this);' href='#inhouseslideshowd' title='Slideshow Use'>Slideshow</a>"; $bitinhouseslideshow="<hr><details id=inhouseslideshowd><summary id=inhouseslideshows>Inhouse Slideshow view <a href=#canvasb title=Top>...</a></summary><iframe style='width:100%;height:800px;' id=inhouseslideshoww src='gimp_guillotine.htm'></iframe></details>"; }
  if (isset($_POST['inhouseslideshow'])) { $bimg=" document.getElementById(\"inhouseslideshoww\").src=\"gimp_guillotine.htm?rand=\" + Math.floor(Math.random() * 5465564); document.getElementById(\"inhouseslideshowa\").click(); ";  $ainhouseslideshow=" or <a id=inhouseslideshowa onclick='doopen(this);' href='#inhouseslideshowd' title='Slideshow Use'>Slideshow</a>";  $bitinhouseslideshow="<hr><details id=inhouseslideshowd><summary id=inhouseslideshows>Inhouse Slideshow view <a href=#canvasb title=Top>...</a></summary><iframe style='width:100%;height:800px;' id=inhouseslideshoww src='gimp_guillotine.htm'></iframe></details>"; }
  if (isset($_POST['pdfslideshow'])) { $bimg=" document.getElementById(\"converta\").click(); "; $aconvert=" or <a id=converta onclick='doopen(this);' href='#convertd' title='PDF Use'>PDF</a>"; $bitconvert="<hr><details id=convertd><summary id=pdfslideshows>PDF Slideshow view <a href=#canvasb title=Top>...</a></summary><iframe style='width:100%;height:800px;' id=pdfslideshoww src='gimp_guillotine.pdf'></iframe></details>"; }
  if (isset($_POST['ffmpeg'])) { $bimg=" document.getElementById(\"ffmpega\").click(); "; $affmpeg=" or <a id=ffmpega onclick='doopen(this);' href='#ffmpegd' title='Video Use'>Video</a>";  $bitffmpeg="<hr><details id=ffmpegd><summary id=ffmpegs>Fade In Fade Out Video view <a href=#canvasb title=Top>...</a> <a target=_blank href='gimp_guillotine.mp4' title='application/mp4'>+</a></summary><video style='width:100%;height:800px;' id=ffmpegv controls><source id=ffmpegc type='video/mp4' src=''></source></video></details>"; }

  if (isset($_GET['multibackground'])) { $bimg="  document.getElementById(\"multibackgrounda\").click(); "; $amultibackground=" or <a id=multibackgrounda onclick='doopen(this);' href='#multibackgroundd' title='Multiple Background Images use'>Multiple Background Images</a>"; $bitmultibackground="<hr><details id=multibackgroundd><summary id=multibackgrounds>Multiple Background Images view <a href=#canvasb title=Top>...</a></summary><div style='width:100%;height:600px;display:block;' id=multibackgroundw></div></details>"; }
  if (isset($_POST['multibackground'])) { $bimg="  document.getElementById(\"multibackgrounda\").click(); "; $amultibackground=" or <a id=multibackgrounda onclick='doopen(this);' href='#multibackgroundd' title='Multiple Background Images use'>Multiple Background Images</a>"; $bitmultibackground="<hr><details id=multibackgroundd><summary id=multibackgrounds>Multiple Background Images view <a href=#canvasb title=Top>...</a></summary><div style='width:100%;height:600px;display:block;' id=multibackgroundw></div></details>"; }
  if (isset($_POST['multiborder'])) { $bimg="  document.getElementById(\"multibordera\").click(); ";  $amultiborder=" or <a id=multibordera onclick='doopen(this);' href='#multiborderd' title='Random Border Images use'>Random Border Images</a>";  $bitmultiborder="<hr><details id=multiborderd><summary id=multiborders>Random Border Images view <a href=#canvasb title=Top>...</a></summary><div style='width:100%;height:600px;' id=multiborderw></div></details>"; }
  if (isset($_GET['multiborder'])) { $bimg="  document.getElementById(\"multibordera\").click(); ";  $amultiborder=" or <a id=multibordera onclick='doopen(this);' href='#multiborderd' title='Random Border Images use'>Random Border Images</a>";  $bitmultiborder="<hr><details id=multiborderd><summary id=multiborders>Random Border Images view <a href=#canvasb title=Top>...</a></summary><div style='width:100%;height:600px;' id=multiborderw></div></details>"; }

  if (isset($_GET['transition'])) { $bimg=" dodur(); document.getElementById(\"transitionw\").src=\"gimp_guillotine.html?rand=\" + Math.floor(Math.random() * 5465564); document.getElementById(\"transitiona\").click(); "; $atransition=" or <a id=transitiona onclick='doopen(this);' href='#transitiond' title='CSS keyframes Transition Animation'>CSS keyframes Transition Animation</a>"; $bittransition="<hr><details id=transitiond><summary id=transitions>CSS keyframes Transition Animation view <a href=#canvasb title=Top>...</a></summary><iframe style='width:100%;height:800px;' id=transitionw src='gimp_guillotine.html?rand=" . rand() . "'></iframe></details>"; }
  if (isset($_POST['transition'])) { $bimg=" dodur(); document.getElementById(\"transitionw\").src=\"gimp_guillotine.html?rand=\" + Math.floor(Math.random() * 5465564); document.getElementById(\"transitiona\").click(); ";  $atransition=" or <a id=transitiona onclick='doopen(this);' href='#transitiond' title='CSS keyframes Transition Animation'>CSS keyframes Transition Animation</a>";  $bittransition="<hr><details id=transitiond><summary id=transitions>CSS keyframes Transition Animation view <a href=#canvasb title=Top>...</a></summary><iframe style='width:100%;height:800px;' id=transitionw src='gimp_guillotine.html?rand=" . rand() . "'></iframe></details>"; }
  
  if (isset($_POST['include'])) { $includesare=str_replace("+"," ",urldecode($_POST['include']));   }
  if (isset($_POST['filespec'])) { $fspec=str_replace("+"," ",urldecode($_POST['filespec'])); if (strpos($fspec, "#") !== false) {  $parts=explode("#",$fspec); if (strpos($parts[1],"@") !== false) { if (strpos($parts[1],"+") !== false || strpos($parts[1]," ") !== false) {  $allhtml=true; }  $to=str_replace(" ","",str_replace("+","",$parts[1]));  $fspec=$parts[0];   }   }  }
  if (isset($_POST['divmarginuse'])) { $none="INLINE-BLOCK;opacity:0.5;z-index:-6"; $via='topdiv'; }
  if (isset($_POST['canvas'])) { $bimg=" bimg(true); "; }
  if (isset($_POST['canvasnorepeat'])) { $bimg=" bimg(false); "; }
  if (isset($_POST['canvasa'])) { $bimg=" clearalot=true; precanvasanimation(true); canvasanimation(); "; }
  if (isset($_POST['canvaspa'])) { $bimg=" clearalot=false;  precanvasanimation(true); canvasanimation();  "; }
  if (isset($_POST['canvasnorepeata'])) { $bimg=" clearalot=true; precanvasanimation(false); canvasanimation(); "; }
  if (isset($_POST['canvasnorepeatpa'])) { $bimg=" clearalot=false;  precanvasanimation(false); canvasanimation(); "; }

  if (isset($_GET['command']) && isset($_GET['temp_file_list'])) {
   while ($commresult == "") {
    exec(str_replace("+"," ",urldecode($_GET['command'])));
    $commresult=file_get_contents(str_replace("+"," ",urldecode($_GET['temp_file_list'])));
    if ($commresult == "") {
      sleep(5);
    } else {
      if (strpos($commresult, "-0-0.") !== false) {
        $prefix=explode("-0-0.", $commresult)[0];
        $cr="";
        $crd="";
        $row="0";
        $col="0";
        $cnt=0;
        $bdel="<br>";
        $cumwidth=0;
        $premargin="";
        $margin="";
        foreach (glob($prefix . "-*-*.*g*") as $filename) {
          $vh="";
          if (strpos($includesare, $filename) === false && $includesare != "") { $vh="visibility:hidden;"; }
          $col=explode("-",explode("-", $filename)[-2 + sizeof(explode("-", $filename))])[0];
          $ifm="";
          if ($below == "Image") $below="<a id=tablea onclick='doopen(this);' href='#tabled' title='Table Use'>Table</a> or <a id=mapa onclick='doopen(this);' href='#mapd' title='Map Use'>Map</a>" . $affmpeg . $aconvert . $ainhouseslideshow . $atransition . $amultibackground . $amultiborder . " or <a id=dmargina onclick='doopen(this); dodur();' href='#" . less($filename) . "' title='Div Margin Use'>Image</a> (or in <a style=text-decoration:underline;cursor:pointer; onclick=' intonew(); dodur();' title='Show in Div Margin Use in New Window'>New Window</a> or <a id=canvasa style=text-decoration:underline;cursor:pointer; onclick='doopen(this); bimg(true);' title='Background Image via Canvas'>Background Image via Canvas</a> (<a id=canvasz style=text-decoration:underline;cursor:pointer; onclick='doopen(this); bimg(false);' title='Background Image via Canvas'>no-repeat</a>) (<a id=canvasn style=text-decoration:underline;cursor:pointer; onclick='clearalot=false; precanvasanimation(true); canvasanimation();' title='Background Image via Canvas Progressive Animation'>Progressive Animation</a> (<a id=canvasm style=text-decoration:underline;cursor:pointer; onclick='clearalot=false; precanvasanimation(false); canvasanimation();' title='Background Image via Canvas Progressive Animation'>no-repeat</a>)) (<a id=canvask style=text-decoration:underline;cursor:pointer; onclick='clearalot=true; precanvasanimation(true); canvasanimation();' title='Background Image via Canvas Animation'>Animation</a> (<a id=canvasl style=text-decoration:underline;cursor:pointer; onclick='clearalot=true; precanvasanimation(false); canvasanimation();' title='Background Image via Canvas Animation'>no-repeat</a>)))";
          if ($ext == "") $ext="." . explode(".", $filename)[-1 + sizeof(explode(".", $filename))];
          list($width, $height, $type, $attr) = getimagesize($filename);
          $imagec.=$filename . ':' . $width . ':' . $height . ',';
          if ($imagex == "") {
            $imagex="'; \n function ios() { \n";
            if ("row" == "0") $cwidth=$width;
            if ("row" == "0") $cheight=$height;
            $row=explode(".",explode("-", $filename)[-1 + sizeof(explode("-", $filename))])[0];
          } else if (explode(".",explode("-", $filename)[-1 + sizeof(explode("-", $filename))])[0] != "$row") {
            $premargin="margin-top:-" . (explode(".",explode("-", $filename)[-1 + sizeof(explode("-", $filename))])[0] * 6) . "px;";
            $cumwidth=0;
            if (strpos($filename, "-0-" . $row . ".") === false) {
              if (strpos($thirdbit, "-" . explode(".",explode("-", $filename)[-2 + sizeof(explode("-", $filename))])[0] . "-0" . $ext . "' style='left:") !== false) {
                $cumwidth=explode("px", explode("-" . explode(".",explode("-", $filename)[-2 + sizeof(explode("-", $filename))])[0] . "-0" . $ext . "' style='left:", $thirdbit)[1])[0];
                $margin="margin-";
              }
            }
            $bdel="<br>";
            $row=explode(".",explode("-", $filename)[-1 + sizeof(explode("-", $filename))])[0];
            $cheight+=$height;
          } else if ("$row" == "0") {
            $cwidth+=$width;
          }
          if (1 == 1) {
          if ($vh == "") {
          $iflist.=$iflistd . $filename;
          $iflistd=",";
          $jflist.=$jflistd . less($filename);
          $jflistd=",";
          dotable($col,$row,$filename, $width, $height, $bdel,str_replace('margin-top',' style=margin-top',$premargin)); 
          domap($col,$row,$filename, $width, $height, $bdel,$cumwidth,($cheight - $height)); 
          $thirdbit.=$bdel . "<img id='" . less($filename) . "' width=" . $width . " height=" . $height . " title='" . $filename . "' style='" . $premargin . $margin . "left:" . $cumwidth . "px;display:INLINE-BLOCK;" . $vh . "' alt=img" . $cnt . " src='data:image/" . substr($ext,1) . ";base64," . base64_encode(file_get_contents($filename)) . "'></img>"; 
          } else {
          $thirdbit.=$bdel . "<img id='" . less($filename) . "' width=" . $width . " height=" . $height . " title='" . $filename . "' style='" . $premargin . $margin . "left:" . $cumwidth . "px;" . $vh . "' alt=img" . $cnt . " src='data:image/" . substr($ext,1) . ";base64," . base64_encode(file_get_contents($filename)) . "'></img>"; 
          }
          $bdel="";
          $margin="";
          $cnt++;
          } else {
          $imagex.="\n imageo.push(new Image()); \n imageo[eval(-1 + imageo.length)].src='data:image/" . substr($ext,1) . ";base64," . base64_encode(file_get_contents($filename)) . "'; \n";
          }
          $cumwidth+=$width;
          if ($jscr == "") $jscr="\n if (imagec == ',') { dur=dur;  ";
          $jscr.="\n
           imagec+='" . $filename . ",';
           imageo.push(new Image());
           imageo[eval(-1 + imageo.length)].onload = function () {
           imagec = imagec.replace('," . $filename . ",', '," . $filename . ":' + eval(('' + this.width).replace('px','')) + ':' + eval(('' + this.height).replace('px','')) + ',');
           };
           imageo[eval(-1 + imageo.length)].src='" . $filename . "';
          \n";
          $cr.=$crd . $filename;
          $crd="\n";
        }
        if (isset($_GET['transition']) || isset($_POST['transition'])) { new_transition("");   }
        if (isset($_GET['inhouseslideshow']) || isset($_POST['inhouseslideshow'])) { new_template("");   }
        if (isset($_GET['ffmpeg']) || isset($_POST['ffmpeg'])) { new_video("");   }
        if (isset($_GET['pdfslideshow']) || isset($_POST['pdfslideshow'])) { new_pdf("");   }
        $mapbit=str_replace(' width="" height=""',' width="' . $cwidth . '" height="' . $cheight . '"',$mapbit);
        if ($imagex != "") $imagex.="\n } \n imagec+='";
        if ($jscr != "") $jscr.=" \n } \n if (imagec != ',') {  lookati();    } \n";
        echo "<html><body onload=\" if (parent.document.getElementById('results')) { parent.document.getElementById('results').innerHTML='" . str_replace("\n","' + String.fromCharCode(10) + '",$cr) . "'; }    \"></body></html>";
        exit;
      }
    }
   }    
  } else if (isset($_POST['filespec']) || $fspec != "") {
   $dcr="";
   $cr="";
   $crd="";
   $col="0";
   $row="0";
   $cnt=0;
   if ($fspec == "") { $fspec=str_replace("+"," ",urldecode($_POST['filespec'])); }
   $bdel="<br>";
   $cumwidth=0;
   $premargin="";
   $margin="";
   foreach (glob($fspec) as $filename) {
          $vh="";
          if (strpos($includesare, $filename) === false && $includesare != "") { $vh="visibility:hidden;"; }
          $col=explode("-",explode("-", $filename)[-2 + sizeof(explode("-", $filename))])[0];
          $ifm="";
          if ($below == "Image") $below="<a id=tablea onclick='doopen(this);' href='#tabled' title='Table Use'>Table</a> or <a id=mapa onclick='doopen(this);' href='#mapd' title='Map Use'>Map</a>" . $affmpeg . $aconvert . $ainhouseslideshow . $atransition . $amultibackground . $amultiborder . " or <a id=dmargina onclick='doopen(this); dodur();' href='#" . less($filename) . "' title='Div Margin Use'>Image</a> (or in <a style=text-decoration:underline;cursor:pointer; onclick=' intonew(); dodur();' title='Show in Div Margin Use in New Window'>New Window</a> or <a id=canvasa style=text-decoration:underline;cursor:pointer; onclick='doopen(this); bimg(true);' title='Background Image via Canvas'>Background Image via Canvas</a> (<a id=canvasz style=text-decoration:underline;cursor:pointer; onclick='doopen(this); bimg(false);' title='Background Image via Canvas'>no-repeat</a>) (<a id=canvasn style=text-decoration:underline;cursor:pointer; onclick='clearalot=false; precanvasanimation(true); canvasanimation();' title='Background Image via Canvas Progressive Animation'>Progressive Animation</a> (<a id=canvasm style=text-decoration:underline;cursor:pointer; onclick='clearalot=false; precanvasanimation(false); canvasanimation();' title='Background Image via Canvas Progressive Animation'>no-repeat</a>)) (<a id=canvask style=text-decoration:underline;cursor:pointer; onclick='clearalot=true; precanvasanimation(true); canvasanimation();' title='Background Image via Canvas Animation'>Animation</a> (<a id=canvasl style=text-decoration:underline;cursor:pointer; onclick='clearalot=true; precanvasanimation(false); canvasanimation();' title='Background Image via Canvas Animation'>no-repeat</a>)))";
          if ($ext == "") $ext="." . explode(".", $filename)[-1 + sizeof(explode(".", $filename))];
          if ($jscr == "") $jscr="\n if (imagec == ',') { dur=dur;   ";
          list($width, $height, $type, $attr) = getimagesize($filename);
          $imagec.=$filename . ':' . $width . ':' . $height . ',';
          if ($imagex == "") {
            $imagex="'; \n function ios() { \n";
            if ("row" == "0") $cwidth=$width;
            if ("row" == "0") $cheight=$height;
            $row=explode(".",explode("-", $filename)[-1 + sizeof(explode("-", $filename))])[0];
          } else if (explode(".",explode("-", $filename)[-1 + sizeof(explode("-", $filename))])[0] != "$row") {
            $premargin="margin-top:-" . (explode(".",explode("-", $filename)[-1 + sizeof(explode("-", $filename))])[0] * 6) . "px;";
            $cumwidth=0;
            if (strpos($filename, "-0-" . $row . ".") === false) {
              if (strpos($thirdbit, "-" . explode(".",explode("-", $filename)[-2 + sizeof(explode("-", $filename))])[0] . "-0" . $ext . "' style='left:") !== false) {
                $cumwidth=explode("px", explode("-" . explode(".",explode("-", $filename)[-2 + sizeof(explode("-", $filename))])[0] . "-0" . $ext . "' style='left:", $thirdbit)[1])[0];
                $margin="margin-";
              }
            }
            $bdel="<br>";
            $row=explode(".",explode("-", $filename)[-1 + sizeof(explode("-", $filename))])[0];
            $cheight+=$height;
          } else if ("$row" == "0") {
            $cwidth+=$width;
          }
          if (1 == 1) {
          if ($vh == "") {
          $iflist.=$iflistd . $filename;
          $iflistd=",";
          $jflist.=$jflistd . less($filename);
          $jflistd=",";
          dotable($col,$row,$filename, $width, $height, $bdel,str_replace('margin-top',' style=margin-top',$premargin)); 
          domap($col,$row,$filename, $width, $height, $bdel,$cumwidth,($cheight - $height)); 
          $thirdbit.=$bdel . "<img id='" . less($filename) . "' width=" . $width . " height=" . $height . " title='" . $filename . "' style='" . $premargin . $margin . "left:" . $cumwidth . "px;display:INLINE-BLOCK;" . $vh . "' alt=img" . $cnt . " src='data:image/" . substr($ext,1) . ";base64," . base64_encode(file_get_contents($filename)) . "'></img>"; 
          } else {
          $thirdbit.=$bdel . "<img id='" . less($filename) . "' width=" . $width . " height=" . $height . " title='" . $filename . "' style='" . $premargin . $margin . "left:" . $cumwidth . "px;" . $vh . "' alt=img" . $cnt . " src='data:image/" . substr($ext,1) . ";base64," . base64_encode(file_get_contents($filename)) . "'></img>"; 
          }
          $bdel="";
          $margin="";
          $cnt++;
          } else {
          $imagex.="\n imageo.push(new Image()); \n imageo[eval(-1 + imageo.length)].src='data:image/" . substr($ext,1) . ";base64," . base64_encode(file_get_contents($filename)) . "'; \n";
          }
          $cumwidth+=$width;
          if (1 == 2) $jscr.="\n
           imagec+='" . $filename . ",';
           imageo.push(new Image());
           imageo[eval(-1 + imageo.length)].onload = function () {
           imagec = imagec.replace('," . $filename . ",', '," . $filename . ":' + eval(('' + this.width).replace('px','')) + ':' + eval(('' + this.height).replace('px','')) + ',');
           };
           imageo[eval(-1 + imageo.length)].src='" . $filename . "';
          \n";
          $cr.=$crd . $filename;
          $dcr.=$crd . "<a onclick=\"butwhatif('" . less($filename) . "');\" target=myif href='" . $filename . "'>" . $filename . "</a>";
          $crd="\n";
   }
        if (isset($_GET['transition']) || isset($_POST['transition'])) { new_transition("");   }
   if (isset($_GET['inhouseslideshow']) || isset($_POST['inhouseslideshow'])) { new_template("");   }
   if (isset($_GET['ffmpeg']) || isset($_POST['ffmpeg'])) { new_video("");   }
   if (isset($_GET['pdfslideshow']) || isset($_POST['pdfslideshow'])) { new_pdf("");   }
   $mapbit=str_replace(' width="" height=""',' width="' . $cwidth . '" height="' . $cheight . '"',$mapbit);
   if ($imagex != "") $imagex.="\n } \n imagec+='";
   if ($jscr != "") $jscr.=" \n } \n if (imagec != ',') { lookati();    }  \n";
   //$jscr.="\n alert(imagec); \n";
   //$jscr.="\n alert(imagec); \n";
   if ($cr == "") {
      //echo "<html><body onload=\" if (parent.document.getElementById('results')) { parent.document.getElementById('results').innerHTML=' '; }    \"></body></html>";
      //exit;
      $results=" ";
      //$secondbit="<br><textarea id=tresults style='display:block;' cols=180 rows=10>" . $results . "</textarea>";
      $secondbit="<br><select onchange=showthese(); size=" . sizeof(explode("</option",substr(selresults($results),1))) . " title='Optionally select subset of images of interest to display' id=tresults style='display:none;' multiple>" . selresults($results) . "</select><br><input style=display:none; type=button value=Display onclick=showthese();></input>";
   } else {
      //echo "<html><body onload=\" if (parent.document.getElementById('results')) { parent.document.getElementById('results').innerHTML='" . str_replace("\n","' + String.fromCharCode(10) + '",$cr) . "'; }    \"></body></html>";
      //exit;
      $results=$cr;
      //$secondbit="<br><table border=5><tr><td><textarea id=tresults style='display:block;' cols=80 rows=10>" . $results . "</textarea></td><td style='vertical-align:top;'><div id=dresults>" . str_replace("\n","<br>",$dcr) . "</div></td></td><td style='vertical-align:top;'><iframe name=myif id=myif src='./gimp_guillotine_followup.php?donothing=y'></iframe></td></tr></table><br>"; //<canvas id=mycanvas width=" . $cwidth . " height=" . $cheight . " style=display:INLINE-BLOCK;></canvas>"; // . $thirdbit . "";
      $secondbit="<br><table border=5><tr><td style='vertical-align:top;'><select onchange=showthese(); size=" . sizeof(explode("</option",substr(selresults($results),1))) . " title='Optionally select subset of images of interest to display' id=tresults style='display:none;' multiple>" . selresults($results) . "</select><br><input style=display:none; type=button value=Display onclick=showthese();></input></td><td style='vertical-align:top;'><div id=dresults>" . str_replace("\n","<br>",$dcr) . "</div></td></td><td id='colthree' style='vertical-align:top;'><img id='icolthree' style='display:none;' src=''></img><iframe name=myif id=myif src='./gimp_guillotine_followup.php?donothing=y'></iframe></td></tr></table><br>"; 
   }
   if ($to != "" && !$allhtml) {
            $eol = PHP_EOL;
            $headers = 'From: ' . 'rmetcalfe@rjmprogramming.com.au' . $eol;
            $headers .= 'Reply-To: ' . 'rmetcalfe@rjmprogramming.com.au' . $eol;

            $filname="gimp_guillotine.html";
                $content = chunk_split(base64_encode( "<!doctype html><html><body>" . str_replace("margin-top:-","margin-top:0.00",str_replace("margin-top: ","margin-top:",$thirdbit)) . "</body></html>" ));
                //$uid = md5(uniqid(time()));

                // a random hash will be necessary to send mixed content
                $separator = md5(time());

                $headers .= "MIME-Version: 1.0" . $eol;
                $headers .= "Content-Type: multipart/mixed; boundary=\"" . $separator . "\"" . $eol . $eol;
                $headers .= "Content-Transfer-Encoding: 7bit" . $eol;
                $headers .= "This is a MIME encoded message." . $eol . $eol;

                // message
                $headers .= "--" . $separator . $eol;
                $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"" . $eol;
                $headers .= "Content-Transfer-Encoding: 8bit" . $eol . $eol;

                $headers .= "Please see attachment below:" . $eol . $eol;

            //ourpremail($tem, $mysubject, "", $headers . "--" . $separator . "--");

                // attachment
                $headers .= "--" . $separator . $eol;
                $headers .= "Content-Type: application/octet-stream; name=\"" . $filname . "\"" . $eol;
                $headers .= "Content-Transfer-Encoding: base64" . $eol;
                $headers .= "Content-Disposition: attachment;filename=\"" . $filname . "\"" . $eol;
                $headers .= $content . $eol . $eol;

                $headers .= "--" . $separator . "--";

            //mail($to, $subject, "", $headers);
   }
  }

  if (file_exists("../../GIMP.app/Contents/MacOS/Gimp")) {
      $gimp_place="../../GIMP.app/Contents/MacOS/Gimp";
  } else if (file_exists("/Applications/GIMP.app/Contents/MacOS/Gimp")) {
      $gimp_place="/Applications/GIMP.app/Contents/MacOS/Gimp";
  }
  
  if ($ifm != "") {
      $ifm="<iframe style='display:none;' src='./gimp_guillotine_followup.php?temp_file_list=" . urlencode($temp_file_list) . "&command=" . urlencode($commis) . "'></iframe>";
  }
  
  if ($gimp_place == "") {
      $hecho="<!doctype html>
<html>
<head>
<title>GIMP Guillotine Follow Up - RJM Programming - August, 2018</title>
<style>
  margin { 0 0 0 0 }
  padding { 0 0 0 0 }
</style>
<scr" . "ipt type='text/javascript'>
            var includesare='" . $includesare . "'; 
            var dur='';
            var clearalot=false;
            var canvascset=[];
            var icanvascset=0;
            var lookatidone=false;
            var elem=null;
            var context=null;
            var ext='" . $ext . "';
            var results='';
            var imageo=new Array();
            var imagec='," . $imagec . $imagex . "';
            /" . "/ var imagec=',./mondrian-1504681_640-0-0.png;133;146,./mondrian-1504681_640-1-0.png;164;146,./mondrian-1504681_640-2-0.png;343;146,./mondrian-1504681_640-2-1.png;343;145,./mondrian-1504681_640-2-2.png;343;189,';
    var xparlist=['" . str_replace(",", "','", $jflist) . "'];
    var ixparlist=0;
    var xob=null,xbvsb=''; 
    function zworkit() {
    xworkit(xob,xbvsb);
    }
    function xworkit(ob,bvsb) {
      var bretval='', cretval='', dretval='', bcomma='', bchoice=Math.floor(Math.random() * 200), bslice=Math.floor(Math.random() * 100);
      var mr=Math.floor(Math.random() * xparlist.length);
      for (ixparlist=0; ixparlist<xparlist.length; ixparlist++) {
      if (bvsb == 'border') {
      if (ixparlist == mr) {
      ob.style.borderImageWidth='' + bchoice + 'px';
      ob.style.borderImageSlice='' + bslice + 'px';
      ob.style.borderRepeat='repeat';
      bretval+=bcomma + \" url('\" + document.getElementById(xparlist[ixparlist]).src + \"')\";
      if (xob != null) {
      ob.style.borderImageSource=\" url('\" + document.getElementById(xparlist[ixparlist]).src + \"')\"; 
      }
      xob=ob;
      xbvsb=bvsb; 
      setTimeout(zworkit, 4000);
      }
      } else {
      cretval+=bcomma + ' no-repeat'; 
      dretval+=bcomma + ' ' + eval(-20 + eval('' + document.getElementById('lefttop').value.split(',')[eval(ixparlist * 2)])) + 'px ' + eval(-20 + eval('' + document.getElementById('lefttop').value.split(',')[eval(ixparlist * 2 + 1)])) + 'px'; 
      bretval+=bcomma + \" url('\" + document.getElementById(xparlist[ixparlist]).src + \"')\"; 
      bcomma=',';
      }
      }
      if (cretval != '') {
      ob.style.backgroundRepeat=cretval;
      ob.style.backgroundPosition=dretval;
      }
      return bretval;
    } 
  function precanvasanimation(dobr) {
            icanvascset=0;
            if (dobr) document.body.style.backgroundRepeat='repeat';
            if (!dobr) document.body.style.backgroundRepeat='no-repeat';
  }
  function canvasanimation() {
    if (canvascset.length > 0 && icanvascset >= 0) {
      if (icanvascset <= 0) {
        icanvascset=0;
        context.clearRect(0, 0, elem.width, elem.height);
        eval(canvascset[0]);
        document.body.style.backgroundImage=\"url('\" + elem.toDataURL() + \"')\";
        icanvascset++;
        if (clearalot) {
        setTimeout(canvasanimation, 600);
        } else {
        setTimeout(canvasanimation, 3000);
        }
      } else if (icanvascset > canvascset.length) {
        icanvascset=0;
        if (clearalot) {
        setTimeout(canvasanimation, 1200);
        } else {
        setTimeout(canvasanimation, 6000);
        }
      } else {
        if (clearalot) context.clearRect(0, 0, elem.width, elem.height);
        eval(canvascset[icanvascset]);
        document.body.style.backgroundImage=\"url('\" + elem.toDataURL() + \"')\";
        icanvascset++;
        if (clearalot) {
        setTimeout(canvasanimation, 600);
        } else {
        setTimeout(canvasanimation, 3000);
        }
      }
    } else if (canvascset.length > 0) {
      icanvascset=0;
    }
  }
  function butwhatif(icolid) {
    if (document.URL.toLowerCase().indexOf('http') == -1) {
      document.getElementById('icolthree').src=document.getElementById(icolid).src;
      document.getElementById('icolthree').style.display='block';
    }
  }
  function bimg(dobr) {
            icanvascset=-1;
            if (dobr) document.body.style.backgroundRepeat='repeat';
            if (!dobr) document.body.style.backgroundRepeat='no-repeat';
            document.body.style.backgroundImage=\"url('\" + dur + \"')\";
  }
  function showthese() {
    var osel=document.getElementById('tresults');
    var cinc='', cincd='';
    for (var i=0; i<osel.length; i++) {
      if (osel.options[i].selected) {
        cinc+=cincd + osel.options[i].value;
        cincd=',';
      }
    }
    document.getElementById('include').value=cinc;
  }
  function resultsel(rs) {
    var outc='';
    var recs=rs.split(String.fromCharCode(10));
    for (var irecs=0; irecs<recs.length; irecs++) {
      outc+='<option value=\"' + recs[irecs] + '\">' + recs[irecs] + '</option>';
    }
    document.getElementById('tresults').size='' + recs.length;
    return outc;
  }
  function doopen(wois) {
    if (wois.id == 'multibackgrounda') {
      document.getElementById(wois.id.substring(0,eval(wois.id.length - 1)) + 'w').style.backgroundImage=xworkit(document.getElementById(wois.id.substring(0,eval(wois.id.length - 1)) + 'w'),'background');
    } else if (wois.id == 'multibordera') {
      document.getElementById(wois.id.substring(0,eval(wois.id.length - 1)) + 'w').style.borderImageSource=xworkit(document.getElementById(wois.id.substring(0,eval(wois.id.length - 1)) + 'w'),'border');
    }
    location.href='#' + wois.id.substring(0,eval(wois.id.length - 1)) + 'd';
    document.getElementById(wois.id.substring(0,eval(-1 + wois.id.length)) + 'd').open=true;
  }
  function ourdocumentgetElementById(huh) {
    var isa=document.getElementsByTagName('img');
    for (var jsa=0; jsa<isa.length; jsa++) {
      if (isa[jsa].alt == huh) return isa[jsa];
    }
    return document.getElementById(huh);
  }
            function intonew() {
            var wo=window.open('','_blank','top=0,left=0,height=" . $cheight . ",width=" . $cwidth . "');
            wo.document.write('<style> margin { 0 0 0 0 } padding { 0 0 0 0 } </style>' + document.getElementById('topdiv').innerHTML.replace(/\-top\:\ /g,'-top:').replace(/\-top\:\-/g,'-top:0.00'));
            }
            function dodur() {
            var iob=new Image();
            if (dur == '') {
            dur=document.getElementById('dhuh').innerHTML;
            }
            if (dur == '') {
            if (parent.document.getElementById('dhuh')) {
            dur=parent.document.getElementById('dhuh').innerHTML;
            }
            }
            //alert('DuR=' + dur);
            iob.onload = function () {
            //alert(11);
            elem=document.getElementById('mycanvas');
            //alert(111);
            context=elem.getContext('2d');
            //alert(1111);
            context.drawImage(this,0,0);
            //alert(21111);
            if (document.getElementById('mapi')) {
            if (document.getElementById('mapi').src == '') {
            document.getElementById('mapi').src=elem.toDataURL();
            }
            }
            };
            iob.src=dur;
            }
            function lookati() {
            if (!lookatidone) {
            lookatidone=true;
//document.title='5';
            // ios();
//document.title='51';
            //alert('-0-0' + ext + ': In ' + imagec);
            elem.style.display='block';
            var myimagec=imagec;
            imagec=',';
            var pfix=myimagec.split('-0-0' + ext + ':')[0].split(',')[eval(-1 + myimagec.split('-0-0' + ext + ':')[0].split(',').length)];
            // var iis=myimagec.split(',');
            var icol=0, irow=0, top=0, left=0, cumtop=0, cumleft=0, fwidth=0, fheight=0, thisw=0, thish=0, thisws=[];
            while (myimagec.indexOf('-' + irow + ext + ':') != -1) {
              if (myimagec.indexOf('-' + irow + ext + ':') != -1) {
               if (myimagec.indexOf('-' + icol + '-' + irow + ext + ':') != -1) {
                 thisw=eval(myimagec.split('-' + icol + '-' + irow + ext + ':')[1].split(':')[0]);
                 thish=eval(myimagec.split('-' + icol + '-' + irow + ext + ':')[1].split(':')[1].split(',')[0]);
                 //alert(eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length));
                 if (ourdocumentgetElementById('img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length))) {
                 //ourdocumentgetElementById('img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length)).style.position='absolute';
                 //ourdocumentgetElementById('img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length)).style.top='' + top + 'px';
                 //ourdocumentgetElementById('img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length)).style.left='' + left + 'px';
                 try {
                 if (includesare.indexOf('-' + icol + '-' + irow + ext) != -1 || includesare == '') {
                 if (canvascset.length == 0) {
                 document.getElementById('lefttop').value+='' + eval(20 + left) + ',' + eval(20 + top);
                 } else {
                 document.getElementById('lefttop').value+=',' + eval(20 + left) + ',' + eval(20 + top);
                 }
                 canvascset.push(\"context.drawImage(ourdocumentgetElementById('img\" + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length) + \"'), \" + left + \",\" + top + \");\");
                 context.drawImage(ourdocumentgetElementById('img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length)), left, top);
                 }
                 } catch(ee) {
                 alert(ee.message);
                 }
                 //alert('-' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length));
                 } else {
                 if (includesare.indexOf('-' + icol + '-' + irow + ext) != -1 || includesare == '') {
                 if (canvascset.length == 0) {
                 document.getElementById('lefttop').value+='' + eval(20 + left) + ',' + eval(20 + top);
                 } else {
                 document.getElementById('lefttop').value+=',' + eval(20 + left) + ',' + eval(20 + top);
                 }
                 canvascset.push(\"context.drawImage(imageo[\" + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length) + \"], \" + left + \",\" + top + \");\");
                 context.drawImage(imageo[eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length)], left, top);
                 }
                 }
    //document.title+='context.drawImage(z[' + (-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length) + '],' + top + ',' + left + ')';
 myimagec=myimagec.replace('-' + icol + '-' + irow + ext + ':','_' + icol + '_' + irow + ext + ':');
                 left+=thisw;
                 thisws.push(thisw);
                                  if (myimagec.indexOf('-' + irow + ext + ':') == -1) {
               icol=-1;
               irow++;
               top+=thish;
               left=0;
                 }

               } else {
                 left+=thisws[icol];
               }
               icol++;
              } else {
               icol=0;
               irow++;
               top+=thish;
               left=0;
              } 
            }
            if (elem) {
            dur=elem.toDataURL();
            document.getElementById('mapi').src=dur;
            document.getElementById('dhuh').innerHTML=dur;
            //dodur();
            }
            //alert('dur=' + dur);
            //document.body.style.backgroundImage=\"url('\" + dur + \"')\";
            if (document.URL.indexOf('divmarginuse=') != -1) {
            document.getElementById('topdiv').style.display='INLINE-BLOCK';
            dodur();
            }
            }
            }
            function prelook() {
            if (!elem) {
            if (document.getElementById('mycanvas')) {
            elem=document.getElementById('mycanvas');
            context=elem.getContext('2d');
            }
            }
            //if (imagec != ',') { lookati(); }             
            }
            function looknow() {
            if (dur == '') {
            results=document.getElementById('results').innerHTML;
            if (results == '' || (results.indexOf('.') == -1 && results.indexOf(' ') == -1)) {
              setTimeout(looknow,5000);
            } else if ((results + ',').substring(0,1) == ' ') {
              alert('No files found in ' + document.getElementById('filespec').value + ' ...  Please try again');
              document.getElementById('filespec').value='';
            } else {
              document.getElementById('tresults').innerHTML=resultsel(results);
              document.getElementById('tresults').style.display='block';
            }
            } " . $jscr . "
            }
</scr" . "ipt>
</head>
<body id=canvasb onload='prelook();  looknow(); " . $bimg . "'>
<div id=topdiv style='position:absolute;top:0px;left:0px;display:" . $none . ";'>" . str_replace(" id=", " data-id=",$thirdbit) . "</div>
<div id=results style=display:none;>" . $results . "</div>
<h1>GIMP Guillotine Follow Up</h1>
<h3>RJM Programming - August, 2018</h3><br><br>
<h4>Input Images</h4>
<form target='_top' method=POST action=./gimp_guillotine_followup.php>
GIMP Guillotine Image Filespec (of images): <input title='Optionally append by # then email address (appended by + for big image representations) for email pieced together image' placeholder='Optionally append by # then email address (appended by + for big image representations) for email pieced together image' style='width:40%;' type='text' value='" . $fspec . "' name='filespec' id='filespec'></input><br><br>
<input name=include id=include value='' type=hidden></input><input style='background-color:lightgreen;' type=submit value=Process... id=isubmit></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Top Div Margin Use' name=divmarginuse></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image Repeat' name=canvas></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image No Repeat' name=canvasnorepeat></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image Progressive Animation Repeat' name=canvaspa></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image Progressive Animation No Repeat' name=canvasnorepeatpa></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image Animation Repeat' name=canvasa></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image Animation No Repeat' name=canvasnorepeata></input>" . $bffmpeg . $bconvert . $binhouseslideshow . $btransitionhtml . $bmultibackground . $bmultiborder . "
</form><input type=hidden id=lefttop value=''></input>
<hr><br><br>
<h4>HTML Use of Input " . $below . " List Below</h4>" . $secondbit . $ifm . "<iframe id='postit' name='postit' style='display:none;' src='./gimp_guillotine_followup.php?donothing=y'></iframe><hr><details id=canvasd><summary id=canvass>Canvas (and animations) view <a href=#canvasb title=Top>...</a></summary><canvas onclick=dodur(); id=mycanvas width=" . $cwidth . " height=" . $cheight . " style=display:INLINE-BLOCK;></canvas></details>" . rettb($thirdbit) . "<div id=dhuh style=display:none;'></div>" . $tablebit . $mapbit . $bitffmpeg . $bitconvert . $bitinhouseslideshow . $bittransition . $bitmultibackground . $bitmultiborder . "</body></html>";
    if ($allhtml) {
            $eol = PHP_EOL;
            $headers = 'From: ' . 'rmetcalfe@rjmprogramming.com.au' . $eol;
            $headers .= 'Reply-To: ' . 'rmetcalfe@rjmprogramming.com.au' . $eol;

            $filname="gimp_guillotine.html";
                $content = chunk_split(base64_encode(perhapsmodify($hecho)));
                //$uid = md5(uniqid(time()));

                // a random hash will be necessary to send mixed content
                $separator = md5(time());

                $headers .= "MIME-Version: 1.0" . $eol;
                $headers .= "Content-Type: multipart/mixed; boundary=\"" . $separator . "\"" . $eol . $eol;
                $headers .= "Content-Transfer-Encoding: 7bit" . $eol;
                $headers .= "This is a MIME encoded message." . $eol . $eol;

                // message
                $headers .= "--" . $separator . $eol;
                $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"" . $eol;
                $headers .= "Content-Transfer-Encoding: 8bit" . $eol . $eol;

                $headers .= "Please see attachment below:" . $eol . $eol;

            //ourpremail($tem, $mysubject, "", $headers . "--" . $separator . "--");

                // attachment
                $headers .= "--" . $separator . $eol;
                $headers .= "Content-Type: application/octet-stream; name=\"" . $filname . "\"" . $eol;
                $headers .= "Content-Transfer-Encoding: base64" . $eol;
                $headers .= "Content-Disposition: attachment;filename=\"" . $filname . "\"" . $eol;
                $headers .= $content . $eol . $eol;

                $headers .= "--" . $separator . "--";

            //mail($to, $subject, "", $headers);
    }
    echo $hecho;
    if ($to != '' && $headers != '') {
     mail($to, $subject, "", $headers);
    }
        exit;
  } else if (isset($_GET['gimp'])) {
      exec($gimp_place);
      exit;
  } else {
      $temp_file_list = tempnam(sys_get_temp_dir(), 'myfile.list');
      exec("echo '' > " . $temp_file_list);
      $temp_file = tempnam(sys_get_temp_dir(), 'myfile.name');
      exec("echo '' > " . $temp_file);
      //echo $temp_file;
      if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
      $commis="forfiles /P C:\\ /M *-0-0.*g* /S /D -0 2> nul > " . $temp_file_list;
      } else {
      $commis="find / -name '*-0-0.*g*' -type f -newer " . $temp_file . " -print 2> /dev/null > " . $temp_file_list;
      }

      $hecho="<!doctype html>
<html>
<head>
<title>GIMP Guillotine Follow Up - RJM Programming - August, 2018</title>
<style>
  margin { 0 0 0 0 }
  padding { 0 0 0 0 }
</style>
<scr" . "ipt type='text/javascript'>
            var includesare='" . $includesare . "'; 
            var clearalot=false;
            var canvascset=[];
            var icanvascset=0;
            var dur='';
            var lookatidone=false;
            var elem=null;
            var context=null;
            var ext='" . $ext . "';
            var results='';
            var imageo=new Array();
            var imagec='," . $imagec . $imagex . "';
    var xparlist=['" . str_replace(",", "','", $jflist) . "'];
    var ixparlist=0; 
    var xob=null,xbvsb=''; 
    function zworkit() {
    xworkit(xob,xbvsb);
    }
    function xworkit(ob,bvsb) {
      var bretval='', cretval='', dretval='', bcomma='', bchoice=Math.floor(Math.random() * 200), bslice=Math.floor(Math.random() * 100);
      var mr=Math.floor(Math.random() * xparlist.length);
      for (ixparlist=0; ixparlist<xparlist.length; ixparlist++) {
      if (bvsb == 'border') {
      if (ixparlist == mr) {
      ob.style.borderImageWidth='' + bchoice + 'px';
      ob.style.borderImageSlice='' + bslice + 'px';
      ob.style.borderRepeat='repeat';
      bretval+=bcomma + \" url('\" + document.getElementById(xparlist[ixparlist]).src + \"')\";
      if (xob != null) {
      ob.style.borderImageSource=\" url('\" + document.getElementById(xparlist[ixparlist]).src + \"')\"; 
      }
      xob=ob;
      xbvsb=bvsb; 
      setTimeout(zworkit, 4000);
      }
      } else {
      cretval+=bcomma + ' no-repeat'; 
      dretval+=bcomma + ' ' + eval(-20 + eval('' + document.getElementById('lefttop').value.split(',')[eval(ixparlist * 2)])) + 'px ' + eval(-20 + eval('' + document.getElementById('lefttop').value.split(',')[eval(ixparlist * 2 + 1)])) + 'px'; 
      bretval+=bcomma + \" url('\" + document.getElementById(xparlist[ixparlist]).src + \"')\"; 
      bcomma=',';
      }
      }
      if (cretval != '') {
      ob.style.backgroundRepeat=cretval;
      ob.style.backgroundPosition=dretval;
      }
      return bretval;
    } 
  function precanvasanimation(dobr) {
            icanvascset=0;
            if (dobr) document.body.style.backgroundRepeat='repeat';
            if (!dobr) document.body.style.backgroundRepeat='no-repeat';
  }
  function canvasanimation() {
    if (canvascset.length > 0 && icanvascset >= 0) {
      if (icanvascset <= 0) {
        icanvascset=0;
        context.clearRect(0, 0, elem.width, elem.height);
        eval(canvascset[0]);
        document.body.style.backgroundImage=\"url('\" + elem.toDataURL() + \"')\";
        icanvascset++;
        if (clearalot) {
        setTimeout(canvasanimation, 600);
        } else {
        setTimeout(canvasanimation, 3000);
        }
      } else if (icanvascset > canvascset.length) {
        icanvascset=0;
        if (clearalot) {
        setTimeout(canvasanimation, 1200);
        } else {
        setTimeout(canvasanimation, 6000);
        }
      } else {
        if (clearalot) context.clearRect(0, 0, elem.width, elem.height);
        eval(canvascset[icanvascset]);
        document.body.style.backgroundImage=\"url('\" + elem.toDataURL() + \"')\";
        icanvascset++;
        if (clearalot) {
        setTimeout(canvasanimation, 600);
        } else {
        setTimeout(canvasanimation, 3000);
        }
      }
    } else if (canvascset.length > 0) {
      icanvascset=0;
    }
  }
  function butwhatif(icolid) {
    if (document.URL.toLowerCase().indexOf('http') == -1) {
      document.getElementById('icolthree').src=document.getElementById(icolid).src;
      document.getElementById('icolthree').style.display='block';
    }
  }
  function bimg(dobr) {
            icanvascset=-1;
            if (dobr) document.body.style.backgroundRepeat='repeat';
            if (!dobr) document.body.style.backgroundRepeat='no-repeat';
            document.body.style.backgroundImage=\"url('\" + dur + \"')\";
  }
  function showthese() {
    var osel=document.getElementById('tresults');
    var cinc='', cincd='';
    for (var i=0; i<osel.length; i++) {
      if (osel.options[i].selected) {
        cinc+=cincd + osel.options[i].value;
        cincd=',';
      }
    }
    document.getElementById('include').value=cinc;
  }
  function resultsel(rs) {
    var outc='';
    var recs=rs.split(String.fromCharCode(10));
    for (var irecs=0; irecs<recs.length; irecs++) {
      outc+='<option value=\"' + recs[irecs] + '\">' + recs[irecs] + '</option>';
    }
    document.getElementById('tresults').size='' + recs.length;
    return outc;
  }
  function doopen(wois) {
    if (wois.id == 'multibackgrounda') {
      document.getElementById(wois.id.substring(0,eval(wois.id.length - 1)) + 'w').style.backgroundImage=xworkit(document.getElementById(wois.id.substring(0,eval(wois.id.length - 1)) + 'w'),'background');
    } else if (wois.id == 'multibordera') {
      document.getElementById(wois.id.substring(0,eval(wois.id.length - 1)) + 'w').style.borderImageSource=xworkit(document.getElementById(wois.id.substring(0,eval(wois.id.length - 1)) + 'w'),'border');
    }
    location.href='#' + wois.id.substring(0,eval(wois.id.length - 1)) + 'd';
    document.getElementById(wois.id.substring(0,eval(-1 + wois.id.length)) + 'd').open=true;
  }
  function ourdocumentgetElementById(huh) {
    var isa=document.getElementsByTagName('img');
    for (var jsa=0; jsa<isa.length; jsa++) {
      if (isa[jsa].alt == huh) return isa[jsa];
    }
    return document.getElementById(huh);
  }
            function dodur() {
            var iob=new Image();
            if (dur == '') {
            dur=document.getElementById('dhuh').innerHTML;
            }
            if (dur == '') {
            if (parent.document.getElementById('dhuh')) {
            dur=parent.document.getElementById('dhuh').innerHTML;
            }
            }
            //alert('dUr=' + dur);
            iob.onload = function () {
            //alert(11);
            elem=document.getElementById('mycanvas');
            //alert(111);
            context=elem.getContext('2d');
            //alert(1111);
            context.drawImage(this,0,0);
            //alert(21111);
            if (document.getElementById('mapi')) {
            if (document.getElementById('mapi').src == '') {
            document.getElementById('mapi').src=elem.toDataURL();
            }
            }
            };
            iob.src=dur;
            }
            function intonew() {
            var wo=window.open('','_blank','top=0,left=0,height=" . $cheight . ",width=" . $cwidth . "');
            wo.document.write('<style> margin { 0 0 0 0 } padding { 0 0 0 0 } </style>' + document.getElementById('topdiv').innerHTML.replace(/\-top\:\ /g,'-top:').replace(/\-top\:\-/g,'-top:0.00'));
            }
            function lookati() {
            if (!lookatidone) {
            lookatidone=true;
//document.title='54';
            // ios();
//document.title='154';
            //alert('-0-0' + ext + ': in ' + imagec);
            elem.style.display='block';
            var myimagec=imagec;
            imagec=',';
            var pfix=myimagec.split('-0-0' + ext + ':')[0].split(',')[eval(-1 + myimagec.split('-0-0' + ext + ':')[0].split(',').length)];
            // alert(pfix);
            // var iis=myimagec.split(',');
            var icol=0, irow=0, top=0, left=0, cumtop=0, cumleft=0, fwidth=0, fheight=0, thisw=0, thish=0, thisws=[];
            while (myimagec.indexOf('-' + irow + ext + ':') != -1) {
              if (myimagec.indexOf('-' + irow + ext + ':') != -1) {
               if (myimagec.indexOf('-' + icol + '-' + irow + ext + ':') != -1) {
                 thisw=eval(myimagec.split('-' + icol + '-' + irow + ext + ':')[1].split(':')[0]);
                 thish=eval(myimagec.split('-' + icol + '-' + irow + ext + ':')[1].split(':')[1].split(',')[0]);
                 //document.title+='-' + 'img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length);
                 //alert(eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length));
                 if (ourdocumentgetElementById('img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length))) {
                 //ourdocumentgetElementById('img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length)).style.position='absolute';
                 //ourdocumentgetElementById('img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length)).style.top='' + top + 'px';
                 //ourdocumentgetElementById('img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length)).style.left='' + left + 'px';
                 try {
                 if (includesare.indexOf('-' + icol + '-' + irow + ext) != -1 || includesare == '') {
                 if (canvascset.length == 0) {
                 document.getElementById('lefttop').value+='' + eval(20 + left) + ',' + eval(20 + top);
                 } else {
                 document.getElementById('lefttop').value+=',' + eval(20 + left) + ',' + eval(20 + top);
                 }
                 canvascset.push(\"context.drawImage(ourdocumentgetElementById('img\" + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length) + \"'), \" + left + \",\" + top + \");\");
                 context.drawImage(ourdocumentgetElementById('img' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length)), left, top);
                 }
                 } catch(ee) {
                 alert(ee.message);
                 }
                 //alert('--' + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length));
				 } else {
                 if (includesare.indexOf('-' + icol + '-' + irow + ext) != -1 || includesare == '') {
                 if (canvascset.length == 0) {
                 document.getElementById('lefttop').value+='' + eval(20 + left) + ',' + eval(20 + top);
                 } else {
                 document.getElementById('lefttop').value+=',' + eval(20 + left) + ',' + eval(20 + top);
                 }
                 canvascset.push(\"context.drawImage(imageo[\" + eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length) + \"], \" + left + \",\" + top + \");\");
                 context.drawImage(imageo[eval(-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length)], left, top);
                 }
                 }
    //document.title+='context.drawImage(x[' + (-1 + myimagec.split(',' + pfix + '-' + icol + '-' + irow + ext)[0].split(',').length) + '],' + top + ',' + left + ')';
 myimagec=myimagec.replace('-' + icol + '-' + irow + ext + ':','_' + icol + '_' + irow + ext + ':');
     //alert(document.title);
                 left+=thisw;
                 thisws.push(thisw);
                 if (myimagec.indexOf('-' + irow + ext + ':') == -1) {
               icol=-1;
               irow++;
               top+=thish;
               left=0;
                 }
               } else {
                 left+=thisws[icol];
               }
               icol++;
              } else {
               icol=0;
               irow++;
               top+=thish;
               left=0;
              } 
            }
            if (elem) {
            dur=elem.toDataURL();
            document.getElementById('mapi').src=dur;
            document.getElementById('dhuh').innerHTML=dur;
            //dodur();
            }
            //alert('Dur=' + dur);
            //document.body.style.backgroundImage=\"url('\" + dur + \"')\";
            if (document.URL.indexOf('divmarginuse=') != -1) {
            document.getElementById('topdiv').style.display='INLINE-BLOCK';
            dodur();
            }
            }
            }
            function prelook() {
            if (!elem) {
            if (document.getElementById('mycanvas')) {
            elem=document.getElementById('mycanvas');
            context=elem.getContext('2d');
            //alert('/' + imagec);
            }
            }
            //if (imagec != ',') { lookati(); } 
            }
            function looknow() {
            if (dur == '') {
            results=document.getElementById('results').innerHTML;
            if (results == '' || (results.indexOf('.') == -1 && results.indexOf(' ') == -1)) {
              setTimeout(looknow,5000);
            } else if ((results + ',').substring(0,1) == ' ') {
              alert('No files found in ' + document.getElementById('filespec').value + ' ...  Please try again');
              document.getElementById('filespec').value='';
            } else {
              document.getElementById('tresults').innerHTML=resultsel(results);
              document.getElementById('tresults').style.display='block';
            }
            } " . $jscr . "
            }
</scr" . "ipt>
</head>
<body id=canvasb onload='prelook(); looknow(); " . $bimg . "'>
<div id=topdiv style='position:absolute;top:0px;left:0px;display:" . $none . ";'>" . str_replace(" id=", " data-id=",$thirdbit) . "</div>
<div id=results style=display:none;>" . $results . "</div>
<h1>GIMP Guillotine Follow Up</h1>
<h3>RJM Programming - August, 2018</h3><br><br>
<h4>Input Images</h4>
<form target='_top' method=POST action=./gimp_guillotine_followup.php>
GIMP Guillotine Image Filespec (of images): <input title='Optionally append by # then email address (appended by + for big image representations) for email pieced together image' placeholder='Optionally append by # then email address (appended by + for big image representations) for email pieced together image' style='width:40%;' type='text' value='" . $fspec . "' name='filespec' id='filespec'></input> ... Versus ... <input style='background-color:yellow;' type=button value='GIMP ... Image - Transform - Guillotine' onclick=\" document.getElementById('donothing').src='./gimp_guillotine_followup.php?gimp=y';  \"></input><br><br>
<input name=include id=include value='' type=hidden></input><input style='background-color:lightgreen;' type=submit value=Process... id=isubmit></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Top Div Margin Use' name=divmarginuse></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image Repeat' name=canvas></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image No Repeat' name=canvasnorepeat></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image Progressive Animation Repeat' name=canvaspa></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image Progressive Animation No Repeat' name=canvasnorepeatpa></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image Animation Repeat' name=canvasa></input>&nbsp;<input style='background-color:lightgreen;' type=submit value='Process with Canvas Background Image Animation No Repeat' name=canvasnorepeata></input>" . $bffmpeg . $bconvert . $binhouseslideshow . $btransitionhtml . $bmultibackground . $bmultiborder . "
</form><input type=hidden id=lefttop value=''></input>
<hr><br><br>
<h4>HTML Use of Input " . $below . " List Below</h4>" . $secondbit . $ifm . "<iframe id='donothing' style='display:none;' src='./gimp_guillotine_followup.php?donothing=y'></iframe><iframe id='postit' name='postit' style='display:none;' src='./gimp_guillotine_followup.php?donothing=y'></iframe><hr><details id=canvasd><summary id=canvass>Canvas (and animations) view <a href=#canvasb title=Top>...</a></summary><canvas onclick=dodur(); id=mycanvas width=" . $cwidth . " height=" . $cheight . " style=display:INLINE-BLOCK;></canvas></details>" . rettb($thirdbit) . "<div id=dhuh style=display:none;'></div>" . $tablebit . $mapbit . $bitffmpeg . $bitconvert . $bitinhouseslideshow . $bittransition . $bitmultibackground . $bitmultiborder . " </body></html>";
    if ($allhtml) {
            $eol = PHP_EOL;
            $headers = 'From: ' . 'rmetcalfe@rjmprogramming.com.au' . $eol;
            $headers .= 'Reply-To: ' . 'rmetcalfe@rjmprogramming.com.au' . $eol;

            $filname="gimp_guillotine.html";
                $content = chunk_split(base64_encode(perhapsmodify($hecho)));
                //$uid = md5(uniqid(time()));

                // a random hash will be necessary to send mixed content
                $separator = md5(time());

                $headers .= "MIME-Version: 1.0" . $eol;
                $headers .= "Content-Type: multipart/mixed; boundary=\"" . $separator . "\"" . $eol . $eol;
                $headers .= "Content-Transfer-Encoding: 7bit" . $eol;
                $headers .= "This is a MIME encoded message." . $eol . $eol;

                // message
                $headers .= "--" . $separator . $eol;
                $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"" . $eol;
                $headers .= "Content-Transfer-Encoding: 8bit" . $eol . $eol;

                $headers .= "Please see attachment below:" . $eol . $eol;

            //ourpremail($tem, $mysubject, "", $headers . "--" . $separator . "--");

                // attachment
                $headers .= "--" . $separator . $eol;
                $headers .= "Content-Type: application/octet-stream; name=\"" . $filname . "\"" . $eol;
                $headers .= "Content-Transfer-Encoding: base64" . $eol;
                $headers .= "Content-Disposition: attachment;filename=\"" . $filname . "\"" . $eol;
                $headers .= $content . $eol . $eol;

                $headers .= "--" . $separator . "--";

            //mail($to, $subject, "", $headers);
    }
    echo $hecho;
  }
    if ($to != '' && $headers != '') {
     mail($to, $subject, "", $headers);
    }
        exit;
  } else {
    exit;
  }
?>