<?php
// tutorial_to_animated_gif.php
// RJM Programming
// September, 2015
// Thanks to http://www.jeroenvanwissen.nl/weblog/php/howto-generate-animated-gif-with-php

$omoin=' onmouseover=bithis(this); onmouseout=unbithis(this); ';
$thetemp="/tm" . "p/";
$videopath="";
$immogpath="";
$fiext="";
$theztemp=$thetemp;
$impreexe="convert";
if (!is_dir($thetemp) || strpos($thetemp, substr(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,0,1)) === false) {
$impreexe="magick";
$thetemp=str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, sys_get_temp_dir() . DIRECTORY_SEPARATOR);
$thetemp=str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, str_replace("C:","",$_SERVER['DOCUMENT_ROOT']) . DIRECTORY_SEPARATOR);
//$thetemp=str_replace(substr('\\',0,1),substr('\\',0,1) . substr('\\',0,1),str_replace(substr('/',0,1),substr('\\',0,1),$thetemp));
$theztemp='C:' . str_replace('/', substr('\\',0,1), $thetemp);
$thetemp=str_replace(substr('\\',0,1),substr('\\',0,1) . substr('\\',0,1), substr($theztemp,2));
$fiext=".exe";
$videopath="C:\\PROGRA~1\\IMAGEM~1.0-Q\\";
$immogpath="C:\\PROGRA~1\\IMAGEM~1.0-Q\\";
}
$eeee="y";
$lportbit=":8888";
$prepc="";

function thet($inb) {
  if (substr($inb,0,1) == substr("\\",0,1)) { return "C:" . "$inb"; }
  return "$inb"; //str_replace("\\\\",substr('\\',0,1),$inb);
}

$user_agent = $_SERVER["HTTP_USER_AGENT"];
function getOS() { // thanks to https://www.daniweb.com/programming/web-development/threads/495588/getting-users-os-info-out-of-server-http-user-agent
    global $user_agent, $lportbit;
    $os_platform    =   "win Unknown OS Platform";
    $os_array       =   array(
                            '/windows nt 10/i'     =>  'Windows 10',
                            '/windows nt 6.3/i'     =>  'Windows 8.1',
                            '/windows nt 6.2/i'     =>  'Windows 8',
                            '/windows nt 6.1/i'     =>  'Windows 7',
                            '/windows nt 6.0/i'     =>  'Windows Vista',
                            '/windows nt 5.2/i'     =>  'Windows Server 2003/XP x64',
                            '/windows nt 5.1/i'     =>  'Windows XP',
                            '/windows xp/i'         =>  'Windows XP',
                            '/windows nt 5.0/i'     =>  'Windows 2000',
                            '/windows me/i'         =>  'Windows ME',
                            '/win98/i'              =>  'Windows 98',
                            '/win95/i'              =>  'Windows 95',
                            '/win16/i'              =>  'Windows 3.11',
                            '/macintosh|mac os x/i' =>  'Mac OS X',
                            '/mac_powerpc/i'        =>  'Mac OS 9',
                            '/linux/i'              =>  'Linux',
                            '/ubuntu/i'             =>  'Ubuntu',
                            '/iphone/i'             =>  'iPhone',
                            '/ipod/i'               =>  'iPod',
                            '/ipad/i'               =>  'iPad',
                            '/android/i'            =>  'Android',
                            '/blackberry/i'         =>  'BlackBerry',
                            '/webos/i'              =>  'Mobile'
                        );

    foreach ($os_array as $regex => $value) { 

        if (preg_match($regex, $user_agent)) {
            $os_platform    =   $value;
        }

    }   

    return $os_platform;
}

    
function yourexec($incid) {
  global $thetemp, $immogpath, $videopath, $videomidbit;
  //if (!file_exists('xy.xy')) { file_put_contents('xy.xy',''); } 
  if (strpos($thetemp, '/') === false) {
  $incid=str_replace(" mv "," copy /Y ",str_replace("/usr/local/bin/", $immogpath, $incid));
  if (substr(strtoupper(getOS()),0,3) === 'WIN' && (isset($_POST['video']) || isset($_GET['video']))) { 
    $incid=str_replace(ggserver_remote_addr() . 'video.mov','ggvideo.mov', $incid);
  }
  if (strpos($incid, $videomidbit) !== false) {
  $incidone=explode(' ' . $videomidbit, $incid)[0];
  $incidtwo=str_replace(' -i ', ' -i "C:', $incidone);
  $incid=str_replace($incidone,$incidtwo,str_replace(' ' . $videomidbit, '" ' . $videomidbit, $incid));
  }
  $thets=explode("; ", $incid);
  for ($ijh=0; $ijh<sizeof($thets); $ijh++) {
  if (strpos($thets[$ijh], "%%") !== false) {
  //file_put_contents('xy.xy', file_get_contents('xy.xy') . "\n" . str_replace(substr('\\',0,1) . substr('\\',0,1), substr('\\',0,1),$thets[$ijh]));
  exec(str_replace('C:C:','C:',str_replace(substr('\\',0,1) . substr('\\',0,1), substr('\\',0,1),$thets[$ijh])));
  } else {
  //file_put_contents('xy.xy', file_get_contents('xy.xy') . "\n" . str_replace("%jUnKrUbBiSh","%%",str_replace(substr('\\',0,1) . substr('\\',0,1), substr('\\',0,1),$thets[$ijh])));
  exec(str_replace('C:C:','C:',str_replace("%jUnKrUbBiSh","%%",str_replace(substr('\\',0,1) . substr('\\',0,1), substr('\\',0,1),$thets[$ijh]))));
  }
  }
  } else {
  exec($incid);
  }
}

if (substr(strtoupper(getOS()),0,3) === 'WIN') { $eeee="y"; $lportbit=""; $prepc=""; }

if (isset($_POST['justuntmpthis']) && !isset($_POST['justtmpthis'])) { 
  $fsuff=1;
  $ffsuff=1;
  while ($ffsuff == $fsuff) {
  $ffsuff++;
  foreach (glob($thetemp . '' . ggserver_remote_addr() . 'tmp' . substr('000' . $fsuff,-3,3) . '.*') as $ggfilename) {
       unlink($ggfilename);  
       $fsuff=$ffsuff;  
  }
  }
  if (file_exists(thet($thetemp) . '' . ggserver_remote_addr() . 'pdftmp.pdf')) { unlink($thetemp . '' . ggserver_remote_addr() . 'pdftmp.pdf');   }
  if (file_exists(thet($thetemp) . '' . ggserver_remote_addr() . 'video.webm')) { unlink($thetemp . '' . ggserver_remote_addr() . 'video.webm');   }
  if (file_exists(thet($thetemp) . '' . ggserver_remote_addr() . 'video.mov')) { unlink($thetemp . '' . ggserver_remote_addr() . 'video.mov');   }
  if (file_exists($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'PHP' . DIRECTORY_SEPARATOR . 'animegif'  . DIRECTORY_SEPARATOR . server_remote_addr() . '.gif')) {  unlink($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'PHP' . DIRECTORY_SEPARATOR . 'animegif'  . DIRECTORY_SEPARATOR . server_remote_addr() . '.gif');     }
  exit;
}

if (isset($_POST['justtmpthis'])) { 
if (isset($_POST['justuntmpthis'])) { 
  $fsuff=1;
  $ffsuff=1;
  while ($ffsuff == $fsuff) {
  //file_put_contents('xv9.xv9', '' . $fsuff);
  $ffsuff++;
  foreach (glob($thetemp . '' . ggserver_remote_addr() . 'tmp' . substr('000' . $fsuff,-3,3) . '.*') as $ggfilename) {
       unlink($ggfilename);  
       $fsuff=$ffsuff;  
  }
  //file_put_contents('xv8.xv8', '' . $fsuff);
  }
  if (file_exists(thet($thetemp) . '' . ggserver_remote_addr() . 'pdftmp.pdf')) { unlink($thetemp . '' . ggserver_remote_addr() . 'pdftmp.pdf');   }
  if (file_exists(thet($thetemp) . '' . ggserver_remote_addr() . 'video.webm')) { unlink($thetemp . '' . ggserver_remote_addr() . 'video.webm');   }
  if (file_exists(thet($thetemp) . '' . ggserver_remote_addr() . 'video.mov')) { unlink($thetemp . '' . ggserver_remote_addr() . 'video.mov');   }
  if (file_exists($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'PHP' . DIRECTORY_SEPARATOR . 'animegif'  . DIRECTORY_SEPARATOR . server_remote_addr() . '.gif')) {  unlink($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'PHP' . DIRECTORY_SEPARATOR . 'animegif'  . DIRECTORY_SEPARATOR . server_remote_addr() . '.gif');     }
}
  $fsuff=1;
  $ffsuff=1;
  while ($ffsuff == $fsuff) {
  $ffsuff++;
  //file_put_contents('xv0.xv0', '' . $fsuff);
  foreach (glob($thetemp . '' . ggserver_remote_addr() . 'tmp' . substr('000' . $fsuff,-3,3) . '.*') as $ggfilename) {
       $fsuff=$ffsuff;  
  }
  //file_put_contents('xv1.xv1', '' . $fsuff);
  }
  $datain=str_replace(' ','+',urldecode($_POST['justtmpthis']));
  //file_put_contents('xv.xv', $datain);
  if (strpos($datain, 'data:') !== false) {
    file_put_contents($thetemp . '' . ggserver_remote_addr() . 'tmp' . substr('000' . $fsuff,-3,3) . '.' . str_replace('jpeg','jpg',explode(';',explode('/',  $datain )[1])[0]), base64_decode(explode(';base64,',  $datain )[1] ));
  } else if (strpos(strtolower($datain), 'http') !== false) {
    file_put_contents($thetemp . '' . ggserver_remote_addr() . 'tmp' . substr('000' . $fsuff,-3,3) . '.' . str_replace('jpeg','jpg',explode('#',explode('?',explode('.', $datain)[-1 + sizeof(explode('.', $datain))])[0])[0]), file_get_contents($datain));
  } else if (trim($datain) != '') {
    copy($datain, $thetemp . '' . ggserver_remote_addr() . 'tmp' . substr('000' . $fsuff,-3,3) . '.' . str_replace('jpeg','jpg',explode('#',explode('?',explode('.', $datain)[-1 + sizeof(explode('.', $datain))])[0])[0]));
  }
  exit; 
}

if (isset($_POST['justpdftmpthis'])) {
if (strpos($thetemp, '/') !== false) {
$immogpath='/usr/local/Cellar/imagemagick/7.1.0-10_1/bin/';
if (file_exists('/home/virtfs/rjmprogr/usr/local/cpanel/3rdparty/bin/mogrify')) {
  $immogpath='/home/virtfs/rjmprogr/usr/local/cpanel/3rdparty/bin/';
} else if (file_exists('/usr/local/Cellar/imagemagick/7.1.0-10_1/bin/mogrify')) {
  $immogpath='/usr/local/Cellar/imagemagick/7.1.0-10_1/bin/';
} else if ('/usr/local/bin/mogrify') {
  $immogpath='/usr/local/bin/';
}
}

  if (file_exists(thet($thetemp) . 'ggpdftmp.pdf')) { unlink($thetemp . 'ggpdftmp.pdf');  }
  if (file_exists(thet($thetemp) . '' . ggserver_remote_addr() . 'pdftmp.pdf')) { unlink($thetemp . '' . ggserver_remote_addr() . 'pdftmp.pdf');  }
  //file_put_contents('aq.aq', $immogpath . 'convert ' . $thetemp . ggserver_remote_addr() . 'tmp*.*g* ' . $thetemp . ggserver_remote_addr() . 'pdftmp.pdf');
  yourexec($immogpath . $impreexe . $fiext . ' ' . $thetemp . ggserver_remote_addr() . 'tmp*.*g* ' . $thetemp . 'ggpdftmp.pdf 2>> ' . $thetemp . 'ggerr.err ;  mv ' . $thetemp . 'ggpdftmp.pdf ' . $thetemp . ggserver_remote_addr() . 'pdftmp.pdf');
  if (!isset($_POST['justvideotmpthis'])) { exit; }
}

if (isset($_POST['justvideotmpthis'])) {
$videofr=" -r " . (1000 / $delay) . " ";
$videofr=" -r " . (1000 / $delay) . " -filter:v setpts=" . ($delay / 1000) . "*PTS ";
$videomime="video/mp4";
$videoext=".mp4";

  
  $videoie="jpg";
  foreach (glob($thetemp . '' . ggserver_remote_addr() . 'tmp*.*g*') as $jimvfilename) {
    $videoie='' . explode('.', $jimvfilename)[-1 + sizeof(explode('.', $jimvfilename))];  
  }
  $xvideopref=$thetemp . '' . ggserver_remote_addr() . 'tmp';
  $xivideopref=$thetemp . '' . ggserver_remote_addr() . 'tmp';
  $xjvideopref=$thetemp . '' . ggserver_remote_addr() . 'tmp';


$videofr=" -framerate 0.1 ";
$videoext=".webm";
$videomime="video/webm";
$videomidbit="-c:v libvpx-vp9 -pix_fmt yuva420p -lossless 1 -c:a copy";
if (strpos($thetemp, '/') !== false) {
$videopath="/usr/local/bin/";
if (file_exists('/usr/local/bin/ffmpeg')) {
  $videopath="/usr/local/bin/";
} 
}

  $videocmd=$videopath . "ffmpeg" . $fiext . " " . $videofr . " -i " . $xivideopref . $prepc . "%03d." . $videoie . " " . $videomidbit . " " . $thetemp . "" . ggserver_remote_addr() . "video" . $videoext . " 2>> " . $thetemp . "ggerr.err ";
  $videocmd.="; " . $videopath . "ffmpeg" . $fiext . " -i " . " " . $thetemp . "" . ggserver_remote_addr() . "video" . $videoext . " " . $thetemp . "" . ggserver_remote_addr() . "video.mov";

  if (file_exists(thet($thetemp) . '' . ggserver_remote_addr() . 'video.webm')) { unlink($thetemp . '' . ggserver_remote_addr() . 'video.webm');  }
  if (file_exists(thet($thetemp) . '' . ggserver_remote_addr() . 'video.mov')) { unlink($thetemp . '' . ggserver_remote_addr() . 'video.mov');  }
  //file_put_contents('xxy.xxy', $videocmd);
  yourexec($videocmd);
  exit;
}

$cbgg=" align='center'>Tutorial Slideshow to Animated GIF ";
$cbor=" ... or ... ";
if (isset($_GET['calledbygg'])) {  $cbgg=">"; $cbor=""; }
$sssblurb="";
$mampelse="";
if (1 == 3) {
if (!isset($_GET['huhv']) && strpos($_SERVER['SERVER_NAME'], 'localhost') === false) {
  $huhmamp=@file_get_contents("http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php");
  file_put_contents('qz.zq',$huhmamp);
  if (strpos(str_replace('Index of ','</body>',$huhmamp), '</body>') !== false) {
  $mampelse=" else { document.getElementById('imsel').innerHTML+='<option value=video>Convert to Video</option>'; } \n";
  } else {
  $huhmamp=@file_get_contents("http://localhost" . $lportbit . "/");
  if (strpos(str_replace('Index of ','</body>',$huhmamp), '</body>') !== false) {
  $mampelse=" else { document.getElementById('imsel').innerHTML+='<option value=advice>Advice on Convert to Video</option>'; } \n";
  } else {
  $mampelse=" else { document.getElementById('imsel').innerHTML+='<option value=mamp>Local Web Server Advice on Convert to Video</option>'; } \n";
  }
  }
}
}
if (strpos($thetemp, '/') !== false) {
$videopath="";
if (file_exists('/usr/local/bin/ffmpeg')) {
  $videopath="/usr/local/bin/";
} 
}
if (isset($_GET['justcheckamhere'])) { 
  if (file_exists('amhere.htm')) { if (strpos($_SERVER['SERVER_NAME'], 'localhost') !== false) { unlink('amhere.htm'); }  }
  if (file_exists('amhere.jpg')) { if (strpos($_SERVER['SERVER_NAME'], 'localhost') !== false) { unlink('amhere.jpg'); }  }
  echo '<html><title></title><head><scr' . 'ipt type=text/javascript>  function onlis() { if (window.opener) { document.getElementById("anif").src="./tutorial_to_animated_gif.php?amhere=y"; document.title="Found"; window.opener.document.wopt();  if (window.opener.document.getElementById("ctvopt")) { window.opener.document.getElementById("ctvopt").value="video"; window.opener.document.getElementById("ctvopt").innerHTML="Convert tO Video";  } } } </scr' . 'ipt></head><body onload=onlis();><p>Index of </p><iframe id=anif src=></iframe></body></html>'; 
  exit; 
} else if (isset($_GET['amnothere'])) { 
  if (file_exists('amhere.htm')) { if (strpos($_SERVER['SERVER_NAME'], 'localhost') !== false) { unlink('amhere.htm'); }  }
  if (file_exists('amhere.jpg')) { if (strpos($_SERVER['SERVER_NAME'], 'localhost') !== false) { unlink('amhere.jpg'); }  }
  exit;
} else if (isset($_GET['amhere'])) { 
  if (1 == 1) {
 // Create a blank image and add some text
 if ($videopath == "") {
$im = imagecreatetruecolor(120, 10);
} else if (strpos($thetemp, '/') === false) {
 if (file_exists($videopath . 'ffmpeg' . $fiext)) {
$im = imagecreatetruecolor(120, 20);
 } else {
$im = imagecreatetruecolor(120, 10);
 }
 } else {
$im = imagecreatetruecolor(120, 20);
 }
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Output the image
imagejpeg($im, "amhere.jpg");

// Free up memory
imagedestroy($im);
sleep(25);
header('Location: ' . './tutorial_to_animated_gif.php?amnothere=y');
 } else {
  file_put_contents('amhere.htm','<html><head><scr' . 'ipt type=text/javascript>  function onlis() { if (window.parent) {  if (parent.document.getElementById("ctvopt")) { parent.document.getElementById("ctvopt").value="video"; parent.document.getElementById("ctvopt").innerHTML="ConvErt tO Video";  } } } </scr' . 'ipt></head><body onload=onlis();><p>Index of </p><iframe id=anif src=></iframe></body></html>');
  }
  exit; 
} else if (isset($_GET['slideshow'])) {
  $sssblurb="1 == 7 && ";
} else if (isset($_POST['slideshow'])) {
  $sssblurb="1 == 7 && ";
}
if (strpos($thetemp, "/") !== false) {
$videopath="/usr/local/bin/";
if (file_exists('/usr/local/bin/ffmpeg')) {
  $videopath="/usr/local/bin/";
} 
}
$lastdetails="";
if (file_exists(dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . '.gif')) {
  $lastdetails.='<br><details id=detgif><summary id=sumgif style="background-color:lightblue;">Your Last Animated GIF (' . date ("F d Y H:i:s", filemtime(dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . '.gif')) . ' ' . filesize(dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . '.gif') . ' bytes) ... <span title="Limited relevance period" onclick=askes(false,this); style=font-size:10px; id=blgifsms href=sms:&body=' . str_replace('+','%20',urlencode('My Latest Animated GIF via RJM Programming ' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '.gif')) . '>&#128223;</span>&nbsp;&nbsp;<span title="Limited relevance period" onclick=askes(true,this); style=font-size:10px; id=blgifemail href=mailto:?subject=My%20Latest%20Animated%20GIF%20via%20RJM%20Programming&body=' . str_replace('+','%20',urlencode('' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '.gif')) . '>&#128231;</span>&nbsp;&nbsp;<span title="Enduring relevance" onclick=askes(true,this); style=font-size:20px; id=bimggif href=mailto:?subject=My%20Latest%20Animated%20GIF%20via%20RJM%20Programming&body=' . str_replace('+','%20',urlencode('' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '.gif')) . '>&#128231;</span></summary><img id=imggif src="data:image/gif;base64,' . base64_encode(file_get_contents(dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . '.gif')) . '"></img></details>';
}
if (file_exists(dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . '_animegif.pdf')) {
  $lastdetails.='<br><details id=detpdf><summary id=sumpdf style="background-color:lightblue;">Your Last PDF (' . date ("F d Y H:i:s", filemtime(dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . '_animegif.pdf')) . ' ' . filesize(dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . '_animegif.pdf') . ' bytes) ... <span title="Limited relevance period" onclick=askes(false,this); style=font-size:10px; id=blpdfsms href=sms:&body=' . str_replace('+','%20',urlencode('My Latest PDF version of Animated GIF via RJM Programming ' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '_animegif.pdf')) . '>&#128223;</span>&nbsp;&nbsp;<span title="Limited relevance period" onclick=askes(true,this); style=font-size:10px; id=blpdfemail href=mailto:?subject=My%20Latest%20PDF%20version%20of%20Animated%20GIF%20via%20RJM%20Programming&body=' . str_replace('+','%20',urlencode('' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '_animegif.pdf')) . '>&#128231;</span>&nbsp;&nbsp;<span title="Enduring relevance" onclick=askes(true,this); style=font-size:20px; id=bobjpdf href=mailto:?subject=My%20Latest%20PDF%20version%20of%20Animated%20GIF%20via%20RJM%20Programming&body=' . str_replace('+','%20',urlencode('' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '_animegif.pdf')) . '>&#128231;</span></summary><object id=objpdf style="width:100%;height:900px;" type="application/pdf" data="data:application/pdf;base64,' . base64_encode(file_get_contents(dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . '_animegif.pdf')) . '"></object></details>';
}
if (file_exists('jshtml.txt')) {  unlink('jshtml.txt');   }
$ivideopref=dirname(__FILE__) . DIRECTORY_SEPARATOR;
$jvideopref="";
$dvdo="";
$dovideo=false;
$locit="";
$rettret="";
$moreinnow="";
$ssblurb="";
$videopref="";
$videoie="jpg";
$whichdu=0;
$whichdus=[];
$pdfdisplay="none";
$prepre="";
$aftaft="";
$preprebit="";
$aftaftbit="";
$pgpr="pointer";
$applicationb="Application";
$aextis="html";
$sleept=" exec('sleep 85'); ";
$complextext=false;
$justfa="<form method=GET action=./tutorial_to_animated_gif.php style=display:inline-block;><input name=allowaudio value=y type=hidden></input><input type=submit value=Audio></input></form>";
$justfav="<form method=GET action=./tutorial_to_animated_gif.php style=display:inline-block;><input name=allowaudio value=y type=hidden></input><input name=allowvideo value=y type=hidden></input><input title='Both, in addition to Images, always' type=submit value='/'></input></form>";
$justfv="<form method=GET action=./tutorial_to_animated_gif.php style=display:inline-block;><input name=allowvideo value=y type=hidden></input><input type=submit value=Video></input></form>";
$seventypc="70%";
$filteretc="";
$fhc="Image";
if (isset($_GET['filteretc'])) {
  $filteretc=str_replace("+"," ",urldecode($_GET['filteretc']));
  $fhc=str_replace(explode("IMG_",$filteretc)[1] . '"',explode("IMG_",$filteretc)[1] . '" selected',('<select title="Image" onchange="filteretcit(this);" id="sfilteris"><option value="">Image</option><option value=" imagefilter($image, IMG_FILTER_EMBOSS); ">Embossed Image(s)</option><option value=" imagefilter($image, IMG_FILTER_NEGATE); ">Negated Image(s)</option><option value=" imagefilter($image, IMG_FILTER_COLORIZE, 255, 0, 0); ">Red Colourized Image(s)</option><option value=" imagefilter($image, IMG_FILTER_COLORIZE, 0, 255, 0); ">Green Colourized Image(s)</option><option value=" imagefilter($image, IMG_FILTER_COLORIZE, -127.12, -127.98, 127); ">Colourized Image(s)</option><option value=" imagefilter($image, IMG_FILTER_COLORIZE, 0, 0, 255);  ">Blue Colourized Image(s)</option><option value=" imagefilter($image, IMG_FILTER_PIXELATE, 3); ">Pixellated Image(s)</option><option value=" imagefilter($image, IMG_FILTER_SMOOTH, -1924.124); ">Smoothed Image(s)</option><option value=" imagefilter($image, IMG_FILTER_CONTRAST, -90); ">Contrasted Image(s)</option><option value=" imagefilter($image, IMG_FILTER_BRIGHTNESS, 98); ">Brightened Image(s)</option><option value=" imagefilter($image, IMG_FILTER_MEAN_REMOVAL); ">Mean Removal Image(s)</option></select>'));
} else if (isset($_POST['filteretc'])) {
  $filteretc=str_replace("+"," ",urldecode($_POST['filteretc']));
  $fhc=str_replace(explode("IMG_",$filteretc)[1] . '"',explode("IMG_",$filteretc)[1] . '" selected',('<select title="Image" onchange="filteretcit(this);" id="sfilteris"><option value="">Image</option><option value=" imagefilter($image, IMG_FILTER_EMBOSS); ">Embossed Image(s)</option><option value=" imagefilter($image, IMG_FILTER_NEGATE); ">Negated Image(s)</option><option value=" imagefilter($image, IMG_FILTER_COLORIZE, 255, 0, 0); ">Red Colourized Image(s)</option><option value=" imagefilter($image, IMG_FILTER_COLORIZE, 0, 255, 0); ">Green Colourized Image(s)</option><option value=" imagefilter($image, IMG_FILTER_COLORIZE, -127.12, -127.98, 127); ">Colourized Image(s)</option><option value=" imagefilter($image, IMG_FILTER_COLORIZE, 0, 0, 255);  ">Blue Colourized Image(s)</option><option value=" imagefilter($image, IMG_FILTER_PIXELATE, 3); ">Pixellated Image(s)</option><option value=" imagefilter($image, IMG_FILTER_SMOOTH, -1924.124); ">Smoothed Image(s)</option><option value=" imagefilter($image, IMG_FILTER_CONTRAST, -90); ">Contrasted Image(s)</option><option value=" imagefilter($image, IMG_FILTER_BRIGHTNESS, 98); ">Brightened Image(s)</option><option value=" imagefilter($image, IMG_FILTER_MEAN_REMOVAL); ">Mean Removal Image(s)</option></select>'));
}

if (isset($_POST['to']) && isset($_POST['inline']) && isset($_POST['subj'])) {
  $bhuhb=str_replace('+',' ',urldecode($_POST['inline']));
  $huhb=basename($bhuhb);
  if (!file_exists($bhuhb) && file_exists(str_replace(".mov",".webm",$bhuhb))) {
    $huhb=str_replace(".mov",".webm",$huhb);
    $bhuhb=str_replace(".mov",".webm",$bhuhb);
  }
  exec("cat " . $bhuhb . " | uuencode '" . $huhb . "' | mail -s '" . str_replace('+',' ',urldecode($_POST['subj'])) . "' " . str_replace('+',' ',urldecode($_POST['to'])));
  exit;
}

if ((strpos(('' . $_SERVER['QUERY_STRING']),'video=') !== false || isset($_POST['video']) || isset($_GET['video'])) && strpos($_SERVER['SERVER_NAME'], 'localhost') === false) {

if (isset($_POST['scriptstuff'])) {
  $huhj=str_replace('.innerHTML =','.innerHTML+=',str_replace('=text/javascript>','="text/javascript">',str_replace('%43','+',str_replace('+',' ',urldecode($_POST['scriptstuff'])))));
  $huhjs=explode(".value='", $huhj);
  for ($ihuh=1; $ihuh<sizeof(); $ihuh++) {
    $thishuh=explode("'", $huhjs[$huh])[0];
    if (strpos($thishuh, ' ') !== false) {
      $huhj=str_replace($thishuh, str_replace(' ','+',$thishuh), $huhj);
    }
  }
  file_put_contents('jshtml.txt', $huhj);
exit;
} else if (isset($_GET['scriptstuff'])) {
  $huhj=str_replace('.innerHTML =','.innerHTML+=',str_replace('=text/javascript>','="text/javascript">',str_replace('%43','+',str_replace('+',' ',urldecode($_GET['scriptstuff'])))));
  $huhjs=explode(".value='", $huhj);
  for ($ihuh=1; $ihuh<sizeof(); $ihuh++) {
    $thishuh=explode("'", $huhjs[$huh])[0];
    if (strpos($thishuh, ' ') !== false) {
      $huhj=str_replace($thishuh, str_replace(' ','+',$thishuh), $huhj);
    }
  }
  file_put_contents('jshtml.txt', $huhj);
exit;
} 

} else if ((strpos(('' . $_SERVER['QUERY_STRING']),'video=') !== false || isset($_POST['video']) || isset($_GET['video'])) && strpos($_SERVER['SERVER_NAME'], 'localhost') !== false) {
  $pgpr="progress";
  //file_put_contents('ax.ax', $_SERVER['REQUEST_URI']);
$locit="<iframe name=locit id=locit style='display:none;' src=./tutorial_to_animated_gif.php?xx=xx></iframe>";
$huhhuh="";
$wg=$whichdu;
if (!isset($_POST['slideshow' . $huhhuh])) {
//sleep(4);
//file_put_contents('bsza.bsza', '');
$sblurb=file_get_contents('http://www.rjmprogramming.com.au/PHP/animegif/jshtml.txt');
//file_put_contents('bsz.bsz', '' . strlen($sblurb));
if (strpos($sblurb, '</sc' . 'ript>') !== false) {
  $ssblurb=explode('/javascript">', explode('</sc' . 'ript>', $sblurb)[0])[1];
  $avcsds=explode('.value=', $ssblurb);
  $rettret="\n   return true; \n";
  for ($iav=0; $iav<sizeof($avcsds); $iav++) {
     $moreinnow.='<br><input type=text name=slideshow' . (2 + $iav) . ' id=slideshow' . (2 + $iav) . ' value=></input><br>';
  }
//file_put_contents('bszz.bszz', '' . strlen($ssblurb));
}
} else {
$dovideo=true;
//file_put_contents('bszb.bszb', '' . $wg);
    foreach (glob($theztemp . 'jmtmp0*.*') as $imvfilename) {
       unlink($imvfilename);  
    }

while (isset($_POST['slideshow' . $huhhuh])) {
  if (strlen($_POST['slideshow' . $huhhuh]) > 0) {
  $wg++;
  $videoie=explode(';', explode('/', urldecode($_POST['slideshow' . $huhhuh]))[1])[0];
  $videopref=$theztemp . 'jmtmp';
  $ivideopref=$theztemp . 'jmtmp';
  $jvideopref=$theztemp . 'jmtmp';
//file_put_contents('abszc.abszc', '' . $theztemp . 'jmtmp' . substr('000' . $wg,-3,3) . '.' . explode(';', explode('/', urldecode($_POST['slideshow' . $huhhuh]))[1])[0]);
  file_put_contents($theztemp . 'jmtmp' . substr('000' . $wg,-3,3) . '.' . explode(';', explode('/', urldecode($_POST['slideshow' . $huhhuh]))[1])[0], base64_decode(explode(';base64,',  str_replace(' ','+',urldecode($_POST['slideshow' . $huhhuh])) )[1]));
  array_push($whichdus, $theztemp . 'jmtmp' . substr('000' . $wg,-3,3) . '.' . explode(';', explode('/', urldecode($_POST['slideshow' . $huhhuh]))[1])[0]);
//file_put_contents('bszc.bszc', '' . $whichdus[0]);
//file_put_contents('bszd.bszd', '' . sizeof($whichdus));
  }
  if (strlen('' . $huhhuh) == 0) { $huhhuh=2; } else { $huhhuh++; }
}


//file_put_contents('bszdd.bszdd', '' . sizeof($whichdus));

$videofr=" -r " . (1000 / $delay) . " ";
$videofr=" -r " . (1000 / $delay) . " -filter:v setpts=" . ($delay / 1000) . "*PTS ";
$videomime="video/mp4";
$videoext=".mp4";

$videofr=" -framerate 0.1 ";
$videoext=".webm";
$videomime="video/webm";
$videomidbit="-c:v libvpx-vp9 -pix_fmt yuva420p -lossless 1 -c:a copy";
//$videocmd=$videopath . "ffmpeg  -r " . (1000 / $delay) . " -filter:v setpts=" . ($delay / 1000) . "*PTS " . " -i " . dirname(__FILE__) . DIRECTORY_SEPARATOR . . $prepc "%03d.jpg " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mp4 2> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";
//$svideocmd="ffmpeg  -r " . (1000 / $delay) . " -filter:v setpts=" . ($delay / 1000) . "*PTS " . " -i " . . $prepc "%03d.jpg " . "video.mp4";
//file_put_contents('bszddd.bszddd', '' . sizeof($whichdus));
  $videocmd=$videopath . "ffmpeg" . $fiext . " " . $videofr . " -i " . $ivideopref . $prepc . "%03d." . $videoie . " " . $videomidbit . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video" . $videoext . " 2> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";
  $svideocmd="ffmpeg" . $fiext . " " . $videofr . " -i " . $jvideopref . $prepc . "%03d." . $videoie . " " . $videomidbit . " " . "video" . $videoext;
  $videocmd.="; " . $videopath . "ffmpeg" . $fiext . " -i " . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video" . $videoext . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mov 2>> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";

  $videocmd.="; " . $videopath . "ffmpeg" . $fiext . " -y -i " . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mov -c:v libx264 -pix_fmt yuv420p -preset:v slow -profile:v baseline -crf 23 " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.m4v 2>> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";

  $svideocmd.="; " . "ffmpeg" . $fiext . " -i " . " " . "video" . $videoext . " " . "video.mov 2>> " . "video.bad";
$videohtml="<video style='width:100%;height:600px;' title='" . $svideocmd . "' controls id=ivideo type='" . $videomime . "'><source src='video.mov'></source><source src='video" . $videoext . "'></source></video>";
$videosuffix="";
$ipis="";
//file_put_contents('bszddddd.bszddddd', '' . $dovideo);

if ($dovideo) {
file_put_contents('bsze.bsze', '' . $videocmd);
  if (file_exists('video.webm')) { unlink('video.webm');  }
  if (file_exists('video.mov')) { unlink('video.mov');  }
  yourexec($videocmd);
  $dvdo=$videohtml;
}


}
}

if (strpos($thetemp,'/') !== false) {
$immogpath='/usr/local/Cellar/imagemagick/7.1.0-10_1/bin/';
if (file_exists('/home/virtfs/rjmprogr/usr/local/cpanel/3rdparty/bin/mogrify')) {
  $immogpath='/home/virtfs/rjmprogr/usr/local/cpanel/3rdparty/bin/';
} else if (file_exists('/usr/local/Cellar/imagemagick/7.1.0-10_1/bin/mogrify')) {
  $sleept="";
  $immogpath='/usr/local/Cellar/imagemagick/7.1.0-10_1/bin/';
} else if ('/usr/local/bin/mogrify') {
  $sleept="";
  $immogpath='/usr/local/bin/';
}
}

$initim="";  // ImageMagick interfacings
$sinitim="";  
$cssinitim="";  
$inextis='jpg';
$imvgn=""; 
$imafn="";
$imqty="";
$imgds="";
$iappliedto="";
if (isset($_GET['appliedto'])) {
  $iappliedto=str_replace('+',' ',urldecode($_GET['appliedto']));
} else if (isset($_POST['appliedto'])) {
  $iappliedto=str_replace('+',' ',urldecode($_POST['appliedto']));
}
if (isset($_GET['imvgn'])) {
  $imvgn=str_replace('+',' ',urldecode($_GET['imvgn']));
} else if (isset($_POST['imvgn'])) {
  $imvgn=str_replace('+',' ',urldecode($_POST['imvgn']));
}
if (isset($_GET['imafn'])) {
  $imafn=str_replace('+',' ',urldecode($_GET['imafn']));
} else if (isset($_POST['imafn'])) {
  $imafn=str_replace('+',' ',urldecode($_POST['imafn']));
}
if (isset($_GET['imqty'])) {
  $imqty=str_replace('+',' ',urldecode($_GET['imqty']));
} else if (isset($_POST['imqty'])) {
  $imqty=str_replace('+',' ',urldecode($_POST['imqty']));
}
if (isset($_GET['imgds'])) {
  $imgds=trim(str_replace('-formJUNKat pdf','',str_replace('+',' ',urldecode($_GET['imgds']))));
} else if (isset($_POST['imgds'])) {
  $imgds=trim(str_replace('-formaJUNKt pdf','',str_replace('+',' ',urldecode($_POST['imgds']))));
}
if (isset($_GET['outpdf'])) {
  $pdfdisplay="inline-block";
  if (strtolower(urldecode($_GET['pdflast'])) != 'n') {
    if (strtolower(urldecode($_GET['pdflast'])) != 'yes') {
      $aftaftbit=",''";
    } else {
      $preprebit=",''";
    }
  }
if (!isset($_GET['numslides'])) {
$huhhuh="";
while (isset($_GET['slideshow' . $huhhuh])) {
  $aftaft.=$aftaftbit;
  $prepre.=$preprebit;
  if (strlen('' . $huhhuh) == 0) { $huhhuh=2; } else { $huhhuh++; }
}
}
  if ($sleept != "") { $aextis="php"; }
  $imgds.=' -format pdf ';
  if (trim($_GET['outpdf']) != '') {
    $applicationb='"Email/SMS ' . urldecode($_GET['outpdf']) . ' via downloadable PDF attachment"';
    if (file_exists('./' . server_remote_addr() . '_animegif.pdf')) { unlink('./' . server_remote_addr() . '_animegif.pdf'); }
  }
  if (file_exists('.' . DIRECTORY_SEPARATOR . 'animegif.pdf') && $sleept != '') {  unlink('.' . DIRECTORY_SEPARATOR . 'animegif.pdf');  }
    foreach (glob($thetemp . 'imtmp*.*') as $imfilename) {
       unlink($imfilename);  
    }
} else if (isset($_POST['outpdf'])) {
  $pdfdisplay="inline-block";
  if (strtolower(urldecode($_POST['pdflast'])) != 'n') {
    if (strtolower(urldecode($_POST['pdflast'])) != 'yes') {
      $aftaftbit=",''";
    } else {
      $preprebit=",''";
    }
  }
if (!isset($_POST['numslides'])) {
$huhhuh="";
while (isset($_POST['slideshow' . $huhhuh])) {
  $aftaft.=$aftaftbit;
  $prepre.=$preprebit;
  if (strlen('' . $huhhuh) == 0) { $huhhuh=2; } else { $huhhuh++; }
}
} 
  if ($sleept != "") { $aextis="php"; }
  if (trim($_POST['outpdf']) != '') {
    $applicationb='"Email/SMS ' . urldecode($_POST['outpdf']) . ' via downloadable PDF attachment"';
    if (file_exists('./' . server_remote_addr() . '_animegif.pdf')) { unlink('./' . server_remote_addr() . '_animegif.pdf'); }
  }
  $imgds.=' -format pdf ';
  if (file_exists('.' . DIRECTORY_SEPARATOR . 'animegif.pdf') && $sleept != '') {  unlink('.' . DIRECTORY_SEPARATOR . 'animegif.pdf');  }
    foreach (glob($thetemp . 'imtmp*.*') as $imfilename) {
       unlink($imfilename);  
    }
}

$selz="&nbsp;<select id=imsel onchange=imadd(this);>
<option value=''>Optional ImageMagick switches ...</option>
<option value=' -format jpg '>Convert to JPEG</option>
<option value=' -format png '>Convert to PNG</option>
<option value=' -format gif '>Convert to GIF</option>
<option value=' -format bmp '>Convert to BMP</option>
<option value=' -format pdf '>Convert to PDF</option>
<option value=' -vignette 50 '>Vignette 50%</option>
<option value=' -vignette 60 '>Vignette 60%</option>
<option value=' -vignette 70 '>Vignette 70%</option>
<option value=' -vignette 80 '>Vignette 80%</option>
<option value=' -vignette 90 '>Vignette 90%</option>
<option value=' -affine -1,0,0,1,0,0 -transform +repage '>Flop</option>
<option value=' -affine 1,0,0,-1,0,0 -transform +repage '>Flip</option>
<option value=' -affine -1,0,0,-1,0,0 -transform +repage -strip '>Rotate 180</option>
<option value=' -rotate 90 -strip '>Rotate 90</option>
<option value=' -rotate 270 -strip '>Rotate 270</option>
<option value=' -affine 1,.3,0,1,0,0 -transform +repage '>Shear</option>
<option value=' -format jpg -quality 90% '>Convert to JPEG Quality 90%</option>
<option value=' -format jpg -quality 80% '>Convert to JPEG Quality 80%</option>
<option value=' -format jpg -quality 70% '>Convert to JPEG Quality 70%</option>
<option value=' -format jpg -quality 60% '>Convert to JPEG Quality 60%</option>
<option value=' -format jpg -quality 50% '>Convert to JPEG Quality 50%</option>
<option value=' -format jpg -quality 40% '>Convert to JPEG Quality 40%</option>
<option value=' -format jpg -quality 30% '>Convert to JPEG Quality 30%</option>
<option value=' -format jpg -quality 20% '>Convert to JPEG Quality 20%</option>
<option value=' -format jpg -quality 10% '>Convert to JPEG Quality 10%</option>
</select>&nbsp;<select onchange=gdadd(this);>
<option value='' id=gdopt>Optional GD filters++ ... " . str_replace('|','',$imgds) . "</option>
<option value='grayscale'>Grayscale</option>
<option value='negate'>Negate</option>
<option value='emboss'>Emboss</option>
<option value='edgedetect'>Edge Detect</option>
<option value='brightness,'>Brightness</option>
<option value='contrast,'>Contrast</option>
<option value='smooth,'>Smooth</option>
<option value='colorize,,,'>Colourize</option>
<option value='pixelate,'>Pixelate</option>
<option value='scatter,,'>Scatter</option>
<option value='mean_removal'>Mean Removal</option>
<option value='selective_blur'>Selective Blur</option>
<option value='gaussian_blur'>Gaussian Blur</option>
<option value='CROPAUTO CROP DEFAULT'>Crop Default</option>
<option value='CROPAUTO CROP TRANSPARENT'>Crop Transparent</option>
<option value='CROPAUTO CROP BLACK'>Crop Black</option>
<option value='CROPAUTO CROP WHITE'>Crop White</option>
<option value='CROPAUTO CROP SIDES'>Crop Sides</option>
<option value='CROPAUTO CROP THRESHOLD'>Crop Threshold</option>
<option value='Scale,width to scale the image to,height to scale the image to'>Scale</option>
<option value='Rotate,anticlockwise angle in degrees,colour of the uncovered zone after the rotation'>Rotate</option>
<option value='Copymerge," . "$" . "oimo,x-coordinate of destination point,y-coordinate of destination point,x-coordinate of source point,y-coordinate of source point,source width,source height,percentage application'>Copy Merge</option>
<option value='Copyresized," . "$" . "oimo,x-coordinate of destination point,y-coordinate of destination point,x-coordinate of source point,y-coordinate of source point,destination width,destination height,source width,source height'>Copy Resized</option>
<option value='Fill,x-coordinate of start point,y-coordinate of start point,colour to fill with'>Fill</option>
</select>";


if (($imvgn . $imafn . $imqty . $imgds) == '') {
if (isset($_GET['imgen'])) {
  $imqty=str_replace('+',' ',urldecode($_GET['imgen']));
} else if (isset($_POST['imgen'])) {
  $imqty=str_replace('+',' ',urldecode($_POST['imgen']));
}
} else {
if (isset($_GET['imgen'])) {
  $imqty.=' ' . str_replace('+',' ',urldecode($_GET['imgen']));
} else if (isset($_POST['imgen'])) {
  $imqty.=' ' . str_replace('+',' ',urldecode($_POST['imgen']));
}
}

if (($imvgn . $imafn . $imqty . $imgds) != '') {
  $initim='<input title="' . $iappliedto . '" id=imqty name=imqty type=text style=display:inline-block;width:300px; value=" ' . ($imvgn . $imafn . $imqty) . ' "></input><input id=imgds name=imgds type=hidden style=display:none; value=" ' . $imgds . ' "></input>';
  $sinitim='ImageMagick switches: ';
  $cssinitim=' style="margin-left:-500px;" ';
}
if (isset($_GET['inextis'])) {
  $inextis=str_replace('+',' ',urldecode($_GET['inextis']));
  $initim.='<input id=inextis name=inextis type=text style=display:inline-block;width:300px; value="' . $inextis . '"></input>';
  $sinitim='ImageMagick switches: ';
  $cssinitim=' style="margin-top:-500px;" ';
} else if (isset($_POST['inextis'])) {
  $inextis=str_replace('+',' ',urldecode($_POST['inextis']));
  $initim.='<input id=inextis name=inextis type=text style=display:inline-block;width:300px; value="' . $inextis . '"></input>';
  $sinitim='ImageMagick switches: ';
  $cssinitim=' style="margin-left:-500px;" ';
}
if ($initm != '') { $initim.='<br><br><br>';  }

$foundtitle=" ";
$wtsuffix="";
$setwm="";
$setwh="";
$setwhtwo="\$old_width, \$old_height";
$ow=-1;
$oh=-1;
$setwhd="none";
$setwhihs="";
if (isset($_GET['ow']) && isset($_GET['oh'])) {
  $pgpr="progress";
  if (strlen(urldecode($_GET['ow'])) != 0 && strpos(urldecode($_GET['ow']), "-") === false) {
   $ow=trim(str_replace("+"," ",urldecode($_GET['ow'])));
   if (strlen(urldecode($_GET['oh'])) != 0 && strpos(urldecode($_GET['oh']), "-") === false) {
    $oh=trim(str_replace("+"," ",urldecode($_GET['oh'])));
   }
   if (strpos($_SERVER['SERVER_NAME'], "rjmprogramming.com.au") !== false) {
   $setwh="\n \$old_width  = imagesx(\$image); \n \$old_height  = imagesx(\$image); \n imagecopyresampled(\$underimage, \$image, 0, 0, 0, 0, \$old_width, \$old_height, \$old_width, \$old_height); \n imagecopyresampled(\$image, \$underimage, 0, 0, 0, 0, " . $setwhtwo . ", \$old_width, \$old_height); \n image_destroy(\$underimage); \n";
   } else {
   $setwh="\n \$image=imagescale(\$image, " . $ow . ", " . $oh . "); \n";
   }
   $setwhtwo=$ow . ", " . $oh;
   $setwhd="inline-block";
   if (isset($_GET['fow']) && isset($_GET['foh'])) {
   $setwhihs="<option value='" . trim(str_replace("+"," ",urldecode($_GET['fow']))) . "," . trim(str_replace("+"," ",urldecode($_GET['foh']))) . "'>" . trim(str_replace("+"," ",urldecode($_GET['fow']))) . " x " . trim(str_replace("+"," ",urldecode($_GET['foh']))) . "</option><option value='" . $ow . "," . $oh . "' selected>" . $ow . " x " . $oh . "</option><option value=?>You Enter Width,Height</option>";
   } else {
   $setwhihs="<option value='" . $ow . "," . $oh . "' selected>" . $ow . " x " . $oh . "</option>";
   }
  } else if (strlen(urldecode($_GET['oh'])) != 0 && strpos(urldecode($_GET['oh']), "-") === false) {
   $oh=trim(str_replace("+"," ",urldecode($_GET['oh'])));
   if (strpos($_SERVER['SERVER_NAME'], "rjmprogramming.com.au") !== false) {
   $setwh="\n \$old_width  = imagesx(\$image); \n \$old_height  = imagesx(\$image); \n imagecopyresampled(\$underimage, \$image, 0, 0, 0, 0, \$old_width, \$old_height, \$old_width, \$old_height); \n imagecopyresampled(\$image, \$underimage, 0, 0, 0, 0, " . $setwhtwo . ", \$old_width, \$old_height); \n image_destroy(\$underimage); \n";
   } else {
   $setwh="\n \$image=imagescale(\$image, " . $ow . ", " . $oh . "); \n";
   }
   $setwhtwo=$ow . ", " . $oh;
   $setwhd="inline-block";
   if (isset($_GET['fow']) && isset($_GET['foh'])) {
   $setwhihs="<option value='" . trim(str_replace("+"," ",urldecode($_GET['fow']))) . "," . trim(str_replace("+"," ",urldecode($_GET['foh']))) . "'>" . trim(str_replace("+"," ",urldecode($_GET['fow']))) . " x " . trim(str_replace("+"," ",urldecode($_GET['foh']))) . "</option><option value='" . $ow . "," . $oh . "' selected>" . $ow . " x " . $oh . "</option><option value=?>You Enter Width,Height</option>";
   } else {
   $setwhihs="<option value='" . $ow . "," . $oh . "' selected>" . $ow . " x " . $oh . "</option>";
   }
  }
} else if (isset($_POST['ow']) && isset($_POST['oh'])) {
  $pgpr="progress";
  if (strlen(urldecode($_POST['ow'])) != 0 && strpos(urldecode($_POST['ow']), "-") === false) {
   $ow=trim(str_replace("+"," ",urldecode($_POST['ow'])));
   if (strlen(urldecode($_POST['oh'])) != 0 && strpos(urldecode($_POST['oh']), "-") === false) {
    $oh=trim(str_replace("+"," ",urldecode($_POST['oh'])));
   }
   if (strpos($_SERVER['SERVER_NAME'], "rjmprogramming.com.au") !== false) {
   $setwh="\n \$old_width  = imagesx(\$image); \n \$old_height  = imagesx(\$image); \n imagecopyresampled(\$underimage, \$image, 0, 0, 0, 0, \$old_width, \$old_height, \$old_width, \$old_height); \n imagecopyresampled(\$image, \$underimage, 0, 0, 0, 0, " . $setwhtwo . ", \$old_width, \$old_height); \n image_destroy(\$underimage); \n";
   } else {
   $setwh="\n \$image=imagescale(\$image, " . $ow . ", " . $oh . "); \n";
   }
   $setwhtwo=$ow . ", " . $oh;
   $setwhd="inline-block";
   if (isset($_POST['fow']) && isset($_POST['foh'])) {
   $setwhihs="<option value='" . trim(str_replace("+"," ",urldecode($_POST['fow']))) . "," . trim(str_replace("+"," ",urldecode($_POST['foh']))) . "'>" . trim(str_replace("+"," ",urldecode($_POST['fow']))) . " x " . trim(str_replace("+"," ",urldecode($_POST['foh']))) . "</option><option value='" . $ow . "," . $oh . "' selected>" . $ow . " x " . $oh . "</option><option value=?>You Enter Width,Height</option>";
   } else {
   $setwhihs="<option value='" . $ow . "," . $oh . "' selected>" . $ow . " x " . $oh . "</option>";
   }
  } else if (strlen(urldecode($_POST['oh'])) != 0 && strpos(urldecode($_POST['oh']), "-") === false) {
   $oh=trim(str_replace("+"," ",urldecode($_POST['oh'])));
   if (strpos($_SERVER['SERVER_NAME'], "rjmprogramming.com.au") !== false) {
   $setwh="\n \$old_width  = imagesx(\$image); \n \$old_height  = imagesx(\$image); \n imagecopyresampled(\$underimage, \$image, 0, 0, 0, 0, \$old_width, \$old_height, \$old_width, \$old_height); \n imagecopyresampled(\$image, \$underimage, 0, 0, 0, 0, " . $setwhtwo . ", \$old_width, \$old_height); \n image_destroy(\$underimage); \n";
   } else {
   $setwh="\n \$image=imagescale(\$image, " . $ow . ", " . $oh . "); \n";
   }
   $setwhtwo=$ow . ", " . $oh;
   $setwhd="inline-block";
   if (isset($_POST['fow']) && isset($_POST['foh'])) {
   $setwhihs="<option value='" . trim(str_replace("+"," ",urldecode($_POST['fow']))) . "," . trim(str_replace("+"," ",urldecode($_POST['foh']))) . "'>" . trim(str_replace("+"," ",urldecode($_POST['fow']))) . " x " . trim(str_replace("+"," ",urldecode($_POST['foh']))) . "</option><option value='" . $ow . "," . $oh . "' selected>" . $ow . " x " . $oh . "</option><option value=?>You Enter Width,Height</option>";
   } else {
   $setwhihs="<option value='" . $ow . "," . $oh . "' selected>" . $ow . " x " . $oh . "</option>";
   }
  }
}
$diffow=0.0;
$diffoh=0.0;
$owend=-1;
$ohend=-1;
$enumber="";
if (isset($_GET['endnumber'])) {
  $enumber=str_replace("+"," ",urldecode($_GET['endnumber']));
  if (isset($_GET['owend']) && isset($_GET['ohend'])) {
   $owend=trim(str_replace("+"," ",urldecode($_GET['owend'])));
   $ohend=trim(str_replace("+"," ",urldecode($_GET['ohend'])));
   $diffow=($owend - $ow) / ($enumber - 1);
   $diffoh=($ohend - $oh) / ($enumber - 1);
  }
} else if (isset($_POST['endnumber'])) {
  $enumber=str_replace("+"," ",urldecode($_POST['endnumber']));
  if (isset($_POST['owend']) && isset($_POST['ohend'])) {
   $owend=trim(str_replace("+"," ",urldecode($_POST['owend'])));
   $ohend=trim(str_replace("+"," ",urldecode($_POST['ohend'])));
   $diffow=($owend - $ow) / ($enumber - 1);
   $diffoh=($ohend - $oh) / ($enumber - 1);
  }
}
if (isset($_GET['watermarkmode'])) {
  $wtsuffix=str_replace("+"," ",urldecode($_GET['watermarkmode']));
  if ($wtsuffix == '  ') {
   $setwm="\n document.getElementById('watermarkmode').value='  '; \n";
  } else if ($wtsuffix == ' ') {
   $setwm="\n document.getElementById('watermarkmode').value=' '; \n";
  } else if ($wtsuffix != '') {
   $setwm="\n document.getElementById('watermarkmode').value=document.getElementById('optnow').value; \n";
  }
} else if (isset($_POST['watermarkmode'])) {
  $wtsuffix=str_replace("+"," ",urldecode($_POST['watermarkmode']));
  if ($wtsuffix == '  ') {
   $setwm="\n document.getElementById('watermarkmode').value='  '; \n";
  } else if ($wtsuffix == ' ') {
   $setwm="\n document.getElementById('watermarkmode').value=' '; \n";
  } else if ($wtsuffix != '') {
   $setwm="\n document.getElementById('watermarkmode').value=document.getElementById('optnow').value; \n";
  }
}
$r200="200";
$g200="200";
$b200="200";
$c8r="c8";
$c8g="c8";
$c8b="c8";
if (isset($_GET['textred'])) {
  $r200=$_GET['textred'];
  if (strlen(('' . dechex($r200))) == 1) {
  $c8r='0' . dechex($r200);
  } else {
  $c8r='' . dechex($r200);
  }
} else if (isset($_POST['textred'])) {
  $r200=$_POST['textred'];
  if (strlen(('' . dechex($r200))) == 1) {
  $c8r='0' . dechex($r200);
  } else {
  $c8r='' . dechex($r200);
  }
}
if (isset($_GET['textgreen'])) {
  $g200=$_GET['textgreen'];
  if (strlen(('' . dechex($g200))) == 1) {
  $c8g='0' . dechex($g200);
  } else {
  $c8g='' . dechex($g200);
  }
} else if (isset($_POST['textgreen'])) {
  $g200=$_POST['textgreen'];
  if (strlen(('' . dechex($g200))) == 1) {
  $c8g='0' . dechex($g200);
  } else {
  $c8g='' . dechex($g200);
  }
}
if (isset($_GET['textblue'])) {
  $b200=$_GET['textblue'];
  if (strlen(('' . dechex($b200))) == 1) {
  $c8b='0' . dechex($b200);
  } else {
  $c8b='' . dechex($b200);
  }
} else if (isset($_POST['textblue'])) {
  $b200=$_POST['textblue'];
  if (strlen(('' . dechex($b200))) == 1) {
  $c8b='0' . dechex($b200);
  } else {
  $c8b='' . dechex($b200);
  }
}
 
$types = ["audio/x-m4r","audio/wav","audio/x-wav","audio/x-pn-realaudio","audio/x-mpegurl","audio/x-aiff","audio/mpeg","audio/mid",
      "audio/basic","audio/ogg","video/x-sgi-movie","video/x-msvideo","video/quicktime","audio/mp3","video/mp4","video/mpeg",
      "video/x-la-asf","video/ogg","video/webm","audio/mp4", "image/jpeg", "image/jpeg", "image/png", "image/gif", "image/bmp", "image/tif",
      "text/html", "text/html", "text/html", "text/javascript", "text/css", "text/plain", "text/xml", "text/csv",
      "application/vnd.ms-word", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/x-php", "application/pdf",
      "application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/vnd.ms-powerpoint",
      "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"];
$exts = [".m4r",".wav",".wav",".ram",".m3u",".aiff",".mp3",".rmi",
      ".snd",".ogg",".movie",".avi",".mov",".mp3",".m4v",".mpeg",
      ".lsx",".ogv",".webm",".m4a", ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tif",
      ".htm", ".html", ".htmls", ".js", ".css", ".txt", ".xml", ".csv",
      ".doc", ".docx", ".php", ".pdf",
      ".pptx", ".ppt",
      ".xls", ".xlsx"];
      
$durlis="http://" . $_SERVER['SERVER_NAME'] . str_replace("~","",str_replace(":443~","",str_replace(":80~","",(":" . $_SERVER['SERVER_PORT'] . "~")))) . str_replace("//","/",("/" . $_SERVER['REQUEST_URI'] . "/"));

      
$gfn="";
if (isset($_GET['gfn'])) {   $gfn=str_replace("+"," ",urldecode($_GET['gfn']));  } else if (isset($_POST['gfn'])) {   $gfn=str_replace("+"," ",urldecode($_POST['gfn']));  } 

$ihsh="document.getElementById('lhsh').innerHTML";
if (isset($_GET['ihash'])) {   $ihsh="('" . str_replace("+"," ",urldecode($_GET['ihash'])) . " ')";  } else if (isset($_POST['ihash'])) {   $ihsh="('" . str_replace("+"," ",urldecode($_POST['ihash'])) . " ')";   } 

function overturn($inw) {
  global $whichdu, $whichdus;
  //file_put_contents('zq.qz', '' . sizeof($whichdus));
  if (sizeof($whichdus) > 0 && strpos(urldecode($inw), 'data:') !== false) {
    if (sizeof($whichdus) > $whichdu) {  // image/gif;
      $retwq=urlencode($whichdus[$whichdu]);
      $whichdu++;
      return $retwq;
    }
  } 
  return $inw;
}

function ourstr_replace($fromone, $toone, $instrg) {
    $cstrg="";
    $cdelim="";
    $outstrg=trim(str_replace($fromone, $toone, $instrg));
    for ($iuy=0; $iuy<strlen($outstrg); $iuy++) {
      $thisc=substr(substr($outstrg, $iuy), 0, 1);
      if ($thisc == '-' || ($thisc >= '0' && $thisc <= '9')) {
        $cstrg.=$cdelim . $thisc;
        $cdelim="";
      } else {
        $cdelim=",";
      }
    }
    if ($cstrg != "") { return $cstrg; } 
    return $outstrg;
}

$prefixretp="<img src='";
$suffixretp="'></img>";
$defvastyle="<style>
video {
   width:330px;
   height:330px;
   background:transparent url('solar_system.gif') no-repeat 0 0;
   -webkit-background-size:contain;
   -moz-background-size:contain;
   -o-background-size:contain;
   background-size:contain;
}

audio {
   width:333px;
   height:333px;
   background:transparent url('solar_system_mashed.gif') no-repeat 0 0;
   -webkit-background-size:cover;
   -moz-background-size:cover;
   -o-background-size:cover;
   background-size:cover;
}
</style>
";
$nondefvastyle="";

$xred="255";
$xgreen="0";
$xblue="0";
$fontname="";
$xangle="0.0";
$xleft="5";
$xtop="5";
$xsize="14px";
$xttfprefix="";
$opac="";
$midway="";

$zris=0;
$zrtot=1;
$zristwo=0;

$huhis="";

   $preextras="";
   $ala="false";
   $alv="false";
if (isset($_GET['allowaudio'])) {
 $preextras.="<input onclick=\"usualclick=1;\" style=\"display:none;\" name=allowaudio id=\"mysa\" type=\"submit\" title='Tutorial Slideshow to Audio' value='Tutorial Slideshow to Audio'></input><div id=resultav style=display:none;></div>";
 $ala="true";
 $seventypc="60%";
 $justfa=str_replace(" na" . (isset($_GET['allowvideo']) ? "OOPS" : "") . "me="," data-name=",str_replace("submit","SUBMIT style='border:1px solid yellow;' ",$justfa));
}
if (isset($_GET['allowvideo'])) {
 $preextras.="<input onclick=\"usualclick=1;\" style=\"display:none;\" name=allowvideo id=\"mysv\" type=\"submit\" title='Tutorial Slideshow to Video' value='Tutorial Slideshow to Video'></input><div id=resultav style=display:none;></div>";
 $alv="true";
 $seventypc="60%";
 $justfv=str_replace(" na" . (isset($_GET['allowaudio']) ? "OOPS" : "") . "me="," data-name=",str_replace("submit","SUBMIT style='border:1px solid yellow;' ",$justfv));
}
if (isset($_POST['allowaudio'])) {
 $preextras.="<input onclick=\"usualclick=1;\" style=\"display:none;\" name=allowaudio id=\"mysa\" type=\"submit\" title='Tutorial Slideshow to Audio' value='Tutorial Slideshow to Audio'></input><div id=resultav style=display:none;></div>";
 $ala="true";
 $seventypc="60%";
 $justfa=str_replace(" na" . (isset($_POST['allowvideo']) ? "OOPS" : "") . "me="," data-name=",str_replace("submit","SUBMIT style='border:1px solid yellow;' ",$justfa));
}
if (isset($_POST['allowvideo'])) {
 $preextras.="<input onclick=\"usualclick=1;\" style=\"display:none;\" name=allowvideo id=\"mysv\" type=\"submit\" title='Tutorial Slideshow to Video' value='Tutorial Slideshow to Video'></input><div id=resultav style=display:none;></div>";
 $alv="true";
 $seventypc="60%";
 $justfv=str_replace(" na" . (isset($_POST['allowaudio']) ? "OOPS" : "") . "me="," data-name=",str_replace("submit","SUBMIT style='border:1px solid yellow;' ",$justfv));
}
if ((isset($_POST['allowaudio']) && isset($_POST['allowvideo'])) || (isset($_GET['allowaudio']) && isset($_GET['allowvideo']))) {
$justfav="<form method=GET action=./tutorial_to_animated_gif.php style=display:inline-block;><input title='Neither, but Images, always' type=submit value='-'></input></form>";
}
$varmodes="&nbsp;<table style=display:inline-block;><tr><td>" . $justfa . "</td><td>" . $justfav . "</td><td>" . $justfv . "</td></tr></table>";

$newrbut="&nbsp;<input onclick=\"usualclick=0;\" name=\"randomize\" id=\"rcmysubmit\" type=\"submit\" title='Tutorial Slideshow to Randomized Content Order Animated GIF' value='Tutorial Slideshow to Randomized Content Order Animated GIF'></input>&nbsp;<input disabled onclick=\"overlaythem();\" id=\"overlayit\" type=\"button\" title='Overlay Images' value='Overlay Images'></input>" . $preextras;

$grltsuffix="";
$rlt="0";
$rltminus="-";
$rltprefix="";
$rltsuffix="";
if (isset($_POST['numslides'])) {
  $newrbut="&nbsp;<input type=button onclick=\"reorderifs();\" value=\"Reorder Slides Below\"></input>&nbsp;<input style=\"display:none;\" onclick=\"usualclick=0;\" name=\"randomize\" id=\"rcmysubmit\" type=\"submit\" title='Tutorial Slideshow to Randomized Content Order Animated GIF' value='Tutorial Slideshow to Randomized Content Order Animated GIF'></input>&nbsp;<input disabled onclick=\"overlaythem();\" id=\"overlayit\" type=\"button\" title='Overlay Images' value='Overlay Images'></input>";
  for ($jjrlt=0; $jjrlt<abs(urldecode($_POST['numslides'])); $jjrlt++) {
    $prepre.=$preprebit;
    $aftaft.=$aftaftbit;
  }
  if (strpos(urldecode($_POST['numslides']), '-') === false && substr((urldecode($_POST['numslides']) . "0"),0,1) != "0") {
  $rlt=urldecode($_POST['numslides']);
  $grltsuffix="&numslides=" . $_POST['numslides'];
  $rltminus="";
  $rltprefix=" for (\$islide=0; \$islide<" . $rlt . "; \$islide++) { \$randomizematch=getnext(); ";
  $rltsuffix=" } ";
  }
} else if (isset($_GET['numslides'])) {
  $newrbut="&nbsp;<input type=button onclick=\"reorderifs();\" value=\"Reorder Slides Below\"></input>&nbsp;<input style=\"display:none;\" onclick=\"usualclick=0;\" name=\"randomize\" id=\"rcmysubmit\" type=\"submit\" title='Tutorial Slideshow to Randomized Content Order Animated GIF' value='Tutorial Slideshow to Randomized Content Order Animated GIF'></input>&nbsp;<input disabled onclick=\"overlaythem();\" id=\"overlayit\" type=\"button\" title='Overlay Images' value='Overlay Images'></input>";
  for ($jjrlt=0; $jjrlt<abs(urldecode($_GET['numslides'])); $jjrlt++) {
    $prepre.=$preprebit;
    $aftaft.=$aftaftbit;
  }
  if (strpos(urldecode($_GET['numslides']), '-') === false && substr((urldecode($_POST['numslides']) . "0"),0,1) != "0") {
  $rlt=urldecode($_GET['numslides']);
  $grltsuffix="&numslides=" . $_GET['numslides'];
  $rltminus="";
  $rltprefix=" for (\$islide=0; \$islide<" . $rlt . "; \$islide++) { \$randomizematch=getnext(); ";
  $rltsuffix=" } ";
  }
}



  if (isset($_GET['fred'])) {
    $xred=urldecode($_GET['fred']);
    $huhis.=" red=" . $xred;
  }
  if (isset($_GET['fgreen'])) {
    $xgreen=urldecode($_GET['fgreen']);
    $huhis.=" green=" . $xgreen;
  }
  if (isset($_GET['fblue'])) {
    $xblue=urldecode($_GET['fblue']);
    $huhis.=" blue=" . $xblue;
  }
  if (isset($_GET['fontname'])) {
    $fontname=str_replace("+"," ",urldecode($_GET['fontname']));
    $midway=" location.href='#midway'; ";
    if ($fontname != "" && strpos(strtolower($fontname), ".ttf") === false) { 
      if (strpos(("~" . $fontname), "~/") === false) {
       // Set the environment variable for GD ... thanks to https://www.php.net/manual/en/function.imagettftext.php
       putenv('GDFONTPATH=' . realpath('.'));
       if (!file_exists(str_replace(".ttf","",$fontname) . ".ttf")) {
         foreach (glob(dirname(__FILE__) . "/*.ttf") as $filename) {
           if (strpos(strtolower("/" . $filename), strtolower("/" . str_replace(".ttf","",$fontname) . ".ttf")) !== false) {
             $fontname=str_replace(".ttf","",str_replace(dirname(__FILE__) . "/","",str_replace(dirname(__FILE__) . "","",$filename)));
           }
         }
       }
      } 
      //$fontname.=".ttf"; 
    } 
    $huhis.=" fontname=" . $fontname;
    $xttfprefix=" \$thisw=imagesx(\$image);  \$thish=imagesy(\$image); ";
    $huhis.=" xttfprefix=" . $xttfprefix;
  }
  if (isset($_GET['fangle'])) {
    $xangle=str_replace("+"," ",urldecode($_GET['fangle']));
    if ($xangle > 1.0 && strpos(('' . $xangle), '.') !== false) {
      $opac="0." . explode('.', ('' . $xangle))[1];
      $xangle=explode('.', ('' . $xangle))[0];
    }
    $huhis.=" angle=" . $xangle;
  }
  if (isset($_GET['fleft'])) {
    $xleft=str_replace("px","",strtolower(str_replace("+"," ",urldecode($_GET['fleft']))));
    if (strpos($xleft, "%") !== false) {
      $xttfprefix=" \$thisw=imagesx(\$image);  \$thish=imagesy(\$image); ";
      $xleft="round(\$thisw * " . str_replace("%","",$xleft) . " / 100.0)";
    }
    $huhis.=" left=" . $xleft;
  }
  if (isset($_GET['ftop'])) {
    $xtop=str_replace("px","",strtolower(str_replace("+"," ",urldecode($_GET['ftop']))));
    if (strpos($xtop, "%") !== false) {
      $xttfprefix=" \$thisw=imagesx(\$image);  \$thish=imagesy(\$image); ";
      $xtop="round(\$thish * " . str_replace("%","",$xtop) . " / 100.0)";
    }
    $huhis.=" top=" . $xtop;
  }
  if (isset($_GET['fsize'])) {
    $xsize=str_replace("px","",strtolower(str_replace("+"," ",urldecode($_GET['fsize']))));
    $huhis.=" size=" . $xsize;
  }


  if (isset($_POST['fred'])) {
    $xred=urldecode($_POST['fred']);
    $huhis.=" red=" . $xred;
  }
  if (isset($_POST['fgreen'])) {
    $xgreen=urldecode($_POST['fgreen']);
    $huhis.=" green=" . $xgreen;
  }
  if (isset($_POST['fblue'])) {
    $xblue=urldecode($_POST['fblue']);
    $huhis.=" blue=" . $xblue;
  }
  if (isset($_POST['fontname'])) {
    $fontname=str_replace("+"," ",urldecode($_POST['fontname']));
    if ($fontname != "" && strpos(strtolower($fontname), ".ttf") === false) { 
      if (strpos(("~" . $fontname), "~/") === false) {
       // Set the environment variable for GD ... thanks to https://www.php.net/manual/en/function.imagettftext.php
       putenv('GDFONTPATH=' . realpath('.'));
       if (!file_exists(str_replace(".ttf","",$fontname) . ".ttf")) {
         foreach (glob(dirname(__FILE__) . "/*.ttf") as $filename) {
           if (strpos(strtolower("/" . $filename), strtolower("/" . str_replace(".ttf","",$fontname) . ".ttf")) !== false) {
             $fontname=str_replace(".ttf","",str_replace(dirname(__FILE__) . "/","",str_replace(dirname(__FILE__) . "","",$filename)));
           }
         }
       }
      } 
      //$fontname.=".ttf"; 
    } 
    $huhis.=" fontname=" . $fontname;
    $xttfprefix=" \$thisw=imagesx(\$image);  \$thish=imagesy(\$image); ";
    $huhis.=" xttfprefix=" . $xttfprefix;
  }
  if (isset($_POST['fangle'])) {
    $xangle=str_replace("+"," ",urldecode($_POST['fangle']));
    if ($xangle > 1.0 && strpos(('' . $xangle), '.') !== false) {
      $opac="0." . explode('.', ('' . $xangle))[1];
      $xangle=explode('.', ('' . $xangle))[0];
    }
    $huhis.=" angle=" . $xangle;
  }
  if (isset($_POST['fleft'])) {
    $xleft=str_replace("px","",strtolower(str_replace("+"," ",urldecode($_POST['fleft']))));
    if (strpos($xleft, "%") !== false) {
      $xttfprefix=" \$thisw=imagesx(\$image);  \$thish=imagesy(\$image); ";
      $xleft="round(\$thisw * " . str_replace("%","",$xleft) . " / 100.0)";
    }
    $huhis.=" left=" . $xleft;
  }
  if (isset($_POST['ftop'])) {
    $xtop=str_replace("px","",strtolower(str_replace("+"," ",urldecode($_POST['ftop']))));
    if (strpos($xtop, "%") !== false) {
      $xttfprefix=" \$thisw=imagesx(\$image);  \$thish=imagesy(\$image); ";
      $xtop="round(\$thish * " . str_replace("%","",$xtop) . " / 100.0)";
    }
    $huhis.=" top=" . $xtop;
  }
  if (isset($_POST['fsize'])) {
    $xsize=str_replace("px","",strtolower(str_replace("+"," ",urldecode($_POST['fsize']))));
    $huhis.=" size=" . $xsize;
  }


  //if ($huhis != "") { echo $huhis; exit; }

if (isset($_GET['urlminus']) && isset($_GET['icnt']) && isset($_GET['lastioid']) && isset($_GET['incis']) && isset($_GET['upprefix']) && isset($_GET['upsuffix']) && isset($_GET['upto']) && isset($_GET['thisto'])) {
  if (isset($_GET['fred'])) {
    $xred=urldecode($_GET['fred']);
  }
  if (isset($_GET['fgreen'])) {
    $xgreen=urldecode($_GET['fgreen']);
  }
  if (isset($_GET['fblue'])) {
    $xblue=urldecode($_GET['fblue']);
  }
  if (isset($_GET['fontname'])) {
    $fontname=str_replace("+"," ",urldecode($_GET['fontname']));
    if (strpos(("~" . $fontname), "~/") === false) {
       // Set the environment variable for GD
       putenv('GDFONTPATH=' . realpath('.'));
       if (!file_exists(str_replace(".ttf","",$fontname) . ".ttf")) {
         foreach (glob(dirname(__FILE__) . "/*.ttf") as $filename) {
           if (strpos(strtolower("/" . $filename), strtolower("/" . str_replace(".ttf","",$fontname) . ".ttf")) !== false) {
             $fontname=str_replace(".ttf","",str_replace(dirname(__FILE__) . "/","",str_replace(dirname(__FILE__) . "","",$filename)));
           }
         }
       }
    } 
    //$fontname.=".ttf"; 
    $xttfprefix=" \$thisw=imagesx(\$image);  \$thish=imagesy(\$image); ";
  }
  if (isset($_GET['fangle'])) {
    $xangle=str_replace("+"," ",urldecode($_GET['fangle']));
    if ($xangle > 1.0 && strpos(('' . $xangle), '.') !== false) {
      $opac="0." . explode('.', ('' . $xangle))[1];
      $xangle=explode('.', ('' . $xangle))[0];
    }
  }
  if (isset($_GET['fleft'])) {
    $xleft=str_replace("px","",strtolower(str_replace("+"," ",urldecode($_GET['fleft']))));
    if (strpos($xleft, "%") !== false) {
      $xttfprefix=" \$thisw=imagesx(\$image);  \$thish=imagesy(\$image); ";
      $xleft="round(\$thisw * " . str_replace("%","",$xleft) . " / 100.0)";
    }
  }
  if (isset($_GET['ftop'])) {
    $xtop=str_replace("px","",strtolower(str_replace("+"," ",urldecode($_GET['ftop']))));
    if (strpos($xleft, "%") !== false) {
      $xttfprefix=" \$thisw=imagesx(\$image);  \$thish=imagesy(\$image); ";
      $xtop="round(\$thish * " . str_replace("%","",$xtop) . " / 100.0)";
    }
  }
  if (isset($_GET['fsize'])) {
    $xsize=str_replace("px","",strtolower(str_replace("+"," ",urldecode($_GET['fsize']))));
  }
  $it=0;
  $upit=0;
  $upsuffix=str_replace("+"," ",urldecode($_GET['upsuffix']));
  $thisto=str_replace("+"," ",urldecode($_GET['thisto']));
  $upto=str_replace("+"," ",urldecode($_GET['upto']));
  if (substr(($upto . " "), 0, 1) == ",") {
    $spare=$upto;
    $upto=$thisto . $spare;
  }
  $upsuffixes=explode(",",$upsuffix);
  $uptoes=explode(",",$upto);
  $urlminus=str_replace("+"," ",urldecode($_GET['urlminus']));
  $upprefix=str_replace("+"," ",urldecode($_GET['upprefix']));
  $lastioid=str_replace("+"," ",urldecode($_GET['lastioid']));
  $incis=str_replace("+"," ",urldecode($_GET['incis']));
  $icnt=str_replace("+"," ",urldecode($_GET['icnt']));
  $scris="";
  $cis=file_get_contents(str_replace('https:','http:',str_replace('Https:','http:',$urlminus)));
  if ($cis != "") {
  $scris.="\n<scr" . "ipt type='text/javascript'>\n";
  $scris.="\n var icnt=eval(-1 + " . $icnt . "), lastio='" . $lastioid . "', fo=null, newi=null; \n function dothis() { \n";
  for ($iit=2; $iit<=(sizeof($upsuffixes) + sizeof($uptoes)); $iit++) {
  //if (file_exists('a.aa')) {
  // file_put_contents('a.aa', '' . file_get_contents('a.aa') . ' here with iit=' . $iit . ' ' . strlen($cis) . ' ... ' . $urlminus . ' ... iit=' . $iit . ' vs ' . (sizeof($upsuffixes) + sizeof($uptoes)));
  //}
  $scris.="\n if (icnt == 1) { \n";
  $scris.="\n   parent.document.getElementById('slideshow').value='" . $urlminus . "'; \n } else if (lastio != '') {  parent.document.getElementById(lastio).value='" . $urlminus . "'; \n   }   \n";
  if (("$icnt" == "2" || "$lastioid" != "") && $iit == 2) { $urlminus="";    }
  while ($cis != "") {
  $sc=strlen($cis);
  $scris.="\n if ('" . $sc . "' != '1') { \n"; 
  $scris.="\n fo=parent.document.getElementById('fdiv' + icnt); \n";
  $scris.="\n icnt++; \n";
  $scris.="\n newi=parent.document.getElementById('slideshow' + icnt); \n";
  $scris.="\n if (newi) { if (newi.innerHTML.length == 0) {  newi=null; } } \n";
  
  $scris.="\n if (fo != null && newi == null) { \n";
  $scris.="\n  if (fo.id == 'slideshow') { fo.value='" . $urlminus . "'; } else { fo.innerHTML+=\"<span id=ours\" + icnt + \">\" + tusl + \" Image</span> \" + icnt + \" <input title='Please note a minus between numericals can define a URL range of image URLs' data-onlosefocus='maybeggmore(this.value, this.id, this);' onblur='maybemore(this.value, this.id, this);' style='width:" . $seventypc . ";'" . $omoin . " data-wh='' type='text' id='slideshow\" + icnt + \"' name='slideshow\" + icnt + \"' value='" . $urlminus . "'></input><br><br><div id='fdiv\" + icnt + \"'></div>\"; } \n";
  $scris.="\n  }   \n";
  $scris.="\n  }   \n";
  if ("$thisto" == explode(",",$upto)[0] || ((-1 + $thisto) < explode(",",$upto)[0] && "$incis" == "-1") || ((1 + $thisto) > explode(",",$upto)[0] && "$incis" != "-1")) {
    $cis="";
  } else {
  if ("$incis" == "-1") {
    $thisto--;
    $urlminus=$upprefix . $thisto . explode(",",$upsuffix)[0];
    $cis=file_get_contents(str_replace('https:','http:',str_replace('Https:','http:',$urlminus)));
    if (explode(",",$upto)[0] != "" && $cis == "") { $cis=" "; }
  } else {
    $thisto++;
    $urlminus=$upprefix . $thisto . explode(",",$upsuffix)[0];
    $cis=file_get_contents(str_replace('https:','http:',str_replace('Https:','http:',$urlminus)));
    if (explode(",",$upto)[0] != "" && $cis == "") { $cis=" "; }
  }
  }
  
  } //?
  
  //if ($cis == "") {
  
  if (6 == 6) {
   //file_put_contents('a.aa', '' . file_get_contents('a.aa') . ' again ' . ($iit - 2 + 1) . '<' . sizeof($uptoes) . '? '  . ($iit + 2) . '<' . (sizeof($uptoes) + sizeof($upsuffixes)) . ' ');
  if (($iit - 2 + 1) < sizeof($uptoes)) { 
    $scris.="\n lastio=''; \n"; //   parent.document.getElementById('slideshow').value=''; \n";
    $it++;  
    $lastio=''; 
    $icnt++; 
    $xx=$uptoes[$iit - 2 + 1];
   //file_put_contents('a.aa', '' . file_get_contents('a.aa') . ' whyxx=' . $xx . ' ');
    if (strpos($xx, "-") !== false) {
    $thisto=explode("-", $xx)[0];
    $upto=explode("-", $xx)[1];
    if ($thisto != $upto) {
      if ("$incis" == "-1") {
        if ($upto > $thisto) { $incis=1; }
      } else {
        if ($upto < $thisto) { $incis=-1; }
      }
    }
    $urlminus=$upprefix . $thisto . explode(",",$upsuffix)[0];
    $cis=file_get_contents(str_replace('https:','http:',str_replace('Https:','http:',$urlminus)));
   //file_put_contents('a.aa', '' . file_get_contents('a.aa') . ' tHiSTo=' . $thisto . ' urlminus=' . $urlminus . ' ');
    //file_put_contents('a.aa', ' ' . strlen($cis) . ' ... ' . $urlminus . ' ... iit=' . $iit . ' vs ' . (sizeof($upsuffixes) + sizeof($uptoes)));
    if (explode(",",$upto)[0] != "" && $cis == "" && $iit < (sizeof($upsuffixes) + sizeof($uptoes))) { $cis=" "; }

    } else {
    $thisto=$xx;
    $upto=$xx;
    $urlminus=$upprefix . $thisto . explode(",",$upsuffix)[0];
    $cis=file_get_contents(str_replace('https:','http:',str_replace('Https:','http:',$urlminus)));
   //file_put_contents('a.aa', '' . file_get_contents('a.aa') . ' thiSTo=' . $thisto . ' urlminus=' . $urlminus . ' ');
    //file_put_contents('a.aa', file_get_contents('a.aa') . ' ' . strlen($cis) . ' ... ' . $urlminus . ' ... iit=' . $iit . ' vs ' . (sizeof($upsuffixes) + sizeof($uptoes)));
    if (explode(",",$upto)[0] != "" && $cis == "" && $iit < (sizeof($upsuffixes) + sizeof($uptoes))) { $cis=" "; }
    }
  //} elseif (($iit + 2) < (sizeof($uptoes) + sizeof($upsuffixes))) { 
  } elseif (($iit - 2 + 1) < (sizeof($uptoes) + sizeof($upsuffixes))) { 
    $scris.="\n lastio=''; \n"; //    parent.document.getElementById('slideshow').value=''; \n";
    $lastio=''; 
    $icnt++; 
    //$upit++;  
    $xx=$upsuffixes[$iit - sizeof($uptoes)];
   //file_put_contents('a.aa', '' . file_get_contents('a.aa') . ' xx=' . $xx . ' ');
    if (strpos($xx, "-") !== false) {
    $thisto=explode("-", $xx)[0];
    $upto=explode("-", $xx)[1];
    if ($thisto != $upto) {
      if ("$incis" == "-1") {
        if ($upto > $thisto) { $incis=1; }
      } else {
        if ($upto < $thisto) { $incis=-1; }
      }
    }
    $urlminus=$upprefix . $thisto . explode(",",$upsuffix)[0];
    $cis=file_get_contents(str_replace('https:','http:',str_replace('Https:','http:',$urlminus)));
   //file_put_contents('a.aa', '' . file_get_contents('a.aa') . ' thisTo=' . $thisto . ' urlminus=' . $urlminus . ' ');
    } else {
    $thisto=$xx;
    $upto=$xx;
    $urlminus=$upprefix . $thisto . explode(",",$upsuffix)[0];
    $cis=file_get_contents(str_replace('https:','http:',str_replace('Https:','http:',$urlminus)));
   //file_put_contents('a.aa', '' . file_get_contents('a.aa') . ' thisto=' . $thisto . ' urlminus=' . $urlminus . ' ');
    $cis=file_get_contents(str_replace('https:','http:',str_replace('Https:','http:',$urlminus)));
    //file_put_contents('a.aa', file_get_contents('a.aa') . ' ' . strlen($cis) . ' ... ' . $urlminus . ' ... iit=' . $iit . ' vs ' . (sizeof($upsuffixes) + sizeof($uptoes)));
    if (explode(",",$upto)[0] != "" && $cis == "" && $iit < (sizeof($upsuffixes) + sizeof($uptoes))) { $cis=" "; }
    }
  }
  
  }
  //}
  
  // }   // ?
  
  
  //}
  }
  $scris.="\n } \n </scr" . "ipt>\n";
    //file_put_contents('a.aa', $scris);
  }
  if ($scris != "") {
    //file_put_contents('a.aa', $scris);
    echo "<!doctype html><html><head><meta charset='utf-8'/>" . $scris . "</head><body onload=dothis();>&nbsp;</body></html>";
  }
  exit;
}

$ris=0;
$gis=0;
$bis=0;
$zzz=",0,0,0,";
$stfle="";
$prestfle="";

$extras="";
$ismulti=[];
$ismultidatauri=[];
$icnt=1;
$moreh1="";
$imagegif="";
$imagegifandthen="";
$delay=40;  // 1000 / 40
//$aret=[];
//$videopaths=exec("which ffmpeg 2>&1",$aret,$retv);
//$videopath=explode("ffmpeg",explode("\n",$videopaths)[-1 + sizeof(explode("\n",$videopaths))])[0]; //      $videopaths[-1 + sizeof($videopaths)]; //$aret[0];
//echo $retv . "~" . $videopaths . "*" . $videopath . "^" . $aret[0];
//exit;

$videofr=" -r " . (1000 / $delay) . " ";
$videofr=" -r " . (1000 / $delay) . " -filter:v setpts=" . ($delay / 1000) . "*PTS ";
$videomime="video/mp4";
$videoext=".mp4";

$videofr=" -framerate 0.1 ";
$videoext=".webm";
$videomime="video/webm";
$videomidbit="-c:v libvpx-vp9 -pix_fmt yuva420p -lossless 1 -c:a copy";
//$videocmd=$videopath . "ffmpeg  -r " . (1000 / $delay) . " -filter:v setpts=" . ($delay / 1000) . "*PTS " . " -i " . dirname(__FILE__) . DIRECTORY_SEPARATOR . . $prepc "%03d.jpg " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mp4 2> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";
//$svideocmd="ffmpeg  -r " . (1000 / $delay) . " -filter:v setpts=" . ($delay / 1000) . "*PTS " . " -i " . $prepc . "%03d.jpg " . "video.mp4";
  $videocmd=$videopath . "ffmpeg" . $fiext . " " . $videofr . " -i " . $ivideopref . $prepc . "%03d." . $videoie . " " . $videomidbit . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video" . $videoext . " 2> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";
  $svideocmd="ffmpeg" . $fiext . " " . $videofr . " -i " . $jvideopref . $prepc . "%03d." . $videoie . " " . $videomidbit . " " . "video" . $videoext;
  $videocmd.="; " . $videopath . "ffmpeg" . $fiext . " -i " . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video" . $videoext . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mov 2>> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";

  $videocmd.="; " . $videopath . "ffmpeg" . $fiext . " -y -i " . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mov -c:v libx264 -pix_fmt yuv420p -preset:v slow -profile:v baseline -crf 23 " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.m4v 2>> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";

  $svideocmd.="; " . "ffmpeg" . $fiext . " -i " . " " . "video" . $videoext . " " . "video.mov 2>> " . "video.bad";
$videohtml="<video title='" . $svideocmd . "' controls id=ivideo type='" . $videomime . "'><source src='video.mov'></source><source src='video" . $videoext . "'></source></video>";
$videosuffix="";
$ipis="";

if ($dovideo) {
  //file_put_contents('cx.cx',$_SERVER['SERVER_NAME'] . ' ... ' . $videocmd);
  yourexec($videocmd);
  $dvdo=$videohtml;
}

// imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
// imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )

 $gfcds='';
 $gdfs=[];
 if (strpos(($imvgn . $imafn . $imqty . $imgds), '|') !== false) {
    $gdfs=explode(';', trim(explode('|', $imvgn . $imafn . $imqty . $imgds)[1]));
    for ($itf=0; $itf<sizeof($gdfs); $itf++) {
     if (trim($gdfs[$itf]) != '') {
      if (trim($gdfs[$itf]) == strtolower(trim($gdfs[$itf]))) {
      $gfcds.=chr(10) . " imagefilter(" . "$" . "oimo, IMG_FILTER_" . explode(" -FORMAT PDF",strtoupper(trim($gdfs[$itf])))[0] . "); " . chr(10);
      } else if (trim($gdfs[$itf]) == strtoupper(trim($gdfs[$itf]))) {
      $gfcds.=chr(10) . " image" . explode(" -format pdf",explode(',',explode(" ",strtolower(trim($gdfs[$itf])))[0])[0])[0] . "(" . "$" . "oimo, IMG_" . explode(" -FORMAT PDF",str_replace(" ","_",strtoupper(trim(  str_replace(explode(' ',$gdfs[$itf])[0] . ' ','',$gdfs[$itf]))[0]   ))) . "); " . chr(10);
      } else if (strpos(strtoupper(trim($gdfs[$itf])), "SCALE") !== false) {
      $gfcds.=chr(10) . " $" . "oimo=image" . explode(" -format pdf",explode(',',explode(" ",strtolower(trim($gdfs[$itf])))[0])[0])[0] . "(" . "$" . "oimo" . explode(" -format pdf",str_replace(" ","_",(trim(  str_replace(explode(',',explode(" ",(trim($gdfs[$itf])))[0])[0],'',$gdfs[$itf]))[0]   ))) . "); " . chr(10);
      } else if (strpos(strtoupper(trim($gdfs[$itf])), "COPY") === false) {
      $gfcds.=chr(10) . " image" . explode(" -format pdf",explode(',',explode(" ",strtolower(trim($gdfs[$itf])))[0])[0])[0] . "(" . "$" . "oimo" . explode(" -format pdf",str_replace(" ","_",(trim(  str_replace(explode(',',explode(" ",(trim($gdfs[$itf])))[0])[0],'',$gdfs[$itf]))[0]   ))) . "); " . chr(10);
      } else {
      $gfcds.=chr(10) . " image" . explode(" -format pdf",explode(',',explode(" ",strtolower(trim($gdfs[$itf])))[0])[0])[0] . "(" . "$" . "oimo" . "," . "$" . "oimo" . explode("," . "$" . "oimo", $gdfs[$itf])[1] . "); " . chr(10);
      }
     }
    }
 }

$agcount=1;

$afterif1="";
$afterif2="";
if (isset($_POST['outpdf']) || isset($_GET['outpdf'])) {
  $afterif1="\n  copy(\$sofarout,$thetemp . 'imtmp' . substr(('0000' . \$agcount),-3,3) . '.' . \$extis); \n";
  if ($sleept == '' || 1 == 12) {
  $afterif2="\n  if ('preview' == 'preview') { exec('rm -f ' . $thetemp . 'imtmp0*.pdf');  \n";
  } else {
  $afterif2="\n  if ('preview' == 'preview') { exec('rm -f ' . $thetemp . 'imtmJUNKp0*.pdf');  \n";
  }
  if ($sleept == "") { $afterif2.="\n  exec('rm -f " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "animegif.pdf');  \n"; }
  if ($sleept == '') {
  $afterif2.="\n if (file_exists('imtmp001.jpg')) { exec('" . $immogpath . "convert imtmp0*.' . str_replace('jpeg','jp*',\$extis) . ' ' . $thetemp . 'imtmp000.pdf'); } else { exec('" . $immogpath . "convert " . $thetemp . "imtmp0*.' . str_replace('jpeg','jp*',\$extis) . ' ' . $thetemp . 'imtmp000.pdf'); } \n " . $sleept . " \n if (file_exists(thet($thetemp) . 'imtmp000.pdf')) { copy($thetemp . 'imtmp000.pdf','" . dirname(__FILE__) . DIRECTORY_SEPARATOR . "animegif.pdf'); }  \n if (file_exists(thet($thetemp) . 'imtmp000.pdf')) { if (1 == 7) { exec('rm -f " . $thetemp . "imtmp0*.*[gGmMiI]*'); } } } \n";
  } else {
  $afterif2.="\n  exec('" . $immogpath . "convert " . $thetemp . "imtmp0*.' . str_replace('jpeg','jp*',\$extis) . ' ' . $thetemp . 'imtmp000.pdf');   \n " . $sleept . " \n if (file_exists(thet($thetemp) . 'imtmp000.pdf')) { copy($thetemp . 'imtmp000.pdf','" . dirname(__FILE__) . DIRECTORY_SEPARATOR . "animegif.pdf'); }  \n if (file_exists(thet($thetemp) . 'imtmp000.pdf')) { exec('rm -f " . $thetemp . "imtmp0*.*[gGmMiI]*'); } } \n";
  }
  
  //$afterif2="";
}

$agifphp="<?php

header ('Content-type:image/gif');
include('GIFEncoder.class.php');
 
 \$jndexo=1;
 \$kndexo=1;

 \$randomizesofar='';
 \$randomizematch='';
 \$randomizeloopcnt=0;
 \$randomizelooptotal=" . $rlt . ";
 
 \$tp='';
 \$thetemp='" . $theztemp . "';

 \$imvgn='" . $imvgn . "'; /" . "/ vignette factor 
 \$imafn='" . $imafn . "'; /" . "/ affine transformation 
 \$imqty='" . $imqty . "'; /" . "/ image conversion and/or quality RE jpeg 
 \$imgds='" . $imgds . "'; /" . "/ GD filters 
 \$extis='*[GgMmIi]*';

 \$prearr=['prearr'" . $prepre . "];
 \$aftarr=['aftarr'" . $aftaft . "];

 \$iappliedto='" . $iappliedto . "'; /" . "/ Applied to list
 \$agcount=" . $agcount . "; /" . "/ Current slide number, starting with 1
 
 function prebacktotmp(\$ingdo, \$inexto, \$indexo) {
   global \$thetemp, \$prearr, \$kndexo;
   \$indexo=\$kndexo;
   if (sizeof(\$prearr) > \$indexo) {
     if (strpos(strtolower(\$inexto), 'jp') !== false) {
      if (file_exists(\$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . 'jpeg')) {
       imagejpeg(\$ingdo, \$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . '.jpeg', 70);
      } else {
       imagejpeg(\$ingdo, \$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . '.jpg', 70);
      }
     } else if (strpos(strtolower(\$inexto), 'bmp') !== false) {
      imagebmp(\$ingdo, \$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . '.bmp');
     } else if (strpos(strtolower(\$inexto), 'png') !== false) {
      imagepng(\$ingdo, \$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . '.png');
     } else if (strpos(strtolower(\$inexto), 'gif') !== false) {
      imagegif(\$ingdo, \$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . '.gif');
     }
   }
   \$kndexo++;
   return \$ingdo;
 }
 
 function ourimagejpeg(\$p1, \$p2, \$p3) {
   global \$thetemp, \$tp;
   if (strlen(\$tp) == 0) {
     if (file_exists(str_replace(\$thetemp . '','',\$p2))) {
       unlink(str_replace(\$thetemp . '','',\$p2));
     }
     if (file_exists(\$thetemp . '' . str_replace(\$thetemp . '','',\$p2))) {
       unlink(\$thetemp . '' . str_replace(\$thetemp . '','',\$p2));
     }
     imagejpeg(\$p1, str_replace(\$thetemp . '','',\$p2), \$p3);
     //copy(str_replace(\$thetemp . '','',\$p2),\$thetemp . '' . str_replace(\$thetemp . '','',\$p2));
   } else {
     if (file_exists(\$p2)) {
       unlink(\$p2);
     }
     imagejpeg(\$p1, \$p2, \$p3);
   }
 }
 
 function backtotmp(\$ingdo, \$inexto, \$indexo) {
   global \$thetemp, \$aftarr, \$jndexo;
   \$indexo=\$jndexo;
   if (sizeof(\$aftarr) > \$indexo) {
     if (strpos(strtolower(\$inexto), 'jp') !== false) {
      if (file_exists(\$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . 'jpeg')) {
       imagejpeg(\$ingdo, \$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . '.jpeg', 70);
      } else {
       imagejpeg(\$ingdo, \$thetemp . 'imtmp' . substr(('0000' . \$jndexo),-3,3) . '.jpg', 70);
      }
     } else if (strpos(strtolower(\$inexto), 'bmp') !== false) {
      imagebmp(\$ingdo, \$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . '.bmp');
     } else if (strpos(strtolower(\$inexto), 'png') !== false) {
      imagepng(\$ingdo, \$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . '.png');
     } else if (strpos(strtolower(\$inexto), 'gif') !== false) {
      imagegif(\$ingdo, \$thetemp . 'imtmp' . substr(('0000' . \$indexo),-3,3) . '.gif');
     }
   }
   \$jndexo++;
   return \$ingdo;
 }

 // seed with microseconds ... thanks to https://www.php.net/manual/en/function.srand.php
function make_seed() {
  list(\$usec, \$sec) = explode(' ', microtime());
  return \$sec + \$usec * 1000000;
}

function ourimagecreatefromstring(\$inidis) {
global \$thetemp, \$imvgn, \$imafn, \$imqty, \$imgds, \$gfcds, \$agcount, \$extis;
  if ((\$imvgn . \$imafn . \$imqty . \$imgds) != '' && strpos(\$inidis, ';base64,') !== false) {
    \$extis=str_replace('jpeg','jpg',explode('/', explode(';base64,', \$inidis)[0])[1]);
    \$inextis=\$extis;
    \$sofarout=\$thetemp . 'imtmp.' . \$extis; 
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       unlink(\$imfilename);  
    }
    file_put_contents(\$sofarout, base64_encode(explode(';base64,', \$inidis)[1]));
    \$fzis=filesize(\$sofarout); " . $afterif1 . "
    if (trim(explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0]) != '') {
    exec('" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    }
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       if (filesize(\$imfilename) != \$fzis) {  // strpos(\$imfilename, '.' . \$extis) === false || 
         \$sofarout=\$imfilename; 
         \$extis=explode('.', \$imfilename)[1]; " . $afterif1 . "  
       }
    }
    \$agcount++;
    \$oimo=null;
    if (strtolower(\$extis) == 'png') {
      \$oimo=imagecreatefrompng(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'bmp') {
      \$oimo=imagecreatefrombmp(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'gif') {
      \$oimo=imagecreatefromgif(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strpos(strtolower(\$extis), 'jp') !== false) {
      \$oimo=imagecreatefromjpeg(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } 
    if (\$oimo) { return prebacktotmp(\$oimo, \$extis, \$agcount); }
  } else if ((\$imvgn . \$imafn . \$imqty . \$imgds) != '') {
    \$extis=str_replace('jpeg','jpg','" . $inextis . "');
    \$inextis=\$extis;
    \$sofarout=\$thetemp . 'imtmp.' . \$extis;
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       unlink(\$imfilename);  
    }
    file_put_contents(\$sofarout, \$inidis);
    \$fzis=filesize(\$sofarout); " . $afterif1 . "
    if (strpos(strtolower((\$imvgn . \$imafn . \$imqty . \$imgds)), '-format ') === false) { \$imvgn.=' -format " . str_replace('jpg','jpeg',$inextis) . " ';  }
    if (trim(explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0]) != '') {
    //file_put_contents('last.cmd','" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    exec('" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    }
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       if (filesize(\$imfilename) != \$fzis) {  // strpos(\$imfilename, '.' . \$extis) === false) { 
         \$sofarout=\$imfilename; 
         \$extis=explode('.', \$imfilename)[1];" . $afterif1 . "  
       }
    }
    \$agcount++;
    \$oimo=null;
    if (strtolower(\$extis) == 'png') {
      \$oimo=imagecreatefrompng(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'bmp') {
      \$oimo=imagecreatefrombmp(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'gif') {
      \$oimo=imagecreatefromgif(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strpos(strtolower(\$extis), 'jp') !== false) {
      \$oimo=imagecreatefromjpeg(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } 
    if (\$oimo) { return prebacktotmp(\$oimo, \$extis, \$agcount); }
  } 
  return imagecreatefromstring(\$inidis);
}

function ourimagecreatefromjpeg(\$inidis) {
global \$thetemp, \$imvgn, \$imafn, \$imqty, \$imgds, \$gfcds, \$agcount, \$extis;
  if ((\$imvgn . \$imafn . \$imqty . \$imgds) != '') {
    \$extis='jpg';
    \$inextis=\$extis;
    \$sofarout=\$thetemp . 'imtmp.' . \$extis;
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       unlink(\$imfilename);  
    }
    file_put_contents(\$sofarout, file_get_contents(\$inidis));
    \$fzis=filesize(\$sofarout); " . $afterif1 . "
    if (trim(explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0]) != '') {
    //file_put_contents('last.cmd','" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    exec('" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    }
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       if (filesize(\$imfilename) != \$fzis) {  // strpos(\$imfilename, '.' . \$extis) === false) { 
         \$sofarout=\$imfilename; 
         \$extis=explode('.', \$imfilename)[1];  " . $afterif1 . " 
       }
    }
    \$agcount++;
    \$oimo=null;
    if (strtolower(\$extis) == 'png') {
      \$oimo=imagecreatefrompng(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'bmp') {
      \$oimo=imagecreatefrombmp(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'gif') {
      \$oimo=imagecreatefromgif(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strpos(strtolower(\$extis), 'jp') !== false) {
      \$oimo=imagecreatefromjpeg(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } 
    if (\$oimo) { return prebacktotmp(\$oimo, \$extis, \$agcount); }
  } 
  return imagecreatefromjpeg(\$inidis);
}

function ourimagecreatefrompng(\$inidis) {
global \$thetemp, \$imvgn, \$imafn, \$imqty, \$imgds, \$gfcds, \$agcount, \$extis;
  if ((\$imvgn . \$imafn . \$imqty . \$imgds) != '') {
    \$extis='png';
    \$inextis=\$extis;
    \$sofarout=\$thetemp . 'imtmp.' . \$extis;
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       unlink(\$imfilename);  
    }
    file_put_contents(\$sofarout, file_get_contents(\$inidis));
    \$fzis=filesize(\$sofarout); " . $afterif1 . "
    if (trim(explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0]) != '') {
    //file_put_contents('last.cmd','" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    exec('" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    }
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       if (filesize(\$imfilename) != \$fzis) {  // strpos(\$imfilename, '.' . \$extis) === false) { 
         \$sofarout=\$imfilename; 
         \$extis=explode('.', \$imfilename)[1];  " . $afterif1 . " 
       }
    }
    \$agcount++;
    \$oimo=null;
    if (strtolower(\$extis) == 'png') {
      \$oimo=imagecreatefrompng(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'bmp') {
      \$oimo=imagecreatefrombmp(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'gif') {
      \$oimo=imagecreatefromgif(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strpos(strtolower(\$extis), 'jp') !== false) {
      \$oimo=imagecreatefromjpeg(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } 
    if (\$oimo) { return prebacktotmp(\$oimo, \$extis, \$agcount); }
  } 
  return imagecreatefrompng(\$inidis);
}

function ourimagecreatefromgif(\$inidis) {
global \$thetemp, \$imvgn, \$imafn, \$imqty, \$imgds, \$gfcds, \$agcount, \$extis;
  if ((\$imvgn . \$imafn . \$imqty . \$imgds) != '') {
    \$extis='gif';
    \$inextis=\$extis;
    \$sofarout=\$thetemp . 'imtmp.' . \$extis;
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       unlink(\$imfilename);  
    }
    file_put_contents(\$sofarout, file_get_contents(\$inidis));
    \$fzis=filesize(\$sofarout); " . $afterif1 . "
    if (trim(explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0]) != '') {
    //file_put_contents('last.cmd','" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    exec('" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    }
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       if (filesize(\$imfilename) != \$fzis) {  // strpos(\$imfilename, '.' . \$extis) === false) { 
         \$sofarout=\$imfilename; 
         \$extis=explode('.', \$imfilename)[1];   " . $afterif1 . "
       }
    }
    \$agcount++;
    \$oimo=null;
    if (strtolower(\$extis) == 'png') {
      \$oimo=imagecreatefrompng(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'bmp') {
      \$oimo=imagecreatefrombmp(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'gif') {
      \$oimo=imagecreatefromgif(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strpos(strtolower(\$extis), 'jp') !== false) {
      \$oimo=imagecreatefromjpeg(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } 
    if (\$oimo) { return prebacktotmp(\$oimo, \$extis, \$agcount); }
  } 
  return imagecreatefromgif(\$inidis);
}

function ourimagecreatefrombmp(\$inidis) {
global \$thetemp, \$imvgn, \$imafn, \$imqty, \$imgds, \$gfcds, \$agcount;
  if ((\$imvgn . \$imafn . \$imqty . \$imgds) != '') {
    \$extis='bmp';
    \$inextis=\$extis;
    \$sofarout=\$thetemp . 'imtmp.' . \$extis;
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       unlink(\$imfilename);  
    }
    file_put_contents(\$sofarout, file_get_contents(\$inidis));
    \$fzis=filesize(\$sofarout); " . $afterif1 . "
    if (trim(explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0]) != '') {
    //file_put_contents('last.cmd','" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    exec('" . $immogpath . "mogrify ' . explode('|', \$imvgn . \$imafn . \$imqty . \$imgds)[0] . ' ' . \$thetemp . 'imtmp.' . \$extis);
    }
    foreach (glob(\$thetemp . 'imtmp.*') as \$imfilename) {
       if (filesize(\$imfilename) != \$fzis) {  // strpos(\$imfilename, '.' . \$extis) === false) { 
         \$sofarout=\$imfilename; 
         \$extis=explode('.', \$imfilename)[1];  " . $afterif1 . " 
       }
    }
    \$oimo=null;
    if (strtolower(\$extis) == 'png') {
      \$oimo=imagecreatefrompng(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'bmp') {
      \$oimo=imagecreatefrombmp(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strtolower(\$extis) == 'gif') {
      \$oimo=imagecreatefromgif(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } else if (strpos(strtolower(\$extis), 'jp') !== false) {
      \$oimo=imagecreatefromjpeg(\$thetemp . 'imtmp.' . \$extis); " . $gfcds . "
    } 
    if (\$oimo) { return prebacktotmp(\$oimo, \$extis, \$agcount); }
  } 
  return imagecreatefrombmp(\$inidis);
}

function getnext() {
   global \$randomizesofar, \$randomizematch, \$randomizeloopcnt, \$randomizelooptotal;
   \$proposed=\$randomizelooptotal;
   while (\$proposed >= \$randomizelooptotal || strpos(\$randomizesofar, ',' . \$proposed . ',') !== false) {
    \$proposed=rand(0, \$randomizelooptotal);
   }
   \$randomizesofar.=',' . \$proposed . ',';
   return \$proposed;
}

function utf8(\$num) {
    if(\$num<=0x7F)       return chr(\$num);
    if(\$num<=0x7FF)      return chr((\$num>>6)+192).chr((\$num&63)+128);
    if(\$num<=0xFFFF)     return chr((\$num>>12)+224).chr(((\$num>>6)&63)+128).chr((\$num&63)+128);
    if(\$num<=0x1FFFFF)   return chr((\$num>>18)+240).chr(((\$num>>12)&63)+128).chr(((\$num>>6)&63)+128).chr((\$num&63)+128);
    return '';
}

function uniord(\$c) {
    \$ord0 = ord(\$c{0}); if (\$ord0>=0   && \$ord0<=127) return \$ord0;
    \$ord1 = ord(\$c{1}); if (\$ord0>=192 && \$ord0<=223) return (\$ord0-192)*64 + (\$ord1-128);
    \$ord2 = ord(\$c{2}); if (\$ord0>=224 && \$ord0<=239) return (\$ord0-224)*4096 + (\$ord1-128)*64 + (\$ord2-128);
    \$ord3 = ord(\$c{3}); if (\$ord0>=240 && \$ord0<=247) return (\$ord0-240)*262144 + (\$ord1-128)*4096 + (\$ord2-128)*64 + (\$ord3-128);
    return false;
}

 function retemoji(\$stringin) {
   return utf8(hexdec(str_replace(\"U+\",\"\", \$stringin))); //html_entity_decode(preg_replace(\"/U\+([0-9A-F]{4})/\", \"&#x\\\\1;\", \$stringin), ENT_NOQUOTES, 'UTF-8');
 }

 srand(make_seed());
 
" . $rltprefix;

$eachone=" if (\$randomizematch == '' || \$randomizematch == \"\$randomizeloopcnt\") {

\$progtext='';
\$text='';

// Open the first source image and add the text.
\$image = imagecreatefromjpeg('source01.jpg');
" . $setwh . "
\$text_color = imagecolorallocate(\$image, " . $r200 . ", " . $g200 . ", " . $b200 . ");
\$white = imagecolorallocatealpha(\$image, 255, 255, 255, 0);
\$black = imagecolorallocatealpha(\$image, 254, 254, 254, 0);
 if (98 == 97) { \$progtext=\$progtext; } 
imagestring(\$image, 5, 5, 5,  \$text, \$text_color);
if (\$progtext != '') {
  if (strpos(\$progtext, '  ') !== false) {
  imagettftext(\$image, 6, 0, (strlen(\$text) * 12), 21, \$text_color, realpath('DejaVuSansMono.ttf'), \$progtext);
  } else if (strpos(\$progtext, ' ') !== false) {
  imagettftext(\$image, 10, 0, (strlen(\$text) * 12), 21, \$text_color, realpath('DejaVuSansMono.ttf'), \$progtext);
  } else {
  imagettftext(\$image, 20, 0, (strlen(\$text) * 12), 21, \$text_color, realpath('DejaVuSansMono.ttf'), \$progtext);
  }
}

\$image=backtotmp(\$image, \$extis, \$agcount);

// Generate GIF from the $image
// We want to put the binary GIF data into an array to be used later,
//  so we use the output buffer.
ob_start();
imagegif(\$image);
\$frames[]=ob_get_contents();
\$framed[]=40; // Delay in the animation.
ob_end_clean();
// And again..
\$agcount++;
}
";

$eachonestring=" if (\$randomizematch == '' || \$randomizematch == \"\$randomizeloopcnt\") {

\$progtext='';
\$text='';

// Open the first source image and add the text.
\$underimage = imagecreatefromjpeg('source01.jpg');
\$old_width  = imagesx(\$underimage);
\$old_height = imagesy(\$underimage);
\$image = imagecreatetruecolor(" . $setwhtwo . ");
\$white = imagecolorallocatealpha(\$image, 255, 255, 255, 0);
\$black = imagecolorallocatealpha(\$image, 254, 254, 254, 0);
imagefill(\$image, 0, 0, \$black);
imagecopyresampled(\$image, \$underimage, 0, 0, 0, 0, " . $setwhtwo . ", \$old_width, \$old_height); 
imagedestroy(\$underimage);
imagecolortransparent(\$image, \$black);
\$text_color = imagecolorallocate(\$image, " . $r200 . ", " . $g200 . ", " . $b200 . ");
 if (98 == 97) { \$progtext=\$progtext; } 
imagestring(\$image, 5, 5, 5,  \$text, \$text_color);
if (\$progtext != '') {
  try {
  if (function_exists('imagettftext')) {
  if (strpos(\$progtext, '  ') !== false) {
  imagettftext(\$image, 6, 0, (strlen(\$text) * 12), 21, \$text_color, realpath('DejaVuSansMono.ttf'), \$progtext);
  } else if (strpos(\$progtext, ' ') !== false) {
  imagettftext(\$image, 10, 0, (strlen(\$text) * 12), 21, \$text_color, realpath('DejaVuSansMono.ttf'), \$progtext);
  } else {
  imagettftext(\$image, 20, 0, (strlen(\$text) * 12), 21, \$text_color, realpath('DejaVuSansMono.ttf'), \$progtext);
  }
  }
  } catch (Exception \$e) {  }
}

\$image=backtotmp(\$image, \$extis, \$agcount);

// Generate GIF from the $image
// We want to put the binary GIF data into an array to be used later,
//  so we use the output buffer.
ob_start();
imagegif(\$image);
\$frames[]=ob_get_contents();
\$framed[]=40; // Delay in the animation.
ob_end_clean();

// And again..
}
";

if (isset($_GET['red']) && isset($_GET['green']) && isset($_GET['blue'])) {
$prestfle="<input type=hidden name=red value='" . $_GET['red'] . "'></input><input type=hidden name=green value='" . $_GET['green'] . "'></input><input type=hidden name=blue value='" . $_GET['blue'] . "'></input>";
$zzz="," . $_GET['red'] . "," . $_GET['green'] . "," . $_GET['blue'] . ",";
$lastbit="
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin');
echo \$gif->GetAnimation();

?>
"; 
} else if (isset($_POST['red']) && isset($_POST['green']) && isset($_POST['blue'])) {
$prestfle="<input type=hidden name=red value='" . $_POST['red'] . "'></input><input type=hidden name=green value='" . $_POST['green'] . "'></input><input type=hidden name=blue value='" . $_POST['blue'] . "'></input>";
$zzz="," . $_POST['red'] . "," . $_POST['green'] . "," . $_POST['blue'] . ",";
$lastbit="
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin');
echo \$gif->GetAnimation();

?>
"; 
} else if (isset($_GET['background-color'])) {
$colis=str_replace('#','',urldecode($_GET['background-color']));
if ($colis != "") {
$cn=color_name_to_hex($colis);
if ((strcmp(substr($colis,0,1),'0') < 0 || strcmp(substr($colis,0,1),'9') > 0) && $cn != $colis) {
$prestfle="<input type=hidden name=background-color value='" . urldecode($_GET['background-color']) . "'></input>";
$zzz="," . $ris . "," . $gis . "," . $bis . ",";
$lastbit="
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin');
echo \$gif->GetAnimation();

?>
"; 
} else if (strlen($colis) == 6) {
$prestfle="<input type=hidden name=background-color value='" . urldecode($_GET['background-color']) . "'></input>";
$zzz="," . hexdec(substr($colis,0,2)) . "," . hexdec(substr($colis,2,2)) . "," . hexdec(substr($colis,4,2)) . ",";
$lastbit="
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin');
echo \$gif->GetAnimation();

?>
"; 
} else if (strpos(strtolower($colis),'rgb') !== false) {
$prestfle="<input type=hidden name=background-color value='" . urldecode($_GET['background-color']) . "'></input>";
$zzz="," . explode(",",str_replace(")",",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis)))))[0] . "," . explode(",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis))))[1] . "," . explode(",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis))))[2] . ",";
$lastbit="
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin');
echo \$gif->GetAnimation();

?>
"; 
} else {
$lastbit="
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2,0,0,0,'bin');
echo \$gif->GetAnimation();

?>
"; 
}
}

} else if (isset($_POST['background-color'])) {
$colis=str_replace('#','',urldecode($_POST['background-color']));
if ($colis != "") {
$cn=color_name_to_hex($colis);
if ((strcmp(substr($colis,0,1),'0') < 0 || strcmp(substr($colis,0,1),'9') > 0) && $cn != $colis) {
$prestfle="<input type=hidden name=background-color value='" . urldecode($_POST['background-color']) . "'></input>";
$zzz="," . $ris . "," . $gis . "," . $bis . ",";
$lastbit="
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin');
echo \$gif->GetAnimation();

?>
"; 
} else if (strlen($colis) == 6) {
$prestfle="<input type=hidden name=background-color value='" . urldecode($_POST['background-color']) . "'></input>";
$zzz="," . hexdec(substr($colis,0,2)) . "," . hexdec(substr($colis,2,2)) . "," . hexdec(substr($colis,4,2)) . ",";
$lastbit="
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin');
echo \$gif->GetAnimation();

?>
"; 


} else if (strpos(strtolower($colis),'rgb') !== false) {
$prestfle="<input type=hidden name=background-color value='" . urldecode($_POST['background-color']) . "'></input>";
$zzz="," . explode(",",str_replace(")",",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis)))))[0] . "," . explode(",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis))))[1] . "," . explode(",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis))))[2] . ",";
$lastbit="
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin');
echo \$gif->GetAnimation();

?>
"; 



} else {
$lastbit="
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2,0,0,0,'bin');
echo \$gif->GetAnimation();

?>
"; 
}
}
} else {
$lastbit=$afterif2 . "
// Generate the animated gif and output to screen.
\$gif = new GIFEncoder(\$frames,\$framed,0,2,0,0,0,'bin');
echo \$gif->GetAnimation();

?>
"; 
}

$lastbitfrom="echo \$gif->GetAnimation();";
$qww=" && 1 == 2";
$qqw=server_remote_addr();
if (isset($_GET['outpdf']) || isset($_POST['outpdf'])) { $qww=" || 1 == 1";  }
$lastbitto="\$fp = fopen('animegif.gif', 'w'); 
\$data = \$gif->GetAnimation(); 
\$dataUri = 'data:image/gif;base64,' . base64_encode(\$data);
\$thetemp='" . $thetemp . "'; 
fwrite(\$fp, \$data); 
fclose(\$fp);
\$fp = fopen('animegif.html', 'w'); 
if ((file_exists('animegif.pdf') || file_exists(\$thetemp . 'imtmp000.pdf'))" . $qww . ") {
if (file_exists('animegif.pdf')) {
  copy('animegif.pdf','" . $qqw . "_animegif.pdf');
} else if (file_exists(\$thetemp . 'imtmp000.pdf')) {
  copy(\$thetemp . 'imtmp000.pdf','animegif.pdf');
  copy(\$thetemp . 'imtmp000.pdf','" . $qqw . "_animegif.pdf');
}
fwrite(\$fp, '<!doctype html><html><head><script type=text/javascript> function checkp(iois) { if (iois.src.indexOf(\".pdf\") != -1) { if (iois != null) { var aconto = (iois.contentWindow || iois.contentDocument); if (aconto != null) { if (aconto.document) { aconto = aconto.document; } if (aconto.body != null) { if (aconto.body.innerHTML.indexOf(\">Not found\") == -1) { document.getElementById(\"dsrci\").innerHTML=\"<object style=width:100%;height:900px; type=application/pdf data=./animegif.pdf></object>\"; } else { iois.src=iois.src.split(\"?\")[0] + \"?r=\" + Math.floor(Math.random() * 19875643); } } } } } } </script></head><body><span id=sitopa></span><h1 id=itopa>PDF version below</h1><br><div id=dsrci style=\"width:100%;height:900px;\"><iframe id=srci onload=checkp(this); style=\"width:100%;height:900px;\" data-type=\"application/pdf\" src=\"animegif.pdf\"></iframe></div><h1>Data URI version below</h1><br><h4> ... via web browser (Windows right click, Mac OS X two finger gesture) ...</h4><br><img src=' . \"\\n\" . \$dataUri . \"\\n\" . ' title=DataURI></img></body></html>'); 
if (file_exists(\$thetemp . 'imtmp000.pdf')) { unlink(\$thetemp . 'imtmp000.pdf'); }
} else {
fwrite(\$fp, '<!doctype html><html><body><h1>Data URI version below</h1><br><h4> ... via web browser (Windows right click, Mac OS X two finger gesture) ...</h4><br><img src=' . \"\\n\" . \$dataUri . \"\\n\" . ' title=DataURI></img></body></html>'); 
}
fclose(\$fp);";
$agtext="";
$url="";

// converts an html color name to a hex color value
// if the input is not a color name, the original value is returned
// http://wpCodeSnippets.info

function color_name_to_hex($color_name) { // thanks to https://stackoverflow.com/questions/2553566/how-to-convert-a-string-color-to-its-hex-code-or-rgb-value
    global $ris, $gis, $bis;
    // standard 147 HTML color names
    $colors  =  array(
        'aliceblue'=>'F0F8FF',
        'antiquewhite'=>'FAEBD7',
        'aqua'=>'00FFFF',
        'aquamarine'=>'7FFFD4',
        'azure'=>'F0FFFF',
        'beige'=>'F5F5DC',
        'bisque'=>'FFE4C4',
        'black'=>'000000',
        'blanchedalmond '=>'FFEBCD',
        'blue'=>'0000FF',
        'blueviolet'=>'8A2BE2',
        'brown'=>'A52A2A',
        'burlywood'=>'DEB887',
        'cadetblue'=>'5F9EA0',
        'chartreuse'=>'7FFF00',
        'chocolate'=>'D2691E',
        'coral'=>'FF7F50',
        'cornflowerblue'=>'6495ED',
        'cornsilk'=>'FFF8DC',
        'crimson'=>'DC143C',
        'cyan'=>'00FFFF',
        'darkblue'=>'00008B',
        'darkcyan'=>'008B8B',
        'darkgoldenrod'=>'B8860B',
        'darkgray'=>'A9A9A9',
        'darkgreen'=>'006400',
        'darkgrey'=>'A9A9A9',
        'darkkhaki'=>'BDB76B',
        'darkmagenta'=>'8B008B',
        'darkolivegreen'=>'556B2F',
        'darkorange'=>'FF8C00',
        'darkorchid'=>'9932CC',
        'darkred'=>'8B0000',
        'darksalmon'=>'E9967A',
        'darkseagreen'=>'8FBC8F',
        'darkslateblue'=>'483D8B',
        'darkslategray'=>'2F4F4F',
        'darkslategrey'=>'2F4F4F',
        'darkturquoise'=>'00CED1',
        'darkviolet'=>'9400D3',
        'deeppink'=>'FF1493',
        'deepskyblue'=>'00BFFF',
        'dimgray'=>'696969',
        'dimgrey'=>'696969',
        'dodgerblue'=>'1E90FF',
        'firebrick'=>'B22222',
        'floralwhite'=>'FFFAF0',
        'forestgreen'=>'228B22',
        'fuchsia'=>'FF00FF',
        'gainsboro'=>'DCDCDC',
        'ghostwhite'=>'F8F8FF',
        'gold'=>'FFD700',
        'goldenrod'=>'DAA520',
        'gray'=>'808080',
        'green'=>'008000',
        'greenyellow'=>'ADFF2F',
        'grey'=>'808080',
        'honeydew'=>'F0FFF0',
        'hotpink'=>'FF69B4',
        'indianred'=>'CD5C5C',
        'indigo'=>'4B0082',
        'ivory'=>'FFFFF0',
        'khaki'=>'F0E68C',
        'lavender'=>'E6E6FA',
        'lavenderblush'=>'FFF0F5',
        'lawngreen'=>'7CFC00',
        'lemonchiffon'=>'FFFACD',
        'lightblue'=>'ADD8E6',
        'lightcoral'=>'F08080',
        'lightcyan'=>'E0FFFF',
        'lightgoldenrodyellow'=>'FAFAD2',
        'lightgray'=>'D3D3D3',
        'lightgreen'=>'90EE90',
        'lightgrey'=>'D3D3D3',
        'lightpink'=>'FFB6C1',
        'lightsalmon'=>'FFA07A',
        'lightseagreen'=>'20B2AA',
        'lightskyblue'=>'87CEFA',
        'lightslategray'=>'778899',
        'lightslategrey'=>'778899',
        'lightsteelblue'=>'B0C4DE',
        'lightyellow'=>'FFFFE0',
        'lime'=>'00FF00',
        'limegreen'=>'32CD32',
        'linen'=>'FAF0E6',
        'magenta'=>'FF00FF',
        'maroon'=>'800000',
        'mediumaquamarine'=>'66CDAA',
        'mediumblue'=>'0000CD',
        'mediumorchid'=>'BA55D3',
        'mediumpurple'=>'9370D0',
        'mediumseagreen'=>'3CB371',
        'mediumslateblue'=>'7B68EE',
        'mediumspringgreen'=>'00FA9A',
        'mediumturquoise'=>'48D1CC',
        'mediumvioletred'=>'C71585',
        'midnightblue'=>'191970',
        'mintcream'=>'F5FFFA',
        'mistyrose'=>'FFE4E1',
        'moccasin'=>'FFE4B5',
        'navajowhite'=>'FFDEAD',
        'navy'=>'000080',
        'oldlace'=>'FDF5E6',
        'olive'=>'808000',
        'olivedrab'=>'6B8E23',
        'orange'=>'FFA500',
        'orangered'=>'FF4500',
        'orchid'=>'DA70D6',
        'palegoldenrod'=>'EEE8AA',
        'palegreen'=>'98FB98',
        'paleturquoise'=>'AFEEEE',
        'palevioletred'=>'DB7093',
        'papayawhip'=>'FFEFD5',
        'peachpuff'=>'FFDAB9',
        'peru'=>'CD853F',
        'pink'=>'FFC0CB',
        'plum'=>'DDA0DD',
        'powderblue'=>'B0E0E6',
        'purple'=>'800080',
        'red'=>'FF0000',
        'rosybrown'=>'BC8F8F',
        'royalblue'=>'4169E1',
        'saddlebrown'=>'8B4513',
        'salmon'=>'FA8072',
        'sandybrown'=>'F4A460',
        'seagreen'=>'2E8B57',
        'seashell'=>'FFF5EE',
        'sienna'=>'A0522D',
        'silver'=>'C0C0C0',
        'skyblue'=>'87CEEB',
        'slateblue'=>'6A5ACD',
        'slategray'=>'708090',
        'slategrey'=>'708090',
        'snow'=>'FFFAFA',
        'springgreen'=>'00FF7F',
        'steelblue'=>'4682B4',
        'tan'=>'D2B48C',
        'teal'=>'008080',
        'thistle'=>'D8BFD8',
        'tomato'=>'FF6347',
        'turquoise'=>'40E0D0',
        'violet'=>'EE82EE',
        'wheat'=>'F5DEB3',
        'white'=>'FFFFFF',
        'whitesmoke'=>'F5F5F5',
        'yellow'=>'FFFF00',
        'yellowgreen'=>'9ACD32');

    $color_name = strtolower($color_name);
    if (isset($colors[$color_name])) {
        $ris = hexdec(substr($colors[$color_name],0,2));
        $gis = hexdec(substr($colors[$color_name],2,2));
        $bis = hexdec(substr($colors[$color_name],4,2));
        return ('#' . $colors[$color_name]);
    } else {
        return ($color_name);
    }
}

function inhouseslideshow($uarray,$uarraydatauri) {
  global $agtext, $videocmd, $videopath, $videopref, $videoie, $fiext;
  if (sizeof($uarray) == 0) return "";
  if (file_exists($videopath . "ffmpeg" . $fiext)) {
   //file_put_contents('mn.mn',$videocmd);
   yourexec($videocmd); // exec("`which ffmpeg` " . explode("ffmpeg",$videocmd)[1]);
  } //else {
  //file_put_contents('xy.xy', 'not found for ' . $videocmd);
  //}
  //echo $videocmd;
  //exit;
  $sofar="<html> \n"; 
  $sofar.="<head><meta charset='utf-8'/> \n";
  $sofar.="<title>" . $agtext . " - via RJM Programming Slideshow Presentation</title> \n";
  $sofar.="<script type=\"text/javascript\"> \n";
  $sofar.="var smode = location.search.split('smode=')[1] ? location.search.split('smode=')[1].split('&')[0] : '1'; \n ";
  $sofar.="var ttl = ' ... click to have this slide stay longer'; \n";
  $sofar.="var nextone=0, inextone=1, jnextone=0; \n";
  $sofar.="var lastone=" . (-1 + sizeof($uarray)) . "; \n ";
  $sofar.="var haveseen=0; \n ";
  $sofar.="var aminterested=0, dt=''; \n ";
  $sofar.="var doit=1, uarraydatauri=[]; \n ";
  for ($ipo=0; $ipo<sizeof($uarraydatauri); $ipo++) {
  $sofar.=" uarraydatauri.push('" . $uarraydatauri[$ipo] . "'); \n ";
  }
  $sofar.="function onck(that) { \n ";
  $sofar.="  doit = 0; \n ";
  $sofar.="} \n ";
  $sofar.="function havealook(backto) { \n ";
  $sofar.="  if (smode == '0') { \n ";
  $sofar.="  if (backto == 0) location.href=documentURL.replace('smode=0','smode=1'); \n ";
  $sofar.="  document.getElementById('i' + nextone).src=uarraydatauri[jnextone]; \n";
  $sofar.="  document.title=dt + \" Slide \" + inextone + \" of \" + eval(lastone + 1); \n ";
  $sofar.="  if (dt == '') {  document.getElementById('myh1').innerHTML='Slideshow Data URI version below';  document.getElementById('som').innerHTML='Start of Movie'; dt=document.getElementById('i' + nextone).title; } else if (inextone == 1) { document.getElementById('som').innerHTML='Start of Movie';  } else { document.getElementById('som').innerHTML='';  }  \n ";
  $sofar.="  inextone=eval(eval(inextone % eval(1 + lastone)) + 1); jnextone=eval(-1 + inextone); \n ";
  $sofar.="  } else { \n ";
  $sofar.="  var thissrc=''; \n ";
  $sofar.="  var prefix=''; \n ";
  $sofar.="  if (doit == 0) { \n ";
  $sofar.="  doit = 1; \n ";
  $sofar.="  } else { \n ";
  $sofar.="  if (aminterested != 0 || backto == 0) { \n ";
  $sofar.="  var cit = document.getElementById('s0'); \n ";
  $sofar.="  if (nextone == lastone) { \n ";
  $sofar.="    thissrc = document.getElementById('i' + nextone).src; \n ";
  $sofar.="    cit.innerHTML = prefix + \"<img onclick='onck(this);' id='j\" + nextone + \"' src='\" + thissrc + \"' title='\" + document.getElementById('i' + nextone).title + ttl + \"' />\"; \n ";
  $sofar.="    nextone = 0; \n ";
  $sofar.="  } else { \n ";
  $sofar.="    thissrc = document.getElementById('i' + nextone).src; \n ";
  $sofar.="    if (backto != 0 && nextone == 0) { \n ";
  $sofar.="       prefix = 'Start of Movie: '; \n ";
  $sofar.="    } \n ";
  $sofar.="    cit.innerHTML = prefix + \"<img onclick='onck(this);' id='j\" + nextone + \"' src='\" + thissrc + \"' title='\" + document.getElementById('i' + nextone).title + ttl + \"' />\"; \n ";
  $sofar.="    nextone = nextone + 1; \n ";
  $sofar.="    if (nextone > 1) haveseen = 1; \n ";
  $sofar.="  } \n ";
  $sofar.="  if (backto == 0) { \n ";
  $sofar.="    nextone = backto; \n ";
  $sofar.="    aminterested = 1; \n ";
  $sofar.="  } \n ";
  $sofar.="  } \n ";
  $sofar.="  var nnext = eval(nextone + 0); \n ";
  $sofar.="  var llast = eval(lastone + 1); \n ";
  $sofar.="  if (nnext >= 1 && nnext <= llast) { \n ";
  $sofar.="    nnext = nnext; \n ";
  $sofar.="  } else if (prefix != '') { \n ";
  $sofar.="    nnext = 1;   \n ";
  $sofar.="  } else if (aminterested != 0 && haveseen == 1) { \n ";
  $sofar.="    nnext = llast; \n ";
  $sofar.="  } else if (aminterested != 0) { \n ";
  $sofar.="    nnext = 1; \n ";
  $sofar.="  } else if (nnext == 0) { \n ";
  $sofar.="    nnext = 1; \n ";
  $sofar.="  } \n ";
  $sofar.="  document.title=document.getElementById('i' + nextone).title + \" Slide \" + nnext + \" of \" + llast; \n ";
  $sofar.="  } \n ";
  $sofar.="  } \n ";
  $sofar.="} \n ";
  $sofar.="function ol() { \n ";

for ($iqw=1; $iqw<sizeof($uarray); $iqw++) {
    $sofar.=" if (smode != '0') document.getElementById('row').innerHTML+='<td><span style=\"color:red;font-size:14px;\"><b>--&gt;</b></span></td><td><img onclick=\"onck(this);\" id=\"i" . $iqw . "\" src=\"" . $uarray[$iqw] . "\" title=\"" . $agtext . "\" /></td>'; \n ";
}

  $sofar.="} \n ";
  $sofar.="window.setInterval(function(){havealook(1)},2000);  \n ";
  $sofar.="</script> \n ";
  $sofar.="<title>" . $agtext . "</title> \n ";
  $sofar.="</head> \n ";
  $sofar.="<body onload=\"document.title=document.title + ' ' + lastone; ol(); \"> \n ";
  $sofar.="<h1 id=myh1>Slideshow version below<h1><br><h4> ... optionally get content via web browser (Windows right click, Mac OS X two finger gesture) ... <span id=som></span></h4><br> \n ";
  $sofar.="<table> \n ";
  $sofar.="<tr id=row> \n ";
  $sofar.="<td><span id='s0'><a href='#' title=\"Movie'ize Here vs Follow Red Right Arrows with Bottom Scrollbar\" onclick='havealook(0);'>@</a></span><span style=\"color:red;font-size:14px;\"><b>--&gt;</b></span></td><td><img onclick=\"onck(this);\" id=\"i0\" src=\"" . $uarray[0] . "\" title=\"" . $agtext . "\" /></td> \n ";

//for ($iqw=1; $iqw<sizeof($uarray); $iqw++) {
//    $sofar.="<td><span style=\"color:red;font-size:14px;\"><b>--&gt;</b></span></td><td><img onclick=\"onck(this);\" id=\"i" . $iqw . "\" src=\"" . $uarray[$iqw] . "\" title=\"" . $agtext . "\" /></td> \n ";
//}

return $sofar . "</table>\n</body>\n</html>";
}

function jserver_remote_addr() {
    global $stfle;
    $rma = $_SERVER['REMOTE_ADDR'];
    $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
    // you can add different browsers with the same way ..
    if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua))
            $rma = '000000'.$rma;
    elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua))
            $rma = '00000'.$rma;
    elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua))
            $rma = '0000'.$rma;
    elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua))
            $rma = '000'.$rma;
    elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua))
            $rma = '00'.$rma;
    elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua))
            $rma = '0'.$rma;
    return str_replace(":", "_", $rma);
}

function ggserver_remote_addr() {
    global $stfle;
    if (isset($_POST['nicky'])) { return str_replace('+',' ',urldecode($_POST['nicky'])); }
    $rma = $_SERVER['REMOTE_ADDR'];
    $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
    // you can add different browsers with the same way ..
    if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua))
            $rma = '000000'.$rma;
    elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua))
            $rma = '00000'.$rma;
    elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua))
            $rma = '0000'.$rma;
    elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua))
            $rma = '000'.$rma;
    elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua))
            $rma = '00'.$rma;
    elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua))
            $rma = '0'.$rma;
    if (isset($_GET['outfile'])) {
      if (urldecode($_GET['outfile']) != "") {
        $stfle='<input type=hidden name=outfile id=outfile value="' . urldecode($_GET['outfile']) . '"></input> ';
        return urldecode($_GET['outfile']);
      }
    } else if (isset($_POST['outfile'])) {
      if (urldecode($_POST['outfile']) != "") {
        $stfle='<input type=hidden name=outfile id=outfile value="' . urldecode($_POST['outfile']) . '"></input> ';
        return urldecode($_POST['outfile']);
      }
    }
//    if (substr(strtoupper(getOS()),0,3) === 'WIN' && (isset($_POST['video']) || isset($_GET['video']))) { return 'gg'; }
    return 'gg' . str_replace(".","",str_replace("_", "",str_replace("0", "a",str_replace("1", "b",str_replace("2", "c",str_replace("3", "d",str_replace("4", "e",str_replace("5", "f",str_replace("6", "g",str_replace("7", "h",str_replace("8", "i",str_replace("9", "j",str_replace(":", "_", $rma)))))))))))));
}

function server_remote_addr() {
    global $stfle;
    if (isset($_POST['nickz'])) { return str_replace('+',' ',urldecode($_POST['nickz'])); }
    $rma = $_SERVER['REMOTE_ADDR'];
    $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
    // you can add different browsers with the same way ..
    if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua))
            $rma = '000000'.$rma;
    elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua))
            $rma = '00000'.$rma;
    elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua))
            $rma = '0000'.$rma;
    elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua))
            $rma = '000'.$rma;
    elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua))
            $rma = '00'.$rma;
    elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua))
            $rma = '0'.$rma;
    if (isset($_GET['outfile'])) {
      if (urldecode($_GET['outfile']) != "") {
        $stfle='<input type=hidden name=outfile id=outfile value="' . urldecode($_GET['outfile']) . '"></input> ';
        return urldecode($_GET['outfile']);
      }
    } else if (isset($_POST['outfile'])) {
      if (urldecode($_POST['outfile']) != "") {
        $stfle='<input type=hidden name=outfile id=outfile value="' . urldecode($_POST['outfile']) . '"></input> ';
        return urldecode($_POST['outfile']);
      }
    }
    return str_replace(":", "_", $rma);
}

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 ingif($gp) {
  global $foundtitle, $wtsuffix, $atext, $filteretc, $enumber, $ow, $oh, $owend, $ohend, $diffow, $diffoh, $delay, $vdy;
  $indelay=$delay;
  if (isset($_GET['delay'])) { $indelay=str_replace(" ","+",urldecode($_GET['delay'])); }
  if (isset($_POST['delay'])) { $indelay=str_replace(" ","+",urldecode($_POST['delay'])); }
  if (strpos($indelay, ",") !== false) {
   if (strpos($gp, ("framed" . "[" . "]=" . $vdy . ";")) !== false) {
     $gpf=explode("framed" . "[" . "]=" . $vdy . ";", $gp)[0];
     $gp=str_replace($gpf . "framed" . "[" . "]=" . $vdy . ";", $gpf . "framed" . "[" . "] = " . $vdy . ";", $gp); //, 1);
     $delaysare=explode(",", $indelay);
     for ($iuy=1; $iuy<sizeof($delaysare); $iuy++) {
      if (strpos($gp, ("framed" . "[" . "]=" . $vdy . ";")) !== false) {
       $gpf=explode("framed" . "[" . "]=" . $vdy . ";", $gp)[0];
       if (trim($delaysare[$iuy]) == '') {
       $gp=str_replace($gpf . "framed" . "[" . "]=" . $vdy . ";", $gpf . "framed" . "[" . "] = " . $vdy . ";", $gp); //, 1);
       } else if (strpos($delaysare[$iuy], "+") !== false) {
       $delaysare[$iuy]='' . ($delaysare[-1 + $iuy] + substr($delaysare[$iuy],1));
       $gp=str_replace($gpf . "framed" . "[" . "]=" . $vdy . ";", $gpf . "framed" . "[" . "] = " . $delaysare[$iuy] . ";", $gp); //, 1);
       } else if (strpos($delaysare[$iuy], "-") !== false) {
       $delaysare[$iuy]='' . ($delaysare[-1 + $iuy] - substr($delaysare[$iuy],1));
       $gp=str_replace($gpf . "framed" . "[" . "]=" . $vdy . ";", $gpf . "framed" . "[" . "] = " . $delaysare[$iuy] . ";", $gp); //, 1);
       } else {
       $gp=str_replace($gpf . "framed" . "[" . "]=" . $vdy . ";", $gpf . "framed" . "[" . "] = " . $delaysare[$iuy] . ";", $gp); //, 1);
       }
      }
     }
   }
  } 
  $enbit="";
  $outgp=$gp;
  if ($wtsuffix != '' || $filteretc != '' || $enumber != '') {
  if ($enumber != '') {
    $enbit="\n
 \$oldwidth=imagesx(\$image); 
 \$oldheight=imagesy(\$image); 
 \$newwidth=(" . $diffow . " + \$oldwidth);  
 \$newheight=(" . $diffoh . " + \$oldheight);  
 \$uimage=imagecreatetruecolor(\$newwidth, \$newheight); 
 imagefill(\$uimage, 0, 0, \$white);
 imagecopyresampled(\$uimage, \$image, 0, 0, 0, 0, \$newwidth, \$newheight, \$oldwidth, \$oldheight); 
 imagefill(\$image, 0, 0, \$white);
 imagecopyresampled(\$image, \$uimage, 0, 0, 0, 0, \$newwidth, \$newheight, \$newwidth, \$newheight); 
 imagedestroy(\$uimage); 
    \n";
  }
  //$bits=explode("\$image = ", $gp);
  $bits=explode("if (98 == 97)", $gp);
  if (sizeof($bits) > 1) {
  $outgp="";
  for ($ii=0; $ii<(-1 + sizeof($bits)); $ii++) {
    $outgp.=lastcountidea($ii, (-1 + sizeof($bits)), $wtsuffix, $bits[$ii] . "\n " . $filteretc . $enbit . "\n if (98 == 97)");
  }
  $outgp.=$bits[-1 + sizeof($bits)];
  }
  }
  return $outgp;
}

function appemoji($tcnt, $thcnt) {
  // &#11036; white &#11035; black 9703 half
  $onex=1;
  $retvl='' . $tcnt . '"' . "; \n \$progtext=" . '"';
  if ($tcnt > 20) { $onex=2; }
  for ($ilk=1; $ilk<=$tcnt; $ilk+=$onex) {
    if ($tcnt > 20) {
    if ((0 + $ilk) <= $thcnt) {
      if ((1 + $ilk) <= $thcnt) {
      $retvl.=html_entity_decode("&#9632;");
      } else {
      $retvl.=html_entity_decode("&#9703;");
      }
    } else {
      $retvl.=html_entity_decode("&#9633;");
    }
    } else {
    if ($ilk <= $thcnt) {
      $retvl.=html_entity_decode("&#9632;");
    } else {
      $retvl.=html_entity_decode("&#9633;");
    }
    }
  }
  if ($tcnt > 80) {
    $retvl.="  ";
  } else if ($tcnt > 40) {
    $retvl.=" ";
  }
  return $retvl;
}

function lastcountidea($thiscounter,$totalcount,$suffixwatermarkmode,$sofarphp) {
  global $foundtitle, $wtsuffix, $atext, $complextext;
  $ft="";
  $ourdelim="'";
  if (strpos($sofarphp, "\$text=") !== false) {
    $sofars=explode("\$text=", $sofarphp);
    $ourdelim=substr($sofars[1],0,1);
    $ft=explode($ourdelim,substr($sofars[1],1))[0];
  }
  if ($foundtitle == " " || $complextext) {
    if (strpos($sofarphp, "\$text=") !== false) {
      $sofars=explode("\$text=", $sofarphp);
      $foundtitle=$ft;
    }
  }
  if ($suffixwatermarkmode == ' ') {
  if ($thiscounter == 0) {
    $sofarphp=str_replace_first("\$text=" . $ourdelim . $ft . $ourdelim, "\$text=" . $ourdelim . $foundtitle . " ... 1 of " . appemoji($totalcount,1) . $ourdelim, $sofarphp);
  } else {
    $sofarphp=str_replace_first("\$text=" . $ourdelim . $ft . $ourdelim, "\$text=" . $ourdelim . "" . (1 + $thiscounter) . " of " . appemoji($totalcount,(1 + $thiscounter)) . $ourdelim, $sofarphp);
  }
  } else if ($suffixwatermarkmode == '  ') {
  if ($thiscounter == 0) {
    $sofarphp=str_replace_first("\$text=" . $ourdelim . $ft . $ourdelim, "\$text=" . $ourdelim . $foundtitle . " ... 1 of " . appemoji($totalcount,1) . $ourdelim, $sofarphp);
  } else {
    $sofarphp=str_replace_first("\$text=" . $ourdelim . $ft . $ourdelim, "\$text=" . $ourdelim . $foundtitle . " ... " . (1 + $thiscounter) . " of " . appemoji($totalcount,(1 + $thiscounter)) . $ourdelim, $sofarphp);
  }
  } else if (strlen($suffixwatermarkmode) != 0) {
  if ($thiscounter == 0) {
    $sofarphp=str_replace_first("\$text=" . $ourdelim . $ft . $ourdelim, "\$text=" . $ourdelim . $ourdelim, $sofarphp);
  } else {
    $sofarphp=str_replace_first("\$text=" . $ourdelim . $ft . $ourdelim, "\$text=" . $ourdelim . $ourdelim, $sofarphp);
  }
  }
  return $sofarphp;
}

function ourcomplicated($inio, $iappl) {
  $ideasl=explode(",", str_replace(' ','',$iappl));
  $xour="our";
  for ($iqa=0; $iqa<sizeof($ideasl); $iqa++) {
    if (trim($ideasl[$iqa]) != '') {
      $xour="";
      if (('-' . $inio) == trim($ideasl[$iqa])) { return "";  }
      $ideasr=explode("-", str_replace(' ','',trim($ideasl[$iqa])));
      for ($iqb=0; $iqb<sizeof($ideasr); $iqb++) {
        if (('' . $inio) == trim($ideasr[$iqb])) { 
          return "our";  
        }
        if ($iqb == 1) {
          if (trim($ideasr[1]) == "") { $ideasr[1]="99999999"; }
          if ($inio >= $ideasr[0] && $inio <= $ideasr[1]) { return "our";  }
        }
      }
    }
  }
  return $xour;
}

function analyze($url) {
global $lportbit,$durlis,$ihsh,$types,$exts,$prefixretp,$suffixretp,$defvastyle,$nondefvastyle,$midway,$newrbut, $xred,$xgreen,$xblue,$fontname,$xangle,$xleft,$xtop,$xsize,$xttfprefix,$opac,$zris,$zristwo,$zrtot, $rlt, $grltsuffix, $rltminus, $rltprefix, $rltsuffix;
 //$aprefix="../";
 $aprefix="";
 if (strpos($url, "//") === false && strpos($_SERVER['SERVER_NAME'], "rjmprogramming.com.au") !== false) return $aprefix;
 if (strpos($url, "//") === false && strpos($_SERVER['SERVER_NAME'], "localhost") !== false) return $aprefix;
 $aub=$_SERVER['REQUEST_URI'];
 $xubf=explode("?", $aub);
 $xubf[0]=str_replace("tutorial_to_animated_gif.php", "", str_replace("@!@","", str_replace("@!@/","", "@!@" . $xubf[0])));
 $xubff=explode("/", $xubf[0]);
 for ($ih=1; $ih<sizeof($xubff); $ih++) $aprefix .= "../";
 //echo $aprefix;
 if (strpos($xubff[sizeof($xubff) - 1], ".") !== false && (sizeof($xubff) - 1) > 2) {
       $xub=str_replace("/" . $xubff[sizeof($xubff) - 1], "/", $xubf[0]);
 } else {
       $xub=str_replace("@$@", "", str_replace("/@$@", "/", ($xubf[0] . "@$@")));
 }
 $ubf=explode("?", $url);
 
 $ubff=explode("/", $ubf[0]);
 if (strpos($ubff[sizeof($ubff) - 1], ".") !== false && (sizeof($ubff) - 1) > 2) {
       $ub=str_replace("/" . $ubff[sizeof($ubff) - 1], "/", $ubf[0]);
 } else {
       $ub=str_replace("@$@", "", str_replace("/@$@", "/", ($ubf[0] . "@$@")));
 }
 $preubff=explode("rjmprogramming.com.au:80/", $ub);
 if (sizeof($preubff) > 1) {
  $aprefix.=$preubff[1];
 } else {
 $preubff=explode("rjmprogramming.com.au/", $ub);
 if (sizeof($preubff) > 1) {
  $aprefix.=$preubff[1];
 } else {
 $preubff=explode("localhost" . $lportbit . "/", $ub);
 if (sizeof($preubff) == 1) {
 $preubff=explode("localhost:80/", $ub);
 }
 if (sizeof($preubff) == 1) {
 $preubff=explode("localhost/", $ub);
 }
 if (sizeof($preubff) > 1) {
  $aprefix.=$preubff[1];
 }
 }
 }
 return $aprefix;
}

if (isset($_GET['slideshow']) || isset($_POST['slideshow'])) {
 if (isset($_GET['slideshow'])) { $url=overturn($_GET['slideshow']); }
 if (isset($_POST['slideshow'])) { $url=overturn($_POST['slideshow']); }
 if (strpos(('~' . $url), ('~' . $_SERVER['DOCUMENT_ROOT'])) !== false) {
   $url=str_replace(($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR), explode("//", $durlis)[0] . "//" . explode("/",explode("//", $durlis)[1])[0] . "/", $url);
 } else if (strpos(('~' . $url), ('~' . urlencode($_SERVER['DOCUMENT_ROOT'])) ) !== false) {
   $url=str_replace(urlencode($_SERVER['DOCUMENT_ROOT']), urlencode(explode("//", $durlis)[0] . "//" . explode("/",explode("//", $durlis)[1])[0]), $url);
 } 
//  echo "prehere";
//  exit;
 if (strpos($url, ' src="') !== false) {
 $shtml=$url;
 file_put_contents(server_remote_addr() . "_huh.html", $url);
 $moreh1=" ... you have 10 seconds to change delay value as necessary";
 //$imagegifandthen.="document.getElementById('slideshow').value='http://www.rjmprogramming.com.au/PHP/animegif/" . server_remote_addr() . "_huh.html'; setTimeout(and_then,10000); ";
 $imagegifandthen.="document.getElementById('slideshow').value=documentURL.split('/')[0] + '//www.rjmprogramming.com.au/PHP/animegif/" . server_remote_addr() . "_huh.html'; setTimeout(and_then,10000); ";
 $shtml="";
 } else {
//  echo "here";
//  exit;
 if (isset($_GET['slideshow'])) $shtml=@file_get_contents($_GET['slideshow']);
 if (isset($_POST['slideshow'])) $shtml=@file_get_contents($_POST['slideshow']);
 }
 $prefix=analyze($url);
 if (isset($_GET['delay'])) $delay=ourstr_replace("+","",urldecode($_GET['delay']));
 if (isset($_POST['delay'])) $delay=ourstr_replace("+","",urldecode($_POST['delay']));

  if (file_exists($videopath . "ffmpeg" . $fiext)) {
//$videocmd=$videopath . "ffmpeg -r " . (1000 / $delay) . " -filter:v setpts=" . ($delay / 1000) . "*PTS " . " -i " . dirname(__FILE__) . DIRECTORY_SEPARATOR . $prepc . "%03d.jpg " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mp4 2> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";
//$svideocmd="ffmpeg  -r " . (1000 / $delay) . " -filter:v setpts=" . ($delay / 1000) . "*PTS " . " -i " . $prepc . "%03d.jpg " . "video.mp4";
//$videohtml="<video title='" . $svideocmd . "' controls id=ivideo type='video/mp4'><source src='video.mp4'></source></video>";
  $videocmd=$videopath . "ffmpeg" . $fiext . " " . $videofr . " -i " . $ivideopref . $prepc . "%03d." . $videoie . " " . $videomidbit . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video" . $videoext . " 2> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";
  $svideocmd="ffmpeg" . $fiext . " " . $videofr . " -i " . $jvideopref . $prepc . "%03d." . $videoie . " " . $videomidbit . " " . "video" . $videoext;
  $videocmd.="; " . $videopath . "ffmpeg" . $fiext . " -i " . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video" . $videoext . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mov 2>> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";

  $videocmd.="; " . $videopath . "ffmpeg" . $fiext . " -y -i " . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mov -c:v libx264 -pix_fmt yuv420p -preset:v slow -profile:v baseline -crf 23 " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.m4v 2>> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";

  $svideocmd.="; " . "ffmpeg" . $fiext . " -i " . " " . "video" . $videoext . " " . "video.mov 2>> " . "video.bad";
$videohtml="<video title='" . $svideocmd . "' controls id=ivideo type='" . $videomime . "'><source src='video.mov'></source><source src='video" . $videoext . "'></source></video>";
$videosuffix="";
  }

 $vdy=explode(".",str_replace("+","",explode(",",$delay)[0]))[0];
 if ("$vdy" == "0") { $vdy="1"; } 
 //$videocmd=$videopath . "ffmpeg  -r " . (1000 / $vdy) . " -filter:v setpts=" . ($vdy / 1000) . "*PTS " . " -i " . dirname(__FILE__) . DIRECTORY_SEPARATOR . $prepc . "%03d.jpg " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mp4 2> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";
 //$svideocmd="ffmpeg  -r " . (1000 / $vdy) . " -filter:v setpts=" . ($vdy / 1000) . "*PTS " . " -i " . $prepc . "%03d.jpg " . "video.mp4";
  $videocmd=$videopath . "ffmpeg" . $fiext . " " . $videofr . " -i " . $ivideopref . $prepc . "%03d." . $videoie . " " . $videomidbit . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video" . $videoext . " 2> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";
  $svideocmd="ffmpeg" . $fiext . " " . $videofr . " -i " . $jvideopref . $prepc . "%03d." . $videoie . " " . $videomidbit . " " . "video" . $videoext;
  $videocmd.="; " . $videopath . "ffmpeg" . $fiext . " -i " . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video" . $videoext . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mov 2>> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";

  $videocmd.="; " . $videopath . "ffmpeg" . $fiext . " -y -i " . " " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mov -c:v libx264 -pix_fmt yuv420p -preset:v slow -profile:v baseline -crf 23 " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.m4v 2>> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad";

  $svideocmd.="; " . "ffmpeg" . $fiext . " -i " . " " . "video" . $videoext . " " . "video.mov 2>> " . "video.bad";
 if (!file_exists($videopath . "ffmpeg" . $fiext)) {
 $videohtml="<h4 id=hvideo>No ffmpeg installed, so ... if you have in your local system ... at command line (in download directory, first removing any existant %03d.jpg files such as 001.jpg to 999.jpg) type (to end up with a video" . $videoext . " video) <br><br><b><i>" . $svideocmd . "</i></b><br><br> ... after downloading ... <br><br><br><br><b><i>open video" . $videoext . "</i></b><br><br>";
 $videosuffix=" creation advice";
 }
 $eachone=str_replace("[]=40;", "[]=" . explode(",",$delay)[$zris] . ";", $eachone);
 $eachonestring=str_replace("[]=40;", "[]=" . explode(",",$delay)[$zris] . ";", $eachonestring);
 if (strpos($delay, ",") !== false) {
   //$zris++;
   $zrtot=sizeof(explode(",",$delay));
 }
 $gifphp=$agifphp;
 if (isset($_GET['stitle'])) $agtext=(str_replace("+"," ",urldecode($_GET['stitle'])));
 if (isset($_POST['stitle'])) $agtext=(str_replace("+"," ",urldecode($_POST['stitle'])));
 if (strpos($shtml, ' src="') === false) {
  $shtml=' src="' . $url . '" ';
  $icnt++;
  $jfilep="00";
  $ijf=1;
  $jf=1;
  while (isset($_GET['slideshow' . $icnt]) || isset($_POST['slideshow' . $icnt])) {
   if (sizeof($ismulti) == 0) { 
    if (strpos($url,".") !== false) {
      $ismulti[sizeof($ismulti)]=$url;
      if (file_exists('video' . $videoext)) unlink('video' . $videoext);
      if (file_exists('video.mov')) unlink('video.mov');
      if (1 == 1) {
        if (file_exists('001.jpg')) {
          while (file_exists(substr(($jfilep . $jf),-3) . '.jpg')) {
            unlink(substr(($jfilep . $jf),-3) . '.jpg');
            $jf++;
          }
        }
        if (file_exists($videopath . "ffmpeg" . $fiext)) {
        file_put_contents(substr(($jfilep . $ijf),-3) . '.jpg', file_get_contents($url));
        } else {
        $videohtml=str_replace("<br><br><br><b><i>open", "<br><a download='001.jpg' title='001.jpg' href='" . $url . "'>" . $url . "</a>&nbsp;<br><br><br><b><i>open", $videohtml);
        }
        $ijf++;
      }
      $ismultidatauri[sizeof($ismultidatauri)]='data:image/' . explode('#',str_replace('jpg','jpeg',strtolower(explode('.',$url)[-1 + sizeof(explode('.',$url))])))[0] . ';base64,' . base64_encode(file_get_contents(explode('#',$url)[0]));
    }
   }
   if (isset($_GET['slideshow' . $icnt])) {
     $url=overturn($_GET['slideshow' . $icnt]);
 if (strpos(('~' . $url), ('~' . $_SERVER['DOCUMENT_ROOT'])) !== false) {
   $url=str_replace(($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR), explode("//", $durlis)[0] . "//" . explode("/",explode("//", $durlis)[1])[0] . "/", $url);
 } else if (strpos(('~' . $url), ('~' . urlencode($_SERVER['DOCUMENT_ROOT'])) ) !== false) {
   $url=str_replace(urlencode($_SERVER['DOCUMENT_ROOT']), urlencode(explode("//", $durlis)[0] . "//" . explode("/",explode("//", $durlis)[1])[0]), $url);
 } 
     if (strpos($url,".") !== false) {
      $ismulti[sizeof($ismulti)]=$url;
      if (file_exists($videopath . "ffmpeg" . $fiext)) {
        file_put_contents(substr(($jfilep . $ijf),-3) . '.jpg', file_get_contents($url));
      } else {
        $videohtml=str_replace("<br><br><br><b><i>open", "<br><a download='" . substr(($jfilep . $ijf),-3) . ".jpg' title='" . substr(($jfilep . $ijf),-3) . ".jpg' href='" . $url . "'>" . $url . "</a>&nbsp;<br><br><br><b><i>open", $videohtml);
      }
      $ijf++;
      $ismultidatauri[sizeof($ismultidatauri)]='data:image/' . explode('#',str_replace('jpg','jpeg',strtolower(explode('.',$url)[-1 + sizeof(explode('.',$url))])))[0] . ';base64,' . base64_encode(file_get_contents(explode('#',$url)[0]));
     }
   }
   if (isset($_POST['slideshow' . $icnt])) {
     $url=overturn($_POST['slideshow' . $icnt]);
 if (strpos(('~' . $url), ('~' . $_SERVER['DOCUMENT_ROOT'])) !== false) {
   $url=str_replace(($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR), explode("//", $durlis)[0] . "//" . explode("/",explode("//", $durlis)[1])[0] . "/", $url);
 } else if (strpos(('~' . $url), ('~' . urlencode($_SERVER['DOCUMENT_ROOT'])) ) !== false) {
   $url=str_replace(urlencode($_SERVER['DOCUMENT_ROOT']), urlencode(explode("//", $durlis)[0] . "//" . explode("/",explode("//", $durlis)[1])[0]), $url);
 } 
     if (strpos($url,".") !== false) {
      $ismulti[sizeof($ismulti)]=$url;
      if (file_exists($videopath . "ffmpeg" . $fiext)) {
        file_put_contents(substr(($jfilep . $ijf),-3) . '.jpg', file_get_contents($url));
      } else {
        $videohtml=str_replace("<br><br><br><b><i>open", "<br><a download='" . substr(($jfilep . $ijf),-3) . ".jpg' title='" . substr(($jfilep . $ijf),-3) . ".jpg' href='" . $url . "'>" . $url . "</a>&nbsp;<br><br><br><b><i>open", $videohtml);
      }
      $ijf++;
      $ismultidatauri[sizeof($ismultidatauri)]='data:image/' . explode('#',str_replace('jpg','jpeg',strtolower(explode('.',$url)[-1 + sizeof(explode('.',$url))])))[0] . ';base64,' . base64_encode(file_get_contents(explode('#',$url)[0]));
     }
   }
   $shtml.=' src="' . $url . '" ';
   $icnt++;
  }
if (sizeof($ismulti) > 0) {
$ofp = fopen('slideshow.html', 'w'); 
fwrite($ofp, inhouseslideshow($ismulti,$ismultidatauri));
fclose($ofp);
  $extras="&nbsp;<a href=#iag title=AnimatedGIF>Animated GIF</a>&nbsp;<a id=iitopa style=display:" . $pdfdisplay . "; href=#sitopa title=PDF>PDF</a>&nbsp;<a href=#hvideo title=Video>Video</a>&nbsp;<a href=#idatauri title=DataURI>Data URI version</a>&nbsp;<a href=#preislideshow title=Slideshow>Slideshow versions</a>";
} else {
  $extras="&nbsp;<a href=#iag title=AnimatedGIF>Animated GIF</a>&nbsp;<a href=#idatauri title=DataURI>Data URI version</a>";
}
 } 

 $vaw="300";
 $vah="300";
 
 $prevatext="";
 $prevbtext="";
 
 //file_put_contents("qw.qw", $shtml);   
    
 $photos=explode(' src="', $shtml);
 if (sizeof($photos) > 1) {
   //$vaw=imagesx(explode('"', $photos[1])[0]);
   //$vah=imagesy(explode('"', $photos[1])[0]);
   $aa_to="\" . retemoji('U+' . '";
   $aato="') . \"";
   $atext=str_replace("}",$aato,str_replace("{",$aa_to,$agtext));
   $wasprefix=$prefix;
   $bplus="";
   $yangle=$xangle;
   $ours="our";
   for ($io=1; $io<sizeof($photos); $io++) {
    $ours=ourcomplicated($io, $iappliedto);
    if (strpos(explode('"', $photos[$io])[0], "#") !== false) {
      if ($io == 1) {
      if ($atext != "") {  $atext.=" ... ";  }
      $prevatext=$atext;
      $atext.=str_replace("}","') . \"",str_replace("{","\" . retemoji('U+' . '",str_replace("~","\\n",str_replace('"','`',str_replace('_',' ',explode("#", explode('"', str_replace("+"," ",urldecode($photos[$io])) )[0])[1])))));
      $prevbtext=$atext;
      
      if ("$xangle" != "0.0" && $xangle >= 0.0 && $xangle <= 1.0) {
       $bplus=", " . round((1.0 - $xangle) * 127.0);
       $eachone=str_replace("imagecolorallocate(", "imagecolorallocatealpha(", $eachone); 
       $eachonestring=str_replace("imagecolorallocate(", "imagecolorallocatealpha(", $eachonestring); 
       $yangle="0.0";
      } else if ("$opac" != "") {
       $bplus=", " . round((1.0 - $opac) * 127.0);
       $eachone=str_replace("imagecolorallocate(", "imagecolorallocatealpha(", $eachone); 
       $eachonestring=str_replace("imagecolorallocate(", "imagecolorallocatealpha(", $eachonestring); 
      }

      $eachone=str_replace(", " . $r200 . ", " . $g200 . ", " . $b200 . ")", ", " . $xred . ", " . $xgreen . ", " . $xblue . $bplus . ")", $eachone); 
      $eachonestring=str_replace(", " . $r200 . ", " . $g200 . ", " . $b200 . ")", ", " . $xred . ", " . $xgreen . ", " . $xblue . $bplus . ")", $eachonestring); 
      
      if ($fontname != '') {
      
       $eachone=str_replace(", 5, 5, 5,", ", " . str_replace("px","",$xsize) . ", " . $yangle . ", " . $xleft . ", " . $xtop . ",", $eachone);
       $eachonestring=str_replace(", 5, 5, 5,", ", " . str_replace("px","",$xsize) . ", " . $yangle . ", " . $xleft . ", " . $xtop . ",", $eachonestring);
       $eachone=str_replace("text_colour","text_color",str_replace("text_color)","text)",str_replace("text, ", "text_colour, '" . $fontname . "',", $eachone)));
       $eachonestring=str_replace("text_colour","text_color",str_replace("text_color)","text)",str_replace("text, ", "text_colour, '" . $fontname . "',", $eachonestring)));
       $eachone=str_replace("imagestring", $xttfprefix . " imagettftext", $eachone);
       $eachonestring=str_replace("imagestring", $xttfprefix . " imagettftext", $eachonestring);
       
       //echo $eachone . "\n\n" . $eachonestring;
       //exit;
      
// imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
// imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )
       } else if ($xleft != "5" || $xtop != "5") {
       $eachone=str_replace("imagestring", $xttfprefix . " imagestring", $eachone);
       $eachonestring=str_replace("imagestring", $xttfprefix . " imagestring", $eachonestring);
       $eachone=str_replace(", 5, 5, 5,", ", 5, " . $xleft . ", " . $xtop . ",", $eachone);
       $eachonestring=str_replace(", 5, 5, 5,", ", 5, " . $xleft . ", " . $xtop . ",", $eachonestring);
       //echo $eachone . "\n\n" . $eachonestring;
       //exit;
       }
      
      } else {
      if ($prevatext != "") {  $atext=$prevatext;   }
      //if ($prevatext != "") {  file_put_contents('qpqp.qpqp', $agtext . "\n\n" . $atext); }
      $atext.=str_replace("}","') . \"",str_replace("{","\" . retemoji('U+' . '",str_replace("~","\\n",str_replace('"','`',str_replace('_',' ',explode("#", explode('"',   str_replace("+"," ",urldecode($photos[$io]))  )[0])[1])))));
      if ($prevatext != "" && $prevbtext == $atext) { if (!$complextext) { $complextext=false; }  } else if ($prevatext != "" && $prevbtext != $atext) {  $complextext=true;   }
      //if ($prevatext != "") {  file_put_contents('qp.qp', $agtext . "\n\n" . $atext); }
      }
    if ($zrtot > 1) {
     if ($zris >= sizeof(explode(",", $delay))) {
       $delay.="," . explode(",",$delay)[$zristwo];
       $zristwo++;
       if ($zristwo >= $zrtot) {
         $zristwo=0;
       }
     }
     if ($zris > 0) {
     $eachone=str_replace("[]=" . explode(",",$delay)[-1 + $zris] . ";", "[]=" . explode(",",$delay)[$zris] . ";", $eachone);
     $eachonestring=str_replace("[]=" . explode(",",$delay)[-1 + $zris] . ";", "[]=" . explode(",",$delay)[$zris] . ";", $eachonestring);
     }
     $zris++;
    }
    }
    $aphoto=explode("#", explode('"', $photos[$io])[0]);
    $prefix=analyze($aphoto[0]);
    if (strpos($aphoto[0], "rjmprogramming.com.au/") !== false) {
      $bts=explode("rjmprogramming.com.au/", $aphoto[0]);
      $aphoto[0]=$bts[1];
    //echo "aphoto[0]=" . $aphoto[0] . " and wasprefix=" . $wasprefix . " and prefix=" . $prefix;
    //exit;
      if (strpos($aphoto[0], "/") === false && strpos($aphoto[0], substr("\\",0,1)) === false && str_replace("../","",$prefix) == "" && $wasprefix != "") {
        $prefix.=$wasprefix;
      }
    } else if (strpos($aphoto[0], "rjmprogramming.com.au:80/") !== false) {
      $bts=explode("rjmprogramming.com.au:80/", $aphoto[0]);
      $aphoto[0]=$bts[1];
    //echo "aphoto[0]=" . $aphoto[0] . " and wasprefix=" . $wasprefix . " and prefix=" . $prefix;
    //exit;
      if (strpos($aphoto[0], "/") === false && strpos($aphoto[0], substr("\\",0,1)) === false && str_replace("../","",$prefix) == "" && $wasprefix != "") {
        $huhp=$prefix;
        $prefix.=$wasprefix;
      if (strpos($prefix, "../../") !== false && !file_exists($prefix . $aphoto[0]) && file_exists(str_replace("../../","../",$prefix) . $aphoto[0])) {
        $prefix=str_replace("../../","../",$prefix);
      } else if (!file_exists($prefix . $aphoto[0])) {
        $prefix=$huhp;
      }
      }
    } else if (strpos($aphoto[0], "/") === false && strpos($aphoto[0], substr("\\",0,1)) === false && strpos($url, "rjmprogramming.com.au") !== false) {
      if (strpos($aphoto[0], "/") === false && strpos($aphoto[0], substr("\\",0,1)) === false && str_replace("../","",$prefix) == "" && $wasprefix != "") {
        $huhp=$prefix;
        $prefix.=$wasprefix;
      if (strpos($prefix, "../../") !== false && !file_exists($prefix . $aphoto[0]) && file_exists(str_replace("../../","../",$prefix) . $aphoto[0])) {
        $prefix=str_replace("../../","../",$prefix);
      } else if (!file_exists($prefix . $aphoto[0])) {
        $prefix=$huhp;
      }
      }
    //echo "Aphoto[0]=" . $aphoto[0] . " and wasprefix=" . $wasprefix . " and prefix=" . $prefix;
    //exit;
    }
    $dbits=explode("/", $aphoto[0]);    
    
    
    
    for ($itr=0; $itr<(sizeof($dbits) - 1); $itr++) {
      $dtib=$dbits[$itr] . "/";
      $oy=1;
      if (strpos($prefix, $dtib) !== false) $prefix=str_replace($dtib, "", $prefix, $oy);
    }
    if (strpos(strtolower($aphoto[0]), "//") !== false) $prefix="";
    if (strpos($aphoto[0], ";base64,") !== false) {
      $gifphp.=str_replace("imagecreatefromjpeg('source01.jpg');", $ours . "imagecreatefromstring(base64_decode('" . explode(";base64,",$aphoto[0])[1] . "'));", str_replace("\$text='';", "\$text=\"" . str_replace("+"," ",urldecode($atext)) . "\";", $eachonestring));
    } else if (strpos(strtolower($aphoto[0]), "//") !== false) {
      $gifphp.=str_replace("imagecreatefromjpeg('source01.jpg');", $ours . "imagecreatefromstring(@file_get_contents('" . $prefix . $aphoto[0] . "'));", str_replace("\$text='';", "\$text=\"" . str_replace("+"," ",urldecode($atext)) . "\";", $eachone));
    } else if (strpos(strtolower($aphoto[0]), ".jp") !== false) {
      if (strpos($prefix, "../../") !== false && !file_exists($prefix . $aphoto[0]) && file_exists(str_replace("../../","../",$prefix) . $aphoto[0])) {
        $prefix=str_replace("../../","../",$prefix);
      }
      //file_put_contents('qpqp.qpqp', $eachone . "\n\n" . $atext . "\n\n" . str_replace("\$text='';", "\$text=\"" . str_replace("+"," ",urldecode($atext)) . "\";", $eachone));
      $gifphp.=str_replace("imagecreatefromjpeg('source01.jpg');", $ours . "imagecreatefromjpeg('" . $prefix . $aphoto[0] . "');", str_replace("\$text='';", "\$text=\"" . str_replace("+"," ",urldecode($atext)) . "\";", $eachone));
      //file_put_contents('qpqpqp.qpqpqp', $gifphp);
    } else if (strpos(strtolower($aphoto[0]), ".png") !== false) {
      if (strpos($prefix, "../../") !== false && !file_exists($prefix . $aphoto[0]) && file_exists(str_replace("../../","../",$prefix) . $aphoto[0])) {
        $prefix=str_replace("../../","../",$prefix);
      }
      $gifphp.=str_replace("imagecreatefromjpeg('source01.jpg');", $ours . "imagecreatefrompng('" . $prefix . $aphoto[0] . "');", str_replace("\$text='';", "\$text=\"" . str_replace("+"," ",urldecode($atext)) . "\";", $eachone));
    } else if (strpos(strtolower($aphoto[0]), ".gif") !== false) {
      if (strpos($prefix, "../../") !== false && !file_exists($prefix . $aphoto[0]) && file_exists(str_replace("../../","../",$prefix) . $aphoto[0])) {
        $prefix=str_replace("../../","../",$prefix);
      }
      $gifphp.=str_replace("imagecreatefromjpeg('source01.jpg');", $ours . "imagecreatefromgif('" . $prefix . $aphoto[0] . "');", str_replace("\$text='';", "\$text=\"" . str_replace("+"," ",urldecode($atext)) . "\";", $eachone));
    } else if (strpos(strtolower($aphoto[0]), ".bmp") !== false) {
      if (strpos($prefix, "../../") !== false && !file_exists($prefix . $aphoto[0]) && file_exists(str_replace("../../","../",$prefix) . $aphoto[0])) {
        $prefix=str_replace("../../","../",$prefix);
      }
      $gifphp.=str_replace("imagecreatefromjpeg('source01.jpg');", $ours . "imagecreatefrombmp('" . $prefix . $aphoto[0] . "');", str_replace("\$text='';", "\$text=\"" . str_replace("+"," ",urldecode($atext)) . "\";", $eachone));
    } 
    $atext="";
   }
   if ($agtext == "") $agtext="slideshow";
   $lastbit=str_replace("framed,0,2" . $zzz, "framed,0," . (sizeof($photos) - 1) . $zzz, $lastbit);
   //file_put_contents(str_replace(" ", "_", $agtext) . "_preview.php", $gifphp . $lastbit);
   //file_put_contents(str_replace(" ", "_", $agtext) . ".php", $gifphp . str_replace($lastbitfrom, str_replace("'animegif.gif'", "'" . server_remote_addr() . ".gif" . "'", $lastbitto), $lastbit));
   //@file_get_contents(str_replace(" ", "_", $agtext) . ".php");
   $ig=0;
   while (strpos($gifphp, ' == "$randomizeloopcnt"') !== false) {
     $gifphp=str_replace_first(' == "$randomizeloopcnt"', ' == "' . $ig . '"', $gifphp, 1);
     $ig++;
     //file_put_contents('qpqpqpqp.qpqpqpqp', $gifphp);
   }
   if (1 == 1 || (!isset($_GET['outpdf']) && !isset($_POST['outpdf']))) {
   file_put_contents(server_remote_addr() . "_preview.php", ingif($gifphp) . $rltsuffix . $lastbit);
   }
   //$gifphp=str_replace("'preview' == 'preview'", "1 == 2", $gifphp);
   file_put_contents(server_remote_addr() . ".php", str_replace('if (1 == 7) {','if (1 == 1) {',str_replace("'preview' == 'preview'", "1 == 1", str_replace("'preview' == 'preview' && 1 == 7", "1 == 1", ingif($gifphp) . str_replace($lastbitfrom, str_replace("'animegif.gif'", "'" . server_remote_addr() . ".gif" . "'", $lastbitto), ($rltsuffix . $lastbit))))));
   //@file_get_contents(server_remote_addr() . ".php?x=" . rand (2,450456));
   //header("Location: " . str_replace(" ", "_", $agtext) . "_preview.php");


//$prefixretp="<img src='";
//$suffixretp="'></img>";
  
   $ourmime="";
   $xxx="x";
   $agifx="?randomize=" . rand(0, 1987654);

  if (isset($_GET['fvideo'])) {
    if (strlen(trim($_GET['fvideo'])) > 0) {
      if (strpos(urldecode($_GET['fvideo']), "data:") !== false) {
      $ourmime=explode(";", explode("ata:", urldecode($_GET['fvideo']))[1])[0]; 
      } else {
      $ourext=explode(".",urldecode($_GET['fvideo']))[-1 + sizeof(explode(".",urldecode($_GET['fvideo'])))];
      for ($ib=0; $ib<sizeof($exts); $ib++) {
       if (strtolower("." . $ourext) == strtolower($exts[$ib])) $ourmime=$types[$ib];
      }
      }
      $imgis=imagecreatefromgif(server_remote_addr() . ".gif");
      $vaw=imagesx($imgis);
      $vah=imagesy($imgis);
      $prefixretp="<style> video { width:" . $vaw . "px; height:" . $vah . "px; background:transparent url(";
      $prefixretp="<style> video { width:" . $vaw . "px; height:" . (55 + $vah) . "px; background:transparent url(";
      $suffixretp=$agifx . ") no-repeat 0 0; -webkit-background-size:contain; -moz-background-size:contain; -o-background-size:contain; background-size:contain; } </style><video title='" . $svideocmd . "' id=myvideo controls poster=transparent.png><source src=" . str_replace(" ","+",urldecode($_GET['fvideo'])) . " type=" . $ourmime . "></source></video>";
      $suffixretp=$agifx . ") no-repeat 0 0;  } </style><video title='" . $svideocmd . "' id=myvideo controls loop poster=transparent.png><source src=" . str_replace(" ","+",urldecode($_GET['fvideo'])) . " type=" . $ourmime . "></source></video>";
    }
  } else if (isset($_POST['fvideo'])) {
    if (strlen(trim($_POST['fvideo'])) > 0) {
      if (strpos(urldecode($_POST['fvideo']), "data:") !== false) {
      $ourmime=explode(";", explode("ata:", urldecode($_POST['fvideo']))[1])[0]; 
      } else {
      $ourext=explode(".",urldecode($_POST['fvideo']))[-1 + sizeof(explode(".",urldecode($_POST['fvideo'])))];
      for ($ib=0; $ib<sizeof($exts); $ib++) {
       if (strtolower("." . $ourext) == strtolower($exts[$ib])) $ourmime=$types[$ib];
      }
      }
      $imgis=imagecreatefromgif(server_remote_addr() . ".gif");
      $vaw=imagesx($imgis);
      $vah=imagesy($imgis);
      $prefixretp="<style> video { width:" . $vaw . "px; height:" . $vah . "px; background:transparent url(";
      $prefixretp="<style> video { width:" . $vaw . "px; height:" . (55 + $vah) . "px; background:transparent url(";
      $suffixretp=$agifx . ") no-repeat 0 0; -webkit-background-size:contain; -moz-background-size:contain; -o-background-size:contain; background-size:contain; } </style><video title='" . $svideocmd . "' id=myvideo controls poster=transparent.png><source src=" . str_replace(" ","+",urldecode($_POST['fvideo'])) . " type=" . $ourmime . "></source></video>";
      $suffixretp=$agifx . ") no-repeat 0 0;  } </style><video title='" . $svideocmd . "' id=myvideo controls loop poster=transparent.png><source src=" . str_replace(" ","+",urldecode($_POST['fvideo'])) . " type=" . $ourmime . "></source></video>";
    }
  } 
  if ($prefixretp == "<img src='") {
  if (isset($_GET['faudio'])) {
    if (strlen(trim($_GET['faudio'])) > 0) {
      if (strpos(urldecode($_GET['faudio']), "data:") !== false) {
      $ourmime=explode(";", explode("ata:", urldecode($_GET['faudio']))[1])[0]; 
      } else {
      $ourext=explode(".",urldecode($_GET['faudio']))[-1 + sizeof(explode(".",urldecode($_GET['faudio'])))];
      for ($ib=0; $ib<sizeof($exts); $ib++) {
       if (strtolower("." . $ourext) == strtolower($exts[$ib])) $ourmime=$types[$ib];
      }
      }
      $imgis=imagecreatefromgif(server_remote_addr() . ".gif");
      $vaw=imagesx($imgis);
      $vah=imagesy($imgis);
      $prefixretp="<style> audio {  width:" . $vaw . "px; height:" . $vah . "px; background:transparent url(";
      $prefixretp="<style> audio {  width:" . $vaw . "px; height:" . (55  + $vah) . "px; background:transparent url(";
      $suffixretp=$agifx . ") no-repeat 0 0; -webkit-background-size:contain; -moz-background-size:contain; -o-background-size:contain; background-size:contain; } </style><audio id=myaudio controls loop autoplay poster=transparent.png><source src=" . str_replace(" ","+",urldecode($_GET['faudio'])) . " type=" . $ourmime . "></source></audio>";
      $suffixretp=$agifx . ") no-repeat 0 0;  } </style><audio id=myaudio controls loop autoplay poster=transparent.png><source src=" . str_replace(" ","+",urldecode($_GET['faudio'])) . " type=" . $ourmime . "></source></audio>";
    }
  } else if (isset($_POST['faudio'])) {
    if (strlen(trim($_POST['faudio'])) > 0) {
      if (strpos(urldecode($_POST['faudio']), "data:") !== false) {
      $ourmime=explode(";", explode("ata:", urldecode($_POST['faudio']))[1])[0]; 
      } else {
      $ourext=explode(".",urldecode($_POST['faudio']))[-1 + sizeof(explode(".",urldecode($_POST['faudio'])))];
      for ($ib=0; $ib<sizeof($exts); $ib++) {
       if (strtolower("." . $ourext) == strtolower($exts[$ib])) $ourmime=$types[$ib];
      }
      }
      $imgis=imagecreatefromgif(server_remote_addr() . ".gif");
      $vaw=imagesx($imgis);
      $vah=imagesy($imgis);
      $prefixretp="<style> audio {  width:" . $vaw . "px; height:" . $vah . "px; background:transparent url(";
      $prefixretp="<style> audio {  width:" . $vaw . "px; height:" . (55  + $vah) . "px; background:transparent url(";
      $suffixretp=$agifx . ") no-repeat 0 0; -webkit-background-size:contain; -moz-background-size:contain; -o-background-size:contain; background-size:contain; } </style><audio id=myaudio controls loop autoplay poster=transparent.png><source src=" . str_replace(" ","+",urldecode($_POST['faudio'])) . " type=" . $ourmime . "></source></audio>";
      $suffixretp=$agifx . ") no-repeat 0 0;  } </style><audio id=myaudio controls loop autoplay poster=transparent.png><source src=" . str_replace(" ","+",urldecode($_POST['faudio'])) . " type=" . $ourmime . "></source></audio>";
    }
  } 
  }
  
   if ($prefixretp == "<img src='") {
    $suffixretp=$agifx . "' title='" . $agtext . "'></img>"; 
   } //else {
   // echo str_replace('<','&lt;',str_replace('>','&gt;',$prefixretp . server_remote_addr() . ".gif" . $suffixretp));
   // exit;
   //}

   if (isset($_POST['randomize']) || isset($_GET['randomize'])) {  $xxx="randomize";  $agifx="?randomize=" . rand(0, 1987654); } 
   $imagegif="<br><h1 align='center'>Preview Below ... Animated GIF (Later) (Way) Below</h1><br><iframe id=iag frameborder=0 style='width:100%;height:100%;' src='" . server_remote_addr() . "_preview.php?" . $xxx . "=" . rand(2,450456) . $grltsuffix . "' title='" . $agtext . "'></iframe>";
   $imagegif.="<br><br><iframe frameborder=0 style='display:none;' src='" . server_remote_addr() . ".php?" . $xxx . "=" . rand(2,450456) . $grltsuffix . "' title='" . $agtext . "'></iframe>";
   $qwp="";
   $qws="";
   if (sizeof($ismulti) > 0) {
   if ($prefixretp == "<img src='") {
    $qwp="<a title='Download via click' download='my_rjm_gif.gif' href='" . server_remote_addr() . ".gif" . "'>";
    $qws="</a>";
   }
   $imagegifandthen.="document.getElementById('idiv').innerHTML+=\"<br><h1 id=midway align='center'>Preview Above ... Animated GIF then Video" . $videosuffix . " Below</h1><br>" . $qwp . $prefixretp . server_remote_addr() . ".gif" . $suffixretp . $qws . "<br><h1 id=hvideo>Video" . $videosuffix . " below <span style='font-size:20px;' title='Email video' id=bemailvideo onclick='askes(true,this);'>&#128231;</a> ...</h1><br>" . $videohtml . "<br><iframe id=idatauri src='animegif." . $aextis . "?x=" . rand (2,450456) . "' title=DataURI style=width:100%;height:800px;background-color:lightblue;></iframe><br>&nbsp;<a id=preislideshow href=#idatauri title=DataURI>Data URI version</a>&nbsp;<a href=#myh1 id=itopa title=Top>Top</a>&nbsp;<a href=#iag title=AnimatedGIF>Animated GIF</a>&nbsp;<a href=#prejslideshow title=SlideshowDataURI>Slideshow Data URI</a><br><iframe id=islideshow src='slideshow.html?x=" . rand (2,450456) . "' title=SlideShow style=width:100%;height:800px;;background-color:lightgreen;></iframe><br><a id=prejslideshow href=#preislideshow title=Slideshow>Slideshow</a><br><iframe id=jslideshow src='slideshow.html?smode=0&x=" . rand (2,450456) . "' title=SlideShowDataURI style=width:100%;height:800px;;background-color:lightgreen;></iframe>" . "\";";
   } else {
   if ($prefixretp == "<img src='") {
    $qwp="<a title='Download via click' download='my_rjm_gif.gif' href='" . server_remote_addr() . ".gif" . "'>";
    $qws="</a>";
   }
   $imagegifandthen.="document.getElementById('idiv').innerHTML+=\"<br><h1 id=midway align='center'>Preview Above ... Animated GIF Below</h1><br>" . $qwp . $prefixretp . server_remote_addr() . ".gif" . $suffixretp . $qws . "<br>&nbsp;<a href=#myh1 id=itopa title=Top>Top</a>&nbsp;<a href=#iag title=AnimatedGIF>Animated GIF</a><br><iframe id=idatauri src='animegif." . $aextis . "?x=" . rand (2,450456) . "' title=DataURI style=width:100%;height:800px;;background-color:lightblue;></iframe>" . "\";";
   }
   if (isset($_GET['iurl']) || isset($_POST['iurl'])) {
   $imagegifandthen.=" \n parent.document.getElementById('iurl').value='data:image/gif;base64," . base64_encode(file_get_contents(server_remote_addr() . ".gif")) . "'; ";
   }
   //if (isset($_GET['tiurl']) || isset($_POST['tiurl'])) {
   //$imagegifandthen.=" \n top.document.getElementById('result').innerHTML='data:image/gif;base64," . base64_encode(file_get_contents(server_remote_addr() . ".gif")) . "'; ";
   //}
   if (isset($_GET['gfn']) || isset($_POST['gfn']) || isset($_GET['tiurl']) || isset($_POST['tiurl'])) {
   sleep(20);
   //file_put_contents("z6.z6"," \n top.document.getElementById('result').innerHTML='data:image/gif;base64," . base64_encode(file_get_contents("http://" . $_SERVER['SERVER_NAME'] . str_replace("~","",str_replace(":443~","",str_replace(":80~","",(":" . $_SERVER['SERVER_PORT'] . "~")))) . str_replace("//","/",("/" . $_SERVER['REQUEST_URI'] . "/")) . server_remote_addr() . ".gif?rand=" . rand(0,1987654))) . "'; ");
   //$imagegifandthen.=" \n top.document.getElementById('result').innerHTML='data:image/gif;base64," . base64_encode(file_get_contents(server_remote_addr() . ".gif?rand=" . rand(0,1987654) . ")) . "'; ";
   $imagegifandthen.=" \n top.document.getElementById('iturl').innerHTML=('http://" . $_SERVER['SERVER_NAME'] . str_replace("~","",str_replace(":443~","",str_replace(":80~","",(":" . $_SERVER['SERVER_PORT'] . "~")))) . str_replace("//","/",("/" . $_SERVER['REQUEST_URI'] . "/")) . server_remote_addr() . ".gif?rand=" . rand(0,1987654) . "').replace('/tutorial_to_animated_gif.php/','/'); \n";
   $imagegifandthen.=" \n top.document.getElementById('result').innerHTML='data:image/gif;base64," . base64_encode(file_get_contents(    str_replace("/tutorial_to_animated_gif.php/","/","http://" . $_SERVER['SERVER_NAME'] . str_replace("~","",str_replace(":443~","",str_replace(":80~","",(":" . $_SERVER['SERVER_PORT'] . "~")))) . str_replace("//","/",("/" . $_SERVER['REQUEST_URI'] . "/")) . server_remote_addr() . "_preview.gif?rand=" . rand(0,1987654))   )) . "'; ";
   }
 }
} //else {
   //if (isset($_GET['gfn']) || isset($_POST['gfn'])) {
   //file_put_contents("zz6.zz6","");
   //$imagegifandthen.=" \n top.document.getElementById('result').innerHTML='data:image/gif;base64," . base64_encode(file_get_contents(server_remote_addr() . ".gif")) . "'; ";
   //}
   $preextras="";
   $ala="false";
   $alv="false";
if (isset($_GET['allowaudio'])) {
 if (strpos($newrbut, "mysa") === false) { $preextras.="<input onclick=\"usualclick=1;\" style=\"display:none;\" name=allowaudio id=\"mysa\" type=\"submit\" title='Tutorial Slideshow to Audio' value='Tutorial Slideshow to Audio'></input><div id=resultav style=display:none;></div>"; }
 $ala="true";
 $seventypc="60%";
 $justfa=str_replace(" na" . (isset($_GET['allowvideo']) ? "OOPS" : "") . "me="," data-name=",str_replace("submit","SUBMIT style='border:1px solid yellow;' ",$justfa));
}
if (isset($_GET['allowvideo'])) {
 if (strpos($newrbut, "mysv") === false) { $preextras.="<input onclick=\"usualclick=1;\" style=\"display:none;\" name=allowvideo id=\"mysv\" type=\"submit\" title='Tutorial Slideshow to Video' value='Tutorial Slideshow to Video'></input><div id=resultav style=display:none;></div>"; }
 $alv="true";
 $seventypc="60%";
 $justfv=str_replace(" na" . (isset($_GET['allowaudio']) ? "OOPS" : "") . "me="," data-name=",str_replace("submit","SUBMIT style='border:1px solid yellow;' ",$justfv));
}
if (isset($_POST['allowaudio'])) {
 if (strpos($newrbut, "mysa") === false) { $preextras.="<input onclick=\"usualclick=1;\" style=\"display:none;\" name=allowaudio id=\"mysa\" type=\"submit\" title='Tutorial Slideshow to Audio' value='Tutorial Slideshow to Audio'></input><div id=resultav style=display:none;></div>"; }
 $ala="true";
 $seventypc="60%";
 $justfa=str_replace(" na" . (isset($_POST['allowvideo']) ? "OOPS" : "") . "me="," data-name=",str_replace("submit","SUBMIT style='border:1px solid yellow;' ",$justfa));
}
if (isset($_POST['allowvideo'])) {
 if (strpos($newrbut, "mysv") === false) { $preextras.="<input onclick=\"usualclick=1;\" style=\"display:none;\" name=allowvideo id=\"mysv\" type=\"submit\" title='Tutorial Slideshow to Video' value='Tutorial Slideshow to Video'></input><div id=resultav style=display:none;></div>"; }
 $alv="true";
 $seventypc="60%";
 $justfv=str_replace(" na" . (isset($_POST['allowaudio']) ? "OOPS" : "") . "me="," data-name=",str_replace("submit","SUBMIT style='border:1px solid yellow;' ",$justfv));
}
if ((isset($_POST['allowaudio']) && isset($_POST['allowvideo'])) || (isset($_GET['allowaudio']) && isset($_GET['allowvideo']))) {
$justfav="<form method=GET action=./tutorial_to_animated_gif.php style=display:inline-block;><input title='Neither, but Images, always' type=submit value='-'></input></form>";
}
$varmodes="&nbsp;<table style=display:inline-block;><tr><td>" . $justfa . "</td><td>" . $justfav . "</td><td>" . $justfv . "</td></tr></table>";



  echo "<!doctype html>
<html>
<head><meta charset='utf-8'/>
<link href='//www.rjmprogramming.com.au/PHP/emboss_h1.css' rel='stylesheet' type='text/css'>
<title>Tutorial Slideshow to Animated GIF</title>
<script type='text/javascript'>
var documentURL=document.URL;


if (documentURL.indexOf('.php') == -1) {  documentURL='http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php';   }

var icnt=1, upforgrabs=false, upfor='', origupfor='', upto='', upprefix='', upsuffix='', incis=0, thisto='', lastioid='';
var usualclick=-1;
var droot='" . $_SERVER['DOCUMENT_ROOT'] . "'; 

var iizhr=null, iizform=null;
var localwo=null; 
var ginduri='';
var viams=[];
var viamsd=[];
var vst=0, vsti=0, vsta=0, vstv=0, vcur=0;

var cbggis=location.search.split('called' + 'bygg=')[1] ? decodeURIComponent(location.search.split('called' + 'bygg=')[1]).split('&')[0] : '';

var def_ext='';

var cssl=''; //document.getElementById('imgdet1').getAttribute('data-left');
var csst=''; //document.getElementById('imgdet1').getAttribute('data-top');


var allowaudio=" . $ala . ";
var allowvideo=" . $alv . ";
var lastnav='';
var tusl='Tutorial Slideshow';

var bcols=['red','#ff0000',
'black','#000000',
'white','#ffffff',
'yellow','#ffff00',
'green','#00ff00',
'blue','#0000ff',
'cyan','#00ffff',
'magenta','#ff00ff',
'pink','#ffc0cb',
'lightblue','#add8e6',
'lightgreen','#90ee90',
'pink','#ffc0cb',
'lightpink','#ffb6c1'
,'hotpink','#ff69b4'
,'deeppink','#ff1493'
,'palevioletred','#db7093'
,'mediumvioletred','#c71585'
,'lightsalmon','#ffa07a'
,'salmon','#fa8072'
,'darksalmon','#e9967a'
,'lightcoral','#f08080'
,'indianred','#cd5c5c'
,'crimson','#dc143c'
,'firebrick','#b22222'
,'darkred','#8b0000'
,'red','#ff0000'
,'orangered','#ff4500'
,'tomato','#ff6347'
,'coral','#ff7f50'
,'darkorange','#ff8c00'
,'orange','#ffa500'
,'yellow','#ffff00'
,'lightyellow','#ffffe0'
,'lemonchiffon','#fffacd'
,'lightgoldenrodyellow','#fafad2'
,'papayawhip','#ffefd5'
,'moccasin','#ffe4b5'
,'peachpuff','#ffdab9'
,'palegoldenrod','#eee8aa'
,'khaki','#f0e68c'
,'darkkhaki','#bdb76b'
,'gold','#ffd700'
,'cornsilk','#fff8dc'
,'blanchedalmond','#ffebcd'
,'bisque','#ffe4c4'
,'navajowhite','#ffdead'
,'wheat','#f5deb3'
,'burlywood','#deb887'
,'tan','#d2b48c'
,'rosybrown','#bc8f8f'
,'sandybrown','#f4a460'
,'goldenrod','#daa520'
,'darkgoldenrod','#b8860b'
,'peru','#cd853f'
,'chocolate','#d2691e'
,'saddlebrown','#8b4513'
,'sienna','#a0522d'
,'brown','#a52a2a'
,'maroon','#800000'
,'olive','#808000'
,'olivedrab','#6b8e23'
,'yellowgreen','#9acd32'
,'limegreen','#32cd32'
,'lime','#00ff00'
,'lawngreen','#7cfc00'
,'chartreuse','#7fff00'
,'greenyellow','#adff2f'
,'springgreen','#00ff7f'
,'mediumspringgreen','#00fa9a'
,'lightgreen','#90ee90'
,'palegreen','#98fb98'
,'darkseagreen','#8fbc8f'
,'mediumseagreen','#3cb371'
,'seagreen','#2e8b57'
,'forestgreen','#228b22'
,'green','#008000'
,'darkgreen','#006400'
,'mediumaquamarine','#66cdaa'
,'aqua','#00ffff'
,'cyan','#00ffff'
,'lightcyan','#e0ffff'
,'paleturquoise','#afeeee'
,'aquamarine','#7fffd4'
,'turquoise','#40e0d0'
,'mediumturquoise','#48d1cc'
,'darkturquoise','#00ced1'
,'lightseagreen','#20b2aa'
,'cadetblue','#5f9ea0'
,'darkcyan','#008b8b'
,'teal','#008080'
,'lightsteelblue','#b0c4de'
,'powderblue','#b0e0e6'
,'lightblue','#add8e6'
,'skyblue','#87ceeb'
,'lightskyblue','#87cefa'
,'deepskyblue','#00bfff'
,'dodgerblue','#1e90ff'
,'cornflowerblue','#6495ed'
,'steelblue','#4682b4'
,'royalblue','#4169e1'
,'blue','#0000ff'
,'mediumblue','#0000cd'
,'darkblue','#00008b'
,'navy','#000080'
,'midnightblue','#191970'
,'thistle','#d8bfd8'
,'plum','#dda0dd'
,'violet','#ee82ee'
,'orchid','#da70d6'
,'fuchsia','#ff00ff'
,'magenta','#ff00ff'
,'mediumorchid','#ba55d3'
,'mediumpurple','#9370db'
,'blueviolet','#8a2be2'
,'darkviolet','#9400d3'
,'darkorchid','#9932cc'
,'darkmagenta','#8b008b'
,'purple','#800080'
,'indigo','#4b0082'
,'darkslateblue','#483d8b'
,'rebeccapurple','#663399'
,'slateblue','#6a5acd'
,'mediumslateblue','#7b68ee'
,'snow','#fffafa'
,'honeydew','#f0fff0'
,'mintcream','#f5fffa'
,'azure','#f0ffff'
,'aliceblue','#f0f8ff'
,'ghostwhite','#f8f8ff'
,'whitesmoke','#f5f5f5'
,'seashell','#fff5ee'
,'beige','#f5f5dc'
,'oldlace','#fdf5e6'
,'floralwhite','#fffaf0'
,'ivory','#fffff0'
,'antiquewhite','#faebd7'
,'linen','#faf0e6'
,'lavenderblush','#fff0f5'
,'mistyrose','#ffe4e1'
,'gainsboro','#dcdcdc'
,'lightgrey','#d3d3d3'
,'silver','#c0c0c0'
,'darkgray','#a9a9a9'
,'gray','#808080'
,'dimgray','#696969'
,'lightslategray','#778899'
,'slategray','#708090'
,'darkslategray','#2f4f4f'];

 var isimgclick=-1;
 var lastimgclick=-1;

 var ggvals=[], ggvalssuffix='', ggvalslen=0, ggvalgoes=0;
 var iwidths=[], iheights=[];
 var iready=true;
 var chkok=false;
 var tryit='http://localhost" . $lportbit . "/PHP/animegif/amhere.jpg?rand=' + Math.floor(Math.random() * 19876543);
 var nexttryit='';
 
 var evalcmd='';

 var ifsa=[], ifsi=[];
 var types = ['audio/x-m4r','audio/wav','audio/x-wav','audio/x-pn-realaudio','audio/x-mpegurl','audio/x-aiff','audio/mpeg','audio/mid',
      'audio/basic','audio/ogg','video/x-sgi-movie','video/x-msvideo','video/quicktime','audio/mp3','video/mp4','video/mpeg',
      'video/x-la-asf','video/ogg','video/webm','audio/mp4', 'image/jpeg', 'image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/tif'];
 var exts = ['.m4r','.wav','.wav','.ram','.m3u','.aiff','.mp3','.rmi',
      '.snd','.ogg','.movie','.avi','.mov','.mp3','.m4v','.mpeg',
      '.lsx','.ogv','.webm','.m4a', '.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tif'];
 var ourmime='';
 var lastiid='', relatedto=null;
 var delaylastiid='', delayrelatedto=null, delayslidenum=-1, delaythisslide=-1, delaysare=[];
 
function prenext() {
    if (delayrelatedto) {
    if (delaythisslide >= delayslidenum) {
      delaythisslide=1;
      document.getElementById('delay').style.backgroundImage='linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.3)),URL(\"' + document.getElementById('slideshow').value + '\")';
      setTimeout(prenext, eval('' + delaysare[0]));
    } else {
      delaythisslide++;
      document.getElementById('delay').style.backgroundImage='linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.3)),URL(\"' + document.getElementById('slideshow' + eval(0 + eval(delaythisslide))).value + '\")';
      if (delaythisslide <= delaysare.length) {
       setTimeout(prenext, eval('' + delaysare[eval(-1 + eval('' + delaythisslide))]));
      } else {
       setTimeout(prenext, eval('' + delaysare[0]));
      }
    }  
    }
}
 
function preanimate(inthis, inthisvalue) {
  var delaysuff='';
  delaysare=inthisvalue.split(',');
  if (delayslidenum == -1 || 1 == 1) {
    delayslidenum=-1;
    while (document.getElementById('slideshow' + delaysuff).value != '') {
     if (delayslidenum == -1) {
       delayslidenum=1;
       delaysuff='' + eval(1 + eval('' + delayslidenum));
     } else {
       delayslidenum++;
       delaysuff='' + eval(1 + eval('' + delayslidenum));
     }
    }
  }
  delaythisslide=1;
  setTimeout(prenext, eval('' + delaysare[0]));
  return document.getElementById('slideshow').value;
}
 
function preafterbithis() {
  if (delayrelatedto) {
  if (delaylastiid == ('' + delayrelatedto.id)) {
    delaylastiid='';
    //delayrelatedto=null;
  }
  } else {
    delaylastiid='';
  }
}

function preinrelatedto() {
  var thisappi=1;
  if (delayrelatedto) {
      if (('' + delayrelatedto.title).indexOf('ong hover') != -1) {
        var appiwords=('' + delayrelatedto.title).replace(' after losing focus', ' after losing focus 0').split(' ');
        delayrelatedto.title+=' ' + eval(1 + eval(appiwords[eval(-1 + appiwords.length)]));
        if (eval(1 + eval(appiwords[eval(-1 + appiwords.length)])) <= 7) { delayrelatedto.style.border='' + eval(1 + eval(appiwords[eval(-1 + appiwords.length)])) + 'px dotted yellow'; }
        setTimeout(preinrelatedto, 1000);
      }
  }
}
 
function prebithis(inthis) {
  if (inthis.value.trim() != '') {
      if (delayrelatedto) {
        if (('' + inthis.id) != ('' + delayrelatedto.id)) {
          preunbithis(delayrelatedto);
          delayrelatedto=null;
        }
      }
      if (('' + inthis.getAttribute('data-oh')).replace(/^undefined$/g,'').replace(/^null$/g,'') == '') {
        inthis.setAttribute('data-oh', '' + inthis.getBoundingClientRect().height);
      }
      if (('' + inthis.title).indexOf('ong hover') == -1) {
         inthis.title+=' ... long hover of 7 seconds keeps background image in place after losing focus';
      } else {
         inthis.title=inthis.title.split('ong hover')[0] + 'ong hover of 7 seconds keeps background image in place after losing focus';
      }
      inthis.style.backgroundImage='linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.3)),URL(\"' + preanimate(inthis, inthis.value) + '\")';
      inthis.style.height='80px';
      inthis.style.backgroundSize='contain';
      inthis.style.backgroundRepeat='no-repeat';
      inthis.style.backgroundPosition='right top';
      delaylastiid='' + inthis.id;
      delayrelatedto=inthis;
      setTimeout(preinrelatedto, 1000);
      setTimeout(preafterbithis, 7000);
  }
}
 
function preunbithis(inthis) {
  if (inthis.value.trim() != '' && delaylastiid == ('' + inthis.id)) {
    if (('' + inthis.title).indexOf('ong hover') != -1) {
      inthis.title=inthis.title.split('ong hover')[0] + 'ong hover keeps background animated GIF image in place after losing focus';
    }
    if (delayrelatedto) {
      delayrelatedto=null;
    }
    if (('' + inthis.getAttribute('data-oh')).replace(/^undefined$/g,'').replace(/^null$/g,'') != '') {
      inthis.style.height='' + inthis.getAttribute('data-oh') + 'px';
    }
    inthis.style.color='black';
    inthis.style.opacity='1.0';
    inthis.style.background='';
    inthis.style.border='';
  }
}
 
function afterbithis() {
  if (relatedto) {
  if (lastiid == ('' + relatedto.id)) {
    lastiid='';
    relatedto=null;
  }
  } else {
    lastiid='';
  }
}

function inrelatedto() {
  var thisappi=1;
  if (relatedto) {
      if (('' + relatedto.title).indexOf('ong hover') != -1) {
        var appiwords=('' + relatedto.title).replace(' after losing focus', ' after losing focus 0').split(' ');
        relatedto.title+=' ' + eval(1 + eval(appiwords[eval(-1 + appiwords.length)]));
        if (eval(1 + eval(appiwords[eval(-1 + appiwords.length)])) <= 7) { relatedto.style.border='' + eval(1 + eval(appiwords[eval(-1 + appiwords.length)])) + 'px dotted yellow'; }
        setTimeout(inrelatedto, 1000);
      }
  }
}
 
function bithis(inthis) {
  if (inthis.value.trim() != '') {
    if (relatedto) {
      if (('' + inthis.id) != ('' + relatedto.id)) {
        unbithis(relatedto);
        relatedto=null;
      }
    }
    if (('' + inthis.getAttribute('data-oh')).replace(/^undefined$/g,'').replace(/^null$/g,'') == '') {
      inthis.setAttribute('data-oh', '' + inthis.getBoundingClientRect().height);
    }
    if (inthis.value.indexOf('data:') == 0) {
      if (('' + inthis.title).indexOf('ong hover') == -1) {
         inthis.title+=' ... long hover of 7 seconds keeps background image in place after losing focus';
      } else {
         inthis.title=inthis.title.split('ong hover')[0] + 'ong hover of 7 seconds keeps background image in place after losing focus';
      }
      inthis.style.backgroundImage='linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.3)),URL(\"' + inthis.value + '\")';
      inthis.style.color='rgba(240,240,240,0.2)';
      inthis.style.height='80px';
      inthis.style.backgroundSize='contain';
      inthis.style.backgroundRepeat='no-repeat';
      inthis.style.backgroundPosition='right top';
      lastiid='' + inthis.id;
      relatedto=inthis;
      setTimeout(inrelatedto, 1000);
    } else if (inthis.value.indexOf('.') != -1) {
      if (('' + inthis.title).indexOf('ong hover') == -1) {
         inthis.title+=' ... long hover of 7 seconds keeps background image in place after losing focus';
      } else {
         inthis.title=inthis.title.split('ong hover')[0] + 'ong hover of 7 seconds keeps background image in place after losing focus';
      }
      inthis.style.backgroundImage='linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.3)),URL(\"' + inthis.value + '\")';
      inthis.style.height='80px';
      inthis.style.backgroundSize='contain';
      inthis.style.backgroundRepeat='no-repeat';
      inthis.style.backgroundPosition='right top';
      lastiid='' + inthis.id;
      relatedto=inthis;
      setTimeout(inrelatedto, 1000);
    }
    setTimeout(afterbithis, 7000);
  }
}
 
function unbithis(inthis) {
  if (inthis.value.trim() != '' && lastiid == ('' + inthis.id)) {
    if (('' + inthis.title).indexOf('ong hover') != -1) {
      inthis.title=inthis.title.split('ong hover')[0] + 'ong hover keeps background image in place after losing focus';
    }
    if (relatedto) {
      relatedto=null;
    }
    if (('' + inthis.getAttribute('data-oh')).replace(/^undefined$/g,'').replace(/^null$/g,'') != '') {
      inthis.style.height='' + inthis.getAttribute('data-oh') + 'px';
    }
    inthis.style.color='black';
    inthis.style.opacity='1.0';
    inthis.style.background='';
    inthis.style.border='';
  }
}

function hexdec (hexString) {  // thanks to https://locutus.io/php/math/hexdec/
  //  discuss at: https://locutus.io/php/hexdec/
  // original by: Philippe Baumann
  //   example 1: hexdec('that')
  //   returns 1: 10
  //   example 2: hexdec('a0')
  //   returns 2: 160

  hexString = (hexString + '').replace(/[^a-f0-9]/gi, '');
  return parseInt(hexString, 16);
}

function hex2dec(couleur, inopac) {  // thanks to http://wikkawiki.org/FpdfIntegration/raw
    var dolR = couleur.toLowerCase().replace('#','').substring(0,2);
    var dolrouge = hexdec(dolR);
    var dolV = couleur.toLowerCase().replace('#','').replace(dolR,'').substring(0,2);
    var dolvert = hexdec(dolV);
    var dolB = couleur.toLowerCase().replace('#','').replace(dolR,'').replace(dolV,'').substring(0,2);
    var dolbleu = hexdec(dolB);
    document.getElementById('fred').value='' + dolrouge;
    document.getElementById('fgreen').value='' + dolvert;
    document.getElementById('fblue').value='' + dolbleu;
    if (inopac != '') {
      return 'rgba(' + dolrouge + ',' + dolvert + ',' + dolbleu + ',' + inopac + ')';
    } else {
      return couleur.toLowerCase();
    }
}

function opacitymaybe(incvalo) {
  var incval=incvalo.value;
  var ttfstuff=incval.split('#');
  if (ttfstuff.length == 1) { return incval; }
  incval=incval.replace(ttfstuff[0] + '#', '');
  var origincval=incval.toLowerCase();
  if (origincval.trim() != '' && document.getElementById('pdflast')) {
    if ((document.getElementById('pdflast').value + ' ') != 'n ') {
      document.getElementById('pdflast').value='yes';
    }
  }
  var opac='';
  var colwords=incval.split(' ');
  if (colwords.length >= 1) {
  for (var idf=0; idf<colwords.length; idf++) {
    if ((colwords[idf] + ' ').toLowerCase().indexOf('px') == -1 && ((colwords[idf] + ' ').substring(0,1) == '.' || ((colwords[idf] + ' ').substring(0,1) >= '0' && (colwords[idf] + ' ').substring(0,1) <= '9'))) {
     document.getElementById('fangle').value=colwords[idf];
    } else if ((colwords[idf] + ' ').substring(0,1) == '#') {
     hex2dec(colwords[idf], '');
    } else if ((colwords[idf] + ' ').substring(0,1) == '(') {
     document.getElementById('fleft').value=colwords[idf].substring(1).split(',')[0].split(')')[0];
     document.getElementById('ftop').value=colwords[idf].substring(1).split(',')[1].split(',')[0].split(')')[0];
     //alert(document.getElementById('fleft').value + ',' + document.getElementById('ftop').value);
    } else if (bcols.indexOf((colwords[idf] + ' ').toLowerCase().replace(/\ /g,'')) != -1) {
     hex2dec(bcols[eval(1 + bcols.indexOf((colwords[idf] + ' ').toLowerCase().replace(/\ /g,'')))], '');
    } else if ((colwords[idf] + ' ').indexOf('_') != -1) {
     document.getElementById('fontname').value=colwords[idf].replace(/\_/g,' ');
    } else if ((colwords[idf] + ' ').toLowerCase().indexOf('px') != -1) {
     document.getElementById('fsize').value=colwords[idf];
    } else {
     document.getElementById('fontname').value=colwords[idf].replace(/\_/g,' ');
    }
  }
  }
  incvalo.value=ttfstuff[0];
  totalit();
  return ttfstuff[0];
}

function postreorderifs() {
  var jk=0;
  var oifs=document.getElementsByTagName('iframe');
  for (var jifso=0; jifso<ifsi.length; jifso++) {
        oifs[ifsi[jifso]].src=ifsa[jk];
        jk++;
  }
  ifsi=[];
  ifsa=[];
}

function gdadd(oselo) {
 var pari=1, thispari='0';
 if (oselo.value != '') {
  if (document.getElementById('pdflast')) {  document.getElementById('pdflast').value='n'; }
  //alert(oselo.value);
  var oselovalue=oselo.value.replace(',' + '$' + 'oimo','~' + '$' + 'oimo').split(',')[0];
  //alert(oselovalue);
  var oseloval=oselo.value;
  if (document.getElementById('imgds')) { if (document.getElementById('imgds').value == '') { document.getElementById('imgds').value='|';  } else { document.getElementById('imgds').value+=';'; } }  
  oseloval=oseloval.replace(',' + '$' + 'oimo','~' + '$' + 'oimo');
  oseloval=oseloval.replace(oseloval.split(',')[0], '');
  while (oseloval.indexOf(',') != -1) { 
  //alert(oseloval);
      if ((oseloval + ' ').substring(1).split(',')[0].trim() != '') {
      if ((' ' + (oseloval + ' ').substring(1).split(',')[0].trim() + ' ').toLowerCase().indexOf(' colour ') != -1) {
      thispari=prompt('Enter' + (' ' + (oseloval + ' ').substring(1).split(',')[0].trim() + ' ').toLowerCase().replace(' colour ', ' red,green,blue colour ') + 'parameter for GD ' + oselo.value.split(',')[0] + ' ' + pari + ' of ' + eval(-1 + oselo.value.replace(',' + '$' + 'oimo','').split(',').length)  + '?', '0');
      if (thispari == null) { 
        thispari='0';   
      } else if (thispari.trim() == '') {
        thispari='0';   
      } else if (thispari.indexOf(',') == -1) {
        oselovalue+=',' + thispari + '';
      } else {
        oselovalue+=',imagecolorallocate(' + '$' + 'oimo,' + thispari + ')';
      }
      } else {
      thispari=prompt('Enter ' + (oseloval + ' ').substring(1).split(',')[0].trim() + ' parameter for GD ' + oselo.value.split(',')[0] + ' ' + pari + ' of ' + eval(-1 + oselo.value.replace(',' + '$' + 'oimo','').split(',').length)  + '?', '0');
      if (thispari == null) { 
        thispari='0';   
      } else {
        oselovalue+=',' + thispari;
      }
      }
      oseloval=oseloval.replace(',' + (oseloval + ' ').substring(1).split(',')[0].trim(),'').trim();
      } else {     
      thispari=prompt('Enter numerical parameter for GD ' + oselo.value.split(',')[0] + ' ' + pari + ' of ' + eval(-1 + oselo.value.replace(',' + '$' + 'oimo','').split(',').length)  + '?', '0');
      oseloval=oseloval.replace(',','');
      if (thispari == null) { 
        thispari='0';   
      } else {
        oselovalue+=',' + thispari;
      }
      }
      //oseloval=oseloval.replace(oseloval.split(',')[0] + ',', '');
      //oseloval=oseloval.replace(',','');
      pari++;
  }
  if (document.getElementById('gdopt')) {
    document.getElementById('gdopt').innerHTML+='&nbsp;&nbsp;' + oselovalue.replace('~',',');
  }
  if (document.getElementById('imgds')) {
    if (document.getElementById('imgds').value.indexOf('-format pdf') != -1) {
    document.getElementById('imgds').value=document.getElementById('imgds').value.replace('-format pdf',' ') + oselovalue.replace('~',',') + ' -format pdf'; 
    } else {
    document.getElementById('imgds').value+=oselovalue.replace('~',','); 
    }
    //document.getElementById('imgds').style.display='inline-block';
    //document.getElementById('imgds').style.width='300px';
    if (document.getElementById('smyim').innerHTML == '') {  document.getElementById('smyim').innerHTML='ImageMagick switches: '; }
  } else if (document.getElementById('myim')) {
  //alert('here2');
    //document.getElementById('myim').innerHTML='<span id=smyim title=" . $applicationb . " onclick=applyto(); style=cursor:pointer;text-decoration:underline;>ImageMagick switches: </span><input id=imqty name=imqty type=text style=display:inline-block; value=\"\"></input><input id=imgds name=imgds type=hidden style=display:inline-block; value=\"|' + oselovalue.replace('~',',') + '\"></input>';
    document.getElementById('myim').innerHTML+='<input id=imgds name=imgds type=hidden style=display:inline-block; value=\"|' + oselovalue.replace('~',',') + '\"></input>';
    document.getElementById('imqty').style.width='300px';
  }
  oselo.value='';
 }
}

function laterand() {
  document.getElementById('mysubmit').click();
}

  function showStuff(evt) {
  if (iizhr.readyState == 4) {
    if (iizhr.status == 200) {
     if (iizhr.responseText.trim() != '' || 1 == 1) { 
    if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i) && 'y' == '" . $eeee . "') {
       if (evalcmd != '') {
       localwo=window.open('http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php?video=' + Math.floor(Math.random() * 198567544),'_blank','top=50,left=450,width=600,height=800');
       } else {
       localwo=window.open('http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php?video=' + Math.floor(Math.random() * 198567544),'_blank','top=50,left=50,width=800,height=800');
       }
       //alert(iizhr.responseText); 
    }
     }
    }
  }
  console.log('iizhr.readyState=' + iizhr.readyState + ' and iizhr.status=' + iizhr.status);
  }

function imadd(oselo) {
 var ate='', scriptstuff='<html><body><scrip' + 't type=text/javascript>'; // </sc' + 'ript></body></html>';
 //var iizhr=null, iizform=null;
 if (oselo.value == 'mamp') {
  alert('We looked for MAMP downloadable at https://www.mamp.info/ as a local web server idea and did not find it.  Then we would have looked for http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php as per https://rjmprogramming.com.au/ITblog/?s=http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php ideas.  Then there is the way it is set up for macOS usage and paths and assumes ffmpeg at https://www.ffmpeg.org/ exists there.  We got this going via \"brew install ffmpeg\"');
  oselo.value='';
  return '';
 } else if (oselo.value == 'advice') {
  alert('We found MAMP downloadable at https://www.mamp.info/ as a good local web server idea.  But then we failed looking for http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php as per https://rjmprogramming.com.au/ITblog/?s=http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php ideas.  Then there is the way it is set up for macOS usage and paths and assumes ffmpeg at https://www.ffmpeg.org/ exists there.  We got this going via \"brew install ffmpeg\"');
  oselo.value='';
  return '';
 } else if (oselo.value == 'video') {
  iizhr = new XMLHttpRequest();
  iizform=new FormData();
  if (localwo) { localwo.close(); localwo=null; }
  // //localwo=window.open('http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php?xxx=xxx','_blank','top=50,left=50,width=800,height=800');
  if (localwo || 1 == 1) {
    console.log('preb and viams[0]=' + viams[0]);
    var htempl=document.getElementById('myform').outerHTML.replace(\"usualclick=1;\",\" document.getElementById('myform').submit(); usualclick=1;\").replace('</form>','<input type=hidden value=y name=video></input></form>');
    //var htempl=document.body.innerHTML.replace(\"usualclick=1;\",\" document.getElementById('myform').submit(); usualclick=1;\").replace(' ',' target=_self ').replace('totalit()','true').replace('</form>','<input type=hidden value=y name=video></input></form>');
    htempl+='<scr' + 'ipt type=text/javascript> function dit() { var ghf=\"myform\";  if (document.getElementById(ghf)) {  document.getElementById(ghf).submit(); } else {  parent.document.getElementById(ghf).submit();  } }  setTimeout(dit,8000); </scr' + 'ipt>';
    htempl=htempl.replace('https://www.rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('http://www.rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('https://rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('http://rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('//www.rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('//rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('./tutorial_to_animated_gif.php','http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php').replace('tutorial_to_animated_gif.php','tutorial_to_animated_gif.php?video=y');
  if (1 == 1) {
  scriptstuff+=String.fromCharCode(10) + \" document.getElementById('\" + 'stitle' + \"').value='\" + document.getElementById('stitle').value + \"'; \" + String.fromCharCode(10);
  scriptstuff+=String.fromCharCode(10) + \" document.getElementById('\" + 'delay' + \"').value='\" + document.getElementById('delay').value + \"'; \" + String.fromCharCode(10);
  scriptstuff+=String.fromCharCode(10) + \"  \" + String.fromCharCode(10);
  } else {
  iizform.append('stitle', document.getElementById('stitle').value); 
  iizform.append('delay', document.getElementById('delay').value); 
  }
    var ssuff='', ksuff=2;
    htempl=htempl.replace(' =\"stitle\" value=\"\"', ' =\"stitle\" value=\"' + document.getElementById('stitle' + ssuff).value + ' \"').replace('=\"stitle\" value=>', '=\"stitle\" value=\"' + document.getElementById('stitle' + ssuff).value + ' \">');
    while (document.getElementById('slideshow' + ssuff)) {
      if (document.getElementById('slideshow' + ssuff).value != '') {
        //if (htempl.indexOf('=\"' + 'slideshow' + ssuff + '\" value=') != -1) { alert(ssuff); }
        htempl=htempl.replace('=\"' + 'slideshow' + ssuff + '\" value=\"\"', '=\"' + 'slideshow' + ssuff + '\" value=\"' + document.getElementById('slideshow' + ssuff).value + '\"').replace('=\"' + 'slideshow' + ssuff + '\" value>', '=\"' + 'slideshow' + ssuff + '\" value=\"' + document.getElementById('slideshow' + ssuff).value + '\">');
  if (ssuff.length == 0 || 7 == 7) {
  scriptstuff+=String.fromCharCode(10) + \"  \" + String.fromCharCode(10);
  //scriptstuff+=String.fromCharCode(10) + \" document.getElementById('\" + 'slideshow' + ssuff + \"').value='\" + document.getElementById('slideshow' + ssuff).value.replace(/\+/g, '%43') + \"'; \" + String.fromCharCode(10);
  scriptstuff+=String.fromCharCode(10) + \" document.getElementById('\" + 'slideshow' + ssuff + \"').value='\" + document.getElementById('slideshow' + ssuff).value + \"'; \" + String.fromCharCode(10);
  scriptstuff+=String.fromCharCode(10) + \"  \" + String.fromCharCode(10);
  scriptstuff+=String.fromCharCode(10) + \" document.getElementById('numslides').value='-\" + eval(-1 + ksuff) + \"'; \" + String.fromCharCode(10);
  } else if (1 == 1) {
  //scriptstuff+=String.fromCharCode(10) + \" document.getElementById('\" + 'fdiv1' + \"').innerHTML+='<input id=slideshow' + ssuff + ' name=slideshow' + ssuff + ' type=hidden value=\" + String.fromCharCode(34) + document.getElementById('slideshow' + ssuff).value.replace(/\+/g, '%43') + String.fromCharCode(34) + \"></input>'; \" + String.fromCharCode(10);
  scriptstuff+=String.fromCharCode(10) + \" document.getElementById('\" + 'fdiv1' + \"').innerHTML+='<input id=slideshow' + ssuff + ' name=slideshow' + ssuff + ' type=hidden value=\" + String.fromCharCode(34) + document.getElementById('slideshow' + ssuff).value + String.fromCharCode(34) + \"></input>'; \" + String.fromCharCode(10);
  } else {
  iizform.append('slideshow' + ssuff, document.getElementById('slideshow' + ssuff).value); 
  }
      }
      ssuff='' + ksuff;
      ksuff++;
    }
    //localwo.document.write(document.getElementById('myform').outerHTML.replace('https://www.rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('http://www.rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('https://rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('http://rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('//www.rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('//rjmprogramming.com.au','http://localhost" . $lportbit . "').replace('./tutorial_to_animated_gif.php','http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php'));
    //localwo.close();
    //localwo=window.open('','_blank','top=50,left=50,width=800,height=800');
    // //localwo.document.write('<html><head>' + document.head.innerHTML + '</head><body onload=setTimeout(dit,5000);>' + document.body.innerHTML.replace(document.getElementById('myform').outerHTML,htempl) + '</body></html>');
    //localwo.document.body.innerHTML=(htempl);
    // //console.log(htempl);
    //localwo.document.getElementById('stitle').value='document.body.innerHTML';
    //localwo.document.body.innerHTML=document.body.innerHTML;
    if (scriptstuff.indexOf('.value') != -1) {
  scriptstuff+=String.fromCharCode(10) + \" if (1 == 5) { document.getElementById('\" + 'myform' + \"').target='locit';  document.getElementById('\" + 'locit' + \"').style.width='100%'; document.getElementById('\" + 'locit' + \"').style.height='900px'; document.getElementById('\" + 'locit' + \"').style.display='block'; } document.getElementById('\" + 'myform' + \"').target='_self'; document.getElementById('\" + 'myform' + \"').action=documentURL.split('?')[0]; document.getElementById('\" + 'fdiv1' + \"').innerHTML+='<input value=y name=video type=hidden></input>'; \" + String.fromCharCode(10);
  scriptstuff+=String.fromCharCode(10) + \" document.getElementById('\" + 'mysubmit' + \"').click(); \" + String.fromCharCode(10);
  iizform.append('scriptstuff', scriptstuff + '</sc' + 'ript></body></html>'); 
    }
  iizform.append('video', 'y'); 
  iizform.append('nicky', '" . ggserver_remote_addr() . "'); 
  iizform.append('nickz', '" . server_remote_addr() . "'); 
  iizhr.open('post', '//www.rjmprogramming.com.au/PHP/animegif/tutorial_to_animated_gif.php?xxxx=xxxx', true);
  iizhr.onreadystatechange = showStuff;
  //alert('now');
  iizhr.send(iizform);
  //alert('now again');
    console.log('postb');
  }
  oselo.value='';
  return '';
 } else if (oselo.value != '') {
  var oselovalue=oselo.value;
  if (document.getElementById('inextis')) {  
    if (oselo.value.indexOf('-format pdf') != -1) {
      document.getElementById('myim').innerHTML+='<input type=hidden name=outpdf id=outpdf value=></input><input type=hidden name=pdflast id=pdflast value=></input>';
  if (document.getElementById('gdopt')) {
    document.getElementById('gdopt').innerHTML+='&nbsp;&nbsp;' + oselovalue.replace('~',',');
  }
      oselovalue=' ';
    } else {
  if (document.getElementById('pdflast')) {  document.getElementById('pdflast').value='n'; }
    }
    if (document.getElementById('inextis').value.indexOf('-format pdf') != -1) {
    document.getElementById('inextis').value=document.getElementById('inextis').value.replace('-format pdf',' ') + oselovalue + ' -format pdf'; 
    } else {
    document.getElementById('inextis').value+=oselovalue; 
    }
    document.getElementById('inextis').style.display='inline-block';
    document.getElementById('inextis').style.width='300px';
    if (document.getElementById('smyim').innerHTML == '') {  document.getElementById('smyim').innerHTML='ImageMagick switches: '; }
  } else if (document.getElementById('imqty')) { 
    if (oselo.value.indexOf('-format pdf') != -1) {
      document.getElementById('myim').innerHTML+='<input type=hidden name=outpdf id=outpdf value=></input><input type=hidden name=pdflast id=pdflast value=></input>';
  if (document.getElementById('gdopt')) {
    document.getElementById('gdopt').innerHTML+='&nbsp;&nbsp;' + oselovalue.replace('~',',');
  }
      oselovalue=' ';
    } else {
  if (document.getElementById('pdflast')) {  document.getElementById('pdflast').value='n'; }
    }
    if (document.getElementById('imqty').value.indexOf('-format pdf') != -1) {
    document.getElementById('imqty').value=document.getElementById('imqty').value.replace('-format pdf',' ') + oselovalue + ' -format pdf'; 
    } else {
    document.getElementById('imqty').value+=oselovalue; 
    }
    document.getElementById('imqty').style.display='inline-block';
    document.getElementById('imqty').style.width='300px';
    if (document.getElementById('smyim').innerHTML == '') {  document.getElementById('smyim').innerHTML='ImageMagick switches: '; }
  } else if (document.getElementById('myim')) {
    if (oselo.value.indexOf('-format pdf') != -1) {
      ate='<input type=hidden name=outpdf id=outpdf value=></input><input type=hidden name=pdflast id=pdflast value=></input>';
  if (document.getElementById('gdopt')) {
    document.getElementById('gdopt').innerHTML+='&nbsp;&nbsp;' + oselovalue.replace('~',',');
  }
      oselovalue=' ';
    } else {
  if (document.getElementById('pdflast')) {  document.getElementById('pdflast').value='n'; }

    if (document.getElementById('imqty').value.indexOf('-format pdf') != -1) {
    document.getElementById('imqty').value=document.getElementById('imqty').value.replace('-format pdf',' ') + oselovalue + ' -format pdf'; 
    } else {
    document.getElementById('myim').innerHTML='<span id=smyim title=" . $applicationb . " onclick=applyto(); style=cursor:pointer;text-decoration:underline;>ImageMagick switches: </span><input id=imqty name=imqty type=text style=display:inline-block; value=\"' + oselovalue + '\"></input>' + ate;
    }
    document.getElementById('imqty').style.width='300px';


    }
  //alert('here3 with ate=' + ate);
  if (document.getElementById('myim') && ate != '') {
    if (ate.indexOf('imgds') == -1 && document.getElementById('imgds')) { ate+=document.getElementById('imgds').outerHTML; }
    document.getElementById('myim').innerHTML='<span id=smyim title=" . $applicationb . " onclick=applyto(); style=cursor:pointer;text-decoration:underline;>ImageMagick switches: </span><input id=imqty name=imqty type=text style=display:inline-block; value=\"' + oselovalue + '\"></input>' + ate;
    document.getElementById('imqty').style.width='300px';
  }
  }
  oselo.value='';
 }
}

function reorderifs() {
  var doloateri=false;
  var oifs=document.getElementsByTagName('iframe');
  for (var jifso=0; jifso<oifs.length; jifso++) {
    if (('' + oifs[jifso].src).indexOf('?') != -1) {
    if (('' + oifs[jifso].src).indexOf('.php') != -1) {
      if (('' + oifs[jifso].src).indexOf('&ran=') != -1) {
        if (1 == 2) {
        doloateri=true;
        ifsi.push(jifso);
        ifsa.push(oifs[jifso].src.split('&ran=')[0] + '&ran=' + Math.floor(Math.random() * 1986754));
        oifs[jifso].src='//www.rjmprogramming.com.au/About_Us.html'; //oifs[jifso].src.split('&ran=')[0] + '&ran=' + Math.floor(Math.random() * 1986754);
        } else {
        oifs[jifso].src=oifs[jifso].src.split('&ran=')[0] + '&ran=' + Math.floor(Math.random() * 1986754);
        }
     } else {
        if (1 == 2) {
        doloateri=true;
        ifsi.push(jifso);
        ifsa.push(oifs[jifso].src+'&ran=' + Math.floor(Math.random() * 1986754));
        oifs[jifso].src='//www.rjmprogramming.com.au/About_Us.html'; //'&ran=' + Math.floor(Math.random() * 1986754);
        } else {
        oifs[jifso].src+='&ran=' + Math.floor(Math.random() * 1986754);
        }
      }
    }
    }
  }
  if (doloateri) {
    setTimeout(postreorderifs, 2000);
  }
}

function isimage(tvl) {
  var retval=false, look=true, alin=0, cae='', parts=[], it=0;
  ourmime=''; 
  if (tvl != tvl.trim() && tvl.trim().length < 20 && tvl.trim() != '' && (tvl + ' ').substring(0,1) >= '0' && (tvl + ' ').substring(0,1) <= '9' && ('x' + tvl).trim().slice(-1) >= '0' && ('x' + tvl).trim().slice(-1) <= '9') {
  tvl=tvl;
  } else {
  if (tvl.indexOf('data:') == 0) {
     ourmime=tvl.split('ata:')[1].split(String.fromCharCode(34))[0];
     //alert(ourmime);
  } else {   
     parts=tvl.split('#')[0].split('.');
     for (it=0; it<exts.length; it++) {
             if ('.' + parts[eval(-1 + parts.length)].toLowerCase() == exts[it].toLowerCase()) { ourmime=types[it]; if (def_ext == '') { def_ext=exts[it].toLowerCase().substring(1); if (document.getElementById('inextis')) { document.getElementById('inextis').value=def_ext; } else if (document.getElementById('myim')) { document.getElementById('myim').innerHTML+='<input type=hidden name=inextis id=inextis value=' + def_ext + '></input>';  }   } }
     }
  }
  if (ourmime.indexOf('audio/') == 0) {
       document.getElementById('faudio').value=tvl;
       if (document.getElementById('mysubmit').value.indexOf('background to') == -1) {
       document.getElementById('mysubmit').value+=' (background to Audio)';
       if (document.getElementById('rcmysubmit')) {
       document.getElementById('rcmysubmit').value+=' (background to Audio)';
       }
       }
       if (!allowaudio) { return false; } else { retval=true; }
  } else if (ourmime.indexOf('video/') == 0) {
       document.getElementById('fvideo').value=tvl;
       if (document.getElementById('mysubmit').value.indexOf('background to Audio') != -1) {
       document.getElementById('mysubmit').value=document.getElementById('mysubmit').value.replace(' (background to Audio)',' (background to Video)');
       if (document.getElementById('rcmysubmit')) {
       document.getElementById('rcmysubmit').value=document.getElementById('rcmysubmit').value.split(' (')[0] + ' (background to Video)';
       }
       } else if (document.getElementById('mysubmit').value.indexOf('background to') == -1) {
       document.getElementById('mysubmit').value+=' (background to Video)';
       if (document.getElementById('rcmysubmit')) {
       document.getElementById('rcmysubmit').value+=' (background to Video)';
       }
       }
       if (!allowvideo) { return false; } else { retval=true; }
  }
  }
  if (tvl != tvl.trim() && tvl.trim().length < 20 && tvl.trim() != '' && (tvl + ' ').substring(0,1) >= '0' && (tvl + ' ').substring(0,1) <= '9' && ('x' + tvl).trim().slice(-1) >= '0' && ('x' + tvl).trim().slice(-1) <= '9') {
    if (tvl.indexOf('.') != -1 && 1 == 5) { document.getElementById('myimghere').src=tvl; }
    return true;
  }
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.jpeg,') != -1) cae='.jpeg';
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.jpg,') != -1) cae='.jpg';
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.gif,') != -1) cae='.gif';
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.png,') != -1) cae='.png';
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.bmp,') != -1) cae='.bmp';
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.tiff,') != -1) cae='.tiff';
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.tif,') != -1) cae='.tif';
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.jp') != -1) retval=true;
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.gif') != -1) retval=true;
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.png') != -1) retval=true;
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.bmp') != -1) retval=true;
  if (tvl.replace('data:image/','.').toLowerCase().indexOf('.tif') != -1) retval=true;
  if (retval && 1 == 5) {      document.getElementById('myimghere').src=tvl; }
  if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
    cae=cae;
  } else if (retval && (tvl.indexOf('-') != -1 || tvl.indexOf(',') != -1)) {
    upforgrabs=true;
    if (tvl.indexOf('-') == -1 && tvl.indexOf(',') != -1) {
     upprefix=tvl.split(',')[0];
     if (cae != '') {  cae=tvl.toLowerCase().split(cae)[0];  upprefix=tvl.substring(0, cae.length);   }
     //alert(upprefix);
     thisto='';
     for (var ijh=eval(-1 + upprefix.length); ijh>=0; ijh--) {
       if (look) {
         if (upprefix.substring(ijh, eval(1 + ijh)) >= '0' && upprefix.substring(ijh, eval(1 + ijh)) <= '9') {
           thisto=upprefix.substring(ijh, eval(1 + ijh)) + thisto;
         } else {
           look=false;
         }
       }
     }
     tvl=tvl.replace(upprefix, upprefix + '-' + thisto);
     alin=upprefix.length;
     alin-=thisto.length;
     upprefix=upprefix.substring(0, alin);
     //alert(upprefix);
    } else if (tvl.indexOf('-') != -1 && tvl.indexOf(',') != -1) {
     if (tvl.indexOf(',') < tvl.indexOf('-')) {
     upprefix=tvl.split(',')[0];
     if (cae != '') {  cae=tvl.toLowerCase().split(cae)[0];  upprefix=tvl.substring(0, cae.length);   }
     //alert(upprefix);
     thisto='';
     for (var ijh=eval(-1 + upprefix.length); ijh>=0; ijh--) {
       if (look) {
         if (upprefix.substring(ijh, eval(1 + ijh)) >= '0' && upprefix.substring(ijh, eval(1 + ijh)) <= '9') {
           thisto=upprefix.substring(ijh, eval(1 + ijh)) + thisto;
         } else {
           look=false;
         }
       }
     }
     tvl=tvl.replace(upprefix, upprefix + '-' + thisto);
     alin=upprefix.length;
     alin-=thisto.length;
     upprefix=upprefix.substring(0, alin);
     }
    }  
    if (tvl.split('-').length > 2) {
    var preupfor=tvl.split('-')[0] + '-';
    upfor=preupfor + tvl.replace(preupfor,'').replace(/-/g,'%2d');
    //upfor=tvl;
    //alert(upfor);
    } else {
    upfor=tvl;
    }
    //alert('upfor=' + upfor);
    try {
    document.getElementById('iproposed').src=tvl;
    } catch(ee) {
    }
  }
  if (!retval) { 
  if (tvl.trim() != '') {
  //alert(tvl);
  //document.title='1=' + tvl;
  upforgrabs=false;
  upfor='';
  }
  return retval; 
  }
  return retval;
}
function and_then() {
  if (document.getElementById('mysv')) {
  document.getElementById('mysv').click();
  } else if (document.getElementById('mysa')) {
  document.getElementById('mysa').click();
  } else {
  document.getElementById('mysubmit').click();
  }
}
function latermaybemore() {
  var tval='', xval='';
  var newi=null, fo=null;
  var newsuffix='';
  //alert('prethere');
  if (upforgrabs) {
   //alert('there');
   if (origupfor == '') { 
     //alert('upfor=' + upfor);
     origupfor=decodeURIComponent(upfor); 
     xval='-' + decodeURIComponent(upfor.split('-')[eval(-1 + upfor.split('-').length)]);
     if (xval.indexOf('.') != -1) {
     upto=xval.substring(1).split('.')[0];
     if (upto.indexOf('*') != -1 || upto.indexOf('?') != -1 || upto.indexOf('%') != -1) { upto=''; }
     upsuffix='.' + decodeURIComponent(xval.split('.')[eval(-1 + xval.split('.').length)]);
     upprefix=decodeURIComponent(upfor).replace(xval, '');
     var look=true;
     thisto='';
     for (var ijh=eval(-1 + upprefix.length); ijh>=0; ijh--) {
       if (look) {
         if (upprefix.substring(ijh, eval(1 + ijh)) >= '0' && upprefix.substring(ijh, eval(1 + ijh)) <= '9') {
           thisto=upprefix.substring(ijh, eval(1 + ijh)) + thisto;
         } else {
           look=false;
         }
       }
     }
     if (thisto == '') {
  //document.title='2';
     upforgrabs=false;
   tval=upfor;
   origupfor='';
   fo=document.getElementById('fdiv' + icnt);
   icnt++;
   newi=document.getElementById('slideshow' + icnt);
   if (fo != null && newi == null) {
    fo.innerHTML+=\"<span id=ours\" + icnt + \">\" + tusl + \" Image</span> \" + icnt + \" <input title='Please note a minus between numericals can define a URL range of image URLs' placeholder='Append #comment[~second line] for animated GIF watermarks (that are red if first slide has such a comment) ... {[unicode]} for some emojis' data-onlosefocus='maybeggmore(this.value, this.id, this);' onblur='maybemore(this.value, this.id, this);' style='width:" . $seventypc . ";'" . $omoin . " data-wh='' type='text' id='slideshow\" + icnt + \"' name='slideshow\" + icnt + \"' value=''></input><br><br><div id='fdiv\" + icnt + \"'></div>\";
   } 
     } else {
     upprefix=decodeURIComponent(upprefix.substring(0, eval(eval('' + upprefix.length) - eval('' + thisto.length))));
     upfor=decodeURIComponent(upfor).replace(xval, '') + upsuffix;
     if (upto == '') {
       incis=0;
     } else if (('' + upto + ' ').substring(0,1) >= 'A' && ('' + upto + ' ').substring(0,1) <= 'Z') {
       incis=0;
     } else if (('' + upto + ' ').substring(0,1) >= 'a' && ('' + upto + ' ').substring(0,1) <= 'z') {
       incis=0;
     } else if (('' + thisto + ' ').substring(0,1) >= 'A' && ('' + thisto + ' ').substring(0,1) <= 'Z') {
       incis=0;
     } else if (('' + thisto + ' ').substring(0,1) >= 'a' && ('' + thisto + ' ').substring(0,1) <= 'z') {
       incis=0;
     } else if (eval('' + upto) > eval('' + thisto)) {
       incis=1;
     } else {
       incis=-1;
     }
  var jkh=\"<iframe id=jproposed\" + icnt + \" style=display:none; onerror='upforgrabs=false;' onload=checkproposedj(this); src='\" + upfor + \"'></iframe>\";
   jkh=\"<iframe id=jproposed\" + icnt + \" style=display:none; onerror='upforgrabs=false;' src='\" + more(upfor) + \"'></iframe>\";
   //alert('About to try ' + jkh);
     document.getElementById('jdiv').innerHTML=jkh;
  //document.title='55';
     upforgrabs=false; // new idea
     //alert('prejtry');
     //setTimeout(jtry, 1000); // document.getElementById('jproposed').src=upfor;
     }
     } else {
  //document.title='3';
     upforgrabs=false;
   tval=upfor;
   origupfor='';
   fo=document.getElementById('fdiv' + icnt);
   icnt++;
   newi=document.getElementById('slideshow' + icnt);
   if (fo != null && newi == null) {
    fo.innerHTML+=\"<span id=ours\" + icnt + \">\" + tusl + \" Image</span> \" + icnt + \" <input title='Please note a minus between numericals can define a URL range of image URLs' placeholder='Append #comment[~second line] for animated GIF watermarks (that are red if first slide has such a comment) ... {[unicode]} for some emojis' data-onlosefocus='maybeggmore(this.value, this.id, this);' onblur='maybemore(this.value, this.id, this);' style='width:" . $seventypc . ";'" . $omoin . " data-wh='' type='text' id='slideshow\" + icnt + \"' name='slideshow\" + icnt + \"' value=''></input><br><br><div id='fdiv\" + icnt + \"'></div>\";
   } 
     }
   }
   while (upforgrabs) {
     setTimeout(latermaybemore, 2000);
   }
   origupfor='';
   return;
  } else {
   tval=upfor;
   origupfor='';
   fo=document.getElementById('fdiv' + icnt);
   icnt++;
   newi=document.getElementById('slideshow' + icnt);
   if (fo != null && newi == null) {
    fo.innerHTML+=\"<span id=ours\" + icnt + \">\" + tusl + \" Image</span> \" + icnt + \" <input title='Please note a minus between numericals can define a URL range of image URLs' placeholder='Append #comment[~second line] for animated GIF watermarks (that are red if first slide has such a comment) ... {[unicode]} for some emojis' data-onlosefocus='maybeggmore(this.value, this.id, this);' onblur='maybemore(this.value, this.id, this);' style='width:" . $seventypc . ";'" . $omoin . " data-wh='' type='text' id='slideshow\" + icnt + \"' name='slideshow\" + icnt + \"' value=''></input><br><br><div id='fdiv\" + icnt + \"'></div>\";
   } 
  }
}

function wopt() {
  document.getElementById('xxlocit').title='Found';
}

function more(what) {
  var purl='', look=true;
  if (what.replace(decodeURIComponent(upsuffix),decodeURIComponent(upsuffix).split(',')[0]).indexOf(',') != -1) {
  var xxx=''; //what.replace(what.replace(decodeURIComponent(upsuffix),decodeURIComponent(upsuffix).split(',')[0]),'').split('.')[0];
  xxx=(',' + what.replace(decodeURIComponent(upsuffix),decodeURIComponent(upsuffix).split(',')[0]).split(',')[1]).split('.')[0];
  upprefix=what.replace(decodeURIComponent(upsuffix),decodeURIComponent(upsuffix).split(',')[0]).split(',')[0];
  if (decodeURIComponent(upsuffix).indexOf(',') != -1) {
    upsuffix=decodeURIComponent(upsuffix).replace(',', xxx + ','); 
  } else {
    upsuffix=decodeURIComponent(upsuffix) + xxx;
  }
  thisto='';
  for (var ijh=eval(-1 + upprefix.length); ijh>=0; ijh--) {
       if (look) {
         if (upprefix.substring(ijh, eval(1 + ijh)) >= '0' && upprefix.substring(ijh, eval(1 + ijh)) <= '9') {
           thisto=upprefix.substring(ijh, eval(1 + ijh)) + thisto;
         } else {
           look=false;
         }
       }
  }
  upprefix=upprefix.substring(0, eval(eval('' + upprefix.length) - eval('' + thisto.length)));
  purl=documentURL.split('#')[0].split('?')[0] + '?urlminus=' + encodeURIComponent(what.replace(decodeURIComponent(upsuffix),decodeURIComponent(upsuffix).split(',')[0]).split(',')[0] + decodeURIComponent(upsuffix).split(',')[0]) + '&lastioid=' + encodeURIComponent(lastioid) + '&upprefix=' + encodeURIComponent(upprefix) + '&upsuffix=' + encodeURIComponent(upsuffix) + '&icnt=' + encodeURIComponent(icnt) + '&incis=' + encodeURIComponent(incis) + '&upto=' + encodeURIComponent(upto) + '&thisto=' + encodeURIComponent(thisto);
  } else {
  purl=documentURL.split('#')[0].split('?')[0] + '?urlminus=' + encodeURIComponent(what.replace(decodeURIComponent(upsuffix),decodeURIComponent(upsuffix).split(',')[0])) + '&lastioid=' + encodeURIComponent(lastioid) + '&upprefix=' + encodeURIComponent(upprefix) + '&upsuffix=' + encodeURIComponent(upsuffix) + '&icnt=' + encodeURIComponent(icnt) + '&incis=' + encodeURIComponent(incis) + '&upto=' + encodeURIComponent(upto) + '&thisto=' + encodeURIComponent(thisto);
  }
  
  //alert(purl);
  return purl; 
}

function jtry() {
     //alert('about to try ' + upfor);
   var jkh=\"<iframe id=jproposed\" + icnt + \" style=display:none; onerror='upforgrabs=false;' onload=checkproposedj(this); src='\" + upfor + \"'></iframe>\";
   jkh=\"<iframe id=jproposed\" + icnt + \" style=display:none; onerror='upforgrabs=false;' src='\" + more(upfor) + \"'></iframe>\";
   //alert('AboUt to try ' + jkh);
     document.getElementById('jdiv').innerHTML=jkh;
  //document.getElementById('jdiv').innerHTML=\"<iframe id=jproposed style=display:none; onerror='upforgrabs=false;' onload=checkproposedj(this); src='\" + upfor + \"'></iframe>\";
  //document.getElementById('jproposed').src=upfor;
}

function playseq() {
  if (document.getElementById('asong' + vcur)) {
    if (document.getElementById('asong' + vcur).title != '') {
      console.log('sleep ' + Math.floor(eval(eval(document.getElementById('asong' + vcur).title) * 1000)));
      setTimeout(playseq, Math.floor(eval(eval(document.getElementById('asong' + vcur).title) * 1000)));
      if (eval('' + vcur) != 2) {  document.getElementById('asong' + vcur).play();  }
      vcur++;
    }
  } else {
    vcur=2;
  }
}

function upno() {
  if (parent.document.getElementById('filespec').placeholder == 'Uploading now ...') {
    parent.document.getElementById('filespec').placeholder = 'Uploading now .....';
  } else {
    parent.document.getElementById('filespec').placeholder = 'Uploading now ...';
  }
}

function maybeggmore() { //tval, tid, tis) {
  if (document.URL.indexOf('calledbygg=') != -1 && document.getElementById('slideshow' + ggvalssuffix).value.indexOf('data:') == 0 && ggvals.length == ggvalslen) {
    ggvals.push(document.getElementById('slideshow' + ggvalssuffix).value);
    if (ggvalssuffix == '') { ggvalssuffix='2'; } else { ggvalssuffix='' + eval(1 + eval('' + ggvalssuffix)); }
    //alert(ggvals[ggvalslen]); //tval + ' ' + tid + ' ' + tis.id);
    ggvalslen=eval('' + ggvals.length);
    ggvalgoes=0;
  iizhr = new XMLHttpRequest();
  iizform=new FormData();
  if (ggvalslen == 1) {
    iizform.append('justuntmpthis', 'y');
   // alert(1);
    if (parent.document.getElementById('ggif')) {
    //alert(11);
      parent.document.body.style.cursor='progress';
    //alert(111);
    }
    if (1 == 1 || navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
    //alert(1);
    parent.document.getElementById('dsct').innerHTML='<style> #filespec::placeholder { color:red; } </style>';
    //alert('11' + '' + parent.document.getElementById('dsct').innerHTML);
    parent.document.getElementById('filespec').placeholder='Uploading now ...';
    setInterval(upno, 2000);
    }
  }
  iizform.append('justtmpthis', ggvals[eval(-1 + ggvalslen)]);
  iizform.append('nicky', '" . ggserver_remote_addr() . "'); 
  iizform.append('nickz', '" . server_remote_addr() . "'); 
  iizhr.open('post', './tutorial_to_animated_gif.php?xxx=' + Math.floor(Math.random() * 198756432), true);
  iizhr.send(iizform);
    if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
    setTimeout(maybeggmore, 12000);
    } else {
    setTimeout(maybeggmore, 5000);
    }
  } else if (document.URL.indexOf('calledbygg=') != -1 && document.getElementById('slideshow' + ggvalssuffix).value.toLowerCase().indexOf('http') == 0 && ggvals.length == ggvalslen) {
    ggvals.push(document.getElementById('slideshow' + ggvalssuffix).value);
    if (ggvalssuffix == '') { ggvalssuffix='2'; } else { ggvalssuffix='' + eval(1 + eval('' + ggvalssuffix)); }
    ggvalgoes=0;
    //alert('2:' + ggvals[ggvalslen]); //tval + ' ' + tid + ' ' + tis.id);
    ggvalslen=eval('' + ggvals.length);
  iizhr = new XMLHttpRequest();
  iizform=new FormData();
  if (ggvalslen == 1) {
    iizform.append('justuntmpthis', 'y');
    //alert(2);
    if (parent.document.getElementById('ggif')) {
    //alert(21);
      parent.document.body.style.cursor='progress';
    //alert(12);
    }
  }
  iizform.append('justtmpthis', ggvals[eval(-1 + ggvalslen)]);
  iizform.append('nicky', '" . ggserver_remote_addr() . "'); 
  iizform.append('nickz', '" . server_remote_addr() . "'); 
  iizhr.open('post', './tutorial_to_animated_gif.php?xxx=' + Math.floor(Math.random() * 198756432), true);
  iizhr.send(iizform);
    if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
    setTimeout(maybeggmore, 12000);
    } else {
    setTimeout(maybeggmore, 5000);
    }
  } else if (ggvalgoes >= 12 && ggvalslen > 0) {
    var andvgo='';
    if (evalcmd.length != 0) { 
          andvgo='&andvgo=y';
    } 
    top.location.href=cbggis.split('?')[0].split('#')[0] + '?filespec=' + encodeURIComponent('" . $thetemp . ggserver_remote_addr() . "tmp*.*') + '&andgo=y' + andvgo;
  } else {
    ggvalgoes++;
    if (ggvalgoes == 6 && ggvalslen > 0) {
  iizhr = new XMLHttpRequest();
  iizform=new FormData();
  iizform.append('justpdftmpthis', 'y');
  iizform.append('justvideotmpthis', 'y');
  iizform.append('nicky', '" . ggserver_remote_addr() . "'); 
  iizform.append('nickz', '" . server_remote_addr() . "'); 
  iizhr.open('post', './tutorial_to_animated_gif.php?xxx=' + Math.floor(Math.random() * 198756432), true);
  iizhr.send(iizform);
  if (evalcmd.length != 0) {  
    document.getElementById('imsel').value='video';   
    imadd(document.getElementById('imsel'));     
  }
  document.getElementById('delay').value='400';
  document.getElementById('myform').target='zzlocit'; //'xxlocit';
  document.getElementById('mysubmit').click();
    }
    if (1 == 2 && ggvalgoes == 8 && ggvalslen > 0) {
  iizhr = new XMLHttpRequest();
  iizform=new FormData();
  iizform.append('justvideotmpthis', 'y');
  iizform.append('nicky', '" . ggserver_remote_addr() . "'); 
  iizform.append('nickz', '" . server_remote_addr() . "'); 
  iizhr.open('post', './tutorial_to_animated_gif.php?xxx=' + Math.floor(Math.random() * 198756432), true);
  iizhr.send(iizform);
    }
    if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
    setTimeout(maybeggmore, 12000);
    } else {
    setTimeout(maybeggmore, 5000);
    }
  }
}

function maybemore(tval, tid, tis) {
  console.log('tval=' + tval);
  console.log('tid=' + tid);
  console.log('tis=' + tis);
  var newi=null, fo=null;
  var inmb=0;
  tval=tval.replace('#song','');
  if (tis.id == 'slideshow') {
    if (tval != '') { document.getElementById('dvif').innerHTML='<iframe style=display:none; src=./exif_rotation_check.php?imagetocheck=' + encodeURIComponent(tval.split('#')[0]) + '></iframe>';    }
  }
  if (('' + tval).length <= 9) { 
    viams.push(tid + '@#@' + tval); 
    viamsd.push(0);
  } else if (('' + tval).indexOf('ata:') != -1) {
    var sps=null, isps=0, inps=null, isps=0;
    for (inmb=0; inmb<viams.length; inmb++) {
      if (viams[inmb].indexOf(('' + tid + '@#@')) == 0) {
        viams[inmb]=('' + tid).replace('slideshow','') + '#@#' + tval;
        vst++;
        if (('' + tval).indexOf('ata:image/') != -1) {
          vsti++;
          lastnav=tval;
          //alert(lastnav);
        } else if (('' + tval).indexOf('ata:audio/') != -1) {
          vsta++;
          tusl='Background';
          sps=document.getElementsByTagName('span');
          for (isps=0; isps<sps.length; isps++) {
            if (sps[isps].innerHTML.indexOf('Tutorial Slideshow') != -1) {
              sps[isps].innerHTML=sps[isps].innerHTML.replace('Tutorial Slideshow', 'Background');
            }
          }
          inps=document.getElementsByTagName('input');
          for (isps=0; isps<inps.length; isps++) {
            if (('' + inps[isps].value).indexOf('Tutorial Slideshow to ') == 0) {
              if (('' + inps[isps].value).indexOf('Randomized Content Order') != -1) {
              inps[isps].value=inps[isps].value='Email and/or Play and/or Synchronize Media';
              } else {
              inps[isps].value=inps[isps].value='Play and/or Synchronize Media';
              }
            }
          }
          if (document.getElementById('ours' + eval(-1 + eval('' + ('' + tid).replace('slideshow',''))))) {
            document.getElementById('ours' + eval(-1 + eval('' + ('' + tid).replace('slideshow','')))).innerHTML='Audio';
          }
          //alert('audio');
          var ais=document.createElement('audio');
          ais.type='audio/' + ('' + tval).split('ata:audio/')[1].split(':')[0].split(';')[0];
          ais.src=tval.replace('#song','');
          ais.style.verticalAlign='top';
          ais.title='';
          ais.controls='controls';
          ais.id='asong' + ('' + tid).replace('slideshow','');
          if (document.getElementById('song').innerHTML == '') { document.getElementById('song').innerHTML='<br><br>Play Audio/Video Sequentially below if Start of Play is first bit of media ...<br>'; vcur=eval(('' + tid).replace('slideshow','')); ais.onplay=function (event){ playseq(); }; setTimeout(asongit, 3000); }
          document.getElementById('song').appendChild(ais);
          //document.getElementById('song').innerHTML+='<br>';
        } else if (('' + tval).indexOf('ata:video/') != -1) {
          vstv++;
          tusl='Background';
          sps=document.getElementsByTagName('span');
          for (isps=0; isps<sps.length; isps++) {
            if (sps[isps].innerHTML.indexOf('Tutorial Slideshow') != -1) {
              sps[isps].innerHTML=sps[isps].innerHTML.replace('Tutorial Slideshow', 'Background');
            }
          }
          inps=document.getElementsByTagName('input');
          for (isps=0; isps<inps.length; isps++) {
            if (('' + inps[isps].value).indexOf('Tutorial Slideshow to ') == 0) {
              if (('' + inps[isps].value).indexOf('Randomized Content Order') != -1) {
              inps[isps].value=inps[isps].value='Email and/or Play and/or Synchronize Media';
              } else {
              inps[isps].value=inps[isps].value='Play and/or Synchronize Media';
              }
            }
          }
          //alert('video');
          if (document.getElementById('ours' + eval(-1 + eval('' + ('' + tid).replace('slideshow',''))))) {
            document.getElementById('ours' + eval(-1 + eval('' + ('' + tid).replace('slideshow','')))).innerHTML='Video';
          }
          var vis=document.createElement('video');
          vis.type='video/' + ('' + tval).split('ata:video/')[1].split(':')[0].split(';')[0];
          //alert(vis.type + ' ' + tval.replace('#song','').substring(0,120));
          vis.title='';
          vis.style.verticalAlign='top';
          vis.src=tval.replace('#song','');
          vis.controls='controls';
          vis.id='asong' + ('' + tid).replace('slideshow','');
          if (document.getElementById('song').innerHTML == '') { document.getElementById('song').innerHTML='<br><br>Play Audio/Video Sequentially below if Start of Play is first bit of media ...<br>';  vcur=eval(('' + tid).replace('slideshow','')); vis.onplay=function (event){ playseq(); }; setTimeout(asongit, 3000); }
          document.getElementById('song').appendChild(vis);
          //document.getElementById('song').innerHTML+='<br>';
        }
      }
    }
  }
  lastioid=tis.id;
  if (tval != '' && tval.indexOf(droot) != 0) {
    console.log('tval=' + tval + ' and droot=' + droot);
  }
  if (tval != '' && tval.indexOf(droot) == 0) {
    if ((' ' + droot).slice(-1) == ('" . DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . "').substring(0,1)) {
    tval=tval.replace(droot, documentURL.split('//')[0].replace('https:','http:') + '//' + documentURL.split('//')[1].split('/')[0] + '/');
    } else {
    tval=tval.replace(droot + ('" . DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . "').substring(0,1), documentURL.split('//')[0].replace('https:','http:') + '//' + documentURL.split('//')[1].split('/')[0] + '/');
    }
    tis.value=tval.replace('#song','');
  }
  if (isimage(tval)) {
   if (upforgrabs) {
   console.log('Here isimage upforgrabs');
   setTimeout(latermaybemore, 3000);
   return;
   } else {
   console.log('Here isimage not upforgrabs');
   origupfor='';
   fo=document.getElementById('fdiv' + icnt);
   icnt++;
   newi=document.getElementById('slideshow' + icnt);
   if (fo != null && newi == null) {
    fo.innerHTML+=\"<span id=ours\" + icnt + \">\" + tusl + \" Image</span> \" + icnt + \" <input title='Please note a minus between numericals can define a URL range of image URLs' placeholder='Append #comment[~second line] for animated GIF watermarks (that are red if first slide has such a comment) ... {[unicode]} for some emojis' data-onlosefocus='maybeggmore(this.value, this.id, this);' onblur='maybemore(this.value, this.id, this);' style='width:" . $seventypc . ";'" . $omoin . " data-wh='' type='text' id='slideshow\" + icnt + \"' name='slideshow\" + icnt + \"' value=''></input><br><br><div id='fdiv\" + icnt + \"'></div>\";
   } 
   }
  } else {
   tis.value='';
   origupfor='';
  }
  totalit();
}

function asongit() {
  var fsng=2, isng=0;
  while (document.getElementById('asong' + fsng)) {
    //alert('slideshow' + fsng + ' - 1 duration=' + document.getElementById('asong' + fsng).duration);
    if (document.getElementById('asong' + fsng).title == '') {
    if (('' + document.getElementById('asong' + fsng).duration).replace('undefined','').length > 0) {
      for (isng=0; isng<viams.length; isng++) {
        if (viams[isng].indexOf('' + fsng + '#@#') == 0) {  
          viams[isng]=viams[isng].replace('' + fsng + '#@#','');  
          viamsd[isng]=eval(('' + document.getElementById('asong' + fsng).duration)); 
          document.getElementById('asong' + fsng).title='' + document.getElementById('asong' + fsng).duration; 
        }
      }
      }
    }
    fsng++;
  }
  setTimeout(asongit, 2000);
}


function checkpdfproposed(iois) {
  if (iois.src.indexOf('.pdf') != -1) {
  if (iois != null) {
    var aconto = (iois.contentWindow || iois.contentDocument);
    if (aconto != null) {
     if (aconto.document) { aconto = aconto.document; }
     if (aconto.body != null) {
       if (aconto.body.innerHTML.toLowerCase().indexOf('>not found') == -1) {
         //ginduri=aconto.body.innerHTML;
         setTimeout(preemailhtmlit, 8000); //alert(aconto.body.innerHTML);
       }
     }
    }
  }
  }
}

function nti() {
  if (nexttryit != '') {
    document.getElementById('ctvopt').value='video';
    document.getElementById('ctvopt').innerHTML=nexttryit;
    nexttryit='';
  }
}


function calledlater() {
            if (tryit.trim() != '') {
            var im=new Image();

    im.onload = function() {
            //document.getElementById('ctvopt').value='video';
            console.log('this.height=' + eval('' + this.height));
            if (eval('' + this.height) >= 20) {
            nexttryit='Convert to Video';
            //document.getElementById('ctvopt').innerHTML='Convert to Video';
            tryit=' ';
            setTimeout(nti, 5000);
            } else {
            nexttryit='Convert to Video (but ffmpeg not installed or in unexpected place)';
            //document.getElementById('ctvopt').innerHTML='Convert to Video (but ffmpeg not installed or in unexpected place)';
            tryit=' ';
            setTimeout(nti, 5000);
            }
            document.getElementById('imsel').title='All except Convert to Video, which needs ffmpeg installed, use ImageMagick';
    };
                
            im.src=tryit;
            tryit='';
            }
}

function xcheckex(iois) {
console.log('xcheckex 1');
  if (iois != null) {
console.log('xcheckex 12');
  if (chkok) { // || iois.src.indexOf('localhost') != -1) {
console.log('xcheckex 13');
    var aconto = (iois.contentWindow || iois.contentDocument);
console.log('xcheckex 14');
    if (aconto != null) {
console.log('xcheckex 14a' + 'aconto.document.title');
            if (iois.contentDocument) {
            document.getElementById('ctvopt').value='video';
            document.getElementById('ctvopt').innerHTML='Convert to Video';
            document.getElementById('ctvopt').value='advice';
            document.getElementById('ctvopt').innerHTML='Advice on Convert to Video';
            if (1 == 1) {
            setTimeout(calledlater, 2000);
            } else {
            if (tryit.trim() != '') {
            var im=new Image();

    im.onload = function() {
            //document.getElementById('ctvopt').value='video';
            console.log('this.height=' + eval('' + this.height));
            if (eval('' + this.height) >= 20) {
            nexttryit='Convert to Video';
            //document.getElementById('ctvopt').innerHTML='Convert to Video';
            tryit=' ';
            setTimeout(nti, 2000);
            } else {
            nexttryit='Convert to Video (but ffmpeg not installed or in unexpected place)';
            //document.getElementById('ctvopt').innerHTML='Convert to Video (but ffmpeg not installed or in unexpected place)';
            tryit=' ';
            setTimeout(nti, 2000);
            }
            document.getElementById('imsel').title='All except Convert to Video, which needs ffmpeg installed, use ImageMagick';
    };
                
            im.src=tryit;
            tryit='';
            }
            }
            } else {
             document.getElementById('ctvopt').value='video';
            document.getElementById('ctvopt').innerHTML='Convert to Video';
            document.getElementById('ctvopt').value='advice';
            document.getElementById('ctvopt').innerHTML='Advice on Convert to Video';
            if (1 == 1) {
            setTimeout(calledlater, 2000);
            } else {
            if (tryit.trim() != '') {
            var im=new Image();

    im.onload = function() {
            //document.getElementById('ctvopt').value='video';
            console.log('this.height=' + eval('' + this.height));
            if (eval('' + this.height) >= 20) {
            nexttryit='Convert to Video';
            //document.getElementById('ctvopt').innerHTML='Convert to Video';
            tryit=' ';
            setTimeout(nti, 2000);
            } else {
            nexttryit='Convert to Video (but ffmpeg not installed or in unexpected place)';
            //document.getElementById('ctvopt').innerHTML='Convert to Video (but ffmpeg not installed or in unexpected place)';
            tryit=' ';
            setTimeout(nti, 2000);
            }
            document.getElementById('imsel').title='All except Convert to Video, which needs ffmpeg installed, use ImageMagick';
    };
                
                
            im.src=tryit;
            tryit='';
            }
            }
           }
console.log('xcheckex ' + 'aconto');
     if (aconto.document) { aconto = aconto.document; }
console.log('xcheckex 16');
     if (aconto.body != null) {
console.log('xcheckex 17 ' + 'aconto.body.innerHTML');
       if (aconto.body.innerHTML.toLowerCase().indexOf('Index of ') != -1) {
console.log('xcheckex 18');
          if (document.getElementById('ctvopt')) {
console.log('xcheckex 19');
            document.getElementById('ctvopt').value='video';
            document.getElementById('ctvopt').innerHTML='Convert to Video';
          }
       } else if (aconto.body.innerHTML.toLowerCase().indexOf('>not found') == -1 || aconto.body.innerHTML == '') {
console.log('xcheckex 110');
          if (document.getElementById('ctvopt') && tryit != ' ') {
console.log('xcheckex 111');
            document.getElementById('ctvopt').value='advice';
            document.getElementById('ctvopt').innerHTML='Advice on Convert to Video';
          }
       } //else {
//console.log('xcheckex 112');
          //alert('2:' + 'aconto.body.innerHTML');
       //}
     } //else {
//console.log('xcheckex 113');
          //alert('Oops');
     //}
    }
  }
  }
}

function checkex(iois) {
  return '';
  if (iois != null) {
  if (chkok) { // || iois.src.indexOf('localhost') != -1) {
  if (chkok) { // || iois.src.indexOf('tutorial_to_animated_gif.php') == -1) {
    var aconto = (iois.contentWindow || iois.contentDocument);
    if (aconto != null) {
     if (aconto.document) { aconto = aconto.document; }
     if (aconto.body != null) {
       if (aconto.body.innerHTML.toLowerCase().indexOf('Index of ') != -1) {
          if (document.getElementById('ctvopt') && tryit != ' ') {
            document.getElementById('ctvopt').value='advice';
            document.getElementById('ctvopt').innerHTML='Advice on Convert to Video';
          }
       } else if (aconto.body.innerHTML.toLowerCase().indexOf('>not found') == -1 || aconto.body.innerHTML == '') {
          if (document.getElementById('ctvopt') && tryit != ' ') {
            document.getElementById('ctvopt').value='mamp';
            document.getElementById('ctvopt').innerHTML='Local Web Server Advice on Convert to Video';
          }
       } //else {
         // alert(aconto.body.innerHTML);
       //}
     } //else {
       //   alert('oops');
     //}
    }
  }
  }
  }
}

function preemailhtmlit() {
  ginduri=' '; // 'found';
}

function checkproposed(iois) {
  //var cont='';
  if (iois.src != '') {
    //if (iois.id.indexOf('jproposed') != -1) { alert(0); }
  if (iois != null) {
    //if (iois.id.indexOf('jproposed') != -1) { alert(1); }
    var aconto = (iois.contentWindow || iois.contentDocument);
    //if (iois.id.indexOf('jproposed') != -1) { alert(2); }
    if (aconto != null) {
    //if (iois.id.indexOf('jproposed') != -1) { alert(3); }
     if (aconto.document) { aconto = aconto.document; }
    //if (iois.id.indexOf('jproposed') != -1) { alert(4); }
     if (aconto.body != null) {
    //if (iois.id.indexOf('jproposed') != -1) { alert(5); }
      //cont=aconto.body.innerHTML.replace('<pre>','').replace('</pre>','');
      if (iois.id == 'iproposed') {
        if (aconto.body.innerHTML.toLowerCase().indexOf('not found') != -1) {
  //document.title='huh';
        upforgrabs=true;
        } else if (1 == 6) {
  //document.title='4=' + aconto.body.innerHTML;
        upforgrabs=false;
        }
      } else if (iois.id.indexOf('jproposed') != -1) {
        if (aconto.body.innerHTML.toLowerCase().indexOf('not found') != -1) {
  //document.title='66';
     upforgrabs=false;
        } else {
  var newi=null, fo=null;
  var newsuffix='';
   fo=document.getElementById('fdiv' + icnt);
   icnt++;
   newi=document.getElementById('slideshow' + icnt);
   if (fo != null && newi == null) {
    fo.innerHTML+=\"<span id=ours\" + icnt + \">\" + tusl + \" Image</span> \" + icnt + \" <input title='Please note a minus between numericals can define a URL range of image URLs' placeholder='Append #comment[~second line] for animated GIF watermarks (that are red if first slide has such a comment) ... {[unicode]} for some emojis' data-onlosefocus='maybeggmore(this.value, this.id, this);' onblur='maybemore(this.value, this.id, this);' style='width:" . $seventypc . ";'" . $omoin . " data-wh='' type='text' id='slideshow\" + icnt + \"' name='slideshow\" + icnt + \"' value=''></input><br><br><div id='fdiv\" + icnt + \"'></div>\";
   } 
      if (('' + thisto) == ('' + upto)) {
        if (('' + thisto) != '') {
  //document.title='5=' + thisto + ' and upto=' + upto;
        upforgrabs=false;
        }
      } else {
      thisto='' + eval(incis + eval('' + thisto))
     upfor=upprefix + thisto + upsuffix;
     document.getElementById('jproposed').src=upfor;
      }
      }
      }
     }
    } else if (iois.id.indexOf('jproposed') != -1) {
  //document.title='6';
     upforgrabs=false;
    }
  } else if (iois.id.indexOf('jproposed') != -1) {
  //document.title='7';
    upforgrabs=false;
  }
  }
}

function checkproposedj(iois) {
  //var cont='';
  if (iois.src != '') {
  if (iois != null) {
    var aconto = (iois.contentWindow || iois.contentDocument);
    if (aconto != null) {
     if (aconto.document) { aconto = aconto.document; }
     if (aconto.body != null) {
      //cont=aconto.body.innerHTML.replace('<pre>','').replace('</pre>','');
      if (iois.id == 'iproposed') {
        if (aconto.body.innerHTML.toLowerCase().indexOf('not found') != -1) {
        upforgrabs=true;
        } else if (1 == 6) {
  //document.title='4=' + aconto.body.innerHTML;
        upforgrabs=false;
        }
      } else if (iois.id.indexOf('jproposed') != -1) {
        if (aconto.body.innerHTML.toLowerCase().indexOf('not found') != -1) {
  //document.title='66';
     upforgrabs=false;
        } else {
  var newi=null, fo=null;
  var newsuffix='';
   fo=document.getElementById('fdiv' + icnt);
   icnt++;
   newi=document.getElementById('slideshow' + icnt);
   if (fo != null && newi == null) {
    fo.innerHTML+=\"<span id=ours\" + icnt + \">\" + tusl + \" Image</span> \" + icnt + \" <input title='Please note a minus between numericals can define a URL range of image URLs' placeholder='Append #comment[~second line] for animated GIF watermarks (that are red if first slide has such a comment) ... {[unicode]} for some emojis' data-onlosefocus='maybeggmore(this.value, this.id, this);' onblur='maybemore(this.value, this.id, this);' style='width:" . $seventypc . ";'" . $omoin . " data-wh='' type='text' id='slideshow\" + icnt + \"' name='slideshow\" + icnt + \"' value=''></input><br><br><div id='fdiv\" + icnt + \"'></div>\";
   } 
      if (('' + thisto) == ('' + upto)) {
        if (('' + thisto) != '') {
  //document.title='5=' + thisto + ' and upto=' + upto;
        upforgrabs=false;
        }
      } else {
      thisto='' + eval(incis + eval('' + thisto))
     upfor=upprefix + thisto + upsuffix;
     document.getElementById('jproposed').src=upfor;
      }
      }
      }
     }
    } else if (iois.id.indexOf('jproposed') != -1) {
  //document.title='6';
     upforgrabs=false;
    }
  } else if (iois.id.indexOf('jproposed') != -1) {
  //document.title='7';
    upforgrabs=false;
  }
  }
}

function askes(isemail, isoab) {
  var esask='', izhr=null, izform=null;
  var isoa=document.getElementById(isoab.id.replace('b',''));
  if (isemail) {
    esask=prompt('Please enter email address to send this to', '');
    if (esask != null) {
      if (esask.indexOf('@') != -1) {
        if (isoab.id == 'bemailvideo') {
  izhr = new XMLHttpRequest();
  izform=new FormData();
  izform.append('to', esask.trim()); 
  izform.append('inline', '" . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mov" . "');
  izform.append('subj', 'My Latest Video via Animated GIF via RJM Programming ... ');
  izhr.open('post', './tutorial_to_animated_gif.php?x/x', true);
  izhr.send(izform);
  return '';
        } else if (isoa.outerHTML.indexOf('<img') == 0) {
        //alert('More Animated GIF to come');
  izhr = new XMLHttpRequest();
  izform=new FormData();
  izform.append('to', esask.trim()); 
  izform.append('inline', '" . dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . ".gif" . "');
  izform.append('subj', 'My Latest Animated GIF via RJM Programming ... ');
  izform.append('tdhuhta', ('<body><div title=\"" . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . "\" style=\"overflow:auto;-webkit-overflow-scrolling:touch;height:100%;\"><img style=\"width:100%;height:900px;\" src=\"" . dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . ".gif" . "\"></img></div></body>'));
  izhr.open('post', '//www.rjmprogramming.com.au/HTMLCSS/emailhtml.php', true);
  izhr.send(izform);
        } else if (isoa.outerHTML.indexOf('<a') != 0) {
        //alert('More PDF to come');
  izhr = new XMLHttpRequest();
  izform=new FormData();
  izform.append('to', esask.trim()); 
  izform.append('inline', '" . dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . "_animegif.pdf" . "');
  izform.append('subj', 'My Latest PDF via Animated GIF via RJM Programming ... ');
  izform.append('tdhuhta', ('<body><div title=\"" . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . "_\" style=\"overflow:auto;-webkit-overflow-scrolling:touch;height:100%;\"><object style=\"width:100%;height:900px;\" type=\"application/pdf\" data=\"" . dirname(__FILE__) . DIRECTORY_SEPARATOR . server_remote_addr() . "_animegif.pdf" . "\"></object></div></body>'));
  izhr.open('post', '//www.rjmprogramming.com.au/HTMLCSS/emailhtml.php', true);
  izhr.send(izform);
        } else {
        isoa.href='mailto:' + esask.trim() + '?' + isoa.href.split('?')[1];
        isoa.click();
        }
      }
    }
  } else {
    esask=prompt('Please enter SMS number to send this to', '');
    if (esask != null) {
      if ((esask.trim() != '' && esask.trim().replace(/0/g,'').replace(/1/g,'').replace(/2/g,'').replace(/3/g,'').replace(/4/g,'').replace(/5/g,'').replace(/6/g,'').replace(/7/g,'').replace(/8/g,'').replace(/9/g,'') == '')) {
         isoa.href='sms:' + esask.trim() + '&' + isoa.href.split('&')[1];
         isoa.click();
      }
    }
  }
}

function ewell() {
       var etois='';
       if (usualclick == 0) {
         etois=prompt('Please enter email address to send this to', '');
         if (etois == null) { etois=''; }
         if (etois.indexOf('@') != -1) {
           //alert('Email this');
  var scrst='<head><script type=\"text/javascript\"> var vcur=2, imn=-1;  ';
  scrst+=\" function playseq() { var ass='asong';  ass=ass.concat(vcur.toString()); \";
  scrst+=\"   if (document.getElementById(ass)) { \";
  scrst+=\"   if (document.getElementById(ass).title != '') {  \"
    scrst+=\"    setTimeout(playseq, Math.floor(eval(eval(document.getElementById(ass).title) * 1000)));  \";
      scrst+=\"  if (eval(vcur.toString()) != 2) {  document.getElementById(ass).play();  }   \";
        scrst+=' vcur-=imn; ';
      scrst+=' } ';
    scrst+=' } else {  ';
      scrst+=' vcur=2; ';
    scrst+=' } ';
  scrst+=' } ';
  scrst+='</scri' + 'pt></head>'; 
  var zbigstr='<html>' + '<body>' + scrst + document.getElementById('song').outerHTML.replace(/\&quot\;/g,\"'\").replace('<audio ','<audio onplay=\" vcur=2; playseq(); \" ') + '</body>' + '</html>';
//           alert('email ' + zbigstr);
//  var woiso=window.open('','_blank', 'top=50,left=50,width=500,height=500');
//  woiso.document.write(zbigstr);
//           alert('Email ' + zbigstr);
  var zzhr = new XMLHttpRequest();
  var zzform=new FormData();
  zzform.append('to', etois);
  zzform.append('subj', 'My Audio/Video Presentation');
  if (etois == etois.toUpperCase()) {
  zzform.append('inline', '');
  }
  //zbigstr='<html>' + '<body>' + \"document.getElementById('song').outerHTML\" + '</body>' + '</html>';
  zzform.append('tdhuhta', encodeURIComponent(zbigstr));
  zzhr.open('post', '//www.rjmprogramming.com.au/PHP/emailhtml.php', true);
  zzhr.send(zzform);
         }
       }
}

function totalit() {
   var tret=true;
   " . $rettret . "
   var itotal=0, jhin=0, enumb=-1, lstval='', lstnam='', ilst=1, fillout=false;
   var jhins=" . $ihsh . ".trim().split('#');
   if (vst != 0) {
     if (vsta == vst) {
       document.getElementById('song').style.display='inline-block';
       //location.href='#song';
       // alert('all audio');
       //alert('Vst=' + vst + ' and vsta=' + vsta + ' and vstv=' + vstv + ' and vsti=' + vsti);
       setTimeout(ewell, 2000);
       return false;
     } else if (vstv == vst) {
       document.getElementById('song').style.display='inline-block';
       //location.href='#song';
       // alert('all video');
       //alert('vst=' + vst + ' and Vsta=' + vsta + ' and vstv=' + vstv + ' and vsti=' + vsti);
       setTimeout(ewell, 2000);
       return false;
     } else if (eval(vstv + vsta) == vst) {
       document.getElementById('song').style.display='inline-block';
       //location.href='#song';
       // alert('all audio/video');
       //alert('vst=' + vst + ' and vsta=' + vsta + ' and Vstv=' + vstv + ' and vsti=' + vsti);
       setTimeout(ewell, 2000);
       return false;
     } else if (eval(vstv + vsta) != 0) {
       document.getElementById('song').style.display='inline-block';
       document.getElementById('song').style.backgroundImage='linear-gradient(rgba(255,255,255,0.7),rgba(255,255,255,0.7)),URL(' + lastnav + ')';
       //document.getElementById('song').style.backgroundImage='URL(' + lastnav + ')';
       document.getElementById('song').style.backgroundSize='contain';
       document.getElementById('song').style.backgroundRepeat='no-repeat';
       //location.href='#song';
       //alert('some audio/video ' + lastname);
       //alert('vst=' + vst + ' and vsta=' + vsta + ' and vstv=' + vstv + ' and Vsti=' + vsti);
       setTimeout(ewell, 2000);
       return false;
     //} else {
       //alert('vst=' + vst + ' and vsta=' + vsta + ' and vstv=' + vstv + ' and vsti=' + vsti);
     }
   }
   if (document.getElementById('endnumber').value != '') {
     enumb=eval('' + document.getElementById('endnumber').value);
   } else if (('' + document.getElementById('owend').value) != '' && ('' + document.getElementById('ohend').value) && (('' + document.getElementById('ow').value).replace('-1','') != ('' + document.getElementById('owend').value) || ('' + document.getElementById('oh').value).replace('-1','') != ('' + document.getElementById('ohend').value))) {
     fillout=true;
   }
   var inps=document.getElementsByTagName('input');
   for (var jnps=0; jnps<inps.length; jnps++) {
     if (('' + inps[jnps].name).indexOf('slideshow') == 0) {
       if (('' + inps[jnps].value).trim() != '') { 
         enumb-=1; 
         lstnam=('' + inps[jnps].name); 
         if (('' + inps[jnps].name) != 'slideshow') { 
           ilst=eval(('' + inps[jnps].name).split('slideshow')[1]); 
         } 
         lstval=('' + inps[jnps].value); 
         itotal++; 
         if (eval('' + jhins.length) >= eval('' + jhin)) { 
           if (jhins[jhin] != '') { 
             if (inps[jnps].value.indexOf('#') == -1) { 
               inps[jnps].value=inps[jnps].value + ('#' + jhins[jhin]).replace('#undefined','');  
             } else if (inps[jnps].value.indexOf('#undefined') != -1) { 
               inps[jnps].value=inps[jnps].value.split('#')[0];  
             }  
           }  
         } 
         jhin++; 
       }
     }
   }
   if (enumb > 0) {
     while (enumb > 0) {
       enumb--;
       ilst++;
       lastnam='slideshow' + ilst;
       itotal++;
       if (document.getElementById(lastnam)) {
         document.getElementById(lastnam).value=lstval;
       } else {
         document.getElementById('dhash').innerHTML+='<input type=hidden value=\"' + lstval + '\" id=\"' + lastnam + '\" name=\"' + lastnam + '\"></input>';
       }
     }
   }
   if (fillout) {
     document.getElementById('endnumber').value='' + itotal;
     alert('endnumber becomes ' + itotal);
   }
   if (usualclick == 0) {
   document.getElementById('numslides').value='' + itotal;
   } else if (usualclick == 1) {
   document.getElementById('numslides').value='-' + itotal;
   } else {
   document.getElementById('numslides').value='" . $rltminus . "' + itotal;
   }
   if (1 == 2) { alert('" . $rltminus . "' + itotal);  }
   if (document.getElementById('rcmysubmit')) {
   document.getElementById('rcmysubmit').style.display='inline-block';
   }
   return tret;
}

function andthen() {
" . $imagegifandthen . " 
" . $midway . " 
}

function xxcit() {
  document.getElementById('xxxlocit').src='./amhere.htm'; //xcheckex(document.getElementById('xxlocit'));
}

function xcit() {
  checkex(document.getElementById('xlocit'));
}

function jsonp(uri) {
    return new Promise(function(resolve, reject) {
        var id = '_' + Math.round(10000 * Math.random());
        var callbackName = 'jsonp_callback_' + id;
        window[callbackName] = function(data) {
            delete window[callbackName];
            var ele = document.getElementById(id);
            ele.parentNode.removeChild(ele);
            resolve(data);
        }

        var src = uri + '&callback=' + callbackName;
        var script = document.createElement('script');
        script.src = src;
        script.id = id;
        script.addEventListener('error', reject);
        (document.getElementsByTagName('head')[0] || document.body || document.documentElement).appendChild(script)
    });
}

function imselset() {
  if (document.getElementById('imsel')) {
   if (document.getElementById('imsel').innerHTML.indexOf('video') != -1) {
    if (document.getElementById('imsel').value != 'video') {
      if (document.URL.indexOf('localhost') == -1) {
        evalcmd='" . $eeee . "'; //document.getElementById('imsel').value='video'; 
      } 
    } else {
      setTimeout(imselset, 1000);
    }
   } else {
    setTimeout(imselset, 1000);
   }
  } else {
   setTimeout(imselset, 1000);  
  }
}

function dolhsh() {
  if (cbggis != '' && documentURL.indexOf('huhv=') != -1) {  setTimeout(imselset, 1000); }
  " . $ssblurb . "
  if (cbggis != '') { document.body.style.backgroundColor='white'; }
  if (documentURL.indexOf('huhv=') != -1) {  document.getElementById('imsel').innerHTML+='<option value=video>Convert to Video</option>'; } " . $mampelse . "  
  if (" . $sssblurb . "documentURL.indexOf('huhv=') == -1 && documentURL.indexOf('?') == -1 && documentURL.indexOf('localhost') == -1) {


  chkok=true;
  var ltest=null;
     document.getElementById('imsel').innerHTML+='<option id=ctvopt value=\" \"></option>'; 
     
  //jsonp('http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php?justcheckamhere=y').then(function(data){
  //  console.log(data);
  //});  

  var ltestone=window.open('http://localhost" . $lportbit . "/PHP/animegif/tutorial_to_animated_gif.php?justcheckamhere=y','xxlocit');
  setTimeout(xxcit,2000);
  if (ltestone) { 
       if ((ltestone.document.body.innerHTML.toLowerCase().indexOf('>not found') == -1 && ltestone.document.body.innerHTML.replace('Index of ','>').toLowerCase().indexOf('>') != -1)) {
      //document.getElementById('imsel').innerHTML+='<option id=ctvopt value=video>Convert to Video</option>'; 
      document.getElementById('ctvopt').value='video';
      document.getElementById('ctvopt').innerHTML='Convert to Video';
      } else if (1 == 1) {
      
    ltest=window.open('http://localhost" . $lportbit . "/','xlocit');
  //setTimeout(xcit,1000);
    if (ltest) {
      if (ltest.document.body.innerHTML == '' || (ltest.document.body.innerHTML.toLowerCase().indexOf('>not found') == -1 && ltest.document.body.innerHTML.replace('Index of ','>').toLowerCase().indexOf('>') != -1)) {
      //document.getElementById('imsel').innerHTML+='<option id=ctvopt value=advice>Advice on Convert to Video</option>'; 
      document.getElementById('ctvopt').value='advice';
      document.getElementById('ctvopt').innerHTML='Advice on Convert to Video';
      } else {
      var xxc='@' + ltest.document.body.innerHTML.replace(/\>/g,' ').replace(/\</g,' ') + '!';
      //document.getElementById('imsel').innerHTML+='<option id=ctvopt value=mamp>Local Web Server Advice on ConVert to Video' + xxc + '</option>';
      document.getElementById('ctvopt').value='mamp';
      document.getElementById('ctvopt').innerHTML='Local Web Server Advice on ConVert to Video';
      }
    } else {
      //document.getElementById('imsel').innerHTML+='<option id=ctvopt value=mamp>Local Web Server Advice on COnvert to Video</option>';
       document.getElementById('ctvopt').value='mamp';
      document.getElementById('ctvopt').innerHTML='Local Web Server Advice on ConVeRt to Video';
   }
    
      }
    } else {
      //document.getElementById('imsel').innerHTML+='<option id=ctvopt value=mamp>Local Web Server Advice on ConveRt to Video</option>';
       document.getElementById('ctvopt').value='mamp';
      document.getElementById('ctvopt').innerHTML='Local Web Server Advice on CoNVeRt to Video';
    } 
    
    
    
    
  } 
  " . $setwm . "
  if (('' + window.location.hash).replace('#','') != '') {
  //alert(45);
    document.getElementById('lhsh').innerHTML=window.location.hash.substring(1);
    document.getElementById('dhash').innerHTML='<input type=hidden name=ihash value=\"' + window.location.hash.substring(1) + '\"></input>';
    document.getElementById('cbi').src=document.getElementById('cbi').src + '0' + window.location.hash.replace(/\ /g,'%20');
  //alert(document.getElementById('lhsh').innerHTML);
    var gsu='" . $gfn . "';  
  //alert(gsu);
    document.getElementById('dgfn').innerHTML='<input type=hidden name=gfn value=\"' + documentURL.split('tutorial_to_animated_gif.')[0] + gsu + '\"></input>';
    if (window.parent) {
      if (parent.document.getElementById('agifn')) {
       // alert(gsu);
        parent.document.getElementById('agifn').value=documentURL.split('tutorial_to_animated_gif.')[0] + gsu;
      }
    }
  } else if (parent.window) {
    if (parent.documentURL.indexOf('client_browsing.htm') != -1) {
    if (parent.document.getElementById('lhsh')) {
      if (parent.document.getElementById('lhsh').innerHTML != '') {
    document.getElementById('lhsh').innerHTML=parent.document.getElementById('lhsh').innerHTML;
  //alert('000:' + document.getElementById('lhsh').innerHTML);
    document.getElementById('dhash').innerHTML='<input type=hidden name=ihash value=\"' + parent.document.getElementById('lhsh').innerHTML + '\"></input>';
    document.getElementById('cbi').src=document.getElementById('cbi').src + '0#' + parent.document.getElementById('lhsh').innerHTML.replace(/\ /g,'%20');
    var gsux='" . $gfn . "';  
  //alert(gsu);
    document.getElementById('dgfn').innerHTML='<input type=hidden name=gfn value=\"' + documentURL.split('tutorial_to_animated_gif.')[0] + gsux + '\"></input>';
      }
    }
    }
  }
 //else {
    //alert(65);
  //}
}

function hextextdec(couleur) {  // thanks to http://wikkawiki.org/FpdfIntegration/raw
    var dolR = couleur.toLowerCase().replace('#','').substring(0,2);
    var dolrouge = hexdec(dolR);
    var dolV = couleur.toLowerCase().replace('#','').replace(dolR,'').substring(0,2);
    var dolvert = hexdec(dolV);
    var dolB = couleur.toLowerCase().replace('#','').replace(dolR,'').replace(dolV,'').substring(0,2);
    var dolbleu = hexdec(dolB);
    document.getElementById('textred').value='' + dolrouge;
    document.getElementById('textgreen').value='' + dolvert;
    document.getElementById('textblue').value='' + dolbleu;
    return couleur;
}

function fixtcol(ocolo) {
  if (document.getElementById('pdflast')) {
    if ((document.getElementById('pdflast').value + ' ') != 'n ') {
      document.getElementById('pdflast').value='yes';
    }
  }
  document.getElementById('stitle').style.color=hextextdec(ocolo.value);
  document.getElementById('stitle').style.fontColor=hextextdec(ocolo.value);
}

function watermarkchange(oselwater) {
 var ovalis=oselwater.value
 if (ovalis == ' ') {
  if (document.getElementById('pdflast')) {
    if ((document.getElementById('pdflast').value + ' ') != 'n ') {
      document.getElementById('pdflast').value='yes';
    }
  }
  document.getElementById('watermarkoption').innerHTML='Title on First and Count on Others'; 
  document.getElementById('watermarkoption').value=ovalis;  
 } else if (ovalis == '  ') {
  if (document.getElementById('pdflast')) {
    if ((document.getElementById('pdflast').value + ' ') != 'n ') {
      document.getElementById('pdflast').value='yes';
    }
  }
  document.getElementById('watermarkoption').innerHTML='Title With a Count on All';
  document.getElementById('watermarkoption').value=ovalis;  
 } else if (ovalis.length == 0) {
  if (document.getElementById('pdflast')) {
    if ((document.getElementById('pdflast').value + ' ') != 'n ') {
      document.getElementById('pdflast').value='yes';
    }
  }
  document.getElementById('watermarkoption').innerHTML='Title Just on First'; 
  document.getElementById('watermarkoption').value=ovalis;  
 } else {
  if (document.getElementById('pdflast')) {
    if ((document.getElementById('pdflast').value + ' ') != 'n ') {
      document.getElementById('pdflast').value='yes';
    }
  }
  document.getElementById('watermarkoption').innerHTML='No Watermark'; 
  document.getElementById('watermarkoption').value=ovalis;  
 }
}
function startmonitoringwh() {
  var suffto='', suffnum=1, doneone=false;
  if (document.getElementById('itopa')) {  document.body.style.cursor='pointer';  }
  while (document.getElementById('slideshow' + suffto)) {
    if (!doneone && document.getElementById('slideshow' + suffto).getAttribute('data-wh') == '') {
     if (document.getElementById('slideshow' + suffto).value.indexOf('data:') == 0 || document.getElementById('slideshow' + suffto).value.toLowerCase().indexOf('http') == 0) {
     if (iready) {
      doneone=true;
      iready=false;
      document.getElementById('slideshow' + suffto).setAttribute('data-wh', ' ');
      document.getElementById('myimghere').title='slideshow' + suffto;
      document.getElementById('myimghere').src=document.getElementById('slideshow' + suffto).value;
     }
     }
    }
    suffnum++;
    suffto='' + suffnum;
  }
  if (document.getElementById('slideshow') && document.getElementById('slideshow2')) {
    if (document.getElementById('slideshow').value != '' && document.getElementById('slideshow2').value != '') {
      document.getElementById('overlayit').disabled=false;
    }
  }
  setTimeout(startmonitoringwh, 3000);
}

function filteretcit(oself) {
  var xsuffis='';
  if (oself.value.indexOf('imagefilter(') != -1) {
    document.getElementById('filteretc').value=oself.value;
  for (var i=0; i<oself.options.length; i++) {
    if (oself.options[i].selected) {
      if (oself.options[i].value != '') {
        xsuffis=' ... ' + oself.options[i].innerText;
      }
    }
  }
    oself.title=oself.value + xsuffis;
  } else {
    document.getElementById('filteretc').value=oself.value;
    document.getElementById('filteretc').title='Image';
  }
  //oself.value='';
}

function selitize(thiswh) {
  if (thiswh.trim() != '') {
   if (document.getElementById('selwhs').outerHTML.indexOf(thiswh) == -1 && cbggis == '') {
     document.getElementById('selwhs').style.display='inline-block';
     document.getElementById('selwhs').innerHTML+='<option value=\"' + thiswh + '\">' + thiswh.replace(',',' x ') + '</option>';
     if (document.getElementById('selwhs').outerHTML.indexOf('?') == -1) {
     if (thiswh.indexOf(',') != -1) {
     document.getElementById('fow').value=thiswh.split(',')[0];
     document.getElementById('foh').value=thiswh.split(',')[1];
     }
     document.getElementById('selwhs').innerHTML+='<option value=\"?\">You Enter Width,Height</option>';
     document.getElementById('ifilter').innerHTML='<select title=\"Image\" onchange=filteretcit(this); id=sfilteris><option value=\"\">Image</option></select>';     
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_EMBOSS); \">Embossed Image(s)</option>';
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_NEGATE); \">Negated Image(s)</option>';
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_COLORIZE, 255, 0, 0); \">Red Colourized Image(s)</option>';
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_COLORIZE, 0, 255, 0); \">Green Colourized Image(s)</option>';
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_COLORIZE, -127.12, -127.98, 127); \">Colourized Image(s)</option>';
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_COLORIZE, 0, 0, 255);  \">Blue Colourized Image(s)</option>';
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_PIXELATE, 3); \">Pixellated Image(s)</option>';
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_SMOOTH, -1924.124); \">Smoothed Image(s)</option>';
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_CONTRAST, -90); \">Contrasted Image(s)</option>';
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_BRIGHTNESS, 98); \">Brightened Image(s)</option>';
     document.getElementById('sfilteris').innerHTML+='<option value=\" imagefilter(\$image, IMG_FILTER_MEAN_REMOVAL); \">Mean Removal Image(s)</option>';     
     }
   }
  }
  return thiswh;
}
function owoh(thisselis) {
  var askwh='', askend=',[numSlides]', atwo=2;
  if (thisselis.value.indexOf(',') != -1) {
    document.getElementById('ow').value='' + thisselis.value.split(',')[0];
    document.getElementById('oh').value='' + thisselis.value.split(',')[1];
  } else if (thisselis.value='?') {
    if (document.getElementById('slideshow2')) {
      if (document.getElementById('slideshow2').value != '') {
      atwo=1;
      while (document.getElementById('slideshow' + eval(1 + atwo)) && ('' + document.getElementById('slideshow' + eval(1 + atwo)).value) != '') {
        atwo++;
        askend=',[numSlides=' + atwo + ']';
      }
      }
    }
    askwh=prompt('Please comma separate width,height[,widthEnd,heightEnd' + askend + '] (eg. 750,1334) where a -1 for one lets it be proportional', '');
    if (askwh == null) { askwh=''; } else { askwh=askwh.replace(/\ /g,''); }
    if (askwh.indexOf(',') != -1 && eval('' + askwh.split('-').length) <= 2) {
    if (eval('' + askwh.split(',').length) >= 4) {
    document.getElementById('owend').value='' + askwh.split(',')[2];
    document.getElementById('ohend').value='' + askwh.split(',')[3];
    //alert('yes');
    } else {
    document.getElementById('owend').value='';
    document.getElementById('ohend').value='';
    //alert('no');
    }
    if (eval('' + askwh.split(',').length) >= 5) {
    document.getElementById('endnumber').value='' + askwh.split(',')[4];
    } else {
    document.getElementById('endnumber').value='';
    }
    if (askwh.indexOf('-1,') == 0) {
    document.getElementById('ow').value='' + Math.round(eval('' + thisselis.outerHTML.split(' x ')[0].split('>')[eval(-1 + thisselis.outerHTML.split(' x ')[0].split('>').length)]) * eval('' + askwh.split(',')[1]) / eval('' + thisselis.outerHTML.split(',')[1].split('\"')[0].split(\"'\")[0]));
    askwh=askwh.replace('-1,', document.getElementById('ow').value + ',');
    document.getElementById('oh').value='' + askwh.split(',')[1];
    if (eval('' + askwh.split(',').length) >= 4) {
      if (askwh.split(',')[2] == '-1') {
    document.getElementById('owend').value='' + Math.round(eval(document.getElementById('ow').value) * eval('' + askwh.split(',')[3]) / eval('' + askwh.split(',')[1]));
    askwh=askwh.replace(',-1', ',' + document.getElementById('owend').value);
      }
    }
    } else if ((askwh + '~').indexOf(',-1~') != -1 || (askwh + '~').indexOf(askwh.split(',')[0] + ',-1,') != -1) {
    document.getElementById('ow').value='' + askwh.split(',')[0];
    document.getElementById('oh').value='' + Math.round(eval('' + thisselis.outerHTML.split(' x ')[1].split('<')[0]) * eval('' + askwh.split(',')[0]) / eval('' + thisselis.outerHTML.split(',')[0].split('>')[eval(-1 + thisselis.outerHTML.split(',')[0].split('>').length)]));
    askwh=askwh.replace(askwh.split(',')[0] + ',-1', askwh.split(',')[0] + ',' + document.getElementById('oh').value);
    if (eval('' + askwh.split(',').length) >= 4) {
      if (askwh.split(',')[3] == '-1') {
    document.getElementById('ohend').value='' + Math.round(eval(document.getElementById('oh').value) * eval('' + askwh.split(',')[2]) / eval('' + askwh.split(',')[0]));
    askwh=askwh.replace(',-1', ',' + document.getElementById('ohend').value);
      }
    }
    } else {
    document.getElementById('ow').value='' + askwh.split(',')[0];
    document.getElementById('oh').value='' + askwh.split(',')[1];
    }
    if (thisselis.outerHTML.indexOf(askwh) == -1) {
     thisselis.style.display='inline-block';
     thisselis.innerHTML+='<option value=\"' + askwh + '\">' + askwh.replace(',',' x ') + '</option>';
    }
    } else {
    askwh='';
    document.getElementById('ow').value='-1';
    document.getElementById('oh').value='-1';
    }
    thisselis.value=askwh;
  } else {
    document.getElementById('ow').value='-1';
    document.getElementById('oh').value='-1';
  }
}
function dotval(tval) {
   if (('' + tval).indexOf('ata:image/') != -1) {
          vst++;
          vsti++;
          lastnav=tval;
          //alert(lastnav);
   }
}
function applyto() {
  var huhto='';
  if (document.getElementById('gdopt').innerHTML.indexOf('-format pdf') != -1) {
  huhto=prompt('Apply ImageMagick and/or GD to which slides, in comma separated list, counting starting with 1, or enter email address or SMS number to attach PDF for?  Defaults to applying to all slides.  Comma delimit.  Negatives mean all but.  Ranges can be specified.  For example ... 2,4-7,9', document.getElementById('appliedto').value);
  } else {
  huhto=prompt('Apply ImageMagick and/or GD to which slides, in comma separated list, counting starting with 1, or enter PDF for that output as well?  Defaults to applying to all slides.  Comma delimit.  Negatives mean all but.  Ranges can be specified.  For example ... 2,4-7,9', document.getElementById('appliedto').value);
  }
  if (huhto == null) { huhto=''; }
  if ((huhto.indexOf('@') != -1 || (huhto.trim() != '' && huhto.trim().replace(/0/g,'').replace(/1/g,'').replace(/2/g,'').replace(/3/g,'').replace(/4/g,'').replace(/5/g,'').replace(/6/g,'').replace(/7/g,'').replace(/8/g,'').replace(/9/g,'') == '')) && document.getElementById('outpdf')) {
    document.getElementById('outpdf').value=huhto;
    document.getElementById('smyim').title='Email/SMS to ' + huhto + ' via downloadable PDF attachment';
  } else if (huhto.trim().toLowerCase() == 'pdf') {
    document.getElementById('myim').innerHTML+='<input type=hidden name=outpdf id=outpdf value=></input>';
  } else if (huhto.trim() == '') {
    document.getElementById('appliedto').value='';
    document.getElementById('smyim').title='Application';
  } else {
    document.getElementById('appliedto').value=huhto.trim();
    document.getElementById('smyim').title=huhto.trim();
  }
}

function emailhtmlit() {
 var induri=ginduri;
 var pemail='" . urldecode($_GET['outpdf']) . urldecode($_POST['outpdf']) . "';
 if (pemail != null) {
   if (pemail.indexOf('@') != -1 || (pemail.trim() != '' && pemail.trim().replace(/0/g,'').replace(/1/g,'').replace(/2/g,'').replace(/3/g,'').replace(/4/g,'').replace(/5/g,'').replace(/6/g,'').replace(/7/g,'').replace(/8/g,'').replace(/9/g,'') == '')) {
   if (induri.trim() == '') {
   if (induri == '') {
   document.getElementById('pdfproposed').src='./animegif.pdf?rand=' + Math.floor(Math.random() * 19854654);
   } else {
   ginduri='found';
   }
   setTimeout(emailhtmlit, 15000);
   } else {
   ginduri='';
  var zhr = new XMLHttpRequest();
  var zform=new FormData();
  if (pemail.indexOf('@') != -1) { zform.append('to', pemail); }
  zform.append('inline', '" . dirname(__FILE__) . DIRECTORY_SEPARATOR . "animegif.pdf" . "');
  zform.append('subj', 'My PDF version of Animated GIF via RJM Programming ... ');
  zform.append('tdhuhta', ('<body><div title=\"" . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . "_\" style=\"overflow:auto;-webkit-overflow-scrolling:touch;height:100%;\"><object style=\"width:100%;height:900px;\" type=\"application/pdf\" data=\"" . dirname(__FILE__) . DIRECTORY_SEPARATOR . 'animegif.pdf' . "\"><embed style=\"width:100%;height:900px;\" type=\"application/pdf\" src=\"" . dirname(__FILE__) . DIRECTORY_SEPARATOR . 'animegif.pdf' . "\"></embed></object></div></body>'));
  //zform.append('tdhuhta', ('<body><iframe srcdoc=\"" . dirname(__FILE__) . DIRECTORY_SEPARATOR . 'animegif.pdf' . "\"></iframe></body>'));
  zhr.open('post', '//www.rjmprogramming.com.au/HTMLCSS/emailhtml.php', true);
  zhr.send(zform);
  if (pemail.indexOf('@') == -1) { 
    var hrefp=document.getElementById('pdfsms').href.split('&body=')[0];
    hrefp+=pemail.trim() + '&body=' + document.getElementById('pdfsms').href.split('&body=')[1];
    document.getElementById('pdfsms').href=hrefp;
    document.getElementById('pdfsms').click();   
  }
  }
   }
 }
}

function onfit(ithis) {
  //alert(ithis.outerHTML);
  if (ithis.value == '' && ('' + ithis.placeholder).indexOf(']') != -1) {
    //alert(ithis.placeholder);
    //alert(('' + ithis.placeholder).split('[')[1].split(']')[0]);
    ithis.value=('' + ithis.placeholder).split('[')[1].split(']')[0];
  }
  ithis.type='number';
}

function overlaylt(inm, newlt) {
  var bits=[], bbits=[], cssb='', cssc='';;
  lastimgclick=inm;
  if (document.getElementById('left' + lastimgclick).value == '') {
    document.getElementById('left' + lastimgclick).value='0';
    document.getElementById('left' + lastimgclick).type='number';
  }
     cssb='' + document.getElementById('imgdet' + lastimgclick).style.left;
      cssc='';
      if (cssb == '') {
        //alert(document.getElementById('imgdet' + lastimgclick).outerHTML);
        cssb=document.getElementById('imgdet' + lastimgclick).outerHTML.split(';left:')[1].split(';')[0];
       } else if (cssb.indexOf('calc(-') == -1) {
        cssc=document.getElementById('imgdet1').getAttribute('data-left');
       }
      bits=cssb.replace('calc(','calc(' + cssc).split('calc(-');
      if (bits.length > 1) {
        bbits=bits[1].split(' ');
        document.getElementById('imgdet' + lastimgclick).style.left=bits[0] + (' calc(-0.' + bbits[0] + 'px + ').substring(0,1) + eval(eval('' + newlt) + eval('' + bbits[0].split('px')[0]) * 0) + 'px)'.substring(0,2);
      }
}

function overlaytp(inm, newtp) {
  var bits=[], bbits=[], cssb='', cssc='';;
  lastimgclick=inm;
  if (document.getElementById('top' + lastimgclick).value == '') {
    document.getElementById('top' + lastimgclick).value='0';
    document.getElementById('top' + lastimgclick).type='number';
  }
      cssb='' + document.getElementById('imgdet' + lastimgclick).style.top;
      cssc='';
      if (cssb == '') {
        //alert(document.getElementById('imgdet' + lastimgclick).outerHTML);
        cssb=document.getElementById('imgdet' + lastimgclick).outerHTML.split(';top:')[1].split(';')[0];
       } else if (cssb.indexOf('calc(-') == -1) {
        cssc=document.getElementById('imgdet1').getAttribute('data-top');
       }
      bits=cssb.replace('calc(','calc(' + cssc).split('calc(-');
      if (bits.length > 1) {
        bbits=bits[1].split(' ');
        document.getElementById('imgdet' + lastimgclick).style.top=bits[0] + (' calc(-0.' + bbits[0] + 'px + ').substring(0,1) + eval(eval('' + newtp) + eval('' + bbits[0].split('px')[0]) * 0) + 'px)'.substring(0,2);
      }
}

function noic() {
  isimgclick=-1;
  lastimgclick=-1;
}

function doimgclick(evt, iic) {
  var bits=[], bbits=[], cssb='', cssc='';
  var prevv='', newv='';
  var divrect=null;
  if (isimgclick >= 0 && lastimgclick >= 0) {
    divrect=document.getElementById('overlayedi').getBoundingClientRect();
    prevv=document.getElementById('imgdet' + lastimgclick).outerHTML;
    newv=prevv;
    // 85,814 ... position:absolute;left:calc(-7 * 0 + 7px);top:calc(-772 * 0 + 772px);
    if (evt.clientX || evt.clientY) {
      cssb='' + document.getElementById('imgdet' + lastimgclick).style.top;
      document.getElementById('imgdet' + lastimgclick).style.marginTop='' + Math.floor(eval(eval('' + evt.clientY) - eval('' + divrect.top))) + 'px';
      cssc='';
      if (cssb == '') {
        //alert(document.getElementById('imgdet' + lastimgclick).outerHTML);
        cssb=document.getElementById('imgdet' + lastimgclick).outerHTML.split(';top:')[1].split(';')[0];
       } 
       if (cssb.indexOf('calc(-') == -1) {
        cssc=document.getElementById('imgdet1').getAttribute('data-top');
       }
      //alert(' ' + lastimgclick + ' ' + evt.clientX + ',' + evt.clientY + ' ... ' + document.getElementById('detsum1').getAttribute('data-style') + ' +++ ' + document.getElementById('imgdet' + lastimgclick).style.top + ' +-+ ' + document.getElementById('imgdet' + lastimgclick).outerHTML);
      bits=cssb.replace('calc(','calc(' + cssc).split('calc(-');
      if (bits.length > 1) {
        bbits=bits[1].split(' ');
        //alert(bits[0] + 'calc(-0.' + bbits[0].replace('px','') + 'px + ' + Math.floor(eval(eval('' + evt.clientY) - eval('' + divrect.top) + eval('' + bbits[0].split('px')[0]))) + 'px)'); //document.getElementById('imgdet' + lastimgclick).style.left=bits[0] + 'calc(-' + bbits[0] + ' * 0 + ' + eval(eval('' + evt.clientX) + eval('' + bbits[0].split('px')[0])) + 'px)');
        newv=newv.replace(cssb, bits[0] + (' calc(-0.' + bbits[0].replace(/^0\./g,'').replace('px','') + 'px + ').substring(0,1) + Math.floor(eval(eval('' + evt.clientY) - eval('' + divrect.top) + eval('' + bbits[0].split('px')[0]))) + 'px)'.substring(0,2)); //document.getElementById('imgdet' + lastimgclick).style.left=bits[0] + 'calc(-' + bbits[0] + ' * 0 + ' + eval(eval('' + evt.clientX) + eval('' + bbits[0].split('px')[0])) + 'px)';
  if (document.getElementById('top' + lastimgclick).value == '') {
    document.getElementById('top' + lastimgclick).value=Math.floor(eval(eval('' + evt.clientY) - eval('' + divrect.top) - eval('' + bbits[0].split('px')[0]) * 0));
    document.getElementById('top' + lastimgclick).type='number';
  }
      }
      cssb='' + document.getElementById('imgdet' + lastimgclick).style.left;
      document.getElementById('imgdet' + lastimgclick).style.marginLeft='' + Math.floor(eval(eval('' + evt.clientX) - eval('' + divrect.left))) + 'px';
      cssc='';
      if (cssb == '') {
        cssb=document.getElementById('imgdet' + lastimgclick).outerHTML.split(';left:')[1].split(';')[0];
      } 
      if (cssb.indexOf('calc(-') == -1) {
        cssc=document.getElementById('imgdet1').getAttribute('data-left');
      }
      bits=cssb.replace('calc(','calc(' + cssc).split('calc(-');
      if (bits.length > 1) {
        bbits=bits[1].split(' ');
        newv=newv.replace(cssb, bits[0] + (' calc(-0.' + bbits[0].replace(/^0\./g,'').replace('px','') + 'px + ' ).substring(0,1)+ Math.floor(eval(eval('' + evt.clientX) - eval('' + divrect.left) + eval('' + bbits[0].split('px')[0]))) + 'px)'.substring(0,2)); //document.getElementById('imgdet' + lastimgclick).style.top=bits[0] + 'calc(-' + bbits[0] + ' * 0 + ' + eval(eval('' + evt.clientY) + eval('' + bbits[0].split('px')[0])) + 'px)';
  if (document.getElementById('left' + lastimgclick).value == '') {
     document.getElementById('top' + lastimgclick).value=Math.floor(eval(eval('' + evt.clientY) - eval('' + divrect.top) - eval('' + bbits[0].split('px')[0]) * 0));
    document.getElementById('left' + lastimgclick).type='number';
  }
      }
    } else {
      //alert('' + evt.pageX + ',' + evt.pageY + ' ... ' + document.getElementById('detsum1').getAttribute('data-style'));
      cssb='' + document.getElementById('imgdet' + lastimgclick).style.top;
     document.getElementById('imgdet' + lastimgclick).style.marginTop='' + Math.floor(eval(eval('' + evt.pageY) - eval('' + divrect.top))) + 'px';
      cssc='';
      if (cssb == '') {
        cssb=document.getElementById('imgdet' + lastimgclick).outerHTML.split(';top:')[1].split(';')[0];
       } 
       if (cssb.indexOf('calc(-') == -1) {
        cssc=document.getElementById('imgdet1').getAttribute('data-top');
      }
      bits=cssb.replace('calc(','calc(' + cssc).split('calc(-');
      if (bits.length > 1) {
        bbits=bits[1].split(' ');
        newv=newv.replace(cssb, bits[0] + (' calc(-0.' + bbits[0].replace(/^0\./g,'').replace('px','') + 'px + ').substring(0,1) + Math.floor(eval(eval('' + evt.pageY) - eval('' + divrect.top) + eval('' + bbits[0].split('px')[0]))) + 'px)'.substring(0,2)); //document.getElementById('imgdet' + lastimgclick).style.left=bits[0] + 'calc(-' + bbits[0] + ' * 0 + ' + eval(eval('' + evt.pageX) + eval('' + bbits[0].split('px')[0])) + 'px)';
  if (document.getElementById('top' + lastimgclick).value == '') {
    document.getElementById('top' + lastimgclick).value=Math.floor(eval(eval('' + evt.pageY) - eval('' + divrect.top) - eval('' + bbits[0].split('px')[0]) * 0));
    document.getElementById('top' + lastimgclick).type='number';
  }
      }
      cssb='' + document.getElementById('imgdet' + lastimgclick).style.left;
      document.getElementById('imgdet' + lastimgclick).style.marginLeft='' + Math.floor(eval(eval('' + evt.pageX) - eval('' + divrect.left))) + 'px';
      cssc='';
      if (cssb == '') {
        cssb=document.getElementById('imgdet' + lastimgclick).outerHTML.split(';left:')[1].split(';')[0];
       } 
       if (cssb.indexOf('calc(-') == -1) {
        cssc=document.getElementById('imgdet1').getAttribute('data-left');
      }
      bits=cssb.replace('calc(','calc(' + cssc).split('calc(-');
      if (bits.length > 1) {
        bbits=bits[1].split(' ');
        newv=newv.replace(cssb, bits[0] + (' calc(-0.' + bbits[0].replace(/^0\./g,'').replace('px','') + 'px + ').substring(0,1) + Math.floor(eval(eval('' + evt.pageX) - eval('' + divrect.left) + eval('' + bbits[0].split('px')[0]))) + 'px)'.substring(0,2)); //document.getElementById('imgdet' + lastimgclick).style.top=bits[0] + 'calc(-' + bbits[0] + ' * 0 + ' + eval(eval('' + evt.pageY) + eval('' + bbits[0].split('px')[0])) + 'px)';
  if (document.getElementById('left' + lastimgclick).value == '') {
    document.getElementById('left' + lastimgclick).value=Math.floor(eval(eval('' + evt.pageX) - eval('' + divrect.left) - eval('' + bbits[0].split('px')[0]) * 0));
    document.getElementById('left' + lastimgclick).type='number';
  }
      }
    }
    
    //alert(newv);
    document.getElementById('overlayedi').innerHTML=document.getElementById('overlayedi').innerHTML.replace(prevv,newv);
    noic();
    document.getElementById('overlayedi').click();
    
  }
}

function ozero(jnm, thez) {
  lastimgclick=eval(('' + jnm).replace('apos',''));
  isimgclick=thez;
  return thez;
}

function overlayds(inm, newop, newzi) {
  var outdets='';
  var divrect=null;
  var poslt=' data-style=\"position:absolute;left:px;top:px;\" ';
  var reposit='';
  if (!document.getElementById('detsum' + ('' + inm))) {
    if (document.getElementById('overlayedi').innerHTML == '') {
       document.getElementById('overlayedi').title='Overlayed Images Below ... Click for It in New Window ...';
       document.getElementById('overlayedj').innerHTML='<h1>Overlayed Images Below ...</h1><br>';
       divrect=document.getElementById('overlayedi').getBoundingClientRect();
       //cssl=document.getElementById('imgdet1').getAttribute('data-left');
       //csst=document.getElementById('imgdet1').getAttribute('data-top');
       poslt=' data-style=\"position:absolute;left:' + ('calc(-0.' + ('' + divrect.left).split('.')[0].trim() + 'px + ').slice(-1) + ('' + divrect.left).split('.')[0].trim() + 'px)'.substring(0,2) + ';top:' + ('calc(-0.' + ('' + eval(200 + eval('' + ('' + divrect.top).split('.')[0]))).trim() + 'px + ').slice(-1) + ('' + eval(200 + eval('' + ('' + divrect.top).split('.')[0]))).trim() + 'px)'.substring(0,2) + ';\"  data-left=\"-' + ('' + divrect.left).split('.')[0].trim() + 'px + \"  data-top=\"-' + ('' + divrect.top).split('.')[0].trim() + 'px + \"';
    } else {
       poslt=' data-style=\"' + document.getElementById('detsum1').getAttribute('data-style') + '\" data-left=\"' + document.getElementById('detsum1').getAttribute('data-left') + '\" data-top=\"' + document.getElementById('detsum1').getAttribute('data-top') + '\"';
    }
    outdets='&nbsp;&nbsp;<details ' + poslt + ' id=\"detsum' + ('' + inm) + '\" style=\" display:inline-block; \" open><summary id=\"sumdet' + ('' + inm) + '\">Overlay</summary><input onchange=overlayds(' + inm + ',this.value,String.fromCharCode(32)); onblur=overlayds(' + inm + ',this.value,String.fromCharCode(32)); type=text onfocus=onfit(this); id=\"opacity' + ('' + inm) + '\" style=\" display:inline-block; \" placeholder=\"Opacity [1.00]\" value=\"\" step=0.01 min=0.00 max=1.00></input><br><input onfocus=onfit(this); onchange=overlayds(' + inm + ',String.fromCharCode(32),this.value); onblur=overlayds(' + inm + ',String.fromCharCode(32),this.value); type=text id=\"zindex' + ('' + inm) + '\" style=\" display:inline-block; \" placeholder=\"Z-Index [1]\" value=\"\" min==999 max=999 step=1></input><br><input onfocus=onfit(this); onchange=overlaylt(' + inm + ',this.value); onblur=overlaylt(' + inm + ',this.value); type=text id=\"left' + ('' + inm) + '\" style=\" display:inline-block; \" placeholder=\"Left Offset [0]\" value=\"\" step=1 min=0></input><br>&nbsp;<a id=apos' + inm + ' title=\"Click to click on image overlays below for positioning\" style=text-decoration:none;cursor:pointer; onclick=\" isimgclick=ozero(event.target.id,0); setTimeout(noic,9000); \">&#917595;</a>&nbsp;<input onfocus=onfit(this); onchange=overlaytp(' + inm + ',this.value); onblur=overlaytp(' + inm + ',this.value); type=text id=\"top' + ('' + inm) + '\" style=\" display:inline-block; \" placeholder=\"Top Offset [0]\" value=\"\" step=1 min=0></input><br></details>'; 
    reposit=poslt.replace(' data-style',' style');
    reposit=reposit.replace('\"', '\"opacity:1.00;z-index:1;');
    //alert(reposit);
    if (document.getElementById('overlayedi').innerHTML == '') {
      //alert(reposit);
      document.getElementById('overlayedi').innerHTML='<img id=\"imgdet' + ('' + inm) + '\" src=\"' + document.getElementById('slideshow' + ('' + inm).replace(/^1$/g,'')).value + '\" ' + reposit + '></img>';
      document.getElementById('overlayedi').style.width=('' + document.getElementById('imgdet' + ('' + inm)).width).replace('px','') + 'px';
      document.getElementById('overlayedi').style.height=('' + document.getElementById('imgdet' + ('' + inm)).height).replace('px','') + 'px';
      cssl=document.getElementById('imgdet1').getAttribute('data-left');
      csst=document.getElementById('imgdet1').getAttribute('data-top');
      if (document.getElementById('overlayedi').outerHTML.indexOf('calc(') != -1 && document.getElementById('overlayedi').outerHTML.indexOf('px + ') != -1) {
      document.getElementById('overlayedi').onclick = function (event){ if (isimgclick >= 0) { doimgclick(event, isimgclick); isimgclick=-1; } else { var woo=window.open('','_blank','top=100,left=100,width=' + document.getElementById('overlayedi').style.width.replace('px','') + ',height=' + document.getElementById('overlayedi').style.height.replace('px',''));  woo.document.write('<html><head><title>Overlayed Images Below ...</title></head><body>' + document.getElementById('overlayedi').innerHTML.replace(/\;left\:[\ ]*calc\(/g,';left:calc(' + cssl).replace(/\;top\:[\ ]*calc\(/g,';top:calc(' + csst).replace(/\ \+\ \-0\./g,' + 0.') + '</body></html>');   woo.document.title='Overlayed Images Below ...'; } };
      } else {
      document.getElementById('overlayedi').onclick = function (event){ if (isimgclick >= 0) { doimgclick(event, isimgclick); isimgclick=-1; } else { var woo=window.open('','_blank','top=100,left=100,width=' + document.getElementById('overlayedi').style.width.replace('px','') + ',height=' + document.getElementById('overlayedi').style.height.replace('px',''));  woo.document.write('<html><head><title>Overlayed Images Below ...</title></head><body>' + document.getElementById('overlayedi').innerHTML.replace(/\;[\ ]*left\:[\ ]*/g,';left:0.0').replace(/\;[\ ]*top\:[\ ]*/g,';top:0.0') + '</body></html>');   woo.document.title='Overlayed Images Below ...'; } };
      }
    } else {
      //alert('2:' + reposit);
      document.getElementById('overlayedi').innerHTML+='<img id=\"imgdet' + ('' + inm) + '\" src=\"' + document.getElementById('slideshow' + ('' + inm).replace(/^1$/g,'')).value + '\" ' + reposit + '></img>';
    }
  } else {
    document.getElementById('detsum' + ('' + inm)).style.display='inline-block';
    if (newop != ' ') {
      //alert('pre3:' + document.getElementById('imgdet' + inm).outerHTML + ' ' + document.getElementById('imgdet' + inm).style.left);
    if (newop.trim() == '') {
    document.getElementById('imgdet' + inm).style.opacity='1.0';
    } else {
    document.getElementById('imgdet' + inm).style.opacity='' + newop;
    }
      //alert('3:' + document.getElementById('imgdet' + inm).outerHTML + ' ' + document.getElementById('imgdet' + inm).style.left);
    }
    if (newzi != ' ') {
    if (newzi.trim() == '') {
    document.getElementById('imgdet' + inm).style.zIndex='1';
    } else {
    document.getElementById('imgdet' + inm).style.zIndex='' + newzi;
    }
    }
  }
  return outdets;
}

function overlaythem() {
  var suffidea=1;
  while (document.getElementById('slideshow' + ('' + suffidea).replace(/^1$/g, '')).value != '') {
    document.getElementById('ours' + ('' + suffidea)).innerHTML+=overlayds(suffidea,'','');
    suffidea++;
  }
}
setTimeout(startmonitoringwh, 3000);
setTimeout(emailhtmlit, 5000);
if (document.URL.indexOf('calledbygg') != -1) { setTimeout(maybeggmore, 5000); }
</script>
<style>
a { padding: 5px 5px 5px 5px; margin: 5px 5px 5px 5px; border: 1px solid red; background-color: #f0f0f0; } 
</style>
</head>
<body style='cursor:" . $pgpr . "; background-color:yellow;' onload='  dolhsh();  if (top.document.getElementById(\"thegifnamegoeshere\")) { top.document.getElementById(\"thegifnamegoeshere\").value=\"//www.rjmprogramming.com.au/PHP/animegif/" . jserver_remote_addr() . ".gif\";  } setTimeout(andthen, 8000);  '>
" . $dvdo . "<h1 id='myh1'" . $cbgg . "<select onchange=owoh(this); style='display:" . $setwhd . ";' id=selwhs><option value=''>Size of First Slide (as below)</option>" . $setwhihs . "</select>" . $moreh1 . $cbor . "<div style='display:inline-block;width:95px;height:30px;overflow:hidden;border-top:1px solid black;border-bottom:1px solid black;border-left:2px solid yellow;border-right:1px solid yellow;'><iframe id=cbi frameborder=0 style='width:173px;height:228px;margin-top:-194px;' src='../../HTMLCSS/client_browsing.htm?d=" . rand(0,18765432) . "'></iframe></div>" . $varmodes . $selz . "</h1>
<div align='center'>
<form onsubmit='return totalit();' id='myform' action='./tutorial_to_animated_gif.php' method='POST'>" . $prestfle . $stfle . "
<div id=dhash style=display:none;></div><div id=dgfn style=display:none;></div><input name=faudio id=faudio value='' type=hidden></input><input name=fvideo id=fvideo value='' type=hidden></input>
<input name=fred id=fred value='" . $xred . "' type=hidden></input><input name=fgreen id=fgreen value='" . $xgreen . "' type=hidden></input><input name=fblue id=fblue value='" . $xblue . "' type=hidden></input>
<input name=fontname id=fontname value='' type=hidden></input><input name=fangle id=fangle value='0' type=hidden></input>
<input name=fleft id=fleft value='5' type=hidden></input><input name=ftop id=ftop value='5' type=hidden></input>
<input name=filteretc id=filteretc value=\"" . $filteretc . "\" type=hidden></input>
<input name=fow id=fow value='-1' type=hidden></input><input name=foh id=foh value='-1' type=hidden></input>
<input name=ow id=ow value='-1' type=hidden></input><input name=oh id=oh value='-1' type=hidden></input>
<input name=owend id=owend value='' type=hidden></input><input name=ohend id=ohend value='' type=hidden></input><input name=endnumber id=endnumber value='' type=hidden></input>
<input name=textred id=textred value='" . $r200 . "' type=hidden></input><input name=textgreen id=textgreen value='" . $g200 . "' type=hidden></input><input name=textblue id=textblue value='" . $b200 . "' type=hidden></input>
<input name=fsize id=fsize value='" . str_replace('px','',$xsize) . "px' type=hidden></input>
Tutorial Slideshow <select style='display:inline-block;width:80px;' onchange='watermarkchange(this);' id='watermarkmode' name='watermarkmode'><option id=watermarkoption value=''>Title</option><option value=''>Title Just on First</option><option value=' '>Title on First and Count on Others</option><option value='  '>Title With a Count on All</option><option id=optnow value=\"\\n\">No Watermark</option></select> <input onchange=fixtcol(this); title='Watermark colour' style=display:inline-block; type=color value=#" . $c8r . $c8g . $c8b . "></input> <input onblur='opacitymaybe(this);' style='width:" . $seventypc . ";color:#" . $c8r . $c8g . $c8b . ";font-color:#" . $c8r . $c8g . $c8b . ";' type='text' title='To supplement # delimited comments below you can append to the title # delimited (left,top) or FontColour or Font_name or FontSize_px or AngleDegrees[.Opacity] configurations allowed here' placeholder='To supplement # delimited comments below you can append to the title # delimited (left,top) or FontColour or Font_name or FontSize_px or AngleDegrees[.Opacity] configurations allowed here' id='stitle' name='stitle' value='" . $agtext . "'></input><br><br>
Tutorial Slideshow Delay(s) <input onmouseover=prebithis(this); onmouseout=preunbithis(this); title='Comma separated list noticed, with first value being default for undefined ones.  Plus and minus values do delays relative to previous delay.' style='width:" . $seventypc . ";' type='text' id='delay' name='delay' value='" . $delay . "'></input><br><br>
<span id=ours1>Tutorial Slideshow</span> <a style='cursor:pointer;text-decoration:none;' onclick=\" if (document.getElementById('slideshow').value.toLowerCase().indexOf('.htm') != -1) { window.open(document.getElementById('slideshow').value,'_blank'); } \">HTML</a> or <span id=ifilter>" . $fhc . "</span> <input title='Please note a minus between numericals can define a URL range of image URLs and that an Audio URL or Video URL (or browsed for above) causes the resultant Animated GIF to be its background image' placeholder='Append #comment[~second line] for animated GIF watermarks (that are red if first slide has such a comment) ... {[unicode]} for some emojis and an Audio URL or Video URL (or browsed for above) causes the resultant Animated GIF to be its background image' data-onlosefocus=\"maybeggmore(this.value, 'slideshow1', this);\" onblur=\"maybemore(this.value, 'slideshow1', this);\" style='width:" . $seventypc . ";'" . $omoin . " data-wh='' type='text' id='slideshow' name='slideshow' value='" . $url . "'></input>" . $moreinnow . "<br><br>
<div id='fdiv1'></div><input type=hidden name=numslides id=numslides value='0'></input><table><tr><td style=vertical-align:top;><div id=song style='display:none;vertical-align:top;'></div></td></tr></table><input type=hidden value='' id=appliedto name=appliedto></input><div id=myim" . $cssinitim . "><span id=smyim title=" . $applicationb . " onclick=applyto(); style=cursor:pointer;text-decoration:underline;>" . $sinitim . "</span>" . $initim . "</div><input onclick=\"usualclick=1;\" id=\"mysubmit\" type=\"submit\" title='Tutorial Slideshow to Animated GIF' value='Tutorial Slideshow to Animated GIF'></input>" . $newrbut . $preextras . $extras . "
</form><div id='idiv' align='center' style='background-color:pink;'>" . $imagegif . "</div>
</div>
<input style='position:absolute;top:-200px;left:-200px;' type='text' value=''></input>" . $lastdetails . "
<iframe id=iproposed style='display:none;' onerror='upforgrabs=true;' onload='checkproposed(this);' src=></iframe>
<div id=jdiv><iframe id=jproposed style='display:none;' onerror='upforgrabs=false;' onload='checkproposedj(this);' src=></iframe></div>
<div id=lhsh style=display:none;></div>
<div id=overlayedj><h1>&nbsp;</h1><br></div><div id=overlayedi></div><img style='display:none;' title='slideshow' id='myimghere' src='' onerror=\"iready=true;\" onload=\" if (this.src.length > 0) {  iwidths.push(this.width);   iheights.push(this.height);  document.getElementById(this.title).setAttribute('data-wh',selitize('' + this.width + ',' + this.height)); iready=true; dotval(this.src); } \"></img>
<!--div id=videoag style=display:none;></div><div id=thewords style=display:none;></div><div id=sin style=display:none;></div><input type=hidden id=outputname value=''></input><input type=hidden id=path value=''></input><input type=hidden id=cto value=''></input-->
<div id=dvif style=display:none;></div>
<iframe id=xxxlocit style='display:none;' src=></iframe>
<iframe title='' name=zzlocit id=zzlocit style='display:none;' src=></iframe>
<iframe title='' onload='xcheckex(this);' name=xxlocit id=xxlocit style='display:none;' src=></iframe>
<iframe onerror='checkex(this);' onload='checkex(this);' name=xlocit id=xlocit style='display:none;' src=></iframe>
<iframe id=pdfproposed style='display:none;' onload='checkpdfproposed(this);' src=></iframe>" . $locit . "
<a target=_blank style=display:none; id=pdfsms href='sms:&body=" . str_replace('+','%20',urlencode('My PDF version of Animated GIF via RJM Programming ' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '_animegif.pdf')) . "'>SMS PDF</a>
<a target=_blank style=display:none; id=lgifsms href='sms:&body=" . str_replace('+','%20',urlencode('My Latest Animated GIF via RJM Programming ' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '.gif')) . "'>SMS Latest Animated GIF</a>
<a target=_blank style=display:none; id=lpdfsms href='sms:&body=" . str_replace('+','%20',urlencode('My Latest PDF version of Animated GIF via RJM Programming ' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '_animegif.pdf')) . "'>SMS Latest PDF</a>
<a target=_blank style=display:none; id=lgifemail href='mailto:?subject=My%20Latest%20Animated%20GIF%20via%20RJM%20Programming&body=" . str_replace('+','%20',urlencode('' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '.gif')) . "'>Email Latest Animated GIF</a>
<a target=_blank style=display:none; id=lpdfemail href='mailto:?subject=My%20Latest%20PDF%20version%20of%20Animated%20GIF%20via%20RJM%20Programming&body=" . str_replace('+','%20',urlencode('' . explode('/animegif',$durlis)[0] . '/animegif/' . server_remote_addr() . '_animegif.pdf')) . "'>Email Latest PDF</a>
<a target=_blank style=display:none; id=emailvideo href='mailto:?subject=My%20Latest%20Video%20via%20RJM%20Programming&body=" . str_replace('+','%20',urlencode('' . explode('/animegif',$durlis)[0] . '/animegif/video.webm')) . "'>Email Latest Video</a>
</body>
</html>";

//}

if (file_exists(dirname(__FILE__) . DIRECTORY_SEPARATOR . "animeJUNKgif.pdf")) {
  $xxx=rand(0, 178654356);
  rename(dirname(__FILE__) . DIRECTORY_SEPARATOR . "animegif.pdf", dirname(__FILE__) . DIRECTORY_SEPARATOR . "animegif" . $xxx . ".pdf");
  sleep(30);
  if (file_exists(dirname(__FILE__) . DIRECTORY_SEPARATOR . "animegif" . $xxx . ".pdf")) {
    unlink(dirname(__FILE__) . DIRECTORY_SEPARATOR . "animegif" . $xxx . ".pdf");
  }
}

?>
