<?php
// wikiautocompletion.php
// Work with wikiautocompletion.htm
// RJM Programming
// November, 2020
 set_time_limit(1800);

 $subclass="";
 $subid="";
 
 function idclass($inb) {
   global $subclass, $subid;
   $subclass="";
   $subid="";
   $outb=$inb;
   if (sizeof(explode('#',$inb)) == 2) {
     $subid=explode('.',explode('#',$inb)[1])[0];
     $outb=explode('#',$inb)[0];
   }
   if (sizeof(explode('.',$inb)) == 2) {
     $subclass=explode('#',explode('.',$inb)[1])[0];
     $outb=explode('.',$outb)[0];
   }
   return $outb;
 }

 $fg="";
 $tablebit="";
 $scriptbit="";
 if (file_exists("wikiautocompletion.htm")) {
   $fg=file_get_contents("wikiautocompletion.htm");
   $tbs=explode("</table>", $fg);
   if (sizeof($tbs) > 1) {
     $tablebit="<table" . explode("<table", $tbs[0])[1] . "</table>";
   }
   $sts=explode("</style>", $fg);
   if (sizeof($sts) > 1) {
     $scriptbit=explode("</head>", $sts[1])[0];
   }
 }
 $newtablebit=explode("<tr", $tablebit)[0] . "<TR></TR><tr></tr>" . "</table>";
  
 if ($fg != "" && isset($_POST['icontent']) && isset($_POST['itable'])) {
   $newfg=str_replace(' id="itable" value=', ' id="itable" name="itable" value=',   str_replace(' id="icontent" value=', ' id="icontent" name="icontent" value=',       str_replace(' method="GET" action="wikiautocompletion.htm">', ' method="POST" action="wikiautocompletion.php">', str_replace(' method="GET" action="wikiautocompletion.html">', ' method="POST" action="wikiautocompletion.php">', str_replace('.js?ddlist=','.js?ddJUNKlist=',str_replace('</title>',' </title>',$fg))))));
   $divbits=explode("</div>", $fg);
   $newfg=str_replace("</div>" . $divbits[-1 + sizeof($divbits)], str_replace('+',' ',urldecode($_POST['icontent'])) . "</div>" . $divbits[-1 + sizeof($divbits)], $newfg);
   $tblbits=explode("</table>", $newfg);
   $oldtable="<table " . explode("<table ",$tblbits[0])[1] . "</table>";
   $newfg=str_replace($oldtable, base64_decode($_POST['itable']), $newfg);
   if (isset($_POST['inavigate'])) { 
   $tvalis='';
   $thewiki=str_replace('+','_',str_replace(' ','_',urldecode($_POST['inavigate'])));
   if (strpos($thewiki, '`') !== false) { 
     $tvalis=" setsval('" . explode('`',$thewiki)[1] . "','" . explode('`',str_replace('+',' ',urldecode($_POST['inavigate'])))[0] . "'); ";  
     $thewiki=explode('`',$thewiki)[0];  
   }
   if (isset($_POST['idot'])) {
   $newfg=str_replace('>.<', '> regarding List Of ' . trim(str_replace('+',' ',urldecode($_POST['idot']))) . '.<', str_replace('<body', '<body onload=" var sw=eval(screen.width / 2); ' . $tvalis . ' window.open(' . "'" . '//en.wikipedia.org/wiki/' . $thewiki . "','_blank','top=180,left=' + sw + ',width=' + sw + ',height=500'); " . '"', $newfg));
   } else {
   $newfg=str_replace('<body', '<body onload=" var sw=eval(screen.width / 2); ' . $tvalis . ' window.open(' . "'" . '//en.wikipedia.org/wiki/' . $thewiki . "','_blank','top=180,left=' + sw + ',width=' + sw + ',height=500'); " . '"', $newfg);
   }
   } 
   echo $newfg;
   exit;
 } else if (isset($_GET['topics'])) {
   $dzero=0;
   $divapp='';
   $arr=explode(",", str_replace("+"," ",urldecode($_GET['topics'])));
   $bigbasis="<script type='text/javascript' src='wikiautocompletion.js?just=one' defer></script>\n";
   for ($iarr=0; $iarr<sizeof($arr); $iarr++) {
   $basis="";
   $newtablebit=str_replace("</TR>", "<th>" . idclass($arr[$iarr]) . "</th></TR>", $newtablebit);
   $newtablebit=str_replace("</tr>", "<td></td></tr>", $newtablebit);
   $wpageplace="http://en.wikipedia.org/wiki/List_of_" . strtolower(str_replace(" ","_",idclass($arr[$iarr])));
   $wpage=file_get_contents($wpageplace);
   $alists=explode('<a href="/wiki/', $wpage);
   $jw=0; 
   for ($iw=1; $iw<sizeof($alists); $iw++) {
     if (trim("" . $subid . $subclass) != "") {
     $wwpage=file_get_contents("http://en.wikipedia.org/wiki/" . explode('"', $alists[$iw])[0]);
     
     if ($subid != "") {
     $aalists=explode(' id="' . $subid . '"', $wwpage);
     for ($iiw=1; $iiw<sizeof($aalists); $iiw++) {
     if (explode('>', explode('<', $aalists[$iiw])[0])[1] != '') {
     $isok=true;
     if ($subclass != "") {
       $isok=false;
       if (strpos(explode('>', $aalists[$iiw])[0], ' class="' . $subclass . '"') !== false) {  $isok=true;   }
       if (strpos(explode('<', $aalists[-1 + $iiw])[-1 + sizeof(explode('<', $aalists[-1 + $iiw]))], ' class="' . $subclass . '"') !== false) {  $isok=true;   }
     }
     if ($isok) {
     if ($jw == 0) {
       if (isset($_GET['viap'])) {
         $divapp=explode("\n",explode("\r",str_replace("'", "%39", str_replace('"', "%34", explode('>', explode('<', $aalists[$iiw])[0])))[1])[0])[0];
       }
       $basis.="<!--script type='text/javascript' src='wikiautocompletion.js?ddlist=" . urlencode(explode('>', explode('<', $aalists[$iiw])[0])[1]) . "' defer></script-->\n";
     } else {
       if (isset($_GET['viap'])) {
         if ($dzero != floor(strlen($divapp) / 1000)) {
           $divapp.="' + \n'";
           $dzero=floor(strlen($divapp) / 1000);
         }
         $divapp.='`' . explode("\n",explode("\r",str_replace("'", "%39", str_replace('"', "%34", explode('>', explode('<', $aalists[$iiw])[0])))[1])[0])[0];
       }
       $basis=str_replace("' defer", "," . urlencode(explode('>', explode('<', $aalists[$iiw])[0])[1]) . "' defer", $basis);
     }
     $jw++;
     }
     }
     }
     }
       
       //file_put_contents('x.xx', $subclass);  // %20[Topic].mw-headline
          
     if ($subclass != "" && $subid == "") {
     $aalists=explode(' class="' . $subclass . '"', $wwpage);
     for ($iiw=1; $iiw<sizeof($aalists); $iiw++) {
     if (explode('>', explode('<', $aalists[$iiw])[0])[1] != '') {
     if ($jw == 0) {
       if (isset($_GET['viap'])) {
         $divapp=explode("\n",explode("\r",str_replace("'", "%39", str_replace('"', "%34", explode('>', explode('<', $aalists[$iiw])[0])))[1])[0])[0];
   //file_put_contents('x.xxx',$divapp . ' ' . sizeof($aalists) . ' StrLen()=' . strlen($wpage) . ' ' . $wpageplace . ' strlen()=' . strlen($wwpage) . ' ' . "http://en.wikipedia.org/wiki/" . explode('"', $alists[$iw])[0]);
       }
       $basis.="<!--script type='text/javascript' src='wikiautocompletion.js?ddlist=" . urlencode(explode('>', explode('<', $aalists[$iiw])[0])[1]) . "' defer></script-->\n";
     } else {
       if (isset($_GET['viap'])) {
         if ($dzero != floor(strlen($divapp) / 1000)) {
           $divapp.="' + \n'";
           $dzero=floor(strlen($divapp) / 1000);
         }
         $divapp.='`' . explode("\n",explode("\r",str_replace("'", "%39", str_replace('"', "%34", explode('>', explode('<', $aalists[$iiw])[0])))[1])[0])[0];
   //file_put_contents('x.xxx',$divapp . ' ' . sizeof($aalists) . ' StrLen()=' . strlen($wpage) . ' ' . $wpageplace . ' strlen()=' . strlen($wwpage) . ' ' . "http://en.wikipedia.org/wiki/" . explode('"', $alists[$iw])[0]);
       }
       $basis=str_replace("' defer", "," . urlencode(explode('>', explode('<', $aalists[$iiw])[0])[1]) . "' defer", $basis);
     }
     $jw++;
     }
     }
     }
     
     } else if (strpos(explode('"', $alists[$iw])[0], ":") === false) {
     if ($jw == 0) {
       if (isset($_GET['viap'])) {
         $divapp=trim(str_replace('_',' ',trim(explode('"', $alists[$iw])[0])));
       }
       $basis.="<!--script type='text/javascript' src='wikiautocompletion.js?ddlist=/wiki/" . explode('"', $alists[$iw])[0] . "' defer></script-->\n";
     } else {
       if (isset($_GET['viap'])) {
         $divapp.='`' . str_replace("\n","",str_replace("\r","",str_replace("\r\n","",str_replace("'", "%39", trim(str_replace('_',' ',trim(explode('"', $alists[$iw])[0])))))));
       }
       $basis=str_replace("' defer", ",/wiki/" . explode('"', $alists[$iw])[0] . "' defer", $basis);
     }
     $jw++;
     }
   }
   $bigbasis.=$basis; 
   }
   //file_put_contents('x.xxxxx','' . $divapp . ' ' . $_GET['viap']);
   //$divapp=str_replace("``","`",str_replace("``","`",str_replace("``","`",str_replace("\n","",str_replace("\r","",str_replace("\r\n","",str_replace("'", "%39", $divapp)))))));
   if (isset($_GET['viap'])) {
   //file_put_contents('x.xxxx','' . $divapp);
   //file_put_contents('x.xxxxxx',"<html><body onload=\" if (parent.document.getElementById('icontent')) { parent.document.getElementById('icontent').name='icontent'; parent.document.getElementById('icontent').value='" . $divapp . "';  if (parent.document.getElementById('itable')) { parent.document.getElementById('itable').name='itable'; parent.document.getElementById('itable').value=btoa(parent.document.getElementsByTagName('table')[0].outerHTML); } if (parent.document.getElementById('myform')) { parent.document.getElementById('myform').method='POST'; parent.document.getElementById('myform').action=parent.document.getElementById('myform').action.replace('.html','.php').replace('.htm','.php');   if (parent.document.getElementById('isubmit')) { parent.document.getElementById('isubmit').value='Navigate';    }  }  } parent.document.getElementById('viapcontent').innerHTML='" . $divapp . "'; \"></body></html>");
   echo "<html><body onload=\" if (parent.document.getElementById('icontent')) {  parent.document.getElementById('icontent').name='icontent'; parent.document.getElementById('icontent').value='" . $divapp . "';  if (parent.document.getElementById('itable')) { parent.document.getElementById('itable').name='itable'; parent.document.getElementById('itable').value=btoa(parent.document.getElementsByTagName('table')[0].outerHTML); } if (parent.document.getElementById('myform')) { parent.document.getElementById('myform').method='POST'; parent.document.getElementById('myform').action=parent.document.getElementById('myform').action.replace('.html','.php').replace('.htm','.php');   if (parent.document.getElementById('isubmit')) { parent.document.getElementById('isubmit').value='Navigate';    }  }  } parent.document.getElementById('viapcontent').innerHTML='" . $divapp . "'; parent.document.body.style.cursor='pointer'; \"></body></html>";
   } else {
   echo str_replace("</title>", " </title>", str_replace($tablebit, $newtablebit, str_replace($scriptbit, $bigbasis, $fg)));
   }
   exit;
 } else if ($fg != "") {
   echo $fg;
   exit;
 }
?>
