<?php
  // dropdown_emoji_game.php
  // RJM Programming
  // January, 2019
  // Thanks to https://stackoverflow.com/questions/7106470/utf-8-to-unicode-code-points
  
$numplayers=3; 
$fivehundred=500; 
if (isset($_GET['numplayers'])) {
  $numplayers=urldecode($_GET['numplayers']);
  if (strpos($numplayers, ".") !== false) {
    $fivehundred=explode(".", $numplayers)[1]; 
  }
  if (isset($_GET['delay'])) {
    if (urldecode($_GET['delay']) == "2/") {
      $fivehundred/=2;
      $fivehundred=explode(".", "" . $fivehundred)[0];
    } else if (urldecode($_GET['delay']) == "2x") {
      $fivehundred*=2;
      $fivehundred=explode(".", "" . $fivehundred)[0];
    } else if (urldecode($_GET['delay']) == "3x") {
      $fivehundred*=3;
      $fivehundred=explode(".", "" . $fivehundred)[0];
    } else if (urldecode($_GET['delay']) == "3/") {
      $fivehundred/=3;
      $fivehundred=explode(".", "" . $fivehundred)[0];
    }
  }
}
$precont=" \n table { width:100%; } th, td { width:" . (100.0 / explode(".",$numplayers)[0]) . "%; } ";
$cont="";
$tcont="<TR></TR><tr></tr>";
$prejscr=" var icnt=1; \n var pscores=[]; \n var scores=[]; \n var goes=[]; \n var fivehundred=" . $fivehundred . "; \n var numplayers=" . explode(".", $numplayers)[0] . "; \n for (var ii=0; ii<numplayers; ii++) { pscores.push(-1); scores.push(0);   goes.push(0);   } \n 

function tdl() {
 var i=0;
 if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {
 i=0;
 } else {
 document.getElementById('ikey').focus();
 }
 document.getElementById('overlay').innerHTML='';
 var rect, tds=document.getElementsByTagName('td');
 for (var itds=0; itds<tds.length; itds++) {
  rect=tds[itds].getBoundingClientRect();
  document.getElementById('overlay').innerHTML+='<div onclick=document.getElementById(\"iplayer' + eval(1 + itds) + '\").click(); style=\"position:absolute;top:' + rect.top + 'px;left:' + rect.left + 'px;z-index:21;opacity:0.3;background-color:transparent;border:6px inset yellow;width:12px;height:' + rect.height + 'px;\"></div>';
 }
}

function check(ib) {
  var ip=eval(ib.id.replace('iplayer',''));
  ip--;
  scores[ip]+=pscores[ip];
  goes[ip]++;
  ib.value='score ' + scores[ip] + '/' + goes[ip];
}

function vs(iii, nnn, jjj, ccc) {
  var kkk=iii;
  kkk--;
  if (eval(nnn % 10) == 0) {
  //alert(\"if (jlfplayer\" + iii + \"[0] == jlfplayer\" + iii + \"[\" + jjj + \"]) { if (eval('' + pscores[\" + kkk + \"]) < 0) { pscores[\" + kkk + \"]=1; } else { pscores[\" + kkk + \"]++;  } }\");
  eval(\"if (jlfplayer\" + iii + \"[0] == jlfplayer\" + iii + \"[\" + jjj + \"]) { if (eval('' + pscores[\" + kkk + \"]) < 0) { pscores[\" + kkk + \"]=1; } else { pscores[\" + kkk + \"]++;  } }\");
  }
  if (nnn > 0 && eval(nnn % 10) == 0) {
  return String.fromCharCode(10) + ccc;
  }
  return ccc;
}

function preonlis() { for (var iu=0; iu<pscores.length; iu++) { pscores[iu]=-1; }  onl(icnt); } \n function onl(firstis) {  
  //document.getElementById('myp').innerHTML=String.fromCodePoint(0xd83d,0xdc60);
  //document.getElementById('pmy').innerHTML=String.fromCodePoint(document.getElementById('pmy').innerHTML);
  icnt++;
  setTimeout(preonlis, fivehundred);
}
";
$jjscr="";
$jscr="";

for ($i=1; $i<=$numplayers; $i++) {

  $wsarray = array( //"", "01F311", "0026F3", "0026BD", "00263C", "00263D", "00263E", "01F311", "0026F3", "0026BD", "0026f5", 
  "\xF0\x9F\x91\xA0", "\xF0\x9F\x91\x93", "\xF0\x9F\x90\x98", "\xF0\x9F\x90\x92", "\xF0\x9F\x8E\x89",
  "\xF0\x9F\x8D\xB0", "\xF0\x9F\x8D\xA9", "\xF0\x9F\x8D\xA8", "\xF0\x9F\x8D\xA7", "\xF0\x9F\x8D\xA3",
  "\xF0\x9F\x8D\xB1", "\xF0\x9F\x8E\x88", "\xF0\x9F\x8E\xA7", "\xF0\x9F\x8E\xA8", "\xF0\x9F\x8E\xB5",
  "\xF0\x9F\x8F\x88", "\xF0\x9F\x90\x99", "\xF0\x9F\x90\x9E", "\xF0\x9F\x90\xB6", "\xF0\x9F\x90\xBC",
  "\xF0\x9F\x90\xBE", "\xF0\x9F\x93\x8A", "\xF0\x9F\x93\xA2", "\xF0\x9F\x91\xBC", "\xF0\x9F\x90\xAB",
  "\xF0\x9F\x90\xA8", "\xF0\x9F\x90\x97", "\xF0\x9F\x8F\x80", "\xF0\x9F\x8E\xB7", "\xF0\x9F\x8E\xA9",
  "\xF0\x9F\x8D\xAE", "\xF0\x9F\x8D\x92", "\xF0\x9F\x8F\x80", "\xF0\x9F\x8C\x88", "\xF0\x9F\x9A\xB2",
  "\xF0\x9F\x9A\xA2", "\xF0\x9F\x9A\x99", "\xF0\x9F\x9A\x87", "\xF0\x9F\x9A\x8F", "\xF0\x9F\x9A\xA7",
  "\xF0\x9F\x9A\xAA", "\xF0\x9F\x9A\x83", "\xF0\x9F\x9A\x87", "\xF0\x9F\x98\x81", "\xF0\x9F\x98\x82",
  "\xF0\x9F\x98\xB8", "\xF0\x9F\x9A\x92", "\xF0\x9F\x9A\x87", "\xF0\x9F\x9B\x80", "\xF0\x9F\x8C\xB4",
  "\xF0\x9F\x8C\xB5", "\xF0\x9F\x8C\xB7", "\xF0\x9F\x8C\x9F", "\xF0\x9F\x8C\xBD", "\xF0\x9F\x8C\xBE",
  "\xF0\x9F\x8D\x84", "\xF0\x9F\x8D\xB7", "\xF0\x9F\x8D\x8F", "\xF0\x9F\x8D\x9F", "\xF0\x9F\x8D\xB5",
  "\xF0\x9F\x8C\x89", "\xF0\x9F\x8C\x8A", "\xF0\x9F\x8C\x8B", "\xF0\x9F\x8C\x87", "\xF0\x9F\x8C\x86",
  "\xF0\x9F\x8C\x81", "\xF0\x9F\x8C\x82", "\xF0\x9F\x8C\x82", "\xF0\x9F\x8C\x83", "\xF0\x9F\x8C\x84",
  "\xE2\x9B\xAA", "\xE2\x9B\xB2", "\xE2\x9B\xBA", "\xE2\x9B\x83", "\xF0\x9F\x9A\x80",
  "\xF0\x9F\x97\xBB", "\xF0\x9F\x97\xBC", "\xF0\x9F\x97\xBD", "\xF0\x9F\x97\xBF", "\xF0\x9F\x90\xA7",
  "\xF0\x9F\x99\x8B", "\xF0\x9F\x99\x88", "\xF0\x9F\x99\x89", "\xF0\x9F\x99\x8C", "\xF0\x9F\x98\x96"); 
  $ws = rand(1, (sizeof($wsarray) - 1));
  $cs = rand(0, 10);
  $csarray = array("black", "red", "blue", "purple", "maroon", "teal", "brown", "orange", "olive", "lime", "green");

  $jscr.="\n var jlfplayer" . $i . "=[String.fromCodePoint(0x" . str_replace('"','',str_replace("\u",",0x",substr(json_encode($wsarray[$ws]),3))) . ")]; \n var jlfplayer" . $i . "look=jlfplayer" . $i . "[0];  \n";
  $jjscr.="\n document.getElementById('splayer" . $i . "').innerHTML=jlfplayer" . $i . "look;  document.getElementById('player" . $i . "').value='';   \n";
  
  $precont.="\n .lfplayer" . $i . ":before { content:'" . substr("\\",0,1) . $wsarray[$ws] . "'; } \n";
  $tcont=str_replace("</TR>", "<th style='text-align:left;'>Player " . $i . " Look for <br><span style='border:2px inset yellow;' onclick=\"document.getElementById('iplayer" . $i . "').click();\" id=splayer" . $i . " class=xxxlfplayer" . $i . "></span> at left to <br><input style=display:inline-block; id=iplayer" . $i . " type=button onclick=check(this); value='score 0/0'></input></th></TR>", $tcont);
  if (1 == 1) {
  $tcont=str_replace("</tr>", "<td id=tdplayer" . $i . " class=xxplayer" . $i . "><textarea onclick=\"document.getElementById('iplayer" . $i . "').click();\" cols=28 rows=28 id=player" . $i . " value=></textarea></td></tr>", $tcont);
  } else if (19 == 1) {
  $tcont=str_replace("</tr>", "<td id=player" . $i . " class=player" . $i . "></td></tr>", $tcont);
  } else {
  $tcont=str_replace("</tr>", "<td id=player" . $i . " class=player" . $i . "></td></tr>", $tcont);
  }
  $cont.="\n .player" . $i . ":before { content:''; } \n";
  for ($j=0; $j<200; $j++) {
   $wschild = rand(1, (sizeof($wsarray) - 1)); // page submenu spacing accentuation
   $jscr=str_replace(")]",")," . "String.fromCodePoint(0x" . str_replace('"','',str_replace("\u",",0x",substr(json_encode($wsarray[$wschild]),3))) . ")" . "]",$jscr);
   $jjscr=str_replace("';","' + vs(" . $i . "," . $j . ",[eval(eval(firstis + " . $j . ") % jlfplayer" . $i . ".length)],jlfplayer" . $i . "[eval(eval(firstis + " . $j . ") % jlfplayer" . $i . ".length)])" . ";",str_replace(")]);",")]) + vs(" . $i . "," . $j . ",[eval(eval(firstis + " . $j . ") % jlfplayer" . $i . ".length)],jlfplayer" . $i . "[eval(eval(firstis + " . $j . ") % jlfplayer" . $i . ".length)])" . ";",$jjscr));
   if (substr($$wsarray[$wschild],0,1) == "0") {
   $cont=str_replace("'; }",  substr("\\",0,1) . substr("\\",0,1) . strtolower($wsarray[$wschild]) . "'; }", $cont);
   } else {
   $cont=str_replace("'; }",  substr("\\",0,1) . $wsarray[$wschild] . "'; }", $cont);
   }
  }
  $precont.=$cont;
  $cont="";
  $prejscr=str_replace("ion onl(firstis) {", "ion onl(firstis) { \n " . $jjscr . " \n ", $prejscr);
  $jjscr="";
  $prejscr.=$jscr . $jjscr;
  $jscr="";
  $jjscr="";

}



echo "<!doctype html><html><head><title>Dropdown Emoji Game - RJM Programming - January, 2019</title>
<script type='text/javascript'> " . "var jlfplayer1=" . explode("var jlfplayer1=", $prejscr)[1] . explode("var jlfplayer1=", $prejscr)[0] . " 
</script>
<style>" . $precont . $cont . "</style></head><body onload=\"  window.addEventListener('resize', tdl, true); tdl(); document.getElementById('mysel').value='' + numplayers; setTimeout(preonlis,1000);\">
<h1>Textarea Emoji Game for <select id=mysel onchange=\"location.href=document.URL.split('#')[0].split('?')[0] + '?numplayers=' + this.value + document.getElementById('delaysel').value.trim();\"><option value=3>3</option><option value=1>1</option><option value=2>2</option><option value=4>4</option><option value=5>5</option><option value=6>6</option><option value=7>7</option></select>&nbsp;<select id=delaysel onchange=\"location.href=document.URL.split('#')[0].split('?')[0] + '?numplayers=' + encodeURIComponent(document.getElementById('mysel').value + '.' + fivehundred) + this.value.trim();\"><option value=''>Speed Okay ... versus ...</option><option value='&delay=2/'>Speed 2x Faster</option><option value='&delay=2x'>Speed 2x Slower</option><option value='&delay=3/'>Speed 3x Faster</option><option value='&delay=3x'>Speed 3x Slower</option><option value=' '>Speed Okay ... New Game</option></select></h1>
<h3>RJM Programming - January, 2019 ... keyboard clicks for Player <input id=ikey placeholder='' style=display:inline-block;width:20px; onkeyup=\"document.getElementById('otp').focus();\" onblur=\" if (this.value.toLowerCase().replace('a','1').replace('b','2').replace('c','3').replace('d','4').replace('e','5').replace('f','6').replace('g','7') >= '1' && this.value.toLowerCase().replace('a','1').replace('b','2').replace('c','3').replace('d','4').replace('e','5').replace('f','6').replace('g','7') <= ('' + numplayers)) { document.getElementById('iplayer' + eval(this.value.toLowerCase().replace('a','1').replace('b','2').replace('c','3').replace('d','4').replace('e','5').replace('f','6').replace('g','7'))).click(); this.placeholder=this.value.toLowerCase().replace('a','1').replace('b','2').replace('c','3').replace('d','4').replace('e','5').replace('f','6').replace('g','7'); } this.value=''; this.focus(); \" title=\"Type in player number or letter starting at 'a' is '1'\" type=text value=''></input>?</h3>
<h4>Thanks to <a target=_blank title='Useful link, especially last, thanks' href='https://stackoverflow.com/questions/7106470/utf-8-to-unicode-code-points'https://stackoverflow.com/questions/7106470/utf-8-to-unicode-code-points'>https://stackoverflow.com/questions/7106470/utf-8-to-unicode-code-points</a></h4>
<table id=mytable border=2><tbody id=mytbody>" . $tcont . "</tbody></table><p id=pmy></p><p id=myp></p><div id=overlay></div><input id=otp type=text style='position:absolute;left:-200px;left:-200px;' value=''></input></body></html>";

?>