<?php /* ______________________________________________________
|                                                              |
| -- VERSION --                                                |
| 0.0007                                                       |
| Written early april 2005 by Leo Vandewoestijne, unicycle.net |
|                                                              |
| -- COPYRIGHT --                                              |
| You may do with this script whatever you like.               |
| Please retain the links to unicycling.org and unicyclist.org |
|                                                              |
| Author also grant you permission to spread the joy of        |
| of unicycling to countries that are under export limitation  |
| laws or restictions by whatever organization or government.  |
|                                                              |
| -- REQUIREMENTS --                                           |
| A webserver that supports PHP <http://www.php.net/>          |
| If your favourite language is ASP... good luck with the      |
| array stuff, but feel free to impress the author.            |
|                                                              |
| -- INSTALLATION --                                           |
| Put this code inside a dir that can be accessed by a browser |
| Beware when modifieng this code it may break the             |
| XHTML, CSS, 508, WAI1-A, WAI1-AA, or WAI1-AAA compatibilty   |
| Do not asign an id or a name to the submit button.           |
|                                                              |
| -- KNOWN PROBLEMS --                                         |
| None. But with the consistance of PHP's syntax in mind...    |
|                                                              |
| -- CHANGELOG --                                              |
| 01-jul-'10: converted from XHTML Strict to HTML5             |
| 17-mar-'08: 508/WIA1 validation links became 404. Fixed.     |
| 16-may-'06: short echo tag <?= replaced by full tag <?php    |
|             to prevent conflicts with <?xml                  |
| 07-apr-'05: replaced utf encoded chars by HTML entities      |
|                                                              |
|____________________________________________________________ */

// error_reporting(0); // off
error_reporting(E_ALL E_STRICT); // awfull verbose
?><!DOCTYPE html>
<title>The IUF levels - The New Kewl System rating</title>
<style type="text/css">

body, html {       font-family:     Arial, Helvetica, Swiss, Geneva, Kirchstrasse-37, Attic, TypeWriter;
                   font-size:       12px }
a:hover {          text-decoration: none }
fieldset {         padding:         22px }
img {              border:          0px }
label {            margin:          1px }
label:hover {      margin:          0px;
                   border:          #000 1px dotted }
legend, .b, .t {   background:      #fb1;
                   border:          #000 1px solid;
                   padding:         1px 5px }
input, label {     cursor:          pointer }
legend, span, .b { font-weight:     bold }

</style>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  <fieldset>
    <legend>The IUF unicycle levels</legend>
<?php // ======================================================= GET
if ($_SERVER['REQUEST_METHOD'] == "GET") {

  function 
nxt($level) {
    
$GLOBALS['s'] = 0;
    
$GLOBALS['p'] = $level;
    echo 
"      <br />\n";
    echo 
"      <span class=\"t\">Level ".$level.":</span><br /><br />\n";
    if(
$level 2) {
      
nks("demonstrate ".$level." types of mounts");
      }
    }

  function 
nks($skill) {
    
$id chr(97 $GLOBALS['s']).$GLOBALS['p']; // 97 is ASCII # for "a"
    
echo "      <input type=\"checkbox\" name=\"".$id."\" id=\"".$id."\" value=\"".$GLOBALS['p']."\" />\n";
    echo 
"      <label title=\"".$skill."\" for=\"".$id."\">".$skill."</label><br />\n";
    
$GLOBALS['s'] += 1;
    }

  
nxt("1");
  
nks("mount unicycle unassisted");
  
nks("ride 50 m");
  
nks("dismount gracefully with unicycle in front");
  
nxt("2");
  
nks("mount with left foot");
  
nks("mount with right foot");
  
nks("ride 10 m between two parallel lines 30 cm apart");
  
nks("ride a figure 8 with &#216; &lt; 3 m");
  
nks("ride down a 15 cm vertical drop");
  
nks("make a sharp 90&#186; turn to the left");
  
nks("make a sharp 90&#186; turn to the right");
  
nxt("3");
  
nks("ride a figure 8 with &#216; &lt; 1,5 m");
  
nks("stop, pedal &#189; a revolution bw, continue fw");
  
nks("ride with the stomach on the seat for 10 m");
  
nks("make a sharp 180&#186; turn to the left");
  
nks("make a sharp 180&#186; turn to the right");
  
nks("hop 5 times");
  
nks("ride over a 10 x 10 cm obstacle");
  
nxt("4");
  
nks("ride backward for 10 m");
  
nks("ride one footed for 10 m");
  
nks("idle with left foot down 25 times");
  
nks("idle with right foot down 25 times");
  
nks("ride with the seat out in front for 10 m");
  
nks("ride with the seat out in back for 10 m");
  
nks("make a sharp 360&#186; turn the left");
  
nks("make a sharp 360&#186; turn the right");
  
nxt("5");
  
nks("ride backward in a circle");
  
nks("ride one footed in a figure 8");
  
nks("idle one footed with 1eft foot down 25 times");
  
nks("idle one footed with right foot down 25 times");
  
nks("ride with the seat out in front in a circle");
  
nks("ride with the seat out in back in a circle");
  
nks("ride with the seat on the side in a circle");
  
nks("hop-twist 90&#186; to the left");
  
nks("hop-twist 90&#186; to the right");
  
nks("walk the wheel for 10 m");
  
nxt("6");
  
nks("ride backward in a figure 8");
  
nks("ride with the seat out in front in a figure 8");
  
nks("ride with the seat out in back in a figure 8");
  
nks("ride backward with the seat out in front for 10 m");
  
nks("ride with seat on the side in a circle to the left");
  
nks("ride with seat on the side in a circle to the right");
  
nks("ride one footed with the left foot for 10 m");
  
nks("ride one footed with the right foot for 10 m");
  
nks("backspin");
  
nks("frontspin");
  
nks("spin");
  
nks("hop standing on wheel 5 times");
  
nxt("7");
  
nks("ride backward with seat out in front in a circle");
  
nks("ride one footed with left foot in a circle");
  
nks("ride one footed with right foot in a circle");
  
nks("walk the wheel in a circle");
  
nks("walk the wheel one footed for l0 m");
  
nks("hop-twist 180&#186; to the left");
  
nks("hop-twist 180&#186; to the right");
  
nks("ride backward with the seat out in back for 10 m");
  
nks("spin to the left");
  
nks("spin to the right");
  
nxt("8");
  
nks("ride one footed with the left foot in a figure 8");
  
nks("ride one footed with the right foot in a figure 8");
  
nks("walk the wheel in a figure 8");
  
nks("walk the wheel one footed in a circle");
  
nks("ride backward one footed for 10 m");
  
nks("glide for 10 m");
  
nks("hand wheel walk for 10 m");
  
nks("pirouette");
  
nks("backward spin");
  
nxt("9");
  
nks("walk the wheel one footed in a figure 8");
  
nks("ride backward one footed in a circle");
  
nks("ride backward with the seat out in front in figure 8");
  
nks("ride backward with the seat out in back in a circle");
  
nks("walk the wheel one footed with left foot for 10 m");
  
nks("walk the wheel one footed with right foot for 10 m");
  
nks("walk the wheel backward for 10 m");
  
nks("drag seat in front 10 m");
  
nks("drag seat in back for 10 m");
  
nks("ride backward one footed with the left foot 10 m");
  
nks("ride backward one footed with the right foot 10 m");
  
nks("ride one footed with the seat out in front for 10 m");
  
nks("backward pirouette");
  
nxt("10");
  
nks("ride backward with seat out in back in a figure 8");
  
nks("ride backward one footed in a figure 8");
  
nks("walk the wheel one footed with left foot in a circle");
  
nks("walk the wheel one footed with right foot in a circle");
  
nks("walk the wheel backward in a circle");
  
nks("180&#186; uni spin");
  
nks("sideways wheel walk for 10 m");
  
nks("coast for 10 m");
  
nks("side ride for 10 m");
  
nks("walk the wheel one footed backward for 10 m");
?>
    <br />
    <div style="font-size:10px">&copy; The <a href="http://www.unicycling.org/iuf/">IUF</a>, <abbr title="Incorporated">Inc</abbr>.</div><br />
    Click this button to <input class="b" type="submit" value="calculate" /> your <abbr title="New Kewl System">NKS</abbr> rating.
    <br />
    <br />
    <span>
      <a href="http://www.unicyclist.org/" title="unicyclist.org" rel="unicyclist.org">unicyclist.org</a> has
      <a href="http://www.unicyclist.org/cont/levels.cfm" title="unicyclist.org" rel="unicyclist.org">a page that has video examples</a> of above levels!<br />
    </span>
<?php
  
}
// ====================================================== POST
if ($_SERVER['REQUEST_METHOD'] == "POST") {
  
$pre array_count_values($_POST); // does exactly what it sais
                                        
$iuf  0;
  if(isset(
$pre[1])  && $pre[1]  ==  3) { $iuf += 1;                   // level  1 has  3 skills
    
if(isset($pre[2])  && $pre[2]  ==  7) { $iuf += 1;                 // level  2 has  7 skills
      
if(isset($pre[3])  && $pre[3]  ==  8) { $iuf += 1;               // level  3 has  8 skills
        
if(isset($pre[4])  && $pre[4]  ==  9) { $iuf += 1;             // level  4 has  9 skills
          
if(isset($pre[5])  && $pre[5]  == 11) { $iuf += 1;           // level  5 has 11 skills
            
if(isset($pre[6])  && $pre[6]  == 13) { $iuf += 1;         // level  6 has 13 skills
              
if(isset($pre[7])  && $pre[7]  == 11) { $iuf += 1;       // level  7 has 11 skills
                
if(isset($pre[8])  && $pre[8]  == 10) { $iuf += 1;     // level  8 has 10 skills
                  
if(isset($pre[9])  && $pre[9]  == 14) { $iuf += 1;   // level  9 has 14 skills
                    
if(isset($pre[10]) && $pre[10] == 11) { $iuf += 1// level 10 has 11 skills
                      
}
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  echo 
"    <br />\n";
  echo 
"    Your IUF level is <span>".$iuf."</span> of 10 levels<br /><br />\n";
  echo 
"    Your NKS rating is <span>".array_sum($_POST)."</span> of 603 points<br /><br />\n";
  echo 
"    You have mastered <span>".array_sum($pre)."</span> of 97 skills<br />\n";
  }
// END POST =============================================== ?>
  </fieldset>
</form>
This page is valid
<a href="http://validator.w3.org/check?uri=referer">HTML5</a> &amp;
<a href="http://jigsaw.w3.org/css-validator/validator?uri=<?php echo $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; ?>">CSS</a>, does
<a href="http://wave.webaim.org/report?url=<?php echo $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; ?>">meet</a> with U.S.C. &#167; 508, and with
<a href="http://wave.webaim.org/report?url=<?php echo $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; ?>">WAI1-A</a>,
<a href="http://wave.webaim.org/report?url=<?php echo $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; ?>">WAI1-AA</a>,
<a href="http://wave.webaim.org/report?url=<?php echo $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; ?>">WAI1-AAA</a> drafts.