<?
// http://www.modernmethod.com/sajax/
require("include/Sajax.php");
session_start();


if(isset(
$_GET['action']) && 'showsource' === $_GET['action'])
{
  
highlight_file(__FILE__);
  exit;
}
if(isset(
$_GET['action']) && 'download' === $_GET['action'])
{
    
header("Content-type: application/x-applikation");
    
readfile(__FILE__);
    exit; 
}


function 
startaufstellung()
{
    
$ext '.GIF'// Datei extension der Figuren
    
$startaufstellung = array();
    
    
// weisse Grundreihe
    
$startaufstellung['A1'] = 'tw'.$ext;
    
$startaufstellung['B1'] = 'sw'.$ext;
    
$startaufstellung['C1'] = 'lw'.$ext;
    
$startaufstellung['D1'] = 'dw'.$ext;
    
$startaufstellung['E1'] = 'kw'.$ext;
    
$startaufstellung['F1'] = 'lw'.$ext;
    
$startaufstellung['G1'] = 'sw'.$ext;
    
$startaufstellung['H1'] = 'tw'.$ext;
    
// weisse Bauernreihe
    
for ($i=0;$i<8;$i++) $startaufstellung[chr(ord('A')+$i).'2'] = 'bw'.$ext;
    
    
// schwarze Grundreihe
    
$startaufstellung['A8'] = 'ts'.$ext;
    
$startaufstellung['B8'] = 'ss'.$ext;
    
$startaufstellung['C8'] = 'ls'.$ext;
    
$startaufstellung['D8'] = 'ds'.$ext;
    
$startaufstellung['E8'] = 'ks'.$ext;
    
$startaufstellung['F8'] = 'ls'.$ext;
    
$startaufstellung['G8'] = 'ss'.$ext;
    
$startaufstellung['H8'] = 'ts'.$ext;
    
// schwarze Bauernreihe
    
for ($i=0;$i<8;$i++) $startaufstellung[chr(ord('A')+$i).'7'] = 'bs'.$ext;
    return 
$startaufstellung;
}

function 
init_session()
{
  
$_SESSION = array(); // clear all
  
$_SESSION['Brett'] = startaufstellung();
  
$_SESSION['Drehung'] = FALSE;
}

function 
feldname($x,$y,$reverse=false)
{
   return (
$reverse)?chr(ord('H')-$x).($y+1):chr(ord('A')+$x).(8-$y);
}

function 
gib_brett($drehung 0)
{
    if(!isset(
$_SESSION['Brett'])) init_session();
    if(
$drehung == $_SESSION['Drehung'] = ! $_SESSION['Drehung'];
    
$ausgabe '<table border="1" cellspacing="2" cellpadding="0">';
    
$cellsize ' width="45" height="45" ';
    for (
$i=0;$i<8;$i++)
    {
        
$ausgabe .= '<tr> ';    
          for (
$j=0;$j<8;$j++)
          {
              
$color = (0===($j+$i)%2)?'whitesmoke':'burlywood';
              
$ausgabe .= '<td bgcolor="'.$color.'" '.$cellsize.'>';
              
$feld feldname($j,$i,$_SESSION['Drehung']);
              
$img_params ' alt="'.$feld.'" title="'.$feld.'"  '.$cellsize.'  onClick=x_feldclick("'.$feld.'",gib_brett_cb) ';
              
$figur = (isset($_SESSION['Brett'][$feld]))?$_SESSION['Brett'][$feld]:'leer.GIF';
          
$ausgabe .= '<img src="figuren/'.$figur.'" '.$img_params.'  />';
          
$ausgabe .= '</td>';    
          }
        
$ausgabe .= '</tr> ';    
    }
    
$ausgabe .= '</table>';
    return 
$ausgabe;
}

function 
feldclick($feld)
{
    if (isset(
$_SESSION['lastfeld']))
    {
        if(!isset(
$_SESSION['Brett'][$feld]))
        {
          
$_SESSION['Brett'][$feld] = $_SESSION['lastfeld'];
          unset(
$_SESSION['lastfeld']);
        }
    }else
    {
       if(isset(
$_SESSION['Brett'][$feld]))
       {
          
$_SESSION['lastfeld'] =  $_SESSION['Brett'][$feld];
          unset(
$_SESSION['Brett'][$feld]);
       }
    }
    return 
gib_brett();
}

function 
neues_brett()
{
  
init_session();
  return 
gib_brett();
}

sajax_init();
sajax_export("gib_brett","feldclick",'neues_brett');
sajax_handle_client_request();
?>

<html>
<head>
    <title>Schach Brett</title>
    <script>
      <?php    sajax_show_javascript(); ?>

      function gib_brett_cb(brett)
    {
          document.getElementById('brett').innerHTML = brett;
    }
    </script>
    
</head>
<body>
  <a href="javascript:x_gib_brett(1,gib_brett_cb)">Drehe Brett</a> |
  <a href="javascript:x_neues_brett(gib_brett_cb)">Neues Brett</a> |
  <a href="?action=showsource">Show Source</a> |
  <a href="?action=download">Download Source</a> |
<br />
  <noscript>
    <h1>Hey, du Tropf.. Diese Seite basiert auf Ajax! :-)</h1>
    <h2>Schalte gef&auml;lligst JavaScript ein, wenn du hier was sehen willst!</h2>
  </noscript>
  <br>
  <div id="brett"><?php echo gib_brett()  ?></div>
  <p>
   <b>Bedienungsanleitung</b><br>
   <ol>
     <li>Auf eine Figur klicken</li>
     <li>warten -- die Figur "teleportiert" zum Server</li>
     <li>Auf leeres Feld klicken</li>
     <li>warten -- Die Figur erscheint</li>
   </ol>
   Es gibt (noch) keine Regeln und so... <br>
   Falls einer von euch einen Zugenerator und (oder) eine
   Stellungsbewertungsfunktion rumliegen hat, her damit..!!
  </p>
</body>
</html>