<?
# Copyright Maurice Castro 2010
# http://www.castro.aus.net/~maurice
# Permission is granted to copy, use and modify this code
# please credit its source
$wiburl = "http://admin:pass@wib.example.net/";
$here = "http://www.example.net/door";
$zzz = 1;

function clear($button)
{
    global $wiburl;
    global $zzz;
    $digital = $button - 1;
    $url = $wiburl."out?".$digital."=0";
    $state = file_get_contents($url);
    if (!$state)
    {
        return "failed to send set low";
    }
    return "ok";
}

function press($button)
{
    global $wiburl;
    global $zzz;
    $digital = $button - 1;
    $url = $wiburl."d".$digital.".cgh";
    $state = file_get_contents($url);
    if (!preg_match("/0/", $state))
    {
        return "already high";
    }
    $url = $wiburl."out?".$digital."=1";
    $state = file_get_contents($url);
    if (!$state)
    {
        return "failed to send set high";
    }
    sleep($zzz);
    $url = $wiburl."d".$digital.".cgh";
    $state = file_get_contents($url);
    if (!preg_match("/1/", $state))
    {
        return "not high";
    }
    $url = $wiburl."out?".$digital."=0";
    $state = file_get_contents($url);
    if (!$state)
    {
        return "failed to send set low";
    }
    sleep($zzz);
    $url = $wiburl."d".$digital.".cgh";
    $state = file_get_contents($url);
    if (!preg_match("/0/", $state))
    {
        return "not low";
    }
    return "ok";
}

if ($_REQUEST['clear'])
{
    clear($_REQUEST['clear']);
}
else if ($_REQUEST['button1'])
{
    $but = 1;
    $ret = press($but); 
}
else if ($_REQUEST['button2'])
{
    $but = 2;
    $ret = press($but); 
}

if ($ret == "ok")
{
    header("Location: $here");
}
?>
<html>
<head>
<title>Door Control</title>
</head>
<table>
<tr><td>
<form method=get>
<input style="width: 50px; height: 30px" type=submit name=button1 value=1>
</form>
</td><td>
<form method=get>
<input style="width: 50px; height: 30px" type=submit name=button2 value=2>
</form>
</td></tr>
</table>
<br>
<?
    if ($but)
    {
        print "Output $but $ret";
    }
    if ($ret == "already high")
    {
?>
        <form method=post>
        Clear:
        <input style="width: 50px; height: 30px" type=submit name=clear value=<?print $but?>>
        </form>
<?
    }
?>
</body>
</html>