{"id":72100,"date":"2026-02-14T03:01:00","date_gmt":"2026-02-13T17:01:00","guid":{"rendered":"https:\/\/www.rjmprogramming.com.au\/ITblog\/?p=72100"},"modified":"2026-02-14T13:52:22","modified_gmt":"2026-02-14T03:52:22","slug":"image-found-javascript-animation-sharing-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/image-found-javascript-animation-sharing-tutorial\/","title":{"rendered":"Image Found Javascript Animation Sharing Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/?p=72100\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Image Found Javascript Animation Sharing Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/images_found_sharing.gif\" title=\"Image Found Javascript Animation Sharing Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">Image Found Javascript Animation Sharing Tutorial<\/p><\/div>\n<p>Further to yesterday&#8217;s <a title='Image Found Javascript Animation Duration Tutorial' href='#ifjadt'>Image Found Javascript Animation Duration Tutorial<\/a>, today, we look into some sharing functionality to &#8230;<\/p>\n<ol>\n<li>email &#8230; or &#8230;<\/li>\n<li>SMS &#8230;<br \/>\n&lt;?php echo &#8221;<br \/>\n<code><br \/>\nfunction emailit(invl, tov, subjid) {<br \/>\n        var anchor = document.createElement('a');<br \/>\n        anchor.href = 'mailto:' + tov + '?subject=' + encodeURIComponent(subjid) + '&body=' + encodeURIComponent(invl);<br \/>\n        anchor.style.display='none';<br \/>\n        anchor.innerHTML='Email';<br \/>\n        anchor.target='_top';<br \/>\n        anchor.click();<br \/>\n        return invl;<br \/>\n}<br \/>\n<br \/>\nfunction smsit(invl, tov) {<br \/>\n        var anchor = document.createElement('a');<br \/>\n        anchor.href = 'sms:' + tov + '&body=' + encodeURIComponent(invl);<br \/>\n        anchor.style.display='none';<br \/>\n        anchor.innerHTML='SMS';<br \/>\n        anchor.target='_top';<br \/>\n        anchor.click();<br \/>\n        return invl;<br \/>\n}<br \/>\n<\/code><br \/>\n&#8220;; ?&gt;\n<\/li>\n<\/ol>\n<p> &#8230; for which we write URL links back to the new Image Found reports from the last few days.  Clicking off such links represents the chance for a &#8220;new start&#8221; so that instead of &#8230;<\/p>\n<ul>\n<li>as for the last few days the Image Found reports being children to the WordPress Blog &#8230; but now  &#8230;<\/li>\n<li>with sharing this way there are two effects, they being &#8230;\n<ol>\n<li>the Image Found report sits at the top window level &#8230; so if we want reference back to the WordPress Blog we&#8217;ll detect the scenario and open a new popup window version of the underlying WordPress Blog posting &#8220;the other way around&#8221; &#8230; but also means &#8230;<\/li>\n<li>we need to supply more hashtag data from the WordPress Blog in order for the Image Found report to effectively &#8220;stand by itself&#8221; and not rely on any <i>parent<\/i> window involvement<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p> &#8230; and on that last point we pick hashtagging to do this because &#8230;<\/p>\n<ol>\n<li>email link URLs can only handle get arguments and hashtagging data &#8230; as well as &#8230;<\/li>\n<li>the data could overflow get argument length limits<\/li>\n<\/ol>\n<p> &#8230; in <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/images_found.php--GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/images_found.php--GETME\" rel=\"noopener\">&#8220;third draft&#8221; images_found.php<\/a> web application.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/image-found-javascript-animation-sharing-tutorial\/' rel=\"noopener\">Image Found Javascript Animation Sharing Tutorial<\/a>.<\/p-->\n<hr>\n<p id='ifjadt'>Previous relevant <a target=\"_blank\" title='Image Found Javascript Animation Duration Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/image-found-javascript-animation-duration-tutorial\/' rel=\"noopener\">Image Found Javascript Animation Duration Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/?p=72080\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Image Found Javascript Animation Duration Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/images_found_duration.gif\" title=\"Image Found Javascript Animation Duration Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">Image Found Javascript Animation Duration Tutorial<\/p><\/div>\n<p>An assumption in yesterday&#8217;s <a title='Image Found Javascript Animation via PHP Tutorial' href='#ifjaphpt'>Image Found Javascript Animation via PHP Tutorial<\/a> Images Found Presentations was that &#8230;<\/p>\n<ul>\n<li>a set 8 seconds between WordPress Blog representative Tutorial Pictures would suit &#8230;. but today this was nuanced so that &#8230;<\/li>\n<li>\n<ol>\n<li>30 seconds allows for more &#8220;load time&#8221; &#8230; and &#8230;<\/li>\n<li>for animated GIF presentations &#8230; within the WordPress Blog TwentyTen theme&#8217;s good ol&#8217; header.php &#8230;<br \/>\n&lt;?php echo &#8221;<br \/>\n<code><br \/>\nvar durdef=30, iwow=0;<br \/>\n<br \/>\nfunction prefetch(whatgifmaybe) { \/\/ thanks to https:\/\/stackoverflow.com\/questions\/69564118\/how-to-get-duration-of-gif-image-in-javascript#:~:text=Mainly%20use%20parseGIF()%20%2C%20then,duration%20of%20a%20GIF%20image.<br \/>\nif ((whatgifmaybe.toLowerCase().trim().split('#')[0] + '?').indexOf('.gif?') != -1) {<br \/>\ningif=whatgifmaybe;<br \/>\ndocument.body.style.cursor='progress';<br \/>\nfetch(whatgifmaybe)<br \/>\n  .then(res =&gt; res.arrayBuffer())<br \/>\n  .then(ab =&gt; isGifAnimated(new Uint8Array(ab)))<br \/>\n  .then(console.log);<br \/>\n}<br \/>\n}<br \/>\n<br \/>\n\/** @param {Uint8Array} uint8 *\/<br \/>\nfunction isGifAnimated (uint8) { \/\/ thanks to https:\/\/stackoverflow.com\/questions\/69564118\/how-to-get-duration-of-gif-image-in-javascript#:~:text=Mainly%20use%20parseGIF()%20%2C%20then,duration%20of%20a%20GIF%20image.<br \/>\n  let duration = 0;<br \/>\n  for (let i = 0, len = uint8.length; i &lt; len; i++) {<br \/>\n    if (uint8[i] == 0x21<br \/>\n      && uint8[i + 1] == 0xF9<br \/>\n      && uint8[i + 2] == 0x04<br \/>\n      && uint8[i + 7] == 0x00)<br \/>\n    {<br \/>\n      const delay = (uint8[i + 5] &lt;&lt; 8) | (uint8[i + 4] & 0xFF);<br \/>\n      duration += delay &lt; 2 ? 10 : delay;<br \/>\n    }<br \/>\n  }<br \/>\n  \/\/alert('' + eval(duration \/ 100));<br \/>\n  if (eval(duration \/ 100) &lt;= 0.11) {<br \/>\n    altanimdura[altind]='' + durdef;<br \/>\n    return durdef;<br \/>\n  }<br \/>\n  altanimdura[altind]='' + Math.ceil(eval(duration \/ 100));<br \/>\n  if (Math.ceil(eval(duration \/ 100)) &gt; eval('' + durdef)) {<br \/>\n    iwow+=eval(Math.ceil(eval(duration \/ 100)) - eval('' + durdef));<br \/>\n  }<br \/>\n  return duration \/ 100; \/\/ if 0.1 is not an animated GIF<br \/>\n}<br \/>\n<\/code><br \/>\n&#8220;; ?&gt;\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p> &#8230; allowing <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/images_found.php-GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/images_found.php-GETME\" rel=\"noopener\">&#8220;second draft&#8221; images_found.php<\/a> allow extra time for display as represented by that <i>iwow<\/i> variable above.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/image-found-javascript-animation-duration-tutorial\/' rel=\"noopener\">Image Found Javascript Animation Duration Tutorial<\/a>.<\/p-->\n<hr>\n<p id='ifjaphpt'>Previous relevant <a target=\"_blank\" title='Image Found Javascript Animation via PHP Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/image-found-javascript-animation-via-php-tutorial\/' rel=\"noopener\">Image Found Javascript Animation via PHP Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/?p=72080\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Image Found Javascript Animation via PHP Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/images_found_better.gif\" title=\"Image Found Javascript Animation via PHP Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">Image Found Javascript Animation via PHP Tutorial<\/p><\/div>\n<p>Yesterday&#8217;s <a title='Image Found Javascript Animation Tutorial' href='#ifjat'>Image Found Javascript Animation Tutorial<\/a>&#8216;s &#8230;<\/p>\n<ul>\n<li>&#8220;first draft&#8221; effort at <i>Image Found Javascript Animation<\/i> was <i>unhinged<\/i>, in the sense that a popup window open via <a target=\"_blank\" title='Window.open method information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/met_win_open.asp' rel=\"noopener\">window.open<\/a> had a <i>nothing<\/i> first parameter value &#8230; and though we cannot resist using this methodology on occasions &#8230; <strike>one<\/strike>we should expect the worst in the &#8220;flaky&#8221; stakes &#8230; where we found the Javascript DOM sort of &#8220;petering out&#8221; on occasions &#8230; but &#8230;<\/li>\n<li>never mind, some of that &#8220;first draft&#8221; logic becomes useful to form a PHP coded first parameter to window.open scenario &#8230; begging the question &#8230;<br \/>\n<blockquote><p>\nWhy PHP?\n<\/p><\/blockquote>\n<p> &#8230; rather than HTML\/Javascript\/CSS &#8230; so please believe us when we say &#8220;we&#8217;re not being obtuse&#8221; and &#8220;we&#8217;re not just complicating things and would just use HTML\/Javascript\/CSS if totally apt&#8221; but actually allowing for future expansion of the project, because you see, PHP, only (at least at our web server), can handle all three navigation input conduits &#8230;<\/p>\n<ol>\n<li>get arguments on address bar URL via ? and &#038; &#8230; and\/or &#8230;<\/li>\n<li>location.hash hashtagging data (a lot of which can be handled, more so than the get arguments can handle) &#8230; and\/or, finally, and only a serverside language like PHP can handle <sup>(<a target=\"_blank\" title='MAMP' href='http:\/\/www.mamp.info' rel=\"noopener\">MAMP<\/a> anyone?)<\/sup> (but we are not accessing &#8230; yet) &#8230; <\/li>\n<li>post arguments via an HTML form method=POST or some Ajax FormData object means (where a lot of data can be handled, a lot more than the get arguments can handle)<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>Popup windows with a defined first parameter on the same domain should work with &#8230;<\/p>\n<ul>\n<li>window.opener back references &#8230; including using window.opener function calls &#8230; while if it is HTML iframe elements you&#8217;re using (possible with a tailored iframe name window.open second parameter) &#8230;<\/li>\n<li>window.parent back references &#8230; including using window.parent function calls<\/li>\n<\/ul>\n<p> &#8230; and the DOM work is definitely less &#8220;flaky&#8221; using this new architecture to our solution new via <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/images_found.php_GETME\" rel=\"noopener\">a &#8220;first draft&#8221; images_fpund.php<\/a> <font color=blue>now called<\/font> by the WordPress Blog TwentyTen theme&#8217;s good ol&#8217; header.php &#8230;<\/p>\n<p>&lt;?php echo &#8221;<br \/>\n<code><br \/>\nfunction altan(spano) {<br \/>\n  var jsis='', spval='', duris=0;;<br \/>\n  var alcont='Future animation work will animate list to follow ... ', coma='';<br \/>\n  if (altanima.length &gt; 0) {<br \/>\n    for (var ibn=0; ibn&lt;altanima.length; ibn++) {<br \/>\n      alcont+=coma + altanima[ibn];<br \/>\n      coma=',';<br \/>\n      spval+='&nbsp;';<br \/>\n      duris+=8;<br \/>\n    }<br \/>\n    \/\/ Thanks to https:\/\/stackoverflow.com\/questions\/15945288\/animating-progress-bars-with-css<br \/>\n   <br \/>\n    var htbit='&lt;img id=icursl style=object-fit:contain; src=' + altanima[0] + '&gt;&lt;\/img&gt;&lt;div class=\"meter\"&gt;&lt;span style=\"width:95%;\"&gt;&lt;span class=\"progress\"&gt;&lt;\/span&gt;&lt;\/span&gt;&lt;\/div&gt;';<br \/>\n    var stbit=\" .meter { margin-top:95px; \" + String.fromCharCode(10) + \"    height: 5px; \" + String.fromCharCode(10) + \"    position: relative; \" + String.fromCharCode(10) + \"    background: #f3efe6; \" + String.fromCharCode(10) + \"    overflow: hidden; \" + String.fromCharCode(10) + \" } \" + String.fromCharCode(10) + \" \" + String.fromCharCode(10) + \" .meter span { \" + String.fromCharCode(10) + \"    display: block; \" + String.fromCharCode(10) + \"    height: 100%; \" + String.fromCharCode(10) + \" } \" + String.fromCharCode(10) + \" \" + String.fromCharCode(10) + \" .progress { \" + String.fromCharCode(10) + \"    background-color: #e4c465; \" + String.fromCharCode(10) + \"    animation: progressBar \" + duris + \"s ease-in-out infinite; \" + String.fromCharCode(10) + \"    animation-fill-mode:both;  \" + String.fromCharCode(10) + \" } \" + String.fromCharCode(10) + \" \" + String.fromCharCode(10) + \" @keyframes progressBar { \" + String.fromCharCode(10) + \"  0% { width: 0; } \" + String.fromCharCode(10) + \"  100% { width: 100%; } \" + String.fromCharCode(10) + \"} \";<br \/>\n    if (6 == 6) {<br \/>\n    jsis=\" var initval='\" + spval + \"'; \" + String.fromCharCode(10) + \" var ial=1; \" + String.fromCharCode(10) + \" var alcont='\" + alcont.split(' to follow ... ')[1] + \"'; \" + String.fromCharCode(10) + \" var alconta=alcont.split(','); \" + String.fromCharCode(10) + \" var jal=\" + alcont.split(' to follow ... ')[1].split(',').length + '; ' + String.fromCharCode(10);<br \/>\n    jsis+=String.fromCharCode(10) + \" function animateit() { if (ial &lt; jal) {  document.getElementById('icursl').src=alconta[ial];  document.getElementById('xbody').style.background='url(' + alconta[ial] + ')';   } else { ial=0;  window.location.reload(); document.getElementById('icursl').src=alconta[ial]; document.getElementById('xbody').style.background='url(' + alconta[ial] + ')';  }  ial++;    setTimeout(animateit,8000); } \";<br \/>\n    <font color=blue>if (4 == 4) {<br \/>\n    wooow=window.open('\/PHP\/images_found.php?duration=0&ftitle=' + encodeURIComponent(altanimtitlea[0] + ' ' + altanimdura[0] + ' ' + altanimpida[0] + ' ' + altanimcttca[0]) + '&rand=' + Math.floor(Math.random() * 1989767) + '#' + encodeURIComponent(alcont.split('Future animation work will animate list to follow ... ')[1]),'_blank','top=' + eval(-800 + screen.height) + ',left=' + eval(-900 + screen.width) + ',width=900,height=800');<br \/>\n    wooow.document.title='Showing images of ' + altanimtitlea[0] + ' thread ... click for blog, double click for web application ...'; \/\/ 1 of ' + alcont.split(' to follow ... ')[1].split(',').length;<br \/>\n    } else {<\/font><br \/>\n    wooow=window.open('','_blank','top=50,left=50,width=800,height=800');<br \/>\n    wooow.document.write('&lt;html&gt;&lt;head&gt;&lt;style&gt; ' + stbit + '  #xbody { background:URL(' + altanima[0] + '); background-repeat:no-repeat; background-size:contain; } &lt;\/style&gt;&lt;scr' + 'ipt type=text\/javascript&gt; ' + jsis + ' &lt;\/scr' + 'ipt&gt;&lt;\/head&gt;&lt;body onload=setTimeout(animateit,8000); id=xbody style=width:100%;height:100%&gt;' + htbit + '&lt;\/body&gt;&lt;\/html&gt;');<br \/>\n    wooow.document.title='Showing images of tutorial thread ...'; \/\/ 1 of ' + alcont.split(' to follow ... ')[1].split(',').length;<br \/>\n    <font color=blue>}<\/font><br \/>\n    } else {<br \/>\n    alert(alcont);<br \/>\n    }<br \/>\n  }<br \/>\n}<br \/>\n<\/code><br \/>\n&#8220;; ?&gt;<\/p>\n<p>It&#8217;s not all &#8220;moving sideways&#8221; here.  We now get past &#8220;flakiness&#8221; enough to start mentioning <i>thread<\/i> blog posting titles and add onclick (back to blog posting) and ondblclick (back to relevant web application related to blog posting) additional functionalities, as well as better progress bar work.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/image-found-javascript-animation-via-php-tutorial\/' rel=\"noopener\">Image Found Javascript Animation via PHP Tutorial<\/a>.<\/p-->\n<hr>\n<p id='ifjat'>Previous relevant <a target=\"_blank\" title='Image Found Javascript Animation Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/image-found-javascript-animation-tutorial\/' rel=\"noopener\">Image Found Javascript Animation Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/?p=72072\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Image Found Javascript Animation Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/images_found.jpg\" title=\"Image Found Javascript Animation Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">Image Found Javascript Animation Tutorial<\/p><\/div>\n<p>Huh?!  What&#8217;s the big deal now <i>finding<\/i> the relevant WordPress Blog (that you are reading) blog posting tutorial picture?<\/p>\n<blockquote><p>\nHow about a &#8220;glass half full&#8221; blast of thinking?\n<\/p><\/blockquote>\n<p>Still not convinced?<\/p>\n<blockquote><p>\nHow about an intervention point for the loading of all blog posting tutorial pictures?\n<\/p><\/blockquote>\n<p>Still not convinced?<\/p>\n<blockquote><p>\nBecause we say so.\n<\/p><\/blockquote>\n<p>Still not convinced?<\/p>\n<blockquote><p>\nSimon says so.  <font size=3>And he&#8217;s no Silly Alec.<\/font> <font size=2>More your Smart Alec &#8230; really.<\/font> <font size=1>Besides Simon and Alec have formed a syndicate that says &#8220;yes&#8221; &#8230; like &#8230; definitely.<\/font>\n<\/p><\/blockquote>\n<p>But the thing is, with the work the other day with it centred around HTML img element <i>onerror<\/i> event thinking when we presented <a title='Image Not Found Crontab Curl Issue Tutorial' href='#infccit'>Image Not Found Crontab Curl Issue Tutorial<\/a>, while the &#8220;other side of the coin&#8221; <font size=1>(both showing &#8220;Alec&#8221;)<\/font> is to also add to all blog posting tutorial picture HTML elements a new &#8230;<\/p>\n<p><code><br \/>\nonload<br \/>\n<\/code><\/p>\n<p> &#8230; event set of logics, <font color=blue>via good ol&#8217; TwentyTen theme&#8217;s header.php&#8217;s<\/font> &#8230;<\/p>\n<p>&lt;?php<br \/>\n<code><br \/>\n    $post->post_content=str_replace(' style=\"border: 1' . '5px solid pink', '<font color=blue> onload=\"altanimation(this,this.id,this.src);\"<\/font> onerror=\"altunzipit(this,this.id,this.src);\" style=\"border: 1' . '5px solid pink', $post->post_content);<br \/>\n<\/code><br \/>\n?&gt;<\/p>\n<p> &#8230; calling into play the <font color=blue>new Javascript<\/font> (via PHP) &#8230;<\/p>\n<p>&lt;?php echo &#8221;<br \/>\n<code><br \/>\n            <font color=blue>var altanima=[];<br \/>\n            <br \/>\n            function altanimation(imgo, imgoid, imgosrc) {<br \/>\n              if (altanima.indexOf(imgosrc.replace('https:','').replace('http:','')) == -1) {<br \/>\n                 altanima.push(imgosrc.replace('https:','').replace('http:',''));<br \/>\n              }<br \/>\n              <br \/>\n              function storyimgreorder(spanthis) {<br \/>\n                 altan(spanthis);<br \/>\n              }<br \/>\n<br \/>\nfunction storyimgmember(inoh) {<br \/>\n  if (inoh.indexOf('&lt;span data-w=') == 0) { return true; }<br \/>\n  if (inoh.indexOf('&lt;details') == 0) { return true; }<br \/>\n  if (inoh.indexOf('&lt;div class=\"entry-content\"') == 0) { return true; }<br \/>\n  return false;<br \/>\n}<br \/>\n<br \/>\nfunction altan(spano) {<br \/>\n  var jsis='', spval='', duris=0;;<br \/>\n  var alcont='Future animation work will animate list to follow ... ', coma='';<br \/>\n  if (altanima.length &gt; 0) {<br \/>\n    for (var ibn=0; ibn&lt;altanima.length; ibn++) {<br \/>\n      alcont+=coma + altanima[ibn];<br \/>\n      coma=',';<br \/>\n      spval+='&nbsp;';<br \/>\n      duris+=8;<br \/>\n    }<br \/>\n    \/\/ Thanks to https:\/\/stackoverflow.com\/questions\/15945288\/animating-progress-bars-with-css<br \/>\n    var htbit='&lt;div class=\"meter\"&gt;&lt;span style=\"width:95%;\"&gt;&lt;span class=\"progress\"&gt;&lt;\/span&gt;&lt;\/span&gt;&lt;\/div&gt;';<br \/>\n    var stbit=\" .meter { margin-top:95%; \" + String.fromCharCode(10) + \"    height: 5px; \" + String.fromCharCode(10) + \"    position: relative; \" + String.fromCharCode(10) + \"    background: #f3efe6; \" + String.fromCharCode(10) + \"    overflow: hidden; \" + String.fromCharCode(10) + \" } \" + String.fromCharCode(10) + \" \" + String.fromCharCode(10) + \" .meter span { \" + String.fromCharCode(10) + \"    display: block; \" + String.fromCharCode(10) + \"    height: 100%; \" + String.fromCharCode(10) + \" } \" + String.fromCharCode(10) + \" \" + String.fromCharCode(10) + \" .progress { \" + String.fromCharCode(10) + \"    background-color: #e4c465; \" + String.fromCharCode(10) + \"    animation: progressBar \" + duris + \"s ease-in-out infinite; \" + String.fromCharCode(10) + \"    animation-fill-mode:both;  \" + String.fromCharCode(10) + \" } \" + String.fromCharCode(10) + \" \" + String.fromCharCode(10) + \" @keyframes progressBar { \" + String.fromCharCode(10) + \"  0% { width: 0; } \" + String.fromCharCode(10) + \"  100% { width: 100%; } \" + String.fromCharCode(10) + \"} \";<br \/>\n    if (6 == 6) {<br \/>\n    jsis=\" var initval='\" + spval + \"', ial=1, alcont='\" + alcont.split(' to follow ... ')[1] + \"', alconta=alcont.split(','), jal=\" + alcont.split(' to follow ... ')[1].split(',').length + '; ' + String.fromCharCode(10);<br \/>\n    jsis+=\" function animateit() { if (ial &lt; jal) {  document.getElementById('xbody').style.background='url(' + alconta[ial] + ')';   } else { ial=0;  window.location.reload(); document.getElementById('xbody').style.background='url(' + alconta[ial] + ')';  }  ial++;    setTimeout(animateit,8000); } \";<br \/>\n    wooow=window.open('','_blank','top=50,left=50,width=800,height=800');<br \/>\n    wooow.document.write('&lt;html&gt;&lt;head&gt;&lt;style&gt; ' + stbit + '  #xbody { background:URL(' + altanima[0] + '); background-repeat:no-repeat; background-size:contain; } &lt;\/style&gt;&lt;scr' + 'ipt type=text\/javascript&gt; ' + jsis + ' &lt;\/scr' + 'ipt&gt;&lt;\/head&gt;&lt;body onload=setTimeout(animateit,8000); id=xbody style=width:100%;height:100%&gt;' + htbit + '&lt;\/body&gt;&lt;\/html&gt;');<br \/>\n    wooow.document.title='Showing images of tutorial thread ...'; \/\/ 1 of ' + alcont.split(' to follow ... ')[1].split(',').length;<br \/>\n    } else {<br \/>\n    alert(alcont);<br \/>\n    }<br \/>\n  }<br \/>\n}<\/font><br \/>\n            <br \/> <br \/>\nfunction is_mentioned_by() {<br \/>\n  \/\/rppspana=docgetclass(\"widget-title\", \"h3\");<br \/>\n  <font color=blue>var altanm='';<\/font><br \/>\n  var zspare,xspare,xxspare,ximb,xpspana=docgetclass(\"entry-title\", \"h2\");  \/\/ search URL returns<br \/>\n  var mbitis='';<br \/>\n  for (ximb=0; ximb&lt;xpspana.length; ximb++) {<br \/>\n   xxspare=xpspana[ximb].innerHTML.replace('&lt;\/a&gt;','').split('&gt;');<br \/>\n   xspare=xxspare[eval(-1 + xxspare.length)];<br \/>\n   zspare=xspare.toLowerCase().replace(String.fromCharCode(35), \"\").replace(\".\", \"\").replace(\".\", \"\").replace(\".\", \"\").replace(\"+\", \"\").replace(\"+\", \"\").replace(\"'\", \"\").replace('%27','').replace(\/\\\/\/g, \"-\").replace(\/,\/g, \"\").replace(\"---\",\"-\").replace(\"---\",\"-\").replace(\/--\/g,\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace('-apachephp','-apache-php-');<br \/>\n   <font color=blue>if (altanima.length &gt; 0) {<br \/>\n    mbitis=' data-w=\"0\" data-h=\"0\" data-st=\"0\" data-style=\"-webkit-overflow-scrolling:touch;overflow:scroll;\" data-done=\"\" onclick=\" if ((' + \"''\" + ' + event.target.id) == this.id || 1 == 1) {  if (this.getAttribute(' + \"'data-done'\" + ').length == 0) { storyimgreorder(this); } else if (storyimgmember(event.target.outerHTML)) { this.style.zoom=1.0; storyimgresize(this).innerHTML=String.fromCodePoint(0x1F39E,0xFE0F); this.setAttribute(' + \"'data-done',''\" + ');  window.scrollTo(0,this.getAttribute(' + \"'data-st'\" + '));  } } \" data-title=\"Animate tutorial images to be ordered like a story ...\" style=\"display:inline-block; text-decoration:none; cursor:pointer; background-color:rgba(255,155,55,0.3);\" id=\"x' + zspare + '\" ';<br \/>\n    altanm='&nbsp;&nbsp;&lt;span ' + mbitis + ' title=\"Future animation tutorial image as slide functionality\" data-onmousedown=altan(this); style=cursor:pointer;display:inline-block;&gt;' + String.fromCodePoint(0x1F39E,0xFE0F) + '&lt;\/span&gt;';<br \/>\n   } <\/font><br \/>\n   if (document.body.innerHTML.indexOf('d' + zspare) == -1) {<br \/>\n     xpspana[ximb].innerHTML+=' &lt;div style=\"display:inline-block;border:3px solid rgba(255,165,0,0.4); background-color:rgba(255,255,0,0.3); \" id=cc' + zspare + '&gt;&lt;a target=_blank style=\"cursor:pointer;display:inline-block;text-decoration:none; font-size:12px;\" ondblclick=\"dblrplatern(' + String.fromCharCode(39) + xspare + String.fromCharCode(39) + ');\" ' + oncm + '\"rcrplatern(' + String.fromCharCode(39) + xspare + String.fromCharCode(39) + ');\" href=\/\/www.rjmprogramming.com.au\/slideshow.html?title=' + encodeURIComponent(xspare) + '  \" title=\"Cut to the Chase ... double click ' + oncmt + ' for blog posting image involvement ... to (the gist of) ' + (xspare) + '\" id=tcc' + zspare + '&gt;&#9986;&lt;\/a&gt;&lt;a target=_blank style=\"background: rgba(0,255,0,0.3); background: -webkit-linear-gradient(left top, rgba(0,255,0,0.3), rgba(255,255,0,0.3)); background: -o-linear-gradient(bottom right, rgba(0,255,0,0.3), rgba(255,255,0,0.3)); background: -moz-linear-gradient(bottom right, rgba(0,255,0,0.3), rgba(255,255,0,0.3)); background: linear-gradient(to bottom right, rgba(0,255,0,0.3), rgba(255,255,0,0.3)); cursor:pointer;display:inline-block;text-decoration:none;transform: scale(-1, 1); -o-transform: scale(-1, 1); -moz-transform: scale(-1, 1); -ms-transform: scale(-1, 1); -webkit-transform:  scale(-1, 1); font-size:12px;\" ondblclick=\"dblrplatern(' + String.fromCharCode(39) + xspare + String.fromCharCode(39) + ');\" ' + oncm + '\"rcrplatern(' + String.fromCharCode(39) + xspare + String.fromCharCode(39) + ');\" href=\/\/www.rjmprogramming.com.au\/slideshow.html?title=' + encodeURIComponent(xspare) + '  \" title=\"Cut to the Chase ... double click ' + oncmt + ' for blog posting image involvement ... to (the gist of) ' + (xspare) + '\" id=ttcc' + zspare + '&gt;&#127939;&#127998;&#8205;&#9792;&#65039;&#127939;&#127996;&#8205;&#9794;&#65039;&lt;\/a&gt;&lt;iframe style=display:none; id=icc' + zspare + ' src=&gt;&lt;\/iframe&gt;&lt;\/div&gt;';<br \/>\n     xpspana[ximb].innerHTML+=' &lt;div style=\"display:inline; background-color:rgba(255,255,0,0.3);\" id=d' + zspare + '&gt;&lt;a style=\"cursor:pointer;display:inline;text-decoration:none; border:2px solid yellow;\" onclick=\" preresize_font(this); document.getElementById(this.id.replace(String.fromCharCode(116),String.fromCharCode(105))).src=' + \"'\" + '\/\/www.rjmprogramming.com.au\/PHP\/is_mentioned_by.php?title=' + encodeURIComponent(xspare) + \"'\" + ';  setTimeout(precheckclass,3000);  \" title=\"' + (xspare) + ' is mentioned by ...\" id=t' + zspare + '&gt;&#9758;&lt;\/a&gt;&lt;iframe style=display:none; id=i' + zspare + ' src=&gt;&lt;\/iframe&gt;&lt;\/div&gt;';<br \/>\n     xpspana[ximb].innerHTML+=' &lt;div data-w=\"0\" data-h=\"0\" data-st=\"0\" data-style=\"-webkit-overflow-scrolling:touch;overflow:scroll;\" data-done=\"\" onclick=\" if (' + \"('' + \" + 'event.target.id) == this.id || 1 == 1) {  if (this.getAttribute(' + \"'data-done'\" + ').length == 0) { storyreorder(this); } else if (storymember(event.target.outerHTML)) { this.style.zoom=1.0; storyresize(this).innerHTML=' + \"'&#128214;'\" + '; this.setAttribute(' + \"'data-done',''\" + ');  window.scrollTo(0,this.getAttribute(' + \"'data-st'\" + '));  } } \" title=\"Reorder thread blog postings to read like a story ...\" style=\"display:inline-block; text-decoration:none; cursor:pointer; background-color:rgba(255,155,55,0.3);\" id=r' + zspare + '&gt;&#128214;&lt;\/div&gt;'<font color=blue> + altanm<\/font>;<br \/>\n   }<br \/>\n  }<br \/>\n  xpspana=docgetclass(\"entry-title\", \"h1\");      \/\/ real blog postings<br \/>\n  for (ximb=0; ximb&lt;xpspana.length; ximb++) {<br \/>\n   xxspare=xpspana[ximb].innerHTML.replace('&lt;\/a&gt;','').split('&gt;');<br \/>\n   xspare=xxspare[eval(-1 + xxspare.length)];<br \/>\n   zspare=xspare.toLowerCase().replace(String.fromCharCode(35), \"\").replace(\".\", \"\").replace(\".\", \"\").replace(\".\", \"\").replace(\"+\", \"\").replace(\"+\", \"\").replace(\"'\", \"\").replace('%27','').replace(\/\\\/\/g, \"-\").replace(\/,\/g, \"\").replace(\"---\",\"-\").replace(\"---\",\"-\").replace(\/--\/g,\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\").replace(\" \",\"-\");<br \/>\n   if (document.body.innerHTML.indexOf('d' + zspare) == -1) {<br \/>\n     xpspana[ximb].innerHTML+=' &lt;div style=\"display:inline-block;border:3px solid rgba(255,165,0,0.4); background-color:rgba(255,255,0,0.3); \" id=cc' + zspare + '&gt;&lt;a target=_blank style=\"cursor:pointer;display:inline-block;text-decoration:none; font-size:12px;\" ondblclick=\"dblrplatern(' + String.fromCharCode(39) + xspare + String.fromCharCode(39) + ');\" ' + oncm + '\"rcrplatern(' + String.fromCharCode(39) + xspare + String.fromCharCode(39) + ');\" href=\/\/www.rjmprogramming.com.au\/slideshow.html?title=' + encodeURIComponent(xspare) + '  \" title=\"Cut to the Chase ... double click ' + oncmt + ' for blog posting image involvement ... to (the gist of) ' + (xspare) + '\" id=tcc' + zspare + '&gt;&#9986;&lt;\/a&gt;&lt;a target=_blank style=\"background: rgba(0,255,0,0.3); background: -webkit-linear-gradient(left top, rgba(0,255,0,0.3), rgba(255,255,0,0.3)); background: -o-linear-gradient(bottom right, rgba(0,255,0,0.3), rgba(255,255,0,0.3)); background: -moz-linear-gradient(bottom right, rgba(0,255,0,0.3), rgba(255,255,0,0.3)); background: linear-gradient(to bottom right, rgba(0,255,0,0.3), rgba(255,255,0,0.3)); cursor:pointer;display:inline-block;text-decoration:none;transform: scale(-1, 1); -o-transform: scale(-1, 1); -moz-transform: scale(-1, 1); -ms-transform: scale(-1, 1); -webkit-transform:  scale(-1, 1); font-size:12px;\" ondblclick=\"dblrplatern(' + String.fromCharCode(39) + xspare + String.fromCharCode(39) + ');\" ' + oncm + '\"rcrplatern(' + String.fromCharCode(39) + xspare + String.fromCharCode(39) + ');\" href=\/\/www.rjmprogramming.com.au\/slideshow.html?title=' + encodeURIComponent(xspare) + '  \" title=\"Cut to the Chase ... double click ' + oncmt + ' for blog posting image involvement ... to (the gist of) ' + (xspare) + '\" id=ttcc' + zspare + '&gt;&#127939;&#127998;&#8205;&#9792;&#65039;&#127939;&#127996;&#8205;&#9794;&#65039;&lt;\/a&gt;&lt;iframe style=display:none; id=icc' + zspare + ' src=&gt;&lt;\/iframe&gt;&lt;\/div&gt;';<br \/>\n     xpspana[ximb].innerHTML+=' &lt;div style=\"display:inline; background-color:rgba(255,255,0,0.3);\" id=d' + zspare + '&gt;&lt;a style=\"cursor:pointer;display:inline;text-decoration:none; border:2px solid yellow;\" onclick=\" preresize_font(this); document.getElementById(this.id.replace(String.fromCharCode(164),String.fromCharCode(151))).src=' + \"'\" + '\/\/www.rjmprogramming.com.au\/PHP\/is_mentioned_by.php?title=' + encodeURIComponent(xspare) + \"'\" + '; \"  setTimeout(precheckclass,3000);  title=\"' + (xspare) + ' is mentioned by ...\" id=t' + zspare + '&gt;&#9758;&lt;\/a&gt;&lt;iframe style=display:none; id=i' + zspare + ' src=&gt;&lt;\/iframe&gt;&lt;\/div&gt;';<br \/>\n     xpspana[ximb].innerHTML+=' &lt;div data-w=\"0\" data-h=\"0\" data-st=\"0\" data-style=\"-webkit-overflow-scrolling:touch;overflow:scroll;\" data-done=\"\" onclick=\" if (' + \"('' + \" + 'event.target.id) == this.id || 1 == 1) { if (this.getAttribute(' + \"'data-done'\" + ').length == 0) { storyreorder(this); } else if (storymember(event.target.outerHTML)) { this.style.zoom=1.0;  storyresize(this).innerHTML=' + \"'&#128214;'\" + '; this.setAttribute(' + \"'data-done',''\" + '); window.scrollTo(0,this.getAttribute(' + \"'data-st'\" + '));  } } \" title=\"Reorder thread blog postings to read like a story ...\" style=\"display:inline-block; text-decoration:none; cursor:pointer; background-color:rgba(255,155,55,0.3);\" id=r' + zspare + '&gt;&#128214;&lt;\/div&gt;'<font color=blue> + altanm<\/font>;<br \/>\n   }<br \/>\n  }<br \/>\n  storyizecollect();<br \/>\n}<br \/>\n<\/code><br \/>\n&#8220;; &#8220;?&gt;<\/p>\n<p> &#8230; to make a &#8220;first draft&#8221; attempt at this new image and animation presentation idea.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/image-found-javascript-animation-tutorial\/' rel=\"noopener\">Image Found Javascript Animation Tutorial<\/a>.<\/p-->\n<hr>\n<p id='infccit'>Previous relevant <a target=\"_blank\" title='Image Not Found Crontab Curl Issue Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/image-not-found-crontab-curl-issue-tutorial\/' rel=\"noopener\">Image Not Found Crontab Curl Issue Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/index.php\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Image Not Found Crontab Curl Issue Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/image_not_found.gif\" title=\"Image Not Found Crontab Curl Issue Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">Image Not Found Crontab Curl Issue Tutorial<\/p><\/div>\n<p>The recent <a title='Image Not Found Onerror Event Workaround Tutorial' href='#infoewt'>Image Not Found Onerror Event Workaround Tutorial<\/a> talked about &#8230;<\/p>\n<ul>\n<li>live access to the WordPress Blog here in the scenario where the tutorial image of a blog posting does not exist &#8230; but there&#8217;s another aspect to this issue so that &#8230;<\/li>\n<li>similar reasoning on the overnight <a target=\"_blank\" title='crontab information from computerhope ... thanks' href='http:\/\/www.computerhope.com\/jargon\/c\/cron.htm' rel=\"noopener\">crontab<\/a>\/<a target=\"_blank\" title='Linux or unix curl information from computerhope' href='http:\/\/www.computerhope.com\/unix\/curl.htm' rel=\"noopener\">curl<\/a> functionality helping create those Recent Posts widget imagery and Landing Page imagery<\/li>\n<\/ul>\n<p> &#8230; needs our attention to close off on this issue, at least for now.<\/p>\n<p>This involved PHP code and adding wrapper thinking to where a PHP copy command is made <font color=blue>as per<\/font> &#8230;<\/p>\n<table>\n<tr>\n<th>The call &#8230;<\/th>\n<\/tr>\n<tr>\n<td>\n<code><br \/>\n      if (strpos($thisimg, 'rjmprogramming.com.au\/') !== false) {<br \/>\n      <font color=blue>if (!file_exists(str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR) . explode('rjmprogramming.com.au\/', $thisimg)[1])) {<br \/>\n      ourcopy($thisimg, dirname(__FILE__) . \"\/\" . $narray[$thisij] . \".jpg\");<br \/>\n      } else {<\/font><br \/>\n      copy(str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR) . explode('rjmprogramming.com.au\/', $thisimg)[1], dirname(__FILE__) . \"\/\" . $narray[$thisij] . \".jpg\");<br \/>\n      <font color=blue>}<\/font><br \/>\n      }<br \/>\n<\/code>\n<\/td>\n<\/tr>\n<tr>\n<th>The new wrapper PHP function &#8230;<\/th>\n<\/tr>\n<tr>\n<td>\n<code><br \/>\n  <font color=blue>function ourcopy($fromi, $toi) {<br \/>\n    $altnf=$fromi;<br \/>\n    if (strpos($fromi,'rjmprogramming.com.au\/') !== false) {<br \/>\n      $altnf=str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . explode('#',explode('?',explode('rjmprogramming.com.au\/',$fromi)[1])[0])[0]);<br \/>\n      \/\/file_put_contents('xz.xz', $altnf . \"\\n\" . $fromi . \"\\n\" . $toi);<br \/>\n      if (!file_exists($altnf)) {<br \/>\n      \/\/file_put_contents('xzz.xzz', $altnf . \"\\n\" . $fromi . \"\\n\" . $toi);<br \/>\n        $winfnmis=basename($altnf);<br \/>\n        $windiris=str_replace($winfnmis,'',$altnf);<br \/>\n      \/\/file_put_contents('xzzz.xzzz', str_replace(basename($altnf),'',$altnf) . 'slideshow_0.zip');<br \/>\n        if (file_exists(str_replace(basename($altnf),'',$altnf) . 'slideshow_0.zip')) {<br \/>\n      \/\/file_put_contents('xzzzy.xzzzy', str_replace(basename($altnf),'',$altnf) . 'slideshow_0.zip');<br \/>\n         $retv=shell_exec(\"unzip -l \" . $windiris . \"slideshow_0.zip \" . $winfnmis);<br \/>\n         if (strpos($retv, $winfnmis) !== false) {<br \/>\n      \/\/file_put_contents('xzzzyy.xzzzyy', str_replace(basename($altnf),'',$altnf) . 'slideshow_0.zip');<br \/>\n          if (!file_exists(str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR) . '..' . DIRECTORY_SEPARATOR . $winfnmis)) {<br \/>\n      \/\/file_put_contents('xzzzyyy.xzzzyyy', str_replace(basename($altnf),'',$altnf) . 'slideshow_0.zip');<br \/>\n          $rt=\"unzip \" . $windiris . \"slideshow_0.zip \" . $winfnmis . \" -d \" . str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR) . '..' . DIRECTORY_SEPARATOR;<br \/>\n          $rt.=shell_exec(\"unzip \" . $windiris . \"slideshow_0.zip \" . $winfnmis . \" -d \" . str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR) . '..' . DIRECTORY_SEPARATOR);<br \/>\n      \/\/file_put_contents('xzzzyyyc.xzzzyyyc', str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR) . '..' . DIRECTORY_SEPARATOR . $winfnmis);<br \/>\n          copy(str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR) . '..' . DIRECTORY_SEPARATOR . $winfnmis, $toi);<br \/>\n          if (file_exists(str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR) . '..' . DIRECTORY_SEPARATOR . $winfnmis)) {<br \/>\n      \/\/file_put_contents('xzzzyyycx.xzzzyyycx', str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR) . '..' . DIRECTORY_SEPARATOR . $winfnmis);<br \/>\n          unlink(str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR,DIRECTORY_SEPARATOR,$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR) . '..' . DIRECTORY_SEPARATOR . $winfnmis);<br \/>\n          return true;<br \/>\n          }<br \/>\n          }<br \/>\n         }<br \/>\n        }<br \/>\n      }<br \/>\n    }<br \/>\n    return copy($fromi, $toi);<br \/>\n  }<\/font><br \/>\n<\/code>\n<\/td>\n<\/tr>\n<\/table>\n<p> &#8230; in <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/recent-posts-2.php---------------GETME\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/recent-posts-2.php---------------GETME\" rel=\"noopener\">recent-posts-2.php<\/a> PHP called via curl within the RJM Programming crontab scheduling workflows.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/image-not-found-crontab-curl-issue-tutorial\/' rel=\"noopener\">Image Not Found Crontab Curl Issue Tutorial<\/a>.<\/p-->\n<hr>\n<p id='infoewt'>Previous relevant <a target=\"_blank\" title='Image Not Found Onerror Event Workaround Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/image-not-found-onerror-event-workaround-tutorial\/' rel=\"noopener\">Image Not Found Onerror Event Workaround Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/look_to_unzip.php\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Image Not Found Onerror Event Workaround Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/anewplace\/a_new_gif-1.gif\" title=\"Image Not Found Onerror Event Workaround Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">Image Not Found Onerror Event Workaround Tutorial<\/p><\/div>\n<p>Yesterday&#8217;s <a title='HTML\/Javascript Cockpit of Web Applications Feeling Lucky Tutorial' href='#html\/jcwaflt'>HTML\/Javascript Cockpit of Web Applications Feeling Lucky Tutorial<\/a> has brought into focus, for us, those days when we were really wary of &#8230;<\/p>\n<ul>\n<li>Linux web hosting web server&#8217;s &#8230;<\/li>\n<li><a target=\"_blank\" title='Inode count information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Inode' rel=\"noopener\">inode count<\/a> &#8230; whose limit towards which we used to get a bit too close for comfort (and as distinct from diskspace issues which were less critical but also needed attention)<\/li>\n<\/ul>\n<p> &#8230; was it, a few years back now, when our CentOS web server inode count limit had us rethinking the idea that image slides of an animated presentation of some sort should all sit as individual files on the web server, and as a result we set up a system &#8230;<\/p>\n<ul>\n<li>for new presentations to more use animated GIFs and\/or videos and\/or PDF &#8230; and for those older multi-image presentations &#8230;<\/li>\n<li>zip them up during dormant times into a zip file and off the disk, and if called upon, unzip all for a short period of time until the next time they are called upon again<\/li>\n<\/ul>\n<p>Nowadays, on the current crop of AlmaLinux web servers there are less stringent inode limits to worry about, but, nonetheless, we think the strategy above should still hold.  But that means, occasionally, we run up against a tutorial image file not existing on the web server disk at a time of a user calling upon it.<\/p>\n<p>And then we thought on this &#8230;<\/p>\n<blockquote cite='https:\/\/www.google.com\/search?q=can+an+onerror+event+for+an+img+element+trap+a+404+not+found+scenario&#038;rlz=1C5OZZY_en&#038;oq=can+an+onerror+event+for+an+img+element+trap+a+404+not+found+scenario&#038;gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQIRiPAjIHCAIQIRiPAtIBCTI0NDIyajBqN6gCALACAA&#038;sourceid=chrome&#038;ie=UTF-8'><p>\n<a target=\"_blank\" title=\"?\" href='https:\/\/www.google.com\/search?q=can+an+onerror+event+for+an+img+element+trap+a+404+not+found+scenario&#038;rlz=1C5OZZY_en&#038;oq=can+an+onerror+event+for+an+img+element+trap+a+404+not+found+scenario&#038;gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQIRiPAjIHCAIQIRiPAtIBCTI0NDIyajBqN6gCALACAA&#038;sourceid=chrome&#038;ie=UTF-8' rel=\"noopener\">can an onerror event for an img element trap a 404 not found scenario<\/a> &#8230; resulted in &#8230;<br \/>\n<br \/>\nYes, an onerror event handler for an <img> element can be used to trap a 404 Not Found scenario [1, 2].<br \/>\nWhen the browser attempts to fetch the image source (src attribute) and the server responds with a 404 status code (or any other status indicating a failure to fetch or load the resource), the error event is fired on the <img> element [1, 2].\n<\/p><\/blockquote>\n<p> &#8230; as the encouragement we needed to launch into today&#8217;s idea to &#8230;<\/p>\n<ol>\n<li>add an <i>onerror<\/i> event to all relevant tutorial images on our WordPress Blog via good ol&#8217; TwentyTen theme&#8217;s header.php <font color=blue>change<\/font> &#8230;<br \/>\n&lt;?php<br \/>\n<code><br \/>\n  if (isset($post-&gt;post_content)) {  \/\/ img contextmenu functionality<font color=blue> and img onerror idea<\/font><br \/>\n    $post-&gt;post_content=str_replace('&lt;i' . 'mg' . ' i' . 'd=', '&lt;i' . 'mg' . ' tabindex=0 oncon' . 'textmenu=imgedit(event); ontou' . 'chend=imgedit(event); i' . 'd=', str_replace('&lt;i' . 'mg' . ' s' . 'rc=', '&lt;i' . 'mg' . ' tabindex=0 oncon' . 'textmenu=imgedit(event); ontou' . 'chend=imgedit(event); s' . 'rc=', str_replace('&lt;i' . 'mg' . ' st' . 'yle=\"border', '&lt;i' . 'mg' . ' tabindex=0 oncon' . 'textmenu=imgedit(event); ontou' . 'chend=imgedit(event); st' . 'yle=\"border', str_replace('&lt;i' . 'mg' . ' st' . 'yle=\"float', '&lt;i' . 'mg' . ' tabindex=0 oncon' . 'textmenu=imgedit(event); ontou' . 'chend=imgedit(event); st' . 'yle=\"float', str_replace('&lt;i' . 'mg' . ' deco' . 'ding=', '&lt;i' . 'mg' . ' tabindex=0 onconte' . 'xtmenu=imgedit(event);  ontou' . 'chend=imgedit(event); deco' . 'ding=', $post-&gt;post_content)))));<br \/>\n    $thendel=\"\";<br \/>\n    $checksrcs=explode(' Tutorial\" src=\"', $post-&gt;post_content);<br \/>\n    for ($ich=1; $ich&lt;sizeof($checksrcs); $ich++) {<br \/>\n      $urlim=explode('\"', $checksrcs[$ich])[0];<br \/>\n      if (strpos($urlim, \"\/\/\") !== false) {<br \/>\n         $urlim=\"\/\/\" . explode(\"\/\/\", $urlim)[1];<br \/>\n      }<br \/>\n      $urlim=str_replace(\"\/\/www.rjmprogramming.com.au\/\", \"..\/\", $urlim);<br \/>\n      $smallurlim=$urlim;<br \/>\n      if (strpos($urlim, \"\/\") !== false) {<br \/>\n         $smallurlim=explode(\"\/\", $urlim)[-1 + sizeof(explode(\"\/\", $urlim))];<br \/>\n      }<br \/>\n      \/\/if (strpos($post-&gt;post_content, \"Ansible \") !== false) { file_put_contents(\"013.013\", $smallurlim); }<br \/>\n      if (!file_exists($urlim) && file_exists(str_replace($smallurlim, \"slideshow_0.zip\", $urlim))) {<br \/>\n      \/\/if (strpos($post-&gt;post_content, \"Ansible \") !== false) { file_put_contents(\"014.014\", \"unzip \" . str_replace($smallurlim, \"slideshow_0.zip\", $urlim) . \" -d \" . str_replace($smallurlim, \" \" . $smallurlim, $urlim)); }<br \/>\n         exec(\"unzip \" . str_replace($smallurlim, \"slideshow_0.zip\", $urlim) . \" -d \" . str_replace($smallurlim, \" \" . $smallurlim, $urlim));<br \/>\n         if ($thendel == \"\") {<br \/>\n           $thendel=\"sleep 5; rm -f \" . $urlim . \" &gt; \/dev\/null 2&gt; \/dev\/null \";<br \/>\n         } else {<br \/>\n           $thendel.=\"; sleep 10; rm -f \" . $urlim . \" &gt; \/dev\/null 2&gt; \/dev\/null \";<br \/>\n         }<br \/>\n      \/\/if (strpos($post-&gt;post_content, \"Ansible \") !== false) { file_put_contents(\"015.015\", $thendel); }<br \/>\n      }<br \/>\n    }<br \/>\n    <font color=blue><br \/>\n     $p_one=' style=\"border: 1' . '5px solid pink';<br \/>\n     $p_two=' onerror=\"altunzipit(this,this.id,this.src);\" style=\"border: 1' . '5px solid pink';<br \/>\n     $post-&gt;post_content=str_replace($p_one,$p_two,$post-&gt;post_content);<\/font><br \/>\n    if ($thendel != \"\") {<br \/>\n      \/\/sleep(5);<br \/>\n      shell_exec(\"\/usr\/bin\/nohup ksh -c \\\"\" . $thendel . \"\\\" > \/dev\/null 2> \/dev\/null &\");<br \/>\n    }<br \/>\n  }<br \/>\n<\/code><br \/>\n?&gt;<br \/>\n &#8230; and <font color=purple>then later<\/font> &#8230;<br \/>\n&lt;?php echo &#8221;<br \/>\n<code><br \/>\n            <font color=purple>var ifixn=0;<br \/>\n            <br \/>\n            function altunzipit(imgo, imgoid, imgosrc) {<br \/>\n              imgo.src='\/hang_on_a_minute.jpg';<br \/>\n              document.getElementById('ifimgfix' + eval(ifixn % 5)).src='\/look_to_unzip.php?parid=' + encodeURIComponent(imgoid) + '&parimgsrc=' + encodeURIComponent(imgosrc);<br \/>\n              ifixn++;<br \/>\n            }<\/font><br \/>\n            <br \/>\n            setTimeout(donow,2000);<br \/>\n\t\t\t<br \/> <br \/>\n\t\t\t&lt;\/script&gt;<br \/>\n\t\t\t<br \/>\n\t\t&lt;\/div&gt;&lt;!-- #masthead --&gt;<br \/>\n\t&lt;\/div&gt;&lt;!-- #header --&gt;<br \/>\n\t<br \/>\n&lt;div id='hfloater'&gt;&lt;\/div&gt;<br \/>\n<font color=purple>&lt;iframe style=display:none; srcdoc='&lt;html&gt;&lt;body&gt;&lt;\/body&gt;&lt;\/html&gt;' id='ifimgfix0'&gt;&lt;\/iframe&gt;<br \/>\n&lt;iframe style=display:none; srcdoc='&lt;html&gt;&lt;body&gt;&lt;\/body&gt;&lt;\/html&gt;' id='ifimgfix1'&gt;&lt;\/iframe&gt;<br \/>\n&lt;iframe style=display:none; srcdoc='&lt;html&gt;&lt;body&gt;&lt;\/body&gt;&lt;\/html&gt;' id='ifimgfix2'&gt;&lt;\/iframe&gt;<br \/>\n&lt;iframe style=display:none; srcdoc='&lt;html&gt;&lt;body&gt;&lt;\/body&gt;&lt;\/html&gt;' id='ifimgfix3'&gt;&lt;\/iframe&gt;<br \/>\n&lt;iframe style=display:none; srcdoc='&lt;html&gt;&lt;body&gt;&lt;\/body&gt;&lt;\/html&gt;' id='ifimgfix4'&gt;&lt;\/iframe&gt;<\/font><br \/>\n<\/code><br \/>\n&#8220;; ?&gt;\n<\/li>\n<li>create an interim &#8220;splash image&#8221; and upload into place &#8230;<br \/>\n<img style=width:100%; src='\/\/www.rjmprogramming.com.au\/hang_on_a_minute.jpg' title='Idea for a simple splash image'><\/img>\n<\/li>\n<li>create the <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/look_to_unzip.php_GETME' rel=\"noopener\">unzipping look_to_unzip.php PHP helper code<\/a> that uses Linux command line accessing exec and shell_exec to work it &#8230;<br \/>\n<code><br \/>\n&lt;?php<br \/>\n\/\/ look_to_unzip.php<br \/>\n\/\/ Look to fix WordPress Blog top content image Not Found (error 404) looking to see if slideshow_0.zip exists and can help<br \/>\n\/\/ February, 2026<br \/>\n<br \/>\n  $pimgid='';<br \/>\n  $pimgsrc='';<br \/>\n  $pimgunusrc='';<br \/>\n  $andbackagain='';<br \/>\n  $last_access_time=-1;<br \/>\n  if (isset($_GET['parimgsrc']) && isset($_GET['parid'])) {<br \/>\n   $pimgid=str_replace('+',' ',urldecode($_GET['parid']));<br \/>\n   $pimgsrc=str_replace('+',' ',urldecode($_GET['parimgsrc']));<br \/>\n   if (strpos($pimgsrc, 'rjmprogramming.com.au\/') === false) {<br \/>\n    $pimgid='';<br \/>\n    $pimgsrc='';<br \/>\n   } else {<br \/>\n    $pimgunusrc=$_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . explode('rjmprogramming.com.au\/', explode('#',explode('?',$pimgsrc)[0])[0])[1];<br \/>\n    if ($pimgid == '') {<br \/>\n      try {<br \/>\n       $last_access_time=fileatime($pimgunusrc);<br \/>\n      } catch (Exception $eonee) {  }<br \/>\n    }<br \/>\n    if (file_exists($pimgunusrc)) {<br \/>\n     if ($pimgid == '') {<br \/>\n      $windiris=str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, realpath($pimgunusrc) . DIRECTORY_SEPARATOR);<br \/>\n      $winfnmis=basename($pimgunusrc);<br \/>\n      if ($last_access_time &lt; 0) {<br \/>\n       $last_access_time=fileatime($pimgunusrc);<br \/>\n      }<br \/>\n      $seconds_since_access=(time() - $last_access_time);<br \/>\n      if ($seconds_since_access &lt; 85) {<br \/>\n       if (file_exists($windiris . 'slideshow_0.zip')) { \/\/ might be in here<br \/>\n        $retv=shell_exec(\"unzip -l \" . $windiris . \"slideshow_0.zip \" . $winfnmis);<br \/>\n        if (strpos($retv, $winfnmis) !== false) {<br \/>\n         unlink($pimgunusrc);  \/\/ cache version should be enough to show<br \/>\n         if (!file_exists($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'img_not_found_on_wp.log')) {<br \/>\n           file_put_contents($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'img_not_found_on_wp.log', '');<br \/>\n         }<br \/>\n         file_put_contents($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'img_not_found_on_wp.log', file_get_contents($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'img_not_found_on_wp.log') . \"\\n\" . $pimgsrc . \" rezipped at \" . date('l jS \\of F Y h:i:s A') . \"\\n\");<br \/>\n        }<br \/>\n       }<br \/>\n      }<br \/>\n      exit;<br \/>\n     } else {<br \/>\n      echo \"&lt;html&gt;&lt;body onload=\\\" parent.document.getElementById('\" . $pimgid . \"').src='\" . explode('#',explode('?',$pimgsrc)[0])[0] . \"?rand=\" . rand(0,564678) . \"';\\\"&gt;&lt;\/body&gt;&lt;\/html&gt;\";<br \/>\n      $pimgid='';<br \/>\n      $pimgsrc='';<br \/>\n     }<br \/>\n    } else {  \/\/ here we have the Not Found img issue<br \/>\n     $windiris=str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, realpath($pimgunusrc) . DIRECTORY_SEPARATOR);<br \/>\n     $winfnmis=basename($pimgunusrc);<br \/>\n     if (file_exists($windiris . 'slideshow_0.zip')) { \/\/ might be in here<br \/>\n      exec(\"unzip \" . $windiris . \"slideshow_0.zip \" . $winfnmis . \" -d \" . $windiris);<br \/>\n      if (!file_exists($pimgunusrc)) {<br \/>\n       $pimgid='';<br \/>\n       $pimgsrc='';<br \/>\n      } else if ($pimgid != '') {<br \/>\n       if (!file_exists($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'img_not_found_on_wp.log')) {<br \/>\n         file_put_contents($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'img_not_found_on_wp.log', '');<br \/>\n       }<br \/>\n       file_put_contents($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'img_not_found_on_wp.log', file_get_contents($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'img_not_found_on_wp.log') . \"\\n\" . $pimgsrc . \" unzipped at \" . date('l jS \\of F Y h:i:s A') . \"\\n\");<br \/>\n       $andbackagain=\" setTimeout(function(){ location.href=document.URL.split('?')[0].split('#')[0] + '?parid=&parimgsrc=\" . $_GET['parimgsrc'] . \"';  }, 45000);  \";<br \/>\n      }<br \/>\n     } else {<br \/>\n      $pimgid='';<br \/>\n      $pimgsrc='';<br \/>\n     }<br \/>\n    }<br \/>\n   }<br \/>\n  }<br \/>\n  if ($pimgid != '') {<br \/>\n   echo \"&lt;html&gt;&lt;body onload=\\\" parent.document.getElementById('\" . $pimgid . \"').src='\" . explode('#',explode('?',$pimgsrc)[0])[0] . \"?rand=\" . rand(0,564678) . \"'; \" . $andbackagain . \"\\\"&gt;&lt;\/body&gt;&lt;\/html&gt;\";<br \/>\n  }<br \/>\n?&gt;<br \/>\n<\/code>\n<\/li>\n<\/ol>\n<p>As a result, we hope you see less &#8220;broken images&#8221;!<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/image-not-found-onerror-event-workaround-tutorial\/' rel=\"noopener\">Image Not Found Onerror Event Workaround Tutorial<\/a>.<\/p-->\n<hr>\n<p id='html\/jcwaflt'>Previous relevant <a target=\"_blank\" title='HTML\/Javascript Cockpit of Web Applications Feeling Lucky Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/html\/javascript-cockpit-of-web-applications-feeling-lucky-tutorial\/' rel=\"noopener\">HTML\/Javascript Cockpit of Web Applications Feeling Lucky Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html?startwithcancel=645654565\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"HTML\/Javascript Cockpit of Web Applications Feeling Lucky Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel_feeling_lucky.gif\" title=\"HTML\/Javascript Cockpit of Web Applications Feeling Lucky Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">HTML\/Javascript Cockpit of Web Applications Feeling Lucky Tutorial<\/p><\/div>\n<p>Further to yesterday&#8217;s <a title='HTML\/Javascript Cockpit of Web Applications Dropdown Cells Tutorial' href='#html\/jcwadct'>HTML\/Javascript Cockpit of Web Applications Dropdown Cells Tutorial<\/a> &#8230;<\/p>\n<blockquote><p>\nwe&#8217;ve been restewing on <i>cockpit_feel.html feeling lucky option<\/i> in the light of yesterday&#8217;s <i>cockpit_feel.html whole new cell content idea of blog posting dropdowns in multiple entry mode<\/i>\n<\/p><\/blockquote>\n<p> &#8230; and, yes, a little more curry paste is required?!  And doesn&#8217;t it hold up well the next day?  But we digress &#8230;<\/p>\n<p>We&#8217;ve come around to &#8230;<\/p>\n<ol>\n<li>not only including new &#8220;feeling lucky&#8221; logic where the web application selects nine random blog posting cell content iframes &#8230; but <font size=1>(and this is an advantage regarding a &#8220;revisited stewing&#8221; in &#8220;Paprika Place&#8221; perhaps)<\/font> &#8230;<\/li>\n<li>we worked out that the PHP web application helper featuring in the recent <a target=\"_blank\" href='https:\/\/www.rjmprogramming.com.au\/ITblog\/wordpress-blog-search-title-and-posting-date-expressions-tutorial\/' title='WordPress Blog Search Title and Posting Date Expressions Tutorial' rel=\"noopener\">WordPress Blog Search Title and Posting Date Expressions Tutorial<\/a> could fairly easily &#8230;<br \/>\n&lt;?php<br \/>\n<code><br \/>\n$firstnine=false;<br \/>\n<br \/>\nif (isset($_GET['otherpm'])) {  \/\/ recall scenario<br \/>\n $firstnine=true;<br \/>\n $pmval=@file_get_contents(\"http:\/\/www.rjmprogramming.com.au\/Welcome.html\");<br \/>\n $bits=explode(\"id='tuts'\", $pmval);<br \/>\n if (sizeof($bits) &gt; 1) {<br \/>\n   $ssomeof=someof(explode('&lt;\/select&gt;', $bits[1])[0], str_replace('+',' ',urldecode($_GET['otherpm'])));<br \/>\n   if (1 == 1) {<br \/>\n   echo '&lt;html&gt;&lt;body onload=\"if (window.parent) {  if (parent.document.getElementById(' . \"'blogp'\" . ')) { parent.document.getElementById(' . \"'blogp'\" . ').value=' . \"'\" . $ssomeof . \"'\" . ';   } }' . '\"&gt;&lt;p id=res&gt;' . $ssomeof . '&lt;\/p&gt;&lt;\/body&gt;&lt;\/html&gt;';<br \/>\n   } else {<br \/>\n   $allselbits=\"&lt;select\" . $onclick . \"'if (this.value.trim().length &gt; 0) { if (2 == 2 || navigator.userAgent.match(\/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile\/i)) { location.href=this.value; } else { document.getElementById(\\\"myi\\\").src=this.value; }  } else { var huh=prompt(\\\"Tutorials regarding?\\\",\\\"\" . urldecode($_GET['pm']) . \"\\\");  if (huh != null) { if (huh != \\\"\\\") { if (huh.indexOf(\\\".\\\") == 0) { huh=String.fromCharCode(92) + huh; } location.href=\\\"http:\/\/www.rjmprogramming.com.au\/itnewblog\/match\/\\\" + encodeURIComponent(huh); }  }  } ' size=1 id='tuts'\" . $ssomeof . '&lt;\/select&gt;&lt;br&gt;&lt;iframe name=\"myi\" id=\"myi\" style=\"width:100%;height:1400px;\" src=\"\/\/www.rjmprogramming.com.au\/ITblog\" title=\"Robert James Metcalfe Blog\"&gt;&lt;\/iframe&gt;';<br \/>\n   echo '&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;title&gt;Robert James Metcalfe Blog - Match Blog Title via RegExp&lt;\/title&gt;&lt;\/head&gt;&lt;body&gt;' . $allselbits . '&lt;\/body&gt;&lt;\/html&gt;';<br \/>\n   }<br \/>\n }<br \/>\n exit;<br \/>\n} else if (isset($_POST['otherpm'])) {  \/\/ recall scenario<br \/>\n $firstnine=true;<br \/>\n $pmval=@file_get_contents(\"http:\/\/www.rjmprogramming.com.au\/Welcome.html\");<br \/>\n $bits=explode(\"id='tuts'\", $pmval);<br \/>\n if (sizeof($bits) &gt; 1) {<br \/>\n   $ssomeof=someof(explode('&lt;\/select&gt;', $bits[1])[0], str_replace('+',' ',urldecode($_POST['otherpm'])));<br \/>\n   if (1 == 1) {<br \/>\n   echo '&lt;html&gt;&lt;body onload=\"if (window.parent) {  if (parent.document.getElementById(' . \"'blogp'\" . ')) { parent.document.getElementById(' . \"'blogp'\" . ').value=' . \"'\" . $ssomeof . \"'\" . ';   } }' . '\"&gt;&lt;p id=res&gt;' . $ssomeof . '&lt;\/p&gt;&lt;\/body&gt;&lt;\/html&gt;';<br \/>\n   } else {<br \/>\n   $allselbits=\"&lt;select\" . $onclick . \"'if (this.value.trim().length &gt; 0) { if (2 == 2 || navigator.userAgent.match(\/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile\/i)) { location.href=this.value; } else {  document.getElementById(\\\"myi\\\").src=this.value; }  } else { var huh=prompt(\\\"Tutorials regarding?\\\",\\\"\" . urldecode($_POST['pm']) . \"\\\");  if (huh != null) { if (huh != \\\"\\\") { if (huh.indexOf(\\\".\\\") == 0) { huh=String.fromCharCode(92) + huh; } location.href=\\\"http:\/\/www.rjmprogramming.com.au\/itnewblog\/match\/\\\" + encodeURIComponent(huh); }  }  } ' size=1 id='tuts'\" . $ssomeof . '&lt;\/select&gt;&lt;br&gt;&lt;iframe name=\"myi\" id=\"myi\" style=\"width:100%;height:1400px;\" src=\"\/\/www.rjmprogramming.com.au\/ITblog\" title=\"Robert James Metcalfe Blog\"&gt;&lt;\/iframe&gt;';<br \/>\n   echo '&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;title&gt;Robert James Metcalfe Blog - Match Blog Title via RegExp&lt;\/title&gt;&lt;\/head&gt;&lt;body&gt;' . $allselbits . '&lt;\/body&gt;&lt;\/html&gt;';<br \/>\n   }<br \/>\n }<br \/>\n exit;<br \/>\n}<br \/>\n<\/code><br \/>\n?&gt;<br \/>\n &#8230; be repurposed <a target=\"_blank\" href='https:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=https:\/\/www.rjmprogramming.com.au\/itnewblog\/match\/mapper.php------GETME' rel=\"noopener\">in a changed<\/a> <a target=\"_blank\" href='https:\/\/www.rjmprogramming.com.au\/itnewblog\/match\/mapper.php------GETME' rel=\"noopener\">mapper.php<\/a> so that the logic of that new &#8220;Post RE&#8221; WordPress Blog search textbox area checkbox could also help out here by supplying a comma separated list &#8230;<br \/>\n<img src='\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feeling_repurposing.jpg' style=width:100%;><\/img><br \/>\n &#8230; of WordPress Blog posting IDs it sends back up to our hosting Cockpit of Web Applications web application<\/li>\n<\/ol>\n<p> &#8230; as today&#8217;s &#8220;value adding&#8221; proposition in our <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html?rand=685345546543\" rel=\"noopener\">Cockpit Feel<\/a> of web applications <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html---GETME\" rel=\"noopener\">changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html---GETME\" rel=\"noopener\">cockpit_feel.html<\/a> &#8230;<\/p>\n<p><code><br \/>\n<font color=blue>var sofarblogp=',';<br \/>\nvar today=new Date();<br \/>\nvar yyyy = today.getFullYear();<br \/>\nvar feeling_lucky=false, doing_preg=false, minrange=20140101, maxrange=eval(eval(1 + yyyy) * 10000 + 101);<br \/>\nvar pval=0, ourhuh='';<\/font><br \/>\n<br \/>\nfunction setCookie(thisg, tn) { \/\/ thanks to JavaScript and Ajax by Tom Negrino and Dori Smith<br \/>\n  if (nomore != 'y') {<br \/>\n   var expireDate = new Date();<br \/>\n   expireDate.setMonth(expireDate.getMonth()+6);<br \/>\n   var huh='';<br \/>\n   if (urls[eval(-1 + tn)] != \"#nomore\") {<br \/>\n   \/\/alert(\"urls[\" + eval(-1 + tn) + \"]=\" + urls[eval(-1 + tn)]);<br \/>\n   if (prefix != '') {<br \/>\n    if (('' + tn) == '1') {<br \/>\n    huh=prompt(prefix + \"What is your URL (\" + tn + \" of up to 9) of interest ... append by #iframe if you want it to be tried in an iframe ... append by #nomore if you want this one to be last considered of up to 9 ... use Cancel for just using dropdown multiple selections or OK to blank for no more now<font color=blue> or to Feeling Lucky or some other posting criteria search string with same rules as Post RE blog checkbox (and which is not a URL)<\/font>\", urls[eval(-1 + tn)]);<br \/>\n    if (huh == null<font color=blue> || ('' + huh).toLowerCase() == 'feeling lucky' || ( ('' + huh).replace(\/^null\/g,'').replace(\/^undefined\/g,'').trim() != '' && (('' + huh).replace(\/^null\/g,'').replace(\/^undefined\/g,'').trim().indexOf(' ') != -1 || ('' + huh).replace(\/^null\/g,'').replace(\/^undefined\/g,'').trim().indexOf('.') == -1))<\/font>) {<br \/>\n      <font color=blue>if (('' + huh).toLowerCase() == 'feeling lucky') {<br \/>\n        feeling_lucky=true;<br \/>\n        huh=null;<br \/>\n      } else if (huh != null) {<br \/>\n        doing_preg=true;<br \/>\n        ourhuh=huh;<br \/>\n        setTimeout(function(){<br \/>\n        document.getElementById('ifbppop').src='\/\/www.rjmprogramming.com.au\/itnewblog\/match\/mapper.php?otherpm=' + encodeURIComponent(ourhuh);<br \/>\n        }, 2000);<br \/>\n        huh=null;<br \/>\n      }<\/font><br \/>\n      cancelps=true;<br \/>\n      nomore='y';<br \/>\n      document.body.style.cursor='progress';<br \/>\n      setInterval(function(){<br \/>\n      if (amready) {<br \/>\n      document.getElementById('dtbl').style.width='100%';<br \/>\n      document.getElementById('dtbl').style.height='75%';<br \/>\n      for (var ijh=0; ijh&lt;mapping.length; ijh++) {<br \/>\n        document.getElementById('td' + mapping[ijh]).style.width='33%';<br \/>\n        document.getElementById('td' + mapping[ijh]).style.height='33%';<br \/>\n        <font color=blue>if (feeling_lucky) {<br \/>\n        pval='';<br \/>\n        while ((sofarblogp + ',').indexOf(',' + pval + ',') != -1 || pval == '') {<br \/>\n        pval=eval('' + minrange) + Math.floor(Math.random() * eval(maxrange - minrange));<br \/>\n        if (mapping[ijh] == '22') { pval=20260204; }<br \/>\n        while (document.getElementById('dopt').innerHTML.indexOf('(' + pval + ')') == -1 || (sofarblogp + ',').indexOf(',' + pval + ',') != -1) {<br \/>\n          pval=eval('' + minrange) + Math.floor(Math.random() * eval(maxrange - minrange));<br \/>\n        }<br \/>\n        if (sofarblogp != ',') { sofarblogp+=',';  }<br \/>\n        sofarblogp+='' + pval;<br \/>\n        \/\/alert('2:' + pval + ' ' + document.getElementById('dopt').innerHTML.split('(' + pval + ')')[0].split('?p=')[eval(-1 + document.getElementById('dopt').innerHTML.split('(' + pval + ')')[0].split('?p=').length)].split('&')[0].split('#')[0]);<br \/>\n        pval=document.getElementById('dopt').innerHTML.split('(' + pval + ')')[0].split('?p=')[eval(-1 + document.getElementById('dopt').innerHTML.split('(' + pval + ')')[0].split('?p=').length)].split('&')[0].split('#')[0];<br \/>\n        }<br \/>\n        if (sofarblogp != ',') { sofarblogp+=',';  }<br \/>\n        sofarblogp+='' + pval;<br \/>\n        if (navigator.userAgent.match(\/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile\/i)) {<br \/>\n        \/\/setTimeout(function(){<br \/>\n        document.getElementById('td' + mapping[ijh]).innerHTML='&lt;iframe id=iftd' + mapping[ijh] + ' onload=\"if (this.src.indexOf(' + \"'About_Us'\" + ') != -1) { setTimeout(function(event){ document.getElementById(' + \"'iftd' + '\" + mapping[ijh] + \"'\" + ').src=document.getElementById(' + \"'iftd' + '\" + mapping[ijh] + \"'\" + ').getAttribute(' + \"'data-src'\" + ');  }, ' + eval(eval(2 + ijh) * 12000) + '); }\" data-src=\"\/\/www.rjmprogramming.com.au\/ITblog\/?p=' + pval + '&openappin=30#content\" src=\/About_Us.html style=width:100%;height:100%;&gt;&lt;\/iframe&gt;';<br \/>\n        \/\/}, eval(eval('' + mapping[ijh]) * 1000));<br \/>\n        } else {<br \/>\n        document.getElementById('td' + mapping[ijh]).innerHTML='&lt;iframe src=\"\/\/www.rjmprogramming.com.au\/ITblog\/?p=' + pval + '&openappin=30#content\" style=width:100%;height:100%;&gt;&lt;\/iframe&gt;';<br \/>\n        }<br \/>\n        } else {<\/font><br \/>\n        document.getElementById('td' + mapping[ijh]).innerHTML+=document.getElementById('dopt').innerHTML.replace(' multiple', ' size=9 multiple').replace(' selected=', ' id=selfirstopt selected=');<br \/>\n        <font color=blue>}<\/font><br \/>\n      }<br \/>\n      <font color=blue>if (!doing_preg) { <\/font>document.body.style.cursor='pointer'; <font color=blue>}<\/font><br \/>\n      <font color=blue>if (!feeling_lucky) { <\/font>setInterval(blogpandtmonitor, 15000); <font color=blue>}<\/font><br \/>\n      amready=false;<br \/>\n      }<br \/>\n      }, 5000);<br \/>\n    }<br \/>\n    } else {<br \/>\n    huh=prompt(prefix + \"What is your URL (\" + tn + \" of up to 9) of interest ... append by #iframe if you want it to be tried in an iframe ... append by #nomore if you want this one to be last considered of up to 9 ... use Cancel for no more now\", urls[eval(-1 + tn)]);<br \/>\n    }<br \/>\n   } else {<br \/>\n    if (('' + tn) == '1') {<br \/>\n    huh=prompt(prefix + \"What is your URL (\" + tn + \" of up to 9) of interest ... append by #iframe if you want it to be tried in an iframe ... append by #nomore if you want this one to be last considered of up to 9 ... use Cancel for just using dropdown multiple selections or OK to blank for no more<font color=blue> now or to Feeling Lucky or some other posting criteria search string with same rules as Post RE blog checkbox (and which is not a URL)<\/font>\", urls[eval(-1 + tn)]);<br \/>\n    if (huh == null<font color=blue> || ('' + huh).toLowerCase() == 'feeling lucky' || ( ('' + huh).replace(\/^null\/g,'').replace(\/^undefined\/g,'').trim() != '' && (('' + huh).replace(\/^null\/g,'').replace(\/^undefined\/g,'').trim().indexOf(' ') != -1 || ('' + huh).replace(\/^null\/g,'').replace(\/^undefined\/g,'').trim().indexOf('.') == -1))<\/font>) {<br \/>\n      <font color=blue>if (('' + huh).toLowerCase() == 'feeling lucky') {<br \/>\n        feeling_lucky=true;<br \/>\n        huh=null;<br \/>\n      } else if (huh != null) {<br \/>\n        doing_preg=true;<br \/>\n        ourhuh=huh;<br \/>\n        setTimeout(function(){<br \/>\n        document.getElementById('ifbppop').src='\/\/www.rjmprogramming.com.au\/itnewblog\/match\/mapper.php?otherpm=' + encodeURIComponent(ourhuh);<br \/>\n        }, 2000);<br \/>\n        huh=null;<br \/>\n      }<\/font><br \/>\n      cancelps=true;<br \/>\n      nomore='y';<br \/>\n      document.body.style.cursor='progress';<br \/>\n      setInterval(function(){<br \/>\n      if (amready) {<br \/>\n      document.getElementById('dtbl').style.width='100%';<br \/>\n      document.getElementById('dtbl').style.height='75%';<br \/>\n      for (var ijh=0; ijh&lt;mapping.length; ijh++) {<br \/>\n        document.getElementById('td' + mapping[ijh]).style.width='33%';<br \/>\n        document.getElementById('td' + mapping[ijh]).style.height='33%';<br \/>\n        <font color=blue>if (feeling_lucky) {<br \/>\n        pval='';<br \/>\n        while ((sofarblogp + ',').indexOf(',' + pval + ',') != -1 || pval == '') {<br \/>\n        pval=eval('' + minrange) + Math.floor(Math.random() * eval(maxrange - minrange));<br \/>\n        if (mapping[ijh] == '22') { pval=20260204; }<br \/>\n        while (document.getElementById('dopt').innerHTML.indexOf('(' + pval + ')') == -1 || (sofarblogp + ',').indexOf(',' + pval + ',') != -1) {<br \/>\n          pval=eval('' + minrange) + Math.floor(Math.random() * eval(maxrange - minrange));<br \/>\n        }<br \/>\n        if (sofarblogp != ',') { sofarblogp+=',';  }<br \/>\n        sofarblogp+='' + pval;<br \/>\n        \/\/alert('2:' + pval + ' ' + document.getElementById('dopt').innerHTML.split('(' + pval + ')')[0].split('?p=')[eval(-1 + document.getElementById('dopt').innerHTML.split('(' + pval + ')')[0].split('?p=').length)].split('&')[0].split('#')[0]);<br \/>\n        pval=document.getElementById('dopt').innerHTML.split('(' + pval + ')')[0].split('?p=')[eval(-1 + document.getElementById('dopt').innerHTML.split('(' + pval + ')')[0].split('?p=').length)].split('&')[0].split('#')[0];<br \/>\n        }<br \/>\n        if (sofarblogp != ',') { sofarblogp+=',';  }<br \/>\n        sofarblogp+='' + pval;<br \/>\n        if (navigator.userAgent.match(\/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile\/i)) {<br \/>\n        \/\/setTimeout(function(){<br \/>\n        document.getElementById('td' + mapping[ijh]).innerHTML='&lt;iframe id=iftd' + mapping[ijh] + ' onload=\"if (this.src.indexOf(' + \"'About_Us'\" + ') != -1) { setTimeout(function(event){ document.getElementById(' + \"'iftd' + '\" + mapping[ijh] + \"'\" + ').src=document.getElementById(' + \"'iftd' + '\" + mapping[ijh] + \"'\" + ').getAttribute(' + \"'data-src'\" + ');  }, ' + eval(eval(2 + ijh) * 12000) + '); }\" data-src=\"\/\/www.rjmprogramming.com.au\/ITblog\/?p=' + pval + '&openappin=30#content\" src=\/About_Us.html style=width:100%;height:100%;&gt;&lt;\/iframe&gt;';<br \/>\n        \/\/}, eval(eval('' + mapping[ijh]) * 1000));<br \/>\n        } else {<br \/>\n        document.getElementById('td' + mapping[ijh]).innerHTML='&lt;iframe src=\"\/\/www.rjmprogramming.com.au\/ITblog\/?p=' + pval + '&openappin=30#content\" style=width:100%;height:100%;&gt;&lt;\/iframe&gt;';<br \/>\n        }<br \/>\n        } else {<\/font><br \/>\n        document.getElementById('td' + mapping[ijh]).innerHTML+=document.getElementById('dopt').innerHTML.replace(' multiple', ' size=9 multiple').replace(' selected=', ' id=selfirstopt selected=');<br \/>\n        <font color=blue>}<\/font><br \/>\n      }<br \/>\n      <font color=blue>if (!doing_preg) { <\/font>document.body.style.cursor='pointer'; <font color=blue>}<\/font><br \/>\n      <font color=blue>if (!feeling_lucky) { <\/font>setInterval(blogpandtmonitor, 15000); <font color=blue>}<\/font><br \/>\n      amready=false;<br \/>\n      }<br \/>\n      }, 5000);<br \/>\n    }<br \/>\n    } else {<br \/>\n    huh=prompt(prefix + \"What is your URL (\" + tn + \" of up to 9) of interest ... append by #iframe if you want it to be tried in an iframe ... append by #nomore if you want this one to be last considered of up to 9 ... use Cancel for no more now\", urls[eval(-1 + tn)]);<br \/>\n    }<br \/>\n   }<br \/>\n   } else {<br \/>\n   \/\/alert(\"Urls[\" + eval(-1 + tn) + \"]=\" + urls[eval(-1 + tn)]);<br \/>\n    huh='#nomore';<br \/>\n   }<br \/>\n   prefix=\"\";<br \/>\n   if (huh == null) {<br \/>\n    huh='';<br \/>\n    nomore='y';<br \/>\n   } else {<br \/>\n    if (huh.indexOf(\"#iframe\") != -1) {<br \/>\n     goodmodeofshowofurl=\"iframe\";<br \/>\n    } else {<br \/>\n     goodmodeofshowofurl=\"\";<br \/>\n    }<br \/>\n    if (huh.indexOf(\"#form\") != -1 && urls[0] != '') {<br \/>\n      location.href='.\/cockpit_feel.html?form=y';<br \/>\n      return;<br \/>\n    }<br \/>\n    document.cookie = thisg + \"=\" + huh.replace(\"#form\",\"\") + \";expires=\" + expireDate.toGMTString();<br \/>\n    if (huh.indexOf(\"#nomore\") != -1) {<br \/>\n      nomore='y';<br \/>\n      fixstuff(tn);<br \/>\n    }<br \/>\n    if (huh.indexOf(\"#form\") != -1) {<br \/>\n      location.href='.\/cockpit_feel.html?form=y';<br \/>\n    }<br \/>\n   }<br \/>\n  }<br \/>\n}<br \/>\n<\/code><\/p>\n<p> &#8230; <font color=blue>using<\/font> the new HTML iframe &#8230;<\/p>\n<p><code><br \/>\n&lt;iframe id=ifbppop src='\/\/www.rjmprogramming.com.au\/About_Us.html' style='display:none;'&gt;&lt;\/iframe&gt;<br \/>\n<\/code><\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/htmljavascript-cockpit-of-web-applications-feeling-lucky-tutorial\/' rel=\"noopener\">New HTML\/Javascript Cockpit of Web Applications Feeling Lucky Tutorial<\/a>.<\/p-->\n<hr>\n<p id='html\/jcwadct'>Previous relevant <a target=\"_blank\" title='HTML\/Javascript Cockpit of Web Applications Dropdown Cells Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/html\/javascript-cockpit-of-web-applications-dropdown-cells-tutorial\/' rel=\"noopener\">HTML\/Javascript Cockpit of Web Applications Dropdown Cells Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html?rand=653467543\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"HTML\/Javascript Cockpit of Web Applications Dropdown Cells  Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel_dropdowns.gif\" title=\"HTML\/Javascript Cockpit of Web Applications Dropdown Cells  Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">HTML\/Javascript Cockpit of Web Applications Dropdown Cells Tutorial<\/p><\/div>\n<p>We had occasion to revisit the <i>Cockpit of Web Applications<\/i> web application mentioned in <a title='HTML\/Javascript Cockpit of Web Applications Home Tutorial' href='#html\/jcwaht'>HTML\/Javascript Cockpit of Web Applications Home Tutorial<\/a> the other day, and made the &#8220;note to self&#8221; &#8230;<\/p>\n<blockquote><p>\ncockpit_feel.html feeling lucky option\n<\/p><\/blockquote>\n<p>Over a few days we stewed on this, and today, came up with a better idea, we think, that goes &#8230;<\/p>\n<blockquote><p>\ncockpit_feel.html whole new cell content idea of blog posting dropdowns in multiple entry mode\n<\/p><\/blockquote>\n<p>Not as snappy as the first thought, but <i>doable<\/i>, and we think the quickest methodology to glean up to 9 URLs of <i>Cut to the Chase<\/i> web application with relationships to postings of this blog, in that on our Landing Page overnight crontab\/curl processing ensures it has an up to date list of Blog Posting data in a dropdown.  To be frank, that is a great basis to move on from that, because this is &#8220;most of the move&#8221; to our eyes!<\/p>\n<p>And so, to get this achieved relied on changes to two code sources, they being &#8230;<\/p>\n<ol>\n<li>header.php of the TwentyTen WordPress theme used at this blog, with a new document.body <i>onload<\/i> event spawned Javascript function &#8230;<br \/>\n&lt;?php echo &#8221;<br \/>\n<code><br \/>\nfunction oain() {<br \/>\n  var oind=30000, divsarrr=[], dfnd=false;<br \/>\n  if (document.URL.indexOf('openappin=') != -1) {<br \/>\n    var coind=decodeURIComponent(document.URL.split('openappin=')[1].split('&')[0].split('#')[0]).trim();<br \/>\n    if (coind != '') {<br \/>\n      if (coind.substring(0,1) &gt;= '0' && coind.substring(0,1) &lt;= '9') {<br \/>\n        oind=Math.round(eval(eval('' + coind) * 1000));<br \/>\n      }<br \/>\n    }<br \/>\n    divsarrr=document.getElementsByTagName('div');<br \/>\n    for (var idc=0; idc&lt;divsarrr.length; idc++) {<br \/>\n      if (('' + divsarrr[idc].className) == 'entry-content' && !dfnd) {<br \/>\n        if (divsarrr[idc].innerHTML.indexOf(' href=\"') != -1 && !dfnd) {<br \/>\n          dfnd=true;<br \/>\n          defappurl=divsarrr[idc].innerHTML.split(' href=\"')[1].split('\"')[0].replace(\/^http\\:\/g,'').replace(\/^https\\:\/g,'').replace(\/^\\\/\\\/\/g,document.URL.split(':')[0] + ':\/\/');<br \/>\n          document.getElementById('content').setAttribute('data-donetsry', '' + eval(30 + Math.max(700,eval('' + document.getElementById('content').getBoundingClientRect().top))));<br \/>\n          document.getElementById('content').setAttribute('data-donet', '' + document.getElementById('content').title);<br \/>\n          document.getElementById('content').title='Scroll down to stay reading this blog posting else within ' + eval(oind \/ 1000) + ' seconds from ' + ('' + new Date()) + ' we will navigate to ' + defappurl.replace(\/^\\\/\\\/\/g,document.URL.split(':')[0] + ':\/\/') + ' ...';<br \/>\n          document.body.style.cursor='progress';<br \/>\n          setInterval(function(){<br \/>\n           if (eval('0' + window.scrollY) &gt; eval('' + document.getElementById('content').getAttribute('data-donetsry'))) {<br \/>\n            document.body.style.cursor='pointer';<br \/>\n            document.getElementById('content').setAttribute('data-donec', 'y');<br \/>\n            document.getElementById('content').title='' + document.getElementById('content').getAttribute('data-donet');<br \/>\n           }<br \/>\n          }, 1000);<br \/>\n          setTimeout(function(){ if (eval('0' + window.scrollY) &lt;= eval('' + document.getElementById('content').getAttribute('data-donetsry'))) {  location.href=defappurl.replace(\/^http\\:\/g,'').replace(\/^https\\:\/g,'');  }  }, oind);<br \/>\n        }<br \/>\n      }<br \/>\n    }<br \/>\n  }<br \/>\n}<br \/>\n<\/code><br \/>\n&#8220;; ?&gt;\n<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html?rand=6853546543\" rel=\"noopener\">Cockpit Feel<\/a> of web applications <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html--GETME\" rel=\"noopener\">changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html--GETME\" rel=\"noopener\">cockpit_feel.html<\/a> &#8230;<br \/>\n<code><br \/>\n  function checkw(iois) {<br \/>\n   if (iois != null) {<br \/>\n   var aconto = (iois.contentWindow || iois.contentDocument);<br \/>\n   if (aconto != null) {<br \/>\n   if (aconto.document) { aconto = aconto.document; }<br \/>\n   if (aconto.getElementById('tuts') != null) {<br \/>\n     document.getElementById('dopt').innerHTML='Blog Posting(s): ' + aconto.getElementById('tuts').outerHTML.replace(' onchange=', ' multiple onchange=\"document.getElementById(' + \"'\" + 'blogp' + \"'\" + ').value=andlater(this); \" data-onchange=').replace(\/\\(show\\ blog\\,\\ toggle\\ sort\\ order\\)\/g,'').replace(\/\\(show\\ blog\\,\\ toggle\\ sort\\ order\\,\\ click\\ for\\ keyboard\\ autocompletion\\)\/g,'').replace(\/\\(show\\ blog\\,\\ toggle\\ sort\\ order\\,\\ click\\ for\\ autocompletion\\ keyboard\\)\/g,'').replace(\/\\(toggle\\ sort\\ order\\)\/g,'') + '&lt;br&gt;&lt;br&gt;';<br \/>\n     amready=true;<br \/>\n   }<br \/>\n   }<br \/>\n   }<br \/>\n  }<br \/>\n  <br \/>\n  function blogpandtmonitor() {<br \/>\n    var bpt=[], ib=0, jb=0;<br \/>\n    if (lastblogp != document.getElementById('blogp').value && document.getElementById('blogp').value != '') {<br \/>\n       lastblogp=document.getElementById('blogp').value;<br \/>\n       bpt=document.getElementById('blogp').value.split(',');<br \/>\n       document.getElementById('blogp').value='';<br \/>\n       for (ib=0; ib&lt;bpt.length; ib++) {<br \/>\n         if (sofarblogp.indexOf(',' + bpt[ib] + ',') == -1) {<br \/>\n            for (jb=0; jb&lt;mapping.length; jb++) {<br \/>\n              if (document.getElementById('td' + mapping[jb]).innerHTML.indexOf('&lt;select ') != -1 && sofarblogp.indexOf(',' + bpt[ib] + ',') == -1) {<br \/>\n                sofarblogp+=bpt[ib] + ',';<br \/>\n                document.getElementById('td' + mapping[jb]).innerHTML='&lt;iframe src=\"\/\/www.rjmprogramming.com.au\/ITblog\/?p=' + bpt[ib] + '&openappin=30#content\" style=width:100%;height:100%;&gt;&lt;\/iframe&gt;';<br \/>\n              }<br \/>\n            }<br \/>\n         }<br \/>\n       }<br \/>\n    }<br \/>\n  }<br \/>\n<\/code><br \/>\n &#8230; Javascript set into play via new HTML iframe as per &#8230;<br \/>\n<code><br \/>\n&lt;iframe src='\/\/www.rjmprogramming.com.au\/Welcome.html' onload='checkw(this);' style='display:none;'&gt;&lt;\/iframe&gt;<br \/>\n<\/code>\n<\/li>\n<\/ol>\n<p> &#8230; the user can make happen by a <i style=color:blue;>first prompt answer<\/i> of Cancel &#8230;<\/p>\n<p><code><br \/>\n    <font color=blue>if (('' + tn) == '1') {<br \/>\n    huh=prompt(prefix + \"What is your URL (\" + tn + \" of up to 9) of interest ... append by #iframe if you want it to be tried in an iframe ... append by #nomore if you want this one to be last considered of up to 9 ... use Cancel for just using dropdown multiple selections or OK to blank for no more now\", urls[eval(-1 + tn)]);<br \/>\n    if (huh == null) {<br \/>\n      cancelps=true;<br \/>\n      nomore='y';<br \/>\n      document.body.style.cursor='progress';<br \/>\n      setInterval(function(){<br \/>\n      if (amready) {<br \/>\n      document.getElementById('dtbl').style.width='100%';<br \/>\n      document.getElementById('dtbl').style.height='75%';<br \/>\n      for (var ijh=0; ijh&lt;mapping.length; ijh++) {<br \/>\n        document.getElementById('td' + mapping[ijh]).style.width='33%';<br \/>\n        document.getElementById('td' + mapping[ijh]).style.height='33%';<br \/>\n        document.getElementById('td' + mapping[ijh]).innerHTML+=document.getElementById('dopt').innerHTML.replace(' multiple', ' size=9 multiple').replace(' selected=', ' id=selfirstopt selected=');<br \/>\n      }<br \/>\n      document.body.style.cursor='pointer';<br \/>\n      setInterval(blogpandtmonitor, 15000);<br \/>\n      amready=false;<br \/>\n      }<br \/>\n      }, 5000);<br \/>\n    }<br \/>\n    } else {<\/font><br \/>\n    huh=prompt(prefix + \"What is your URL (\" + tn + \" of up to 9) of interest ... append by #iframe if you want it to be tried in an iframe ... append by #nomore if you want this one to be last considered of up to 9 ... use Cancel for no more now\", urls[eval(-1 + tn)]);<br \/>\n    <font color=blue>}<br \/>\n    }<\/font> \/\/ rest of \"as it used to be code here\" follows<br \/>\n<\/code><\/p>\n<p> &#8230;  separated off from an OK answer of blank (or some other non-blank answer) still accessing the old workflow methodologies.  A cute feature <font size=1>(well, you had to <i>be<\/i> there)<\/font> of this might be, for some users, that scrolling in Y at the blog posting cell within 30 seconds means a user can stay reading the blog posting instead <font size=1>(of navigating to the relevant Cut to the Chase web application)<\/font>, regarding the relevant one of 3&#215;3 table cells.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/htmljavascript-cockpit-of-web-applications-dropdown-cells-tutorial\/' rel=\"noopener\">HTML\/Javascript Cockpit of Web Applications Dropdown Cells Tutorial<\/a>.<\/p-->\n<hr>\n<p id='html\/jcwaht'>Previous relevant <a target=\"_blank\" title='HTML\/Javascript Cockpit of Web Applications Home Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/html\/javascript-cockpit-of-web-applications-home-tutorial\/' rel=\"noopener\">HTML\/Javascript Cockpit of Web Applications Home Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"HTML\/Javascript Cockpit of Web Applications Home Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.png\" title=\"HTML\/Javascript Cockpit of Web Applications Home Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">HTML\/Javascript Cockpit of Web Applications Home Tutorial<\/p><\/div>\n<p>Yesterday ticked all the boxes with our Cockpit Feel web application to suggest that it is now an excellent candidate to be the designated Home Page for a web browser, as it could be the tailorable &#8220;web application central&#8221; as you enter the web browser for the first time.  The Home Page of a web browser can have that important <i>reminder<\/i> functionality for how you communicate, or do your work and\/or collaborate, or perform tasks, or monitor goings-on.<\/p>\n<p>Yesterday&#8217;s work meant that you can send a &#8230;<\/p>\n<ul>\n<li>web browser address bar URL with an established list of web applications you want to open &#8230; and\/or &#8230;<\/li>\n<li>cut down web browser address URL ( ie. just http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html ) &#8230; and let the cookies you have previously set, or not, determine what happens &#8230; thing about this is that Safari could have a different set of web applications to Internet Explorer to Firefox to Opera to Google Chrome etcetera etcetera etcetera<\/li>\n<\/ul>\n<p>The thing is, we often put our favourite Search Engine URL as our web browser&#8217;s Home Page, and am not suggesting otherwise, except that these days there are so many shortcut or menu methods of getting to your favourite Search Engine that maybe what is better to put as your web browser Home Page is something more tailored to your actual use, and in any case, one of those web applications could be that favourite Search Engine, anyway.<\/p>\n<p>Today&#8217;s tutorial picture URL, for example, is <a target=\"_blank\" title='Sun Angle and Moon Angle for Sydney web browser home page idea' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html?url1=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FSunAngle%2Fsun_angle_now_at.php%3Fdone%3Dy%26nowo%3Dy%26latd%3D-33%26latm%3D52%26lats%3D0%26longd%3D151%26longm%3D12%26longs%3D0%26from%3Dfrom%26country%3DAUSTRALIA%26place%3DSydney%23iframe&#038;url2=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FMoonAngle%2Fmoon_angle_now_at.php%3Fdone%3Dy%26nowo%3Dy%26latd%3D-33%26latm%3D52%26lats%3D0%26longd%3D151%26longm%3D12%26longs%3D0%26from%3Dfrom%26country%3DAUSTRALIA%26place%3DSydney%23nomore%23iframe&#038;url3=&#038;url4=&#038;url5=&#038;url6=&#038;url7=&#038;url8=&#038;url9=' rel=\"noopener\">http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html?url1=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FSunAngle%2Fsun_angle_now_at.php%3Fdone%3Dy%26nowo%3Dy%26latd%3D-33%26latm%3D52%26lats%3D0%26longd%3D151%26longm%3D12%26longs%3D0%26from%3Dfrom%26country%3DAUSTRALIA%26place%3DSydney%23iframe&#038;url2=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FMoonAngle%2Fmoon_angle_now_at.php%3Fdone%3Dy%26nowo%3Dy%26latd%3D-33%26latm%3D52%26lats%3D0%26longd%3D151%26longm%3D12%26longs%3D0%26from%3Dfrom%26country%3DAUSTRALIA%26place%3DSydney%23nomore%23iframe&#038;url3=&#038;url4=&#038;url5=&#038;url6=&#038;url7=&#038;url8=&#038;url9=<\/a> &#8230; representing a look at Sun Angle and Moon Angle for Sydney, Australia &#8230; and you can see that if you pick a web application from this www.rjmprogramming.com.au domain, you can use the suffix #iframe to say that the web application should &#8220;live&#8221; in an HTML iframe element.<\/p>\n<hr>\n<p id='hjcowaft'>Previous relevant <a target=\"_blank\" title='HTML\/Javascript Cockpit of Web Applications Form Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/htmljavascript-cockpit-of-web-applications-form-tutorial\/' rel=\"noopener\">HTML\/Javascript Cockpit of Web Applications Form Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"HTML\/Javascript Cockpit of Web Applications Form Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.gif\" title=\"HTML\/Javascript Cockpit of Web Applications Form Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">HTML\/Javascript Cockpit of Web Applications Form Tutorial<\/p><\/div>\n<p>Today&#8217;s Cockpit Feel web application adds functionality along with yesterday&#8217;s pre-existing &#8230;<\/p>\n<ul>\n<li>Javascript DOM document.write() method nesting &#8230;<\/li>\n<li>Javascript prompt() window method<\/li>\n<\/ul>\n<p> &#8230; way that asks for input from the user in that old interactive desktop command line application feeling kind of way, an &#8230;<\/p>\n<ul>\n<li>HTML <a target=\"_blank\" title='HTML form information from w3schools' href='http:\/\/www.w3schools.com\/html\/html_forms.asp' rel=\"noopener\">form<\/a><\/li>\n<\/ul>\n<p> &#8230; method, the more usual web application way of asking for user input.<\/p>\n<p>Most websites present interactive input in an HTML form for a few reasons (we can think of) &#8230;<\/p>\n<ul>\n<li>everything that will be asked can be there on the webpage (so that you know what is coming)<\/li>\n<li>HTML form elements can direct the web traffic from one web page to the next via HTML input type=&#8217;submit&#8217; buttons teamed with HTML form action=[Url] arrangements<\/li>\n<li>validation of this user entered data can be validated at the one place (via the HTML form <a target=\"_blank\" title='HTML onsubmit event information from w3schools' href='http:\/\/www.w3schools.com\/tags\/ev_onsubmit.asp' rel=\"noopener\">onsubmit<\/a> event we&#8217;ve talked about <a target=\"_blank\" title='Onsubmit blog postings' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/onsubmit\/' rel=\"noopener\">before<\/a>), and the HTML5 input element type has several self-validating types (like type=&#8217;url&#8217; that we make use of today)<\/li>\n<li>huge amounts of user entered data can make use of the HTML form method=&#8217;POST&#8217; as necessary, though today we use method=&#8217;GET&#8217; for the amounts of data we have and in order to remain with client side programming (method=&#8217;POST&#8217; needs server side programming intervention)<\/li>\n<li>uploading of files is possible via HTML form element<\/li>\n<\/ul>\n<p>The concept today remains simple &#8230;<\/p>\n<ol>\n<li>take the same 3&#215;3 grid (to the beach this time, because yesterday they enjoyed the zoo so much (they&#8217;d like you to know))<\/li>\n<li>check for cookie data and $_GET[] parameters for any\/all of the 3&#215;3 and if found get (up to 9) URLs from this data, else document.write(prompt()) for the information interactively, storing good ideas in cookies for either of the two modes of display &#8230; that being &#8230;\n<ul>\n<li><a target=\"_blank\" title='HTML iframe element information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_iframe.asp' rel=\"noopener\"> iframe<\/a><\/li>\n<li><a target=\"_blank\" title='Javascript window.open() method information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/met_win_open.asp' rel=\"noopener\">window.open()<\/a> popup window<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p> &#8230; so that the next time the user runs the same web application, and they have not cleared their cookies out in the meantime, this same configuration of use, personalized to them and the web browser they&#8217;re using, will happen.<\/p>\n<p>Again, regarding research and development we&#8217;d like to thank <em>&#8220;JavaScript &amp; Ajax&#8221; seventh edition by Tom Negrino and Dori Smith<\/em> for the great code regarding cookies.<\/p>\n<p>The HTML and Javascript source code you could call <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html-GETME\" title='cockpit_feel.html' rel=\"noopener\">cockpit_feel.html<\/a> (changed for HTML form functionality in <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html-GETME\" title='cockpit_feel.html' rel=\"noopener\">this way<\/a>) for which you can use this <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html\" title='Click picture' rel=\"noopener\">live run link<\/a>.  If you want to simulate the tutorial picture &#8220;Cockpit&#8221; today try <a target=\"_blank\" title='Tutorial picture simulation' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html?url1=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FPieChart%2F%23iframe&#038;url2=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FLineChart%2F%23iframe&#038;url3=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FBarChart%2F%23iframe&#038;url4=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FAreaChart%2F%23iframe&#038;url5=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FMap%2F%23iframe&#038;url6=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FGeoChart%2F%23iframe&#038;url7=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FBubbleChart%2F%23iframe&#038;url8=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FTimelineChart%2F%23iframe&#038;url9=http%3A%2F%2Fwww.rjmprogramming.com.au%2FPHP%2FCalendarChart%2F%23iframe' rel=\"noopener\">this link<\/a>.  We hope some\/all\/grid-maintenance information helps today.<\/p>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d18947' onclick='var dv=document.getElementById(\"d18947\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/cookies\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d18947' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p id='hjcowapt'>Previous relevant <a target=\"_blank\" title='HTML\/Javascript Cockpit of Web Applications Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/htmljavascript-cockpit-of-web-applications-primer-tutorial\/' rel=\"noopener\">HTML\/Javascript Cockpit of Web Applications Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"HTML\/Javascript Cockpit of Web Applications Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.jpg\" title=\"HTML\/Javascript Cockpit of Web Applications Primer Tutorial\"  style=\"float:left;\"   \/><\/a><p class=\"wp-caption-text\">HTML\/Javascript Cockpit of Web Applications Primer Tutorial<\/p><\/div>\n<p>Today&#8217;s web application continues our interest in &#8230;<\/p>\n<ul>\n<li>Javascript DOM document.write() method nesting &#8230;<\/li>\n<li>Javascript prompt() window method<\/li>\n<\/ul>\n<p> &#8230; to give that old interactive desktop command line application feel that many of the &#8220;senior citizens&#8221; (should we diplomatically say) of the web world, may still secretly gravitate towards?!<\/p>\n<p><b><i>Okay &#8230; who are the closet interactive desktop command line application lovers out there? &#8230; Come on &#8230; you know who you are?!<\/i><\/b><\/p>\n<p>But we digress &#8230; so today, we have a web application a bit like a dashboard, a bit like a cockpit (we&#8217;ve called it) &#8230; though the looks aren&#8217;t as good at this stage.   Nevertheless, maybe it has a feel of a widget to it as well, because today we only use HTML, making use of <a target=\"_blank\" title='Cookie information from w3schools' href='http:\/\/www.w3schools.com\/js\/js_cookies.asp' rel=\"noopener\"><i>cookies<\/i><\/a> to do away with the need for a serverside language like PHP, which could have done the job as well.  But not everybody has PHP?  Right &#8230; <\/p>\n<blockquote><p><font size=1> &#8230; left &#8230;<\/font><\/p><\/blockquote>\n<p> &#8230; <b><i>Damn! Those pesky psychological tests!<\/i><\/b><\/p>\n<p>The concept today is very simple &#8230;<\/p>\n<ol>\n<li>take a 3&#215;3 grid (to the zoo would be nice)<\/li>\n<li>check for cookie data for any\/all of the 3&#215;3 and if found get (up to 9) URLs from this data, else document.write(prompt()) for the information interactively, storing good ideas in cookies for either of the two modes of display &#8230; that being &#8230;\n<ul>\n<li><a target=\"_blank\" title='HTML iframe element information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_iframe.asp' rel=\"noopener\"> iframe<\/a><\/li>\n<li><a target=\"_blank\" title='Javascript window.open() method information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/met_win_open.asp' rel=\"noopener\">window.open()<\/a> popup window<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p> &#8230; so that the next time the user runs the same web application, and they have not cleared their cookies out in the meantime, this same configuration of use, personalized to them and the web browser they&#8217;re using, will happen.<\/p>\n<p>Regarding research and development we&#8217;d like to thank <em>&#8220;JavaScript &amp; Ajax&#8221; seventh edition by Tom Negrino and Dori Smith<\/em> for the invaluable code regarding cookies, and an interesting sideline, which we ended up not perusing, but is active in your *._GETME file today, to show you what is possible comes from this <a target=\"_blank\" href='http:\/\/l2.io\/' title='Useful website' rel=\"noopener\">useful website<\/a> &#8230; thanks.<\/p>\n<p>The (purely) HTML and Javascript source code you could call <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html_GETME\" title='cockpit_feel.html' rel=\"noopener\">cockpit_feel.html<\/a> for which you can use this <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cockpit_feel.html\" title='Click picture' rel=\"noopener\">live run link<\/a>.  If this helps then we&#8217;re happy.<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d18947' onclick='var dv=document.getElementById(\"d18947\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/cookies\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d18947' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d18976' onclick='var dv=document.getElementById(\"d18976\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/form\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d18976' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d18995' onclick='var dv=document.getElementById(\"d18995\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/web-browser\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d18995' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d71937' onclick='var dv=document.getElementById(\"d71937\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/dropdown\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d71937' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d71952' onclick='var dv=document.getElementById(\"d71952\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/php\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d71952' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d71970' onclick='var dv=document.getElementById(\"d71970\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/image\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d71970' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d72013' onclick='var dv=document.getElementById(\"d72013\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/curl\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d72013' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d72072' onclick='var dv=document.getElementById(\"d72072\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/onload\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d72072' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d72080' onclick='var dv=document.getElementById(\"d72080\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/php\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d72080' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d72093' onclick='var dv=document.getElementById(\"d72093\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/duration\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d72093' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d72100' onclick='var dv=document.getElementById(\"d72100\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/email\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d72100' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Further to yesterday&#8217;s Image Found Javascript Animation Duration Tutorial, today, we look into some sharing functionality to &#8230; email &#8230; or &#8230; SMS &#8230; &lt;?php echo &#8221; function emailit(invl, tov, subjid) { var anchor = document.createElement(&#8216;a&#8217;); anchor.href = &#8216;mailto:&#8217; + &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/image-found-javascript-animation-sharing-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,12,14,37],"tags":[83,84,151,354,2091,380,400,2229,557,2761,576,590,599,652,1807,870,932,967,997,1054,1133,1137,1159,1268,1319,1324,1325,1345,1583,1433,1456,3276],"class_list":["post-72100","post","type-post","status-publish","format-standard","hentry","category-animation","category-elearning","category-event-driven-programming","category-tutorials","tag-animated-gif","tag-animation-2","tag-blog","tag-dom","tag-duration","tag-email","tag-event","tag-hash","tag-hashtag","tag-header-php","tag-html","tag-image","tag-img","tag-javascript","tag-link","tag-onload","tag-php","tag-popup","tag-programming","tag-report","tag-share","tag-sharing","tag-sms","tag-theme","tag-tutorial","tag-twentyten","tag-twentyten-theme","tag-url","tag-window","tag-window-open","tag-wordpress","tag-wordpress-blog"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/72100"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=72100"}],"version-history":[{"count":4,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/72100\/revisions"}],"predecessor-version":[{"id":72114,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/72100\/revisions\/72114"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=72100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=72100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=72100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}