Cool man, I just had the same idea. Here's what I came up with:
<?php
/**
* @author vsloathe
* @copyright 2008
*/
require_once("xajax_core/xajaxAIO.inc.php");
require_once('class.gmailCreator.php');
$xajax = new xajax();
$xajax->registerFunction("prepCap");
$xajax->registerFunction("getCap");
$xajax->registerFunction("doPost");
$xajax->processRequest();
$xajax->printJavascript();
//document.getElementById(\'capAnswer\').value=\'\'; document.getElementById(\'capImg\').innerHTML = \'<img src=\'loading.jpg\'></img>\'; document.getElementById(\'capAnswer\').focus();
//onclick="xajax_doPost(postStr.value, capAnswer.value, qPostStr.value, escape(capUrl.value)); return false;"
echo('
<html>
<body onload="xajax_getCap(); document.getElementById(\'capAnswer\').focus();">
<form onsubmit="xajax_doPost(postStr.value, capAnswer.value, qPostStr.value, escape(capUrl.value)); return false;">
<table>
<tr>
<td>
<div id="capImg"><img src="loading.jpg"></img></div><br />
<center><input type="text" name="capAnswer" id="capAnswer" onkeyup="xajax_prepCap(fetched.value); document.getElementById(\'fetched\').value = \'ON\';" /></center>
</td>
</tr>
<tr>
<td>
<center><input type="submit" value="Go" /></center>
</td>
</tr>
</table>
<input type="hidden" name="postStr" />
<input type="hidden" name="capUrl" value="0" />
<input type="hidden" name="qPostStr" value="0" />
<input type="hidden" name="fetched" value="OFF" />
<div id="test"></div>
</form>
</body>
</html>
');
function prepCap($fetched)
{
if($fetched=='ON')
{
}
elseif($fetched=='OFF')
{
$objResponse = new xajaxResponse();
$numThreads = 1;
$GC = new gmailCreator;
$GC->numThreads = $numThreads;
$GC->getAccountPage();
$capurls = $GC->buildPostStr();
$postStr = $GC->postStrings[0];
$objResponse->assign("capUrl","value",$capurls[0]);
$objResponse->assign("qPostStr","value", $postStr);
$objResponse->assign("fetched","value", 1);
//$objResponse->append("test","innerHTML",'<img src="'.$capurls[0].'"></img><br />');
return $objResponse;
}
}
function getCap()
{
$objResponse = new xajaxResponse();
$numThreads = 1;
$GC = new gmailCreator;
$GC->numThreads = $numThreads;
$GC->getAccountPage();
$capurls = $GC->buildPostStr();
$postStr = $GC->postStrings[0];
$objResponse->assign("capImg","innerHTML", '<img src="'.$capurls[0].'" onload="document.getElementById(\'capAnswer\').value=\'\'; document.getElementById(\'capAnswer\').focus();"></img>');
$objResponse->assign("postStr","value", $postStr);
return $objResponse;
}
function doPost($postString,$capAnswer,$qPostStr,$capUrl)
{
$objResponse = new xajaxResponse();
if($qPostStr)
{
$objResponse->assign("fetched","value", 'OFF');
$objResponse->assign("capImg","innerHTML", '<img src="'.urldecode($capUrl).'" onload="document.getElementById(\'capAnswer\').value=\'\'; document.getElementById(\'capAnswer\').focus();"></img>');
$objResponse->assign("postStr","value", $qPostStr);
}
else
{
$numThreads = 1;
$GC = new gmailCreator;
$GC->numThreads = $numThreads;
$GC->getAccountPage();
$capurls = $GC->buildPostStr();
$postStr = $GC->postStrings[0];
$objResponse->assign("capImg","innerHTML", '<img src="'.$capurls[0].'" onload="document.getElementById(\'capAnswer\').value=\'\'; document.getElementById(\'capAnswer\').focus();"></img>');
$objResponse->assign("capAnswer","value",'');
$objResponse->assign("postStr","value", $postStr);
}
$postString.='&newaccountcaptcha='.$capAnswer;
$ph = popen('php dopost.php "'.$postString.'"','r');
return $objResponse;
}
?>
P.S. I hate javascript.