<?php

  $page_title 
'WGET Frontend';

  require_once(
'../config.php');
  require_once(
'../header.php');


//#######################################################
// Purpose: Takes a number, and adds necessary zeros to the front, as determined by supplied $places.
//
function ZeroPad($number$places)
{
    if (! 
is_numeric($number) )
        return 
$number;

    
$formatted_number strval($number);
    for(
$len strlen($number); $len $places$len++) {
        
$formatted_number "0" $formatted_number;
    }

    return 
$formatted_number;
}


//#######################################################
// Purpose: Takes a number and returns number of leading zeros (if any.)
//
function CountLeadingZeroes($input_string)
{
    
$clz_buffer '';
    
$string_length strlen($input_string);
    for ( 
$zeroes_count=0$zeroes_count $string_length$zerose_count++)
        if ( 
substr($input_string$zeroes_count1) != '0' )
            break;
    return 
$zeroes_count;
}

//#######################################################
// Setup some basic defaults, pre-filled form options, etc.
//

define'_PROJECT_TITLE_''phpWgetGUI :: A php frontend for wget for creating a url download list.' );
define'_PROJECT_NAME_''phpWgetGUI' );
define'_PROJECT_SYNOPSIS_''Generate url list for wget to download.' );
define'_PROJECT_VERSION_''1.3' );
define'_FORM_INPUT_SIZE_DEFAULT_''16' );
define'_TABLE_TAG_DEFAULT_' '<table class="wgetTable" align="center" width="100%" cellpadding="0" cellspacing="0">' );

$field_array = array ('f1','f2','f3');
$field_count count($field_array);
$prepend 'http://www.somesite.com/';
$f1start date("Y");
$f1end date("Y")+2;
$f2start '1';
$f2end '12';
$f3start '1';
$f3end '31';
$append '.jpg';
$wgetchecked 'CHECKED';
$wget_create_directories_checked 'CHECKED';
$wget_no_clobber_checked 'CHECKED';
$wget_non_verbose_checked 'CHECKED';
$rejectedextensions 'bmp,htm,html,exe,com';
$wget_use_http_auth 'CHECKED';
$wgetHTTPUser 'user';
$wgetHTTPPassword 'password';
$status_msg 'Some example values have been filled in for you.';
$num_linefeeds 0;
$linefeeds str_repeat("\n"$num_linefeeds);
$linefeed_array[0]->id 0$linefeed_array[0]->name "--none--";
$linefeed_array[1]->id 1$linefeed_array[1]->name "1";
$linefeed_array[2]->id 2$linefeed_array[2]->name "2";
$linefeed_array[3]->id 3$linefeed_array[3]->name "3";
$linefeed_array[4]->id 4$linefeed_array[4]->name "4";
$linefeed_array[5]->id 5$linefeed_array[5]->name "5";

$menu_linefeeds CreateSelectMenu("add_linefeeds"$linefeed_array$num_linefeeds);

$wget_version_string 'Wget/1.9.1';
define('_USER_AGENT_DEFAULT_''~~~wget-default-none~~~');
$user_agent_string '';
$user_agent_selected _USER_AGENT_DEFAULT_;
$user_agent_array[0]->id _USER_AGENT_DEFAULT_$user_agent_array[0]->name '--none--';
$user_agent_array[1]->id 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; .NET CLR 2.0.40607)'$user_agent_array[1]->name 'Internet Explorer 5 (Windows 2000)';
$user_agent_array[2]->id 'Opera/7.54 (Windows NT 5.0; U) [en]'$user_agent_array[2]->name 'Opera 7.54 (Windows 2000)';
$user_agent_array[3]->id 'Mozilla/5.001 (windows; U; NT4.0; en-us) Gecko/25250101'$user_agent_array[3]->name 'Mozilla/5.001 (Windows 2000)';
$user_agent_array[4]->id 'Mozilla/5.001 (Macintosh; N; PPC; ja) Gecko/25250101'$user_agent_array[4]->name 'Mozilla/5.001 (Macintosh)';
$user_agent_array[5]->id $wget_version_string$user_agent_array[5]->name $wget_version_string;

$menu_user_agent CreateSelectMenu('user_agent'$user_agent_array$user_agent_selected);

$wget_referer_pf1_checked '';
$wget_referer_pf2_checked '';
$wget_referer_pf3_checked '';
$wget_referer_psep1_checked '';
$wget_referer_psep2_checked '';
$wget_referer_af1_checked '';
$wget_referer_af2_checked '';
$wget_referer_af3_checked '';
$wget_referer_asep1_checked '';
$wget_referer_asep2_checked '';
$wget_referer_prepend '';
$wget_referer_middle '';
$wget_referer_append '';

$override = array("","","");
$wget_quiet_mode_checked '';
$acceptedextensions '';
$useacceptedextensions '';
$userejectedextensions '';
$wget_use_http_auth_checked '';
$wget_use_referer_checked '';
$sep1 $sep2 "/";
$sep1checked $sep2checked 'CHECKED';
$generated_list '';

//######################
if ( isset($_POST['prepend']) ) $prepend $_POST['prepend'];
if ( isset(
$_POST['f1start']) ) $f1start $_POST['f1start'];
if ( isset(
$_POST['f2start']) ) $f2start $_POST['f2start'];
if ( isset(
$_POST['f3start']) ) $f3start $_POST['f3start'];
if ( isset(
$_POST['f1end']) ) $f1end $_POST['f1end'];
if ( isset(
$_POST['f2end']) ) $f2end $_POST['f2end'];
if ( isset(
$_POST['f3end']) ) $f3end $_POST['f3end'];
if ( @
$_POST['usesep1'] == 'true' ) { $sep1 '/'$sep1checked 'CHECKED'; }
if ( @
$_POST['usesep2'] == 'true' ) { $sep2 '/'$sep2checked 'CHECKED'; }
if ( isset(
$_POST['append']) ) $append $_POST['append'];
if ( isset(
$_POST['add_linefeeds']) ) {
    
$num_linefeeds $_POST['add_linefeeds'];
    
$linefeeds str_repeat("\n"$num_linefeeds);
    
$menu_linefeeds CreateSelectMenu("add_linefeeds"$linefeed_array$num_linefeeds);
}
if ( isset(
$_POST['wget_referer_pf1']) ) $wget_referer_pf1_checked 'CHECKED';
if ( isset(
$_POST['wget_referer_pf2']) ) $wget_referer_pf2_checked 'CHECKED';
if ( isset(
$_POST['wget_referer_pf3']) ) $wget_referer_pf3_checked 'CHECKED';
if ( isset(
$_POST['wget_referer_psep1']) ) $wget_referer_psep1_checked 'CHECKED';
if ( isset(
$_POST['wget_referer_psep2']) ) $wget_referer_psep2_checked 'CHECKED';
if ( isset(
$_POST['wget_referer_af1']) ) $wget_referer_af1_checked 'CHECKED';
if ( isset(
$_POST['wget_referer_af2']) ) $wget_referer_af2_checked 'CHECKED';
if ( isset(
$_POST['wget_referer_af3']) ) $wget_referer_af3_checked 'CHECKED';
if ( isset(
$_POST['wget_referer_asep1']) ) $wget_referer_asep1_checked 'CHECKED';
if ( isset(
$_POST['wget_referer_asep2']) ) $wget_referer_asep2_checked 'CHECKED';
if ( isset(
$_POST['wget_referer_prepend']) ) $wget_referer_prepend $_POST['wget_referer_prepend'];
if ( isset(
$_POST['wget_referer_middle']) ) $wget_referer_referer_middle $_POST['wget_referer_middle'];
if ( isset(
$_POST['wget_referer_append']) ) $wget_referer_append $_POST['wget_referer_append'];

if ( @
$_POST['prependwget'] == 'true' ) { $wget_string 'wget '$wgetchecked 'CHECKED'; }
if ( @
$_POST['wget_create_directories'] == 'true' ) {
    
$wget_create_directories_checked 'CHECKED';
    
$wget_string 'wget ';
}
if ( @
$_POST['wget_quiet_mode'] == 'true' ) {
    
$wget_quiet_mode_checked 'CHECKED';
    
$wget_string .= '-q ';
}
if ( @
$_POST['wget_non_verbose'] == 'true' ) {
    
$wget_non_verbose_checked 'CHECKED';
    
$wget_string .= '-nv ';
}
if ( @
$_POST['wget_no_clobber'] == 'true' ) {
    
$wget_no_clobber_checked 'CHECKED';
    
$wget_string .= '-nc ';
}
if ( @
$_POST['useacceptedextensions'] == 'true' ) {
    
$useacceptedextensions 'CHECKED';
    
$wget_accepted_extensions $_POST['acceptedextensions'] . ' ';
    
$wget_string .= '-A' $wget_accepted_extensions ' ';
}
if ( @
$_POST['userejectedextensions'] == 'true' ) {
    
$userejectedextensions 'CHECKED';
    
$wget_rejected_extensions $_POST['rejectedextensions'] . ' ';
    
$wget_string .= '-R' $wget_rejected_extensions ' ';
}
if ( @
$_POST['wget_use_http_auth'] == 'true' ) {
    
$wget_use_http_auth_checked 'CHECKED';
    
$wgetHTTPUser $_POST['wgetHTTPUser'];
    
$wgetHTTPPassword $_POST['wgetHTTPPassword'];
    
$wget_string .= '--http-user=' $wgetHTTPUser ' --http-passwd=' $wgetHTTPPassword ' ';
}

if ( @
$_POST['wget_use_referer'] == 'true' ) {
    
$wget_use_referer_checked 'CHECKED';
}

if (isset(
$_POST['user_agent'])) {
    
$user_agent_selected $_POST['user_agent'];

    
$menu_user_agent CreateSelectMenu('user_agent'$user_agent_array$user_agent_selected);

    if (
$user_agent_selected == _USER_AGENT_DEFAULT_)
    ; else
        
$user_agent_string '-U="' $user_agent_selected '" ';
}


if ( isset(
$_POST['submit']) ) {
  for ( 
$field_num=0$field_num $field_count$field_num++) {

    
$field_start $field_array[$field_num] . 'start';
    
$field_end $field_array[$field_num] . 'end';
        
    if ( isset(
$_POST[$field_start]) ) {
      
$start[$field_num] = $_POST[$field_start];
    } else {
      
$start[$field_num] = 0;
    }
    
    if ( isset(
$_POST[$field_end]) ) {
      
$end[$field_num] = $_POST[$field_end];
    } else {
      if ( isset(
$_POST[$field_start]) ) {
        
$end[$field_num] = $start[$field_num];
      } else {
        
$end[$field_num] = 0;
      }
    }
            
    if (! 
is_numeric($start[$field_num]) ) {
      
$override[$field_num] = $start[$field_num];
      
$end[$field_num] = $start[$field_num] = '';
    }

    if ( 
is_numeric($start[$field_num]) && (! is_numeric($end[$field_num])) ) {
      
$end[$field_num] = $start[$field_num];
    }

    if ( 
$start[$field_num] == "-" ) {
      
$override[$field_num] = "-";
      
$end[$field_num] = $start[$field_num] = '';
    }

  }

  
$zero_count[0] = strlen($start[0]);
  
$zero_count[1] = strlen($start[1]);
  
$zero_count[2] = strlen($start[2]);
  for ( 
$i $start[0]; $i <= $end[0]; $i++ ) {
    for ( 
$j $start[1]; $j <= $end[1]; $j++ ) {
      for ( 
$k $start[2]; $k <= $end[2]; $k++ ) {
        
$padded_i ZeroPad($i$zero_count[0]) . $override[0];
        
$padded_j ZeroPad($j$zero_count[1]) . $override[1];
        
$padded_k ZeroPad($k$zero_count[2]) . $override[2];

        if ( 
$wget_create_directories_checked == 'CHECKED' ) {
          
$directory_prefix '-P' $padded_i $sep1 $padded_j $sep2 $padded_k ' ';
          
$directory_prefix substr($directory_prefix0strrpos($directory_prefix'/'));
          if ( 
strlen($directory_prefix) > ) {
            
$directory_prefix .= ' ';
          }
        }

        
$wget_referer_string '';

        if ( 
$wget_use_referer_checked == 'CHECKED' ) {
          
$wget_referer_string '--referer="';
          
$wget_referer_string .= $_POST['wget_referer_prepend'];

          if ( 
$wget_referer_pf1_checked == 'CHECKED' )
            
$wget_referer_string .= $padded_i;

          if ( 
$wget_referer_psep1_checked == 'CHECKED' )
            
$wget_referer_string .= $sep1;

          if ( 
$wget_referer_pf2_checked == 'CHECKED' )
            
$wget_referer_string .= $padded_j;

          if ( 
$wget_referer_psep2_checked == 'CHECKED' )
            
$wget_referer_string .= $sep2;

          if ( 
$wget_referer_pf3_checked == 'CHECKED' )
            
$wget_referer_string .= $padded_k;

          
$wget_referer_string .= $_POST['wget_referer_middle'];

          if ( 
$wget_referer_af1_checked == 'CHECKED' )
            
$wget_referer_string .= $padded_i;

          if ( 
$wget_referer_asep1_checked == 'CHECKED' )
            
$wget_referer_string .= $sep1;

          if ( 
$wget_referer_af2_checked == 'CHECKED' )
            
$wget_referer_string .= $padded_j;

          if ( 
$wget_referer_asep2_checked == 'CHECKED' )
            
$wget_referer_string .= $sep2;

          if ( 
$wget_referer_af3_checked == 'CHECKED' )
            
$wget_referer_string .= $padded_k;

          
$wget_referer_string .= $_POST['wget_referer_append'];
          
$wget_referer_string .= '" ';
        }
              
        
$generated_list .= $wget_string
        
$user_agent_string
        
$directory_prefix
        
$wget_referer_string
        
$prepend
        
$padded_i $sep1
        
$padded_j $sep2
        
$padded_k
        
$append "\n"
        
$linefeeds;
      } 
// k
    
// j
  
// i
} else {
  
$menu_linefeeds CreateSelectMenu("add_linefeeds"$linefeed_array$num_linefeeds);
}

$form_table '

<div id="wgetContent">
<p><form action="" method="POST">
<fieldset class="wgetFieldset">
<legend class="wgetLegend"><b>Main</b></legend>
_TABLE_TAG_DEFAULT_ '
<tr valign="top">
<td rowspan="3">
<strong>Prepend</strong><br /><input type="text" name="prepend" value="' 
$prepend '" size="32" maxsize="128">
<ul id="wgetTips">
  <li>Start number must be smaller than end number.</li>
  <li>Only field 1 is mandatory.</li>
  <li>Non-numeric input must be in start field.</li>
</ul>
</td>
<td><strong>1 start</strong><br /><input type="text" name="f1start" value="' 
$f1start '" size="' _FORM_INPUT_SIZE_DEFAULT_ '" maxsize="32"></td>
<td><input type="checkbox" name="usesep1" value="true" ' 
$sep1checked '><br /><strong>/</strong></td>
<td><strong>2 start</strong><br /><input type="text" name="f2start" value="' 
$f2start '" size="' _FORM_INPUT_SIZE_DEFAULT_ '" maxsize="32"></td>
<td><input type="checkbox" name="usesep2" value="true" ' 
$sep2checked '><br /><strong>/</strong></td>
<td><strong>3 start</strong><br /><input type="text" name="f3start" value="' 
$f3start '" size="' _FORM_INPUT_SIZE_DEFAULT_ '" maxsize="32"></td>
<td rowspan="3"><strong>Append</strong><br /><input type="text" name="append" value="' 
$append '" size="16" maxsize="32"></td>
</tr>
<tr valign="top">
<td colspan="9">&nbsp;</td></tr>
<tr valign="top">
<td><strong>1 end</strong><br /><input type="text" name="f1end" value="' 
$f1end '" size="' _FORM_INPUT_SIZE_DEFAULT_ '"  maxsize="32"></td>
<td>&nbsp;</td>
<td><strong>2 end</strong><br /><input type="text" name="f2end" value="' 
$f2end '" size="' _FORM_INPUT_SIZE_DEFAULT_ '"  maxsize="32"></td>
<td>&nbsp;</td>
<td><strong>3 end</strong><br /><input type="text" name="f3end" value="' 
$f3end '" size="' _FORM_INPUT_SIZE_DEFAULT_ '"  maxsize="32"></td>
</tr>
</table>
</fieldset>

<fieldset class="wgetFieldset">
<legend class="wgetLegend"><b>Optional</b></legend>
_TABLE_TAG_DEFAULT_ '
    <tr>
        <td valign="top">
        <p>
        <input type="checkbox" name="wget_create_directories" value="true" ' 
$wget_create_directories_checked '>&nbsp;create required directories (at least 1 / required).<br />
        <input type="checkbox" name="wget_quiet_mode" value="true" ' 
$wget_quiet_mode_checked '>&nbsp;quiet (no output).<br />
        <input type="checkbox" name="wget_non_verbose" value="true" ' 
$wget_non_verbose_checked '>&nbsp;turn off verboseness, without being quiet.<br />
        <input type="checkbox" name="wget_no_clobber" value="true" ' 
$wget_no_clobber_checked '>&nbsp;don\'t clobber existing files or use .# suffixes.<br />
        <p>Extra&nbsp;Linefeeds:&nbsp;' 
$menu_linefeeds '
        <p>User Agent&nbsp;' 
$menu_user_agent '
        
        </td>
        <td valign="top">
            <p><input type="checkbox" name="useacceptedextensions" value="true" ' 
$useacceptedextensions '>&nbsp;accepted extensions<br /><input type="text" name="acceptedextensions" size="20" maxsize="128" value="' $acceptedextensions '">
            <p><input type="checkbox" name="userejectedextensions" value="true" ' 
$userejectedextensions '>&nbsp;rejected extensions<br /><input type="text" name="rejectedextensions" size="20" maxsize="128" value="' $rejectedextensions '">
            <p><input type="checkbox" name="wget_use_http_auth" value="true" ' 
$wget_use_http_auth_checked '>&nbsp;http authentication.<br />
            <code><input type="text" name="wgetHTTPUser" size="20" maxsize="32" value="' 
$wgetHTTPUser '"></code><br />
            <code><input type="text" name="wgetHTTPPassword" size="20" maxsize="32" value="' 
$wgetHTTPPassword '"></code>
        </td>
        <td valign="top">
            <table cellspacing="0" cellpadding="0" border="0" align="center" width="100%">
                <tr><td valign="top" colspan="9"><p><input type="checkbox" name="wget_use_referer" value="true" ' 
$wget_use_referer_checked '>&nbsp;referer url.</td></tr>
                <tr><td valign="top" colspan="9"><code>prepend:&nbsp;</code><input text name="wget_referer_prepend" value="' 
$wget_referer_prepend '" size="32" maxsize="128"></td></tr>
                <tr><td valign="top" colspan="9"><code>prepend fields:&nbsp;</code></td></tr>
                <tr>
                    <td valign="top" align="center">1</td>
                    <td valign="top" align="center">/</td>
                    <td valign="top" align="center">2</td>
                    <td valign="top" align="center">/</td>
                    <td valign="top" align="center">3</td>
                </tr>
                <tr>
                    <td valign="top" align="center"><input type="checkbox" name="wget_referer_pf1" value="true" ' 
$wget_referer_pf1_checked '></td>
                    <td valign="top" align="center"><input type="checkbox" name="wget_referer_psep1" value="true" ' 
$wget_referer_psep1_checked '></td>
                    <td valign="top" align="center"><input type="checkbox" name="wget_referer_pf2" value="true" ' 
$wget_referer_pf2_checked '></td>
                    <td valign="top" align="center"><input type="checkbox" name="wget_referer_psep2" value="true" ' 
$wget_referer_psep2_checked '></td>
                    <td valign="top" align="center"><input type="checkbox" name="wget_referer_pf3" value="true" ' 
$wget_referer_pf3_checked '></td>
                </tr>
                <tr><td valign="top" colspan="9"><code>middle:&nbsp;</code><input type="text" name="wget_referer_middle" value="' 
$wget_referer_middle '" size="32" maxsize="128"></td></tr>
                <tr><td valign="top" colspan="9"><code>append fields:&nbsp;</code></td></tr>
                <tr>
                    <td valign="top" align="center">1</td>
                    <td valign="top" align="center">/</td>
                    <td valign="top" align="center">2</td>
                    <td valign="top" align="center">/</td>
                    <td valign="top" align="center">3</td>
                </tr>
                <tr>
                    <td valign="top" align="center"><input type="checkbox" name="wget_referer_af1" value="true" ' 
$wget_referer_af1_checked '></td>
                    <td valign="top" align="center"><input type="checkbox" name="wget_referer_asep1" value="true" ' 
$wget_referer_asep1_checked '></td>
                    <td valign="top" align="center"><input type="checkbox" name="wget_referer_af2" value="true" ' 
$wget_referer_af2_checked '></td>
                    <td valign="top" align="center"><input type="checkbox" name="wget_referer_asep2" value="true" ' 
$wget_referer_asep2_checked '></td>
                    <td valign="top" align="center"><input type="checkbox" name="wget_referer_af3" value="true" ' 
$wget_referer_af3_checked '></td>
                </tr>
                <tr><td valign="top" colspan="9"><code>append:&nbsp;</code><input text name="wget_referer_append" value="' 
$wget_referer_append '" size="32" maxsize="128"></td></tr>
            </table>
        </td>
    </tr>
</table>
</fieldset>

<center>
    <p> ' 
$status_msg '
    <p><input style="font-weight: bold;" type="submit" name="submit" value="Create">
</center>

</form>
'
;


echo 
$form_table;

if ( 
strlen($generated_list) > ) {
    echo 
'
<fieldset class="wgetFieldset">
<legend class="wgetLegend"><b>Result</b></legend>
<p><textarea class="wgetTable" name="generated_list_output" cols="100" rows="40" nowrap>' 
$generated_list '</textarea>
</fieldset>
'
;
    
}
/*
        <p>Extra linefeeds<br />
        ' . $menu_linefeeds . '


*/
?>

</div>
</body>
</html>