<?php
/******************************************
* - provided an optional built-in form to get user input (replaced? by g7, a newer verification package)
    - optional generic form part of a simple "captcha like" securitization, and optional authentication, package
    - most session directives set in v_require.php
    - relies on manual SID markup in local css, url (GET) for background image by v_image.php
    - use_trans_sid not required, but manual markup session name & id as a hidden form element, passes id to v_require.php
* - required by v_required.php if NOT already verified AND use_v_form = true
* - has access to vars from requirer, v_require, and $_SESSION
* - dynamic input borders for LTE IE 7, dependent on access to jquery
******************************************/
# if this called directly (not included by require)
defined('SID') or die ('This file uses variables defined in its includers; direct access is not supported. <a href="../page_requiring_verification.php">View this form in action</a>');

$v_url '/_karmic/sandbox/_Forms/_Verification/incl/v_image.php';    // relative url to generator of captcha background

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script type="text/javascript">
  function initialize ()
  {
      if (!document.all) document.forms[0].elements[1].focus();        // big hack, required for IE dynamic borders
  }
  </script>

  <!-- for IE dynamic input borders --><!--[if LTE IE 7]>
  <script type="text/javascript" src="< ?php echo $v_dir ?>/jquery.js"></script>
  <script type="text/javascript">

  $(document).ready(function(){

    $(":text,:password,textarea").bind("focus", function(e){
      $(this).addClass("border_focus");
    });

    $(":text,:password,textarea").bind("blur", function(e){
      $(this).removeClass("border_focus");
    });

    document.forms[0].elements[1].focus();

  });

  </script>
  <![endif]-->

  <style type="text/css" media="all">

    /* SID is empty if cookie has been sent by browser; url_rewrite not an option here (not html) */
    #verify_code { background: url('<?php echo $v_url ?>?<?php echo htmlspecialchars(SID?>') white 50% 0% no-repeat; }
    #brand,#brand a,#brand a:visited { color: #ccc; font-size: x-small; font-family: arial, verdana, helvetica, sans-serif; text-align: center; }

    .success { background: #CCFF99; border-color: #99FF00; }
    .warning { background: #FFFF99; border-color: #FFFF00; }

    .success,
    .warning
    {
        border-style: solid;
        border-width: 3px;
        color: black;
        font-size: .8em;
        font-weight: bolder;
        margin-right: 1em;
        padding: 2px;
    }

    /* ----------- Dynamic Input Borders ------------- 
    - to make these universal, set input margins and padding elsewhere
    - using blur class because attrib selectors break jquery for IE which provides :focus functionality
    - to prevent dancing inputs on focus, set blur borders the same width as focus borders */

    .border_blur, .border_focus, textarea, textarea:focus, input[type=text]:focus, input[type=password]:focus
    {
        border-style: solid;
        border-width: 2px;
    }

    .border_blur
    {
        border-color: black;
    }

    .border_focus
    {
            border-color: #975A6F;
    }

    .two-column .border_blur, .two-column textarea
    {
        border-color: #aaa;
    }

    .two-column .border_focus, .two-column input[type=text]:focus, .two-column input[type=password]:focus, .two-column textarea:focus
    {
            border-color: #73233E;
    }

    /* ----------- Dynamic Input Borders -------------*/

    .two-column label
    {
        float: left;        /* block float the labels to left column, set a width */
        margin: 5px 0 0;    /* set top margin same as form input - textarea etc. elements */
        padding: 0;
        text-align: right;
        width: 8em;
    }

    .two-column input,
    .two-column textarea
    {
        display:inline-block;    /* display: inline; must not be set or will hide submit buttons in IE 5x mac */
                /*width:auto; set width of form elements to auto-size, otherwise watch for wrap on resize */
        margin:5px 0 0 10px;    /* set margin on left of form elements rather than right of
                                    label aligns textarea better in IE */
    }

    .two-column textarea { overflow: auto; }

    .two-column input#reset
    {
        margin-left: 0px; /* set margin-left back to zero on reset button (set above) */
    }

    .two-column small
    {
        display: block;
        margin: 0 0 .5em 10.5em;    /* instructions/comments left margin set to align w/ right column inputs */
    }
  </style>

  <title>Humanity Verification</title>
</head>

<body>
<?php
if ($debug)
{
    echo 
"<p>";
    echo 
"session_name = ".session_name()."<br />";
    echo 
"session.use_cookies = ".ini_get('session.use_cookies')."<br />";
    echo 
"session.use_only_cookies = ".ini_get('session.use_only_cookies')."<br />";
    echo 
"session.use_trans_sid = ".ini_get('session.use_trans_sid')."<br />";
    echo 
"url_rewriter.tags = ".ini_get('url_rewriter.tags')."<br />";
    echo 
"</p>";
}
?>
<!-- name attribute not allowed in xhtml strict -->
<form id="f" class="two-column" action="" method="post">

<?php
if ($form_msg) echo "<p class='warning'> $form_msg </p>";

echo 
"<fieldset>";

if (
$login_required)
{
?>
    <legend>Login Credentials Required</legend>
      <label for="username" accesskey="u">Username:admin</label>
        <input type="text" id="username" name="username" class="border_blur" 
         value="<?php if (isset($_POST['username'])) echo ($_POST['username']) ?>" /><br />
      <label for="password" accesskey="p">Password:4magic</label>
        <input type="password" id="password" name="password" class="border_blur" 
         value="<?php if (isset($_POST['password'])) echo ($_POST['password']) ?>" />
  </fieldset>
  <fieldset>
<?php
}

//echo 'var_export: $_SERVER <pre>', var_export ($_SERVER, true), '</pre>';    die ('Died in ' .basename(__FILE__). ' on line ' .__LINE__);
$ip = isset($_SERVER["SERVER_ADDR"]) ? $_SERVER["SERVER_ADDR"] : $_SERVER["LOCAL_ADDR"];        # Linux or IIS ?
$quads explode("."$ip);     # SERVER_ADDR differentiate server, echo $quads[0];
?>
    <legend>Please Verify Your Humanity</legend>
      <label for="verify_code" accesskey="e">Enter code:</label>
        <input type="text" id="verify_code" name="verify_code" class="border_blur" /><br />
        <small>(<?php echo $vCodeLen ?> letters and/or numbers)</small>

      <label for="kludge"></label>
        <input type="submit" id="kludge" class="submit" value="Continue" />
        <input type="hidden" name="<?php echo session_name();?>" value="<?php echo session_id();?>" />    
        <input type="hidden" name="secret" value="<?php echo $_SESSION['secret'?>" />
  </fieldset>
</form>

<?php $ip = isset($_SERVER["SERVER_ADDR"]) ? $_SERVER["SERVER_ADDR"] : $_SERVER["LOCAL_ADDR"];        # Linux or IIS ?
$quads explode("."$ip);     # SERVER_ADDR differentiate server, echo $quads[0]; ?>

      <p id="brand">Secured by <a href="/"><?php echo $quads[0]; ?></a> | 
      validate <a href="http://validator.w3.org/check?uri=referer">xhtml</a>, <a href="http://jigsaw.w3.org/css-validator/check/referer">css</a>
      </p>

<?php
if ($debug)
{
    
//echo '<p>These are the same as contained in the form<br />';    echo $bug->getGlobalsByString('outbound').'</p>';
}
?>

<script type="text/javascript"><!-- 
  initialize();
//--></script>
</body>
</html>