!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/local/webmail2/plugins/autocomplete/   drwxr-xr-x
Free 318.39 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     functions.php (7.62 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php


// include compatibility plugin
//
if (defined('SM_PATH'))
   include_once(
SM_PATH 'plugins/compatibility/functions.php');
else if (
file_exists('../plugins/compatibility/functions.php'))
   include_once(
'../plugins/compatibility/functions.php');
else if (
file_exists('./plugins/compatibility/functions.php'))
   include_once(
'./plugins/compatibility/functions.php');



function 
plugin_autocomplete_compose_bottom_do()
{
   global 
$autocomplete_enabled;
   global 
$autocomplete_insensitive;


   if (
$autocomplete_enabled == "None")
      return;

   if (
compatibility_check_sm_version(13))
      include_once (
SM_PATH 'functions/addressbook.php');
   else
      include_once (
'../functions/addressbook.php');

   
// Open addressbook without error messages and without LDAP
   
$abook addressbook_init(falsetrue);
   if (
$abook->localbackend == 0)
      
// No personal address book is defined
      
return;

   
$alist $abook->list_addr();
   if (! 
is_array($alist))
      
// Some sort of error
      
return;

   
$addrs = array();

   
// Nicknames
   
if ($autocomplete_enabled == 'Both' || $autocomplete_enabled == 'Alias') {
      foreach (
$alist as $val) {
         
$addrs[] = addcslashes($val['nickname'].' <'.trim($val['email']).'>''"');
      }
   }

   
// Emails
   
if ($autocomplete_enabled == 'Both' || $autocomplete_enabled == 'Email') {
      foreach (
$alist as $val) {
         
$addrs[] = addcslashes($val['name'].' <'.trim($val['email']).'>''"');
      }
   }

   
// If we don't have a list, do not spit out the javascript
   // (saves download time)
   
if (count($addrs) == 0)
      return;

   
// Now we have a big list of things we want to autocomplete.
   
sort($addrs);

   
// Spit out javascript
   
echo '<script language="Javascript">
var autocompleteArray = new Array("' 
join("\",\n\""$addrs) . '");

function autocomplete_find (str) {
   var l = autocompleteArray.length;
   var strl = str.length;
   var sValue = "";
   var lastMatch = "";
   var matched = 0;
   for (var i = 0; i < l; i ++) {
      sValue = autocompleteArray[i];
'
;
if (
$autocomplete_insensitive)
   echo 
'      // Case insensitive compare
      if (sValue.substring(0, strl).toLowerCase() == str.toLowerCase()) {
'
;
else
   echo 
'      // Case sensitive compare
      if (sValue.substring(0, strl) == str) {
'
;
   echo 
'         if (matched++ == document.acOffset) {
            return sValue;
         } else {
            lastMatch = sValue;
         }
      } else if (lastMatch != "") {
         // We have gone past the last matching string
         --document.acOffset;
         return lastMatch;
      }
   }
   return "";
}

function autocomplete_core (src) {
   // kinda support multiple addresses
   var r1 = src.createTextRange();
   var Str = r1.text;
   var StartPos = 0;
   var newSP = Str.lastIndexOf(", ");
   if (newSP >= StartPos) {
      StartPos = newSP + 2;
   }

   // do not search for nothing
   if (Str.length - StartPos <= 0)
      return;

   // If we can find something in our lookup list
   newValue = autocomplete_find(Str.substr(StartPos, Str.length));
   if (newValue == "" || newValue == Str.substr(StartPos, Str.length))
      return;

   newValue = Str.substr(0, StartPos) + newValue;
   var pos = Str.length;
   src.value = newValue;
   var rNew = src.createTextRange();
   rNew.moveStart("character", pos);
   rNew.select();
   src._value = src.value;
   document.acMatch = Str;
}

function autocomplete_work (src) {
   if (! src.createTextRange)
      return;

   // Ignore cursor keys, shift, alt, etc
   // look only for A-Z, 0-9, etc.
   if (event.keyCode < 48 || (event.keyCode > 57 && event.keyCode < 65) ||
       (event.keyCode > 90 && event.keyCode < 96) || event.keyCode == 108 ||
       (event.keyCode > 111 && event.keyCode < 186) ||
       (event.keyCode > 192 && event.keyCode < 219) || event.keyCode > 222)
      return;

   // If there is no change in the field, ignore
   if (src.value == src._value)
      return;
   autocomplete_core(src);
}

function autocomplete_scroll(src) {
   if (isNaN(document.acOffset))
      document.acOffset = 0;
   if (event.keyCode == 38 || event.keyCode == 40) {
      if (document.acMatch != "") {
         if (event.keyCode == 40) {
            ++document.acOffset;
         } else if (document.acOffset > 0) {
            --document.acOffset;
         }
         src.value = document.acMatch;
         autocomplete_core(src);
      } else {
         document.acOffset = 0;
      }
      event.returnValue = false;
   } else {
      document.acOffset = 0;
      document.acMatch = "";
   }
}
</script>
<script FOR=send_to EVENT=onkeydown>
autocomplete_scroll(this);
</script>
<script FOR=send_to EVENT=onkeyup>
autocomplete_work(this)
</script>
<script FOR=send_to_cc EVENT=onkeydown>
autocomplete_scroll(this);
</script>
<script FOR=send_to_cc EVENT=onkeyup>
autocomplete_work(this)
</script>
<script FOR=send_to_bcc EVENT=onkeydown>
autocomplete_scroll(this);
</script>
<script FOR=send_to_bcc EVENT=onkeyup>
autocomplete_work(this)
</script>
'
;
}

function 
plugin_autocomplete_display_inside_do()
{
   global 
$username,$data_dir$version;
   global 
$autocomplete_enabled$autocomplete_insensitive;

   echo 
"<tr><td align=right valign=top>\n";
   echo 
_("Autocomplete") . ":</td>\n";
   echo 
"<td><select name=autocomplete_enabled_i>";
   echo 
"<option value=None";
   if (
$autocomplete_enabled == "None")
      echo 
" SELECTED";
   echo 
">" _("Do not use autocomplete") . "</option>\n";
   if (
substr($version04) != '1.0.' || substr($version02) == '0.') {
      echo 
"<option value=Alias";
      if (
$autocomplete_enabled == "Alias")
         echo 
" SELECTED";
      echo 
">" _("Address book nicknames") . "</option>\n";
   }
   echo 
"<option value=Email";
   if (
$autocomplete_enabled == "Email")
      echo 
" SELECTED";
   echo 
">" _("Address book full names") . "</option>\n";
   if (
substr($version04) != '1.0.' || substr($version02) == '0.') {
      echo 
"<option value=Both";
      if (
$autocomplete_enabled == "Both")
         echo 
" SELECTED";
      echo 
">" _("Both nicknames and full names") . "</option>\n";
   }
   echo 
"</select> (" _("IE only") . ")<br>\n";
   echo 
"<input type=checkbox name=autocomplete_insensitive_i";
   if (
$autocomplete_insensitive)
      echo 
" CHECKED";
   echo 
"> " _("Use case-insensitive searches");
   echo 
"</td></tr>\n";
}

function 
plugin_autocomplete_display_save_do()
{
   global 
$username,$data_dir;
   global 
$autocomplete_enabled_i$autocomplete_insensitive_i;

   
compatibility_sqextractGlobalVar('autocomplete_enabled_i');
   
compatibility_sqextractGlobalVar('autocomplete_insensitive_i');

   if (isset(
$autocomplete_enabled_i)) {
      
setPref($data_dir$username'autocomplete_enabled',
         
$autocomplete_enabled_i);
   } else {
      
setPref($data_dir$username'autocomplete_enabled''');
   }
   if (isset(
$autocomplete_insensitive_i)) {
      
setPref($data_dir$username'autocomplete_insensitive'1);
   } else {
      
setPref($data_dir$username'autocomplete_insensitive'0);
   }
}


function 
plugin_autocomplete_loading_prefs_do()
{
   global 
$username,$data_dir$version;
   global 
$autocomplete_enabled$autocomplete_insensitive;

   
$autocomplete_enabled getPref($data_dir$username,
      
'autocomplete_enabled');

   
$autocomplete_insensitive getPref($data_dir$username,
      
'autocomplete_insensitive');


   if (
$autocomplete_enabled == '')
      
$autocomplete_enabled 'Alias';

   if ((
substr($version04) == "1.0." || substr($version02) == '0.') &&
       (
$autocomplete_enabled == 'Alias' || $autocomplete_enabled == 'Both'))
      
$autocomplete_enabled 'Email';


   if (
$autocomplete_insensitive == '')
      
$autocomplete_insensitive 0;
}


?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0337 ]--