<?php
/**
 *
 * Author: Steve Bourgeois <owl@bozzit.com>
 *
 * Owl Ultra Lite
 *
 * Copyright (c) 2005-2006 Bozz IT Consulting Inc
 * Licensed under the GNU GPL. For full terms see http://www.gnu.org/licenses/licenses.html#TOCGPL
 *
 */

require_once("locale/$default->language/language.inc");

function fFindFileExtension ($filename)
{
   $filesearch = explode('.', $filename);
   $extensioncounter = 0;
   while ($filesearch[$extensioncounter + 1] != null)
   {
      // pre-append a "." separator in the name for each
      // subsequent part of the the name of the file.
      if ($extensioncounter != 0)
      {
         $firstpart = $firstpart . ".";
      }
      $firstpart = $firstpart . $filesearch[$extensioncounter];
      $extensioncounter++;
   }
   if ($extensioncounter == 0)
   {
      $firstpart = $filename;
      $file_extension = '';
   }
   else
   {
      $file_extension = $filesearch[$extensioncounter];
   }
   return strtolower($file_extension);
}

function gen_filesize($file_size)
{
   global $owl_lang;

   if (ereg("[^0-9]", $file_size)) return $file_size;

   if ($file_size >= 1073741824)
   {
      $file_size = round($file_size / 1073741824 * 100) / 100 . $owl_lang->file_size_gigabyte;
   } elseif ($file_size >= 1048576)
   {
      $file_size = round($file_size / 1048576 * 100) / 100 . $owl_lang->file_size_megabyte;
   } elseif ($file_size >= 1024)
   {
      $file_size = round($file_size / 1024 * 100) / 100 . $owl_lang->file_size_kilobyte;
   }
   else
   {
      if(!empty($file_size))
      {
         $file_size = $file_size . $owl_lang->file_size_byte;
      }
      else
      {
         $file_size = "0". $owl_lang->file_size_byte;
      }
   }
   return $file_size;
}

function fShowPerms ($sFile)
{
   $perms = fileperms($sFile);

   if (($perms & 0xC000) == 0xC000) {
      // Socket
      $info = 's';
   } elseif (($perms & 0xA000) == 0xA000) {
      // Symbolic Link
      $info = 'l';
   } elseif (($perms & 0x8000) == 0x8000) {
      // Regular
      $info = '-';
   } elseif (($perms & 0x6000) == 0x6000) {
      // Block special
      $info = 'b';
   } elseif (($perms & 0x4000) == 0x4000) {
      // Directory
      $info = 'd';
   } elseif (($perms & 0x2000) == 0x2000) {
      // Character special
      $info = 'c';
   } elseif (($perms & 0x1000) == 0x1000) {
      // FIFO pipe
      $info = 'p';
   } else {
      // Unknown
      $info = 'u';
   }
   
   // Owner
   $info .= (($perms & 0x0100) ? 'r' : '-');
   $info .= (($perms & 0x0080) ? 'w' : '-');
   $info .= (($perms & 0x0040) ?
              (($perms & 0x0800) ? 's' : 'x' ) :
              (($perms & 0x0800) ? 'S' : '-'));
   
   // Group
   $info .= (($perms & 0x0020) ? 'r' : '-');
   $info .= (($perms & 0x0010) ? 'w' : '-');
   $info .= (($perms & 0x0008) ?
              (($perms & 0x0400) ? 's' : 'x' ) :
              (($perms & 0x0400) ? 'S' : '-'));
   
   // World
   $info .= (($perms & 0x0004) ? 'r' : '-');
   $info .= (($perms & 0x0002) ? 'w' : '-');
   $info .= (($perms & 0x0001) ?
              (($perms & 0x0200) ? 't' : 'x' ) :
              (($perms & 0x0200) ? 'T' : '-'));
   
   return $info;
}

function return_bytes($val) {
   $val = trim($val);
   $last = strtolower($val{strlen($val)-1});
   switch($last) {
       // The 'G' modifier is available since PHP 5.1.0
       case 'g':
           $val *= 1024;
       case 'm':
           $val *= 1024;
       case 'k':
           $val *= 1024;
   }

   return $val;
}

function myDelete($file)
{
   if (file_exists($file))
   {
      if (is_dir($file))
      {
         $handle = @opendir($file);
         while ($filename = @readdir($handle))
         {
            if ($filename != "." && $filename != "..")
            {
               myDelete($file . "/" . $filename);
            }
         }
         @closedir($handle);
         @rmdir($file);
      }
      else
      {
         @unlink($file);
      }
   }
}
function fPrintFormTextArea($rowtitle, $fieldname, $currentvalue = "" , $row = 10, $cols = 50)
{
   global $owl_lang;
   print("<tr>\n");
   print("<td class=\"form1\">$rowtitle</td>\n");
   $sExtendedHelpVar = "owl_" . $fieldname . "_extended";
   if (!empty($owl_lang->{$sExtendedHelpVar}))
   {
       $extended_help=" onmouseover=\"return makeTrue(domTT_activate(this,event,'caption','" . $rowtitle . "','content','". $owl_lang->{$sExtendedHelpVar} . "','lifetime', 3000, 'fade', 'both', 'delay', 10, 'statusText', ' ', 'trail', true))\";";
   }
   else
   {
       $extended_help="";
   }
   print("<td class=\"form1\" width=\"100%\"" . $extended_help . "><textarea class=\"ftext1\" name=\"$fieldname\" rows=\"$row\" cols=\"$cols\">$currentvalue</textarea></td>\n");
   print("</tr>\n");
}

function fPrintFormTextLine($rowtitle, $name, $size = "24", $value = "", $bytes = "", $readonly = false, $type = 'text')
{

   global $owl_lang;

   print("<tr>\n");
   print("<td class=\"form1\">");
   if(!empty($name) and $type == "text")
   {
      print("<label for=\"$name\">");
   }
   print($rowtitle);

   if(!empty($name) and $type == "text")
   {
      print("</label>");
   }
   print("</td>\n");

   $sExtendedHelpVar = "owl_" . $name . "_extended";
   if (!empty($owl_lang->{$sExtendedHelpVar}))
   {
       $extended_help=" onmouseover=\"return makeTrue(domTT_activate(this,event,'caption','" . $rowtitle . "','content','". $owl_lang->{$sExtendedHelpVar} . "','lifetime', 3000, 'fade', 'both', 'delay', 10, 'statusText', ' ', 'trail', true))\";";
   }
   else
   {
       $extended_help="";
   }
   if ($readonly)
   {
      print("<td class=\"form1\" width=\"100%\"" . $extended_help . ">$value");
      if(!empty($bytes))
      {
         print(" ($bytes)");
      }
      print("</td>\n");
   }
   else
   {
      print("<td class=\"form1\" width=\"100%\"><input class=\"finput1\" id=\"$name\" type=\"$type\" name=\"$name\" size=\"$size\" maxlength=\"255\" value=\"$value\"></input>");
      if(!empty($bytes))
      {
         print("($bytes)");
      }
      print("</td>\n");

   }
   print("</tr>\n");
}

function fPrintSubmitButton($value, $alt, $type = "submit", $name = "", $confirm_text = "", $sBtnUpClass = "fbuttonup1", $sBtnDownClass = "fbuttondown1", $tabindex = "")
{
   global $owl_lang;

   print("<input $tabindex class=\"$sBtnUpClass\" ");
   if(!empty($name))
   {
      print("name=\"$name\" ");
   }
   print("type=\"$type\" value=\"$value\" alt=\"$alt\" title=\"$alt\" onmouseover=\"highlightButton('$sBtnDownClass', this)\" onmouseout=\"highlightButton('$sBtnUpClass', this)\"");

   if(!empty($confirm_text))
   {
      print(" onclick=\"return confirm('$confirm_text');\"");
   }

   print("></input>");

}


function fGetFiles($file)
{
   global $aFileSearchArray, $sRoot;

   if (file_exists($file))
   {
      if (is_dir($file))
      {
         $sFileString = str_replace( $sRoot . "/" , "", $file);
         $sFileString = str_replace( $sRoot , "", $sFileString);
         $handle = @opendir($file);
         while ($filename = @readdir($handle))
         {
            if ($filename != "." && $filename != "..")
            { 
                fGetFiles($file . "/" . $filename);
            }
         }
         @closedir($handle);
      }
      else
      {
         $sFileString = str_replace( $sRoot . "/" , "", $file);
         $aFileSearchArray[] = str_replace( $sRoot , "", $sFileString);
      }

   }
   return $aFileSearchArray;
}
function fGetFolders($file)
{
   global $aFolderSearchArray, $sRoot;

   if (file_exists($file))
   {
      if (is_dir($file))
      {
         $sFileString = str_replace( $sRoot . "/" , "", $file);
         $sFileString = str_replace( $sRoot , "", $sFileString);
         if (!empty($sFileString))
         {
            $aFolderSearchArray[] = $sFileString;
         }

         $handle = @opendir($file);
         while ($filename = @readdir($handle))
         {
            if ($filename != "." && $filename != "..")
            { 
                fGetFolders($file . "/" . $filename);
            }
         }
         @closedir($handle);
      }
   }
   return $aFolderSearchArray;
}


function fArraySearchPreg( $find, $in_array, $keys_found=Array() )
{
   if( is_array( $in_array ) )
   {
       foreach( $in_array as $key=> $val )
       {
           if( is_array( $val ) ) 
           {
              fArraySearchPreg( $find, $val, $keys_found );
           }
           else
           {
               if( preg_match( '/'. strtolower($find) .'/', strtolower($val) ) ) 
               {
                  $keys_found[] = $key;
               }
           }
       }
       return $keys_found;
   }
   return false;
}

?>
