Changeset 16458


Ignore:
Timestamp:
Jul 7, 2012, 4:16:05 PM (12 years ago)
Author:
grum
Message:

feature:2634- compatibility with Piwigo 2.4
Update URI + small changes

Location:
extensions/GrumPluginClasses
Files:
3 deleted
12 edited

Legend:

Unmodified
Added
Removed
  • extensions/GrumPluginClasses/admin.php

    r15340 r16458  
    44  Author     : Grum
    55    email    : grum@piwigo.org
    6     website  : http://photos.grum.fr
    7     PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
     6    website  : http://www.grum.fr
    87
    98    << May the Little SpaceFrog be with you ! >>
  • extensions/GrumPluginClasses/classes/CommonPlugin.class.inc.php

    r16012 r16458  
    99  Author     : Grum
    1010    email    : grum@piwigo.org
    11     website  : http://photos.grum.fr
    12     PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
     11    website  : http://www.grum.fr
    1312
    1413    << May the Little SpaceFrog be with you ! >>
  • extensions/GrumPluginClasses/classes/GPCCss.class.inc.php

    r15352 r16458  
    1010  Author     : Grum
    1111    email    : grum@piwigo.org
    12     website  : http://photos.grum.fr
    13     PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
     12    website  : http://www.grum.fr
    1413
    1514    << May the Little SpaceFrog be with you ! >>
  • extensions/GrumPluginClasses/classes/GPCRequestBuilder.class.inc.php

    r16012 r16458  
    99  Author     : Grum
    1010    email    : grum@piwigo.org
    11     website  : http://photos.grum.com
    12     PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
     11    website  : http://www.grum.fr
    1312
    1413    << May the Little SpaceFrog be with you ! >>
  • extensions/GrumPluginClasses/classes/GPCUserAgent.class.inc.php

    r16012 r16458  
    55class GPCUserAgent
    66{
     7  /**
     8   * parse a user agent string and return an array of normalized informations
     9   *
     10   * returned:
     11   *  array(
     12   *    'os'               => (integer)
     13   *    'os_version'       => (string)
     14   *    'browser'          => (integer)
     15   *    'browser_name'     => (string)
     16   *    'browser_type'     => (integer)
     17   *    'browser_version'  => (string)
     18   *    'engine'           => (integer)
     19   *    'engine_version'   => (string)
     20   *  )
     21   *
     22   * @param String $userAgent
     23   * @return Array
     24   */
    725  static public function parse($userAgent)
    826  {
     
    1028
    1129    $returned=array(
    12       'os' => '',
    13       'os_version' => '',
    14 
    15       'browser' => '',
    16       'browser_name' => '',
    17       'browser_type' => '',
    18       'browser_version' => '',
    19 
    20       'engine' => '',
    21       'engine_version' => ''
     30      UA_DATA_OS              => UA_OS_UNKNOWN,
     31      UA_DATA_OS_VERSION      => '',
     32
     33      UA_DATA_BROWSER         => UA_BOT_UNKNOWN,
     34      UA_DATA_BROWSER_NAME    => '',
     35      UA_DATA_BROWSER_TYPE    => UA_PROP_TYPE_UNKNOWN,
     36      UA_DATA_BROWSER_VERSION => '',
     37
     38      UA_DATA_ENGINE          => UA_ENGINE_UNKNOWN,
     39      UA_DATA_ENGINE_VERSION => ''
    2240    );
    2341
    2442    $bot=self::getBot($userAgent);
    25     if($bot['crawler']!=='')
    26     {
    27       $returned['browser']=$bot['crawler'];
    28       $returned['browser_name']=$bot['name'];
    29       $returned['browser_type']=UA_PROP_TYPE_CRAWLER;
    30       $returned['browser_version']=str_replace(array(';', '(', ')'), array('', '', ''), $bot['version']);
     43    if($bot[UA_DATA_BROWSER]!=='')
     44    {
     45      $returned[UA_DATA_BROWSER]=$bot[UA_DATA_BROWSER];
     46      $returned[UA_DATA_BROWSER_TYPE]=UA_BROWSER_TYPE_CRAWLER;
     47      $returned[UA_DATA_BROWSER_VERSION]=str_replace(array(';', '(', ')'), array('', '', ''), $bot[UA_DATA_BROWSER_VERSION]);
    3148      return($returned);
    3249    }
    3350
    3451    $tmp=self::getBrowser($userAgent);
    35     $returned['browser']=$tmp['browser'];
    36     $returned['browser_name']=$tmp['name'];
    37     $returned['browser_type']=$UA_BrowserInfo[UA_DATA_BROWSER][$tmp['browser']][UA_PROP_TYPE];
    38     $returned['browser_version']=str_replace(array(';', '(', ')'), array('', '', ''), $tmp['version']);
     52    $returned[UA_DATA_BROWSER]=$tmp[UA_DATA_BROWSER];
     53    $returned[UA_DATA_BROWSER_TYPE]=$UA_BrowserInfo[UA_DATA_BROWSER][$tmp[UA_DATA_BROWSER]][UA_PROP_TYPE];
     54    $returned[UA_DATA_BROWSER_VERSION]=str_replace(array(';', '(', ')'), array('', '', ''), $tmp[UA_DATA_BROWSER_VERSION]);
    3955
    4056    $tmp=self::getOs($userAgent);
    41     $returned['os']=$tmp['os'];
    42     $returned['os_version']=str_replace(array(';', '(', ')'), array('', '', ''), $tmp['version']);
     57    $returned[UA_DATA_OS]=$tmp[UA_DATA_OS];
     58    $returned[UA_DATA_OS_VERSION]=str_replace(array(';', '(', ')'), array('', '', ''), $tmp[UA_DATA_OS_VERSION]);
    4359
    4460    $tmp=self::getEngine($userAgent);
    45     $returned['engine']=$tmp['engine'];
    46     $returned['engine_version']=str_replace(array(';', '(', ')'), array('', '', ''), $tmp['version']);
     61    $returned[UA_DATA_ENGINE]=$tmp[UA_DATA_ENGINE];
     62    $returned[UA_DATA_ENGINE_VERSION]=str_replace(array(';', '(', ')'), array('', '', ''), $tmp[UA_DATA_ENGINE_VERSION]);
     63
     64    // explicit OS for mobile device override the browser type
     65    if($returned[UA_DATA_OS]==UA_OS_BLACKBERRY or
     66        $returned[UA_DATA_OS]==UA_OS_SYMBIAN_OS or
     67        $returned[UA_DATA_OS]==UA_OS_SYMBOS or
     68        $returned[UA_DATA_OS]==UA_OS_ANDROID or
     69        $returned[UA_DATA_OS]==UA_OS_IOS) $returned[UA_DATA_BROWSER_TYPE]=UA_BROWSER_TYPE_MOBILE;
     70
     71    // explicit OS for console device override the browser type
     72    if($returned[UA_DATA_OS]==UA_OS_NINTENDO_DS or
     73        $returned[UA_DATA_OS]==UA_OS_NINTENDO_WII or
     74        $returned[UA_DATA_OS]==UA_OS_SONY_PS3 or
     75        $returned[UA_DATA_OS]==UA_OS_SONY_PSP) $returned[UA_DATA_BROWSER_TYPE]=UA_BROWSER_TYPE_CONSOLE;
     76
     77    return($returned);
     78  }
     79
     80
     81  /**
     82   * from a user agent array properties, return an array completed with associated
     83   * properties
     84   *
     85   * @param Array $userAgent
     86   * @return Array
     87   */
     88  static public function getProperties($userAgent)
     89  {
     90    global $UA_BrowserInfo;
     91
     92    $returned=array();
     93    if(isset($userAgent[UA_DATA_BROWSER]) and isset($UA_BrowserInfo[UA_DATA_BROWSER][$userAgent[UA_DATA_BROWSER]]))
     94    {
     95      $returned[UA_DATA_BROWSER]=$userAgent[UA_DATA_BROWSER];
     96      $returned[UA_DATA_BROWSER_NAME]=$UA_BrowserInfo[UA_DATA_BROWSER][$userAgent[UA_DATA_BROWSER]][UA_PROP_NAME];
     97      $returned[UA_DATA_BROWSER_URL]=$UA_BrowserInfo[UA_DATA_BROWSER][$userAgent[UA_DATA_BROWSER]][UA_PROP_URL];
     98    }
     99
     100    if(!isset($userAgent[UA_DATA_BROWSER_TYPE]) and isset($userAgent[UA_DATA_BROWSER]))
     101      $userAgent[UA_DATA_BROWSER_TYPE]=$UA_BrowserInfo[UA_DATA_BROWSER][$userAgent[UA_DATA_BROWSER]][UA_PROP_TYPE];
     102
     103    if(isset($userAgent[UA_DATA_BROWSER_TYPE]) and isset($UA_BrowserInfo[UA_DATA_BROWSER_TYPE][$userAgent[UA_DATA_BROWSER_TYPE]]))
     104    {
     105      $returned[UA_DATA_BROWSER_TYPE]=$userAgent[UA_DATA_BROWSER_TYPE];
     106      $returned[UA_DATA_BROWSER_TYPE_NAME]=$UA_BrowserInfo[UA_DATA_BROWSER_TYPE][$userAgent[UA_DATA_BROWSER_TYPE]];
     107    }
     108
     109
     110    if(isset($userAgent[UA_DATA_OS]) and isset($UA_BrowserInfo[UA_DATA_OS][$userAgent[UA_DATA_OS]]))
     111    {
     112      $returned[UA_DATA_OS]=$userAgent[UA_DATA_OS];
     113      $returned[UA_DATA_OS_NAME]=$UA_BrowserInfo[UA_DATA_OS][$userAgent[UA_DATA_OS]][UA_PROP_NAME];
     114      $returned[UA_DATA_OS_URL]=$UA_BrowserInfo[UA_DATA_OS][$userAgent[UA_DATA_OS]][UA_PROP_URL];
     115    }
     116
     117    if(isset($userAgent[UA_DATA_ENGINE]) and isset($UA_BrowserInfo[UA_DATA_ENGINE][$userAgent[UA_DATA_ENGINE]]))
     118    {
     119      $returned[UA_DATA_ENGINE]=$userAgent[UA_DATA_ENGINE];
     120      $returned[UA_DATA_ENGINE_NAME]=$UA_BrowserInfo[UA_DATA_ENGINE][$userAgent[UA_DATA_ENGINE]][UA_PROP_NAME];
     121      $returned[UA_DATA_ENGINE_URL]=$UA_BrowserInfo[UA_DATA_ENGINE][$userAgent[UA_DATA_ENGINE]][UA_PROP_URL];
     122    }
    47123
    48124    return($returned);
     
    89165      '(ichiro)\/(\S*)\('                               => UA_BOT_ICHIRO,
    90166      '(ichiro)(?:\/(\S*))*'                            => UA_BOT_ICHIRO,
     167      '(l.webis)(?:\/(\S*))*'                           => UA_BOT_LWEBIS,
     168      '(larbin)'                                        => UA_BOT_LARBIN,
     169      '(linkwalker)(?:\/(\S*))*'                        => UA_BOT_LINKWALKER,
     170      '(lwp-trivial)(?:\/(\S*))*'                       => UA_BOT_LWPTRIVIAL,
     171      '(mabontland)'                                    => UA_BOT_MABONLAND,
     172      '(mnogosearch)'                                   => UA_BOT_MNOGOSEARCH,
     173      '(mogimogi)(?:\/(\S*))*'                          => UA_BOT_MOGIMOGI,
     174      '(morning\spaper)'                                => UA_BOT_MORNINGPAPER,
     175      '(netresearchserver)\/(\S*)\('                    => UA_BOT_NETRESEARCHSERVER,
     176      '(netresearchserver)(?:\/(\S*))*'                 => UA_BOT_NETRESEARCHSERVER,
     177      '(newsgator)(?:\/(\S*))*'                         => UA_BOT_NEWSGATOR,
     178      '(ng-search)(?:\/(\S*))*'                         => UA_BOT_NGSEARCH,
     179      '(nymesis)(?:\/(\S*))*'                           => UA_BOT_NYMESIS,
     180      '(oegp)'                                          => UA_BOT_OEGP,
     181      '(pompos)(?:\/(\S*))*'                            => UA_BOT_POMPOS,
     182      '(pycurl)(?:\/(\S*))*'                            => UA_BOT_PYCURL,
     183      '(qseero)'                                        => UA_BOT_QSEERO,
     184      '(sbider)(?:\/(\S*))*'                            => UA_BOT_SBIDER,
     185      '(scoutjet)'                                      => UA_BOT_SCOUTJET,
     186      '(scrubby)(?:\/(\S*))*'                           => UA_BOT_SCRUBBY,
     187      '(searchsight)(?:\/(\S*))*'                       => UA_BOT_SEARCHSIGHT,
     188      '(semanticdiscovery)(?:\/(\S*))*'                 => UA_BOT_SEMANTICDISCOVERY,
     189
     190      '(shoula)'                                        => UA_BOT_SHOULA,
     191      '(snappy)(?:\/(\S*))*'                            => UA_BOT_SNAPPY,
     192      '(stackrambler)(?:\/(\S*))*'                      => UA_BOT_STACKRAMBLER,
     193      '(silk)(?:\/(\S*))*'                              => UA_BOT_SILK,
     194      '(teoma)'                                         => UA_BOT_TEOMA,
     195      '(tineye)(?:\/(\S*))*'                            => UA_BOT_TINEYE,
     196      '(truwogps)(?:\/(\S*))*'                          => UA_BOT_TRUWOGPS,
     197      '(updated)(?:\/(\S*))*'                           => UA_BOT_UPDATED,
     198      '(voyager)(?:\/(\S*))*'                           => UA_BOT_VOYAGER,
     199      '(vyu2)'                                          => UA_BOT_VYU2,
     200      '(webcollage)(?:\/(\S*))*'                        => UA_BOT_WEBCOLLAGE,
     201      '(yooglifetchagent)(?:\/(\S*))*'                  => UA_BOT_YOOGLIFETCHAGENT,
     202      '(zao)(?:\/(\S*))*'                               => UA_BOT_ZAO,
     203      '(zealbot)'                                       => UA_BOT_ZEALBOT,
    91204      '(baiduspider)'                                   => UA_BOT_BAIDU,
    92205      '(msnbot)\/(\d+(?:\.\d+)*)'                       => UA_BOT_MSN_SEARCH,
     206      '(msnbot)\s(\d+(?:\.\d+)*)'                       => UA_BOT_MSN_SEARCH,
    93207      '(exabot)\/(\d+(?:\.\d+)*)'                       => UA_BOT_EXALEAD,
    94208      '(gamespyhttp)\/(\d+(?:\.\d+)*)'                  => UA_BOT_GAMESPY,
     
    96210      '(inktomi)'                                       => UA_BOT_INKTOMI,
    97211      '(Yahoo! Slurp)'                                  => UA_BOT_YAHOO_SEARCH,
     212      '(yahooseeker)'                                   => UA_BOT_YAHOO_SEARCH,
    98213      '\s*([a-z]*(?:bot|spyder|crawl|crawler|spider)[a-z]*)'  => UA_BOT_UNKNOWN
    99214    );
    100215
    101216    $returned=array(
    102       'crawler' => '',
    103       'name' => '',
    104       'version' => ''
     217      UA_DATA_BROWSER => '',
     218      //'name' => '',
     219      UA_DATA_BROWSER_VERSION => ''
    105220    );
    106221
     
    110225      if(preg_match('/'.$regExp.'/i',$userAgent,$result))
    111226      {
     227        // exclude some case
     228        if($crawler==UA_BOT_UNKNOWN and preg_match('/(?:msiecrawler)/i', $userAgent))
     229          return($returned);
     230
    112231        $returned=array(
    113           'crawler' => $crawler,
    114           'name' => $result[1],
    115           'version' => isset($result[2])?$result[2]:''
     232          UA_DATA_BROWSER => $crawler,
     233          //'name' => $result[1], #retrieved from the code
     234          UA_DATA_BROWSER_VERSION => isset($result[2])?$result[2]:''
    116235        );
    117236        return($returned);
     
    180299      '(chrome)\/(\S*)'                                       => UA_BROWSER_CHROME,
    181300      '(epiphany)\/(\S*)'                                     => UA_BROWSER_EPIPHANY,
     301      '(epiphany)'                                            => UA_BROWSER_EPIPHANY,
    182302      '(galeon)\/(\S*)'                                       => UA_BROWSER_GALEON,
    183303      '(orca)\/(\S*)'                                         => UA_BROWSER_ORCA,
     
    203323
    204324    $returned=array(
    205       'browser' => UA_BROWSER_UNKNOWN,
    206       'name' => '',
    207       'version' => ''
     325      UA_DATA_BROWSER => UA_BROWSER_UNKNOWN,
     326      //'name' => '',
     327      UA_DATA_BROWSER_VERSION => ''
    208328    );
    209329
     
    214334      {
    215335        //echo print_r($userAgent, true).print_r($result, true);
    216         if(is_array($result) and count($result)>2)
     336        if(is_array($result) and count($result)>=2)
    217337        {
    218338          if($browser==UA_BROWSER_SAFARI and preg_match('/iphone|ipad|ipod/i', $userAgent))
     
    220340
    221341          $returned=array(
    222             'browser' => $browser,
    223             'name' => $result[1],
    224             'version' => isset($result[2])?$result[2]:''
     342            UA_DATA_BROWSER => $browser,
     343            //'name' => $result[1],
     344            UA_DATA_BROWSER_VERSION => isset($result[2])?$result[2]:''
    225345          );
    226346        }
     
    228348        {
    229349          $returned=array(
    230             'browser' => UA_BROWSER_UNKNOWN,
    231             'name' => '',
    232             'version' => ''
     350            UA_DATA_BROWSER => UA_BROWSER_UNKNOWN,
     351            //'name' => '',
     352            UA_DATA_BROWSER_VERSION => ''
    233353          );
    234354        }
     
    257377      '(sunos)'                                               => UA_OS_SUNOS,
    258378      '(blackberry)\s?([^;.]*);'                              => UA_OS_BLACKBERRY,
     379      '(blackberry)'                                          => UA_OS_BLACKBERRY,
    259380      '(symbianos)'                                           => UA_OS_SYMBIAN_OS,
    260381      '(symbos)'                                              => UA_OS_SYMBOS,
     
    267388      '(windows)\s?(\S*)[\;\)]'                               => UA_OS_WINDOWS,
    268389      '(windows)\s?(\S*)'                                     => UA_OS_WINDOWS,
     390      '(winnt)'                                               => UA_OS_WINDOWS,
     391      '(win98)'                                               => UA_OS_WINDOWS,
     392      '(win95)'                                               => UA_OS_WINDOWS,
    269393      '(mac_powerpc)'                                         => UA_OS_MACINTOSH,
    270394      '(cpu\siphone\sos)\s?(\S*)'                             => UA_OS_IOS,
     
    276400      '(playstation\s3)'                                      => UA_OS_SONY_PS3,
    277401      '(playstation\sportable)'                               => UA_OS_SONY_PSP,
    278       '(nintendo\sds)'                                        => UA_OS_NINTENDO_DS
    279 
     402      '(nintendo\sds)'                                        => UA_OS_NINTENDO_DS,
     403      '(cros)(?:\s*i\d*)(?:\s(\S*))'                          => UA_OS_CHROME_OS,
     404      '(cros)'                                                => UA_OS_CHROME_OS,
     405      '(beos)'                                                => UA_OS_BE_OS,
     406      '(dragonfly)'                                           => UA_OS_DRAGONFLY,
     407      '(unix)'                                                => UA_OS_UNIX,
     408      '(darwin)'                                              => UA_OS_DARWIN,
     409      '(macintosh)'                                           => UA_OS_MACINTOSH,
     410      '(fedora)'                                              => UA_OS_LINUX,
     411      '(os\/2).*(warp(?:\s\S*));'                             => UA_OS_OS2,
     412      '(os\/2)'                                               => UA_OS_OS2,
     413      '(amigaos)(?:\s(\S*))'                                  => UA_OS_AMIGAOS,
     414      '(amigaos)'                                             => UA_OS_AMIGAOS
    280415    );
    281416
    282417    $returned=array(
    283       'os' => UA_OS_UNKNOWN,
    284       'name' => '',
    285       'version' => ''
     418      UA_DATA_OS => UA_OS_UNKNOWN,
     419      //'name' => '',
     420      UA_DATA_OS_VERSION => ''
    286421    );
    287422
     
    292427      {
    293428        $returned=array(
    294           'os' => $os,
    295           'name' => $result[1],
    296           'version' => isset($result[2])?$result[2]:''
     429          UA_DATA_OS => $os,
     430          //'name' => $result[1],
     431          UA_DATA_OS_VERSION => isset($result[2])?$result[2]:''
    297432        );
    298433        switch($os)
    299434        {
    300435          case UA_OS_WINDOWS:
    301             switch($returned['version'])
     436            switch($returned[UA_DATA_OS_VERSION])
    302437            {
    303438              case 'NT 5.0':
     
    338473  {
    339474    $engineList=array(
    340       '(presto)\/(\S*)'           => UA_ENGINE_PRESTO,
    341       '(gecko)\/(\S*)'            => UA_ENGINE_GECKO,
    342       '(applewebkit)\/(\S*)'      => UA_ENGINE_APPLEWEBKIT,
    343       '(webkit)\/(\S*)'           => UA_ENGINE_WEBKIT,
    344       '(khtml)\/(\S*)'            => UA_ENGINE_KHTML,
    345       '(trident)\/(\S*)'          => UA_ENGINE_TRIDENT
     475      '(presto)(?:\/(\S*))*'           => UA_ENGINE_PRESTO,
     476      '(applewebkit)(?:\/(\S*))*'      => UA_ENGINE_APPLEWEBKIT,
     477      '(webkit)(?:\/(\S*))*'           => UA_ENGINE_WEBKIT,
     478      '(khtml)(?:\/(\S*))*'            => UA_ENGINE_KHTML,
     479      '(gecko)(?:\/(\S*))*'            => UA_ENGINE_GECKO,
     480      '(trident)(?:\/(\S*))*'          => UA_ENGINE_TRIDENT
    346481    );
    347482
    348483    $returned=array(
    349       'engine' => UA_ENGINE_UNKNOWN,
    350       'name' => '',
    351       'version' => ''
     484      UA_DATA_ENGINE => UA_ENGINE_UNKNOWN,
     485      //'name' => '',
     486      UA_DATA_ENGINE_VERSION => ''
    352487    );
    353488
     
    358493      {
    359494        $returned=array(
    360           'engine' => $engine,
    361           'name' => $result[1],
    362           'version' => isset($result[2])?$result[2]:''
     495          UA_DATA_ENGINE => $engine,
     496          //'name' => $result[1],
     497          UA_DATA_ENGINE_VERSION => isset($result[2])?$result[2]:''
    363498        );
    364499        return($returned);
     
    368503    return($returned);
    369504  }
    370 
    371 
    372 }
     505} // GPCUserAgent class
    373506
    374507
  • extensions/GrumPluginClasses/classes/GPCUserAgent.const.inc.php

    r16012 r16458  
    55 * Data types : bot, browser, engine, os
    66 */
    7 define('UA_DATA',                     0x00);
    8 
    9 define('UA_DATA_BROWSER',             0x01);
    10 define('UA_DATA_ENGINE',              0x02);
    11 define('UA_DATA_OS',                  0x03);
    12 define('UA_DATA_BOT',                 0x04);
    13 
    14 define('UA_DATA_PROP_NAME',           0x10);
     7define('UA_DATA',                     0x0000);
     8
     9define('UA_DATA_BROWSER',             0x0001);
     10define('UA_DATA_ENGINE',              0x0002);
     11define('UA_DATA_OS',                  0x0003);
     12
     13define('UA_DATA_BROWSER_NAME',        0x0011);
     14define('UA_DATA_OS_NAME',             0x0012);
     15define('UA_DATA_ENGINE_NAME',         0x0013);
     16
     17define('UA_DATA_BROWSER_VERSION',     0x0021);
     18define('UA_DATA_ENGINE_VERSION',      0x0022);
     19define('UA_DATA_OS_VERSION',          0x0023);
     20
     21define('UA_DATA_BROWSER_TYPE',        0x0031);
     22define('UA_DATA_BROWSER_TYPE_NAME',   0x0131);
     23define('UA_DATA_OS_TYPE',             0x0033);
     24define('UA_DATA_OS_TYPE_NAME',        0x0133);
     25
     26define('UA_DATA_BROWSER_URL',         0x0041);
     27define('UA_DATA_ENGINE_URL',          0x0042);
     28define('UA_DATA_OS_URL',              0x0043);
     29
     30
    1531
    1632/**
     
    2339
    2440/**
    25  * -- UA_PROP_TYPE --
    26  * Indexes for UA_PROP_TYPE information (computer, mobile, console, ...)
    27  */
    28 define('UA_PROP_TYPE_UNKNOWN',          0x00);
    29 define('UA_PROP_TYPE_BROWSER_COMPUTER', 0x01);
    30 define('UA_PROP_TYPE_BROWSER_MOBILE',   0x02);
    31 define('UA_PROP_TYPE_BROWSER_CONSOLE',  0x03);
    32 define('UA_PROP_TYPE_CRAWLER',          0x04);
     41 * -- UA_DATA_BROWSER_TYPE --
     42 * Indexes for UA_DATA_BROWSER_TYPE information (computer, mobile, console, ...)
     43 */
     44define('UA_BROWSER_TYPE_UNKNOWN',   0x00);
     45define('UA_BROWSER_TYPE_COMPUTER', 0x01);
     46define('UA_BROWSER_TYPE_MOBILE',    0x02);
     47define('UA_BROWSER_TYPE_CONSOLE',   0x03);
     48define('UA_BROWSER_TYPE_CRAWLER',   0x04);
    3349
    3450/**
     
    6278define('UA_BOT_INKTOMI',              0x0018);
    6379define('UA_BOT_YAHOO_SEARCH',         0x0019);
    64 define('UA_BOT_ACCOONA_AI_AGENT',     0x0020);
     80define('UA_BOT_ACCOONA_AI_AGENT',     0x001A);
     81define('UA_BOT_LWEBIS',               0x001B);
     82define('UA_BOT_LARBIN',               0x001C);
     83define('UA_BOT_LINKWALKER',           0x001D);
     84define('UA_BOT_LWPTRIVIAL',           0x001E);
     85define('UA_BOT_MABONLAND',            0x001F);
     86define('UA_BOT_MNOGOSEARCH',          0x0020);
     87define('UA_BOT_MOGIMOGI',             0x0021);
     88define('UA_BOT_MORNINGPAPER',         0x0022);
     89define('UA_BOT_NETRESEARCHSERVER',    0x0023);
     90define('UA_BOT_NEWSGATOR',            0x0024);
     91define('UA_BOT_NGSEARCH',             0x0025);
     92define('UA_BOT_NYMESIS',              0x0026);
     93define('UA_BOT_OEGP',                 0x0027);
     94define('UA_BOT_POMPOS',               0x0028);
     95define('UA_BOT_PYCURL',               0x0029);
     96define('UA_BOT_QSEERO',               0x002A);
     97define('UA_BOT_SBIDER',               0x002B);
     98define('UA_BOT_SCOUTJET',             0x002C);
     99define('UA_BOT_SCRUBBY',              0x002D);
     100define('UA_BOT_SEARCHSIGHT',          0x002E);
     101define('UA_BOT_SEMANTICDISCOVERY',    0x002F);
     102define('UA_BOT_SHOULA',               0x0030);
     103define('UA_BOT_SNAPPY',               0x0031);
     104define('UA_BOT_STACKRAMBLER',         0x0032);
     105define('UA_BOT_SILK',                 0x0033);
     106define('UA_BOT_TEOMA',                0x0034);
     107define('UA_BOT_TINEYE',               0x0035);
     108define('UA_BOT_TRUWOGPS',             0x0036);
     109define('UA_BOT_UPDATED',              0x0037);
     110define('UA_BOT_VOYAGER',              0x0038);
     111define('UA_BOT_VYU2',                 0x0039);
     112define('UA_BOT_WEBCOLLAGE',           0x003A);
     113define('UA_BOT_YOOGLIFETCHAGENT',     0x003B);
     114define('UA_BOT_ZAO',                  0x003C);
     115define('UA_BOT_ZEALBOT',              0x003D);
     116
    65117
    66118/**
     
    142194define('UA_OS_SONY_PS3',              0x10);
    143195define('UA_OS_SONY_PSP',              0x11);
     196define('UA_OS_CHROME_OS',             0x12);
     197define('UA_OS_BE_OS',                 0x13);
     198define('UA_OS_DRAGONFLY',             0x14);
     199define('UA_OS_UNIX',                  0x15);
     200define('UA_OS_DARWIN',                0x16);
     201define('UA_OS_OS2',                   0x17);
     202define('UA_OS_AMIGAOS',               0x18);
     203
     204
     205/**
     206 * -- UA_OS_TYPE --
     207 * Known OS type
     208 */
     209define('UA_OS_TYPE_UNKNOWN',          0x00);
     210define('UA_OS_TYPE_LINUX',            0x01);
     211define('UA_OS_TYPE_BSD',              0x02);
     212define('UA_OS_TYPE_UNIX',             0x03);
     213define('UA_OS_TYPE_WINDOWS',          0x04);
     214define('UA_OS_TYPE_OS2',              0x05);
     215
     216
    144217
    145218/**
     
    157230$UA_BrowserInfo=array(
    158231  UA_DATA => array(
    159             UA_DATA_BOT     => array(UA_PROP_NAME => 'Robot'),
    160232            UA_DATA_BROWSER => array(UA_PROP_NAME => 'Browser'),
    161233            UA_DATA_ENGINE  => array(UA_PROP_NAME => 'Engine'),
     
    163235          ),
    164236  UA_DATA_BROWSER=> array(
    165             UA_BOT_UNKNOWN           => array(UA_PROP_NAME => 'Unknown',              UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    166 
    167             UA_BOT_008               => array(UA_PROP_NAME => '008',                  UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    168             UA_BOT_ABACHOBOT         => array(UA_PROP_NAME => 'ABACHOBot',            UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    169             UA_BOT_ACCOONA_AI_AGENT  => array(UA_PROP_NAME => 'Accoona-AI-Agent',     UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    170             UA_BOT_ARACHMO           => array(UA_PROP_NAME => 'Arachmo',              UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    171             UA_BOT_BLITZBOT          => array(UA_PROP_NAME => 'BlitzBOT',             UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    172             UA_BOT_MICROSOFT_BING    => array(UA_PROP_NAME => 'Microsoft Bing',       UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    173             UA_BOT_CHARLOTTE         => array(UA_PROP_NAME => 'Charlotte',            UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    174             UA_BOT_CERBERIAN_DRTRS   => array(UA_PROP_NAME => 'Cerberian Drtrs',      UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    175             UA_BOT_COSMOS            => array(UA_PROP_NAME => 'Cosmos',               UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    176             UA_BOT_COVARIO_IDS       => array(UA_PROP_NAME => 'Covario IDS',          UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    177             UA_BOT_DATAPARKSEARCH    => array(UA_PROP_NAME => 'DataparkSearch',       UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    178             UA_BOT_GAISBOT           => array(UA_PROP_NAME => 'Gaisbot',              UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    179             UA_BOT_GOOGLE            => array(UA_PROP_NAME => 'Google',               UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    180             UA_BOT_GURUJIBOT         => array(UA_PROP_NAME => 'GurujiBot',            UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    181             UA_BOT_HOLMES            => array(UA_PROP_NAME => 'Holmes',               UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    182             UA_BOT_HTDIG             => array(UA_PROP_NAME => 'htdig',                UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    183             UA_BOT_IA_ARCHIVER       => array(UA_PROP_NAME => 'ia_archiver',          UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    184             UA_BOT_ICCRAWLER         => array(UA_PROP_NAME => 'iCCrawler',            UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    185             UA_BOT_ICHIRO            => array(UA_PROP_NAME => 'Ichiro',               UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    186             UA_BOT_BAIDU             => array(UA_PROP_NAME => 'Baidu',                UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    187             UA_BOT_MSN_SEARCH        => array(UA_PROP_NAME => 'Microsoft MSN Search', UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    188             UA_BOT_EXALEAD           => array(UA_PROP_NAME => 'Exalead',              UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    189             UA_BOT_GAMESPY           => array(UA_PROP_NAME => 'GameSpy',              UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    190             UA_BOT_INKTOMI           => array(UA_PROP_NAME => 'Inktomi',              UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    191             UA_BOT_YAHOO_SEARCH      => array(UA_PROP_NAME => 'Yahoo! Search',        UA_PROP_TYPE=>UA_PROP_TYPE_CRAWLER, UA_PROP_URL => ''),
    192 
    193 
    194             UA_BROWSER_UNKNOWN       => array(UA_PROP_NAME => 'Unknown',              UA_PROP_TYPE=>UA_PROP_TYPE_UNKNOWN, UA_PROP_URL => ''),
    195 
    196             UA_BROWSER_ANDROID_WEBKIT=> array(UA_PROP_NAME => 'Android WebKit Browser',  UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => ''),
    197             UA_BROWSER_OPERA_MINI    => array(UA_PROP_NAME => 'Opera Mini',              UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => 'http://www.opera.com/'),
    198             UA_BROWSER_OPERA_MOBILE  => array(UA_PROP_NAME => 'Opera Mobile',            UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => 'http://www.opera.com/'),
    199             UA_BROWSER_BLACKBERRY    => array(UA_PROP_NAME => 'BlackBerry',              UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => 'http://worldwide.blackberry.com/'),
    200             UA_BROWSER_FENNEC        => array(UA_PROP_NAME => 'Fennec',                  UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => ''),
    201             UA_BROWSER_GOBROWSER     => array(UA_PROP_NAME => 'Go Browser',              UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => 'http://www.3g.cn/'),
    202             UA_BROWSER_IEMOBILE      => array(UA_PROP_NAME => 'IE Mobile',               UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => ''),
    203             UA_BROWSER_IRIS          => array(UA_PROP_NAME => 'Iris',                    UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => 'http://www.torchmobile.com/'),
    204             UA_BROWSER_MAEMO_BROWSER => array(UA_PROP_NAME => 'Maemo Browser',           UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => ''),
    205             UA_BROWSER_MIB           => array(UA_PROP_NAME => 'MIB',                     UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => 'http://www.useragentstring.com/pages/MIB/www.motorola.com'),
    206             UA_BROWSER_MINIMO        => array(UA_PROP_NAME => 'Minimo',                  UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => ''),
    207             UA_BROWSER_NETFRONT      => array(UA_PROP_NAME => 'NetFront',                UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => 'http://www.access-company.com/'),
    208             UA_BROWSER_SEMC          => array(UA_PROP_NAME => 'SEMC-Browser',            UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => ''),
    209             UA_BROWSER_TEASHARK      => array(UA_PROP_NAME => 'TeaShark',                UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => ''),
    210             UA_BROWSER_SKYFIRE       => array(UA_PROP_NAME => 'Skyfire',                 UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => ''),
    211 
    212             UA_BROWSER_PS3           => array(UA_PROP_NAME => 'Playstation 3',           UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_CONSOLE, UA_PROP_URL => ''),
    213             UA_BROWSER_PSP           => array(UA_PROP_NAME => 'Playstation Portable',    UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_CONSOLE, UA_PROP_URL => ''),
    214             UA_BROWSER_BUNJALLOO     => array(UA_PROP_NAME => 'Bunjalloo',               UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_CONSOLE, UA_PROP_URL => ''),
    215             UA_BROWSER_OPERA_WII     => array(UA_PROP_NAME => 'Opera',                   UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_CONSOLE, UA_PROP_URL => ''),
    216 
    217             UA_BROWSER_OPERA         => array(UA_PROP_NAME => 'Opera',                  UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => 'http://www.opera.com/'),
    218             UA_BROWSER_SHIIRA        => array(UA_PROP_NAME => 'Shiira',                 UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => 'http://shiira.jp/en'),
    219             UA_BROWSER_THUNDERBIRD   => array(UA_PROP_NAME => 'Thunderbird',            UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    220             UA_BROWSER_NAMOROKA      => array(UA_PROP_NAME => 'Namoroka',               UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => 'https://wiki.mozilla.org/Firefox/Namoroka'),
    221             UA_BROWSER_MINEFIELD     => array(UA_PROP_NAME => 'Minefield',              UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => 'http://www.mozilla.org/projects/minefield/'),
    222             UA_BROWSER_LUNASCAPE     => array(UA_PROP_NAME => 'Lunascape',              UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    223             UA_BROWSER_ARORA         => array(UA_PROP_NAME => 'Arora',                  UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    224             UA_BROWSER_CAMINO        => array(UA_PROP_NAME => 'Camino',                 UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => 'http://caminobrowser.org/'),
    225             UA_BROWSER_KAPIKO        => array(UA_PROP_NAME => 'Kapiko',                 UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => 'http://ufoxlab.googlepages.com/cooperation'),
    226             UA_BROWSER_KAZEHAKAZE    => array(UA_PROP_NAME => 'Kazehakase',             UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    227             UA_BROWSER_CHROMEPLUS    => array(UA_PROP_NAME => 'ChromePlus',             UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    228             UA_BROWSER_CHROME        => array(UA_PROP_NAME => 'Chrome',                 UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => 'http://www.google.com/chrome'),
    229             UA_BROWSER_EPIPHANY      => array(UA_PROP_NAME => 'Epiphany',               UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    230             UA_BROWSER_GALEON        => array(UA_PROP_NAME => 'Galeon',                 UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    231             UA_BROWSER_ORCA          => array(UA_PROP_NAME => 'Orca',                   UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    232             UA_BROWSER_LOBO          => array(UA_PROP_NAME => 'Lobo',                   UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    233             UA_BROWSER_SEAMONKEY     => array(UA_PROP_NAME => 'SeaMonkey',              UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    234             UA_BROWSER_MIDORI        => array(UA_PROP_NAME => 'Midori',                 UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    235             UA_BROWSER_MAXTHON       => array(UA_PROP_NAME => 'Maxthon',                UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    236             UA_BROWSER_ICEAPE        => array(UA_PROP_NAME => 'Iceape',                 UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    237             UA_BROWSER_ICEWEASEL     => array(UA_PROP_NAME => 'Iceweasel',              UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    238             UA_BROWSER_NETSCAPE      => array(UA_PROP_NAME => 'Netscape',               UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    239             UA_BROWSER_FIREBIRD      => array(UA_PROP_NAME => 'Firebird',               UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    240             UA_BROWSER_FIREFOX       => array(UA_PROP_NAME => 'Firefox',                UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => 'http://www.firefox.com/'),
    241             UA_BROWSER_INTERNET_EXPLORER=> array(UA_PROP_NAME => 'Internet Explorer',   UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => 'http://www.getthunderbird.com/'),
    242             UA_BROWSER_KONQUEROR     => array(UA_PROP_NAME => 'Konqueror',              UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    243             UA_BROWSER_LINKS         => array(UA_PROP_NAME => 'Links',                  UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    244             UA_BROWSER_LYNX          => array(UA_PROP_NAME => 'Lynx',                   UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    245             UA_BROWSER_SAFARI        => array(UA_PROP_NAME => 'Safari',                 UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_COMPUTER, UA_PROP_URL => ''),
    246             UA_BROWSER_SAFARI_MOBILE => array(UA_PROP_NAME => 'Safari',                 UA_PROP_TYPE=>UA_PROP_TYPE_BROWSER_MOBILE, UA_PROP_URL => '')
     237            UA_BOT_UNKNOWN           => array(UA_PROP_NAME => 'Unknown',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     238
     239            UA_BOT_008               => array(UA_PROP_NAME => '008',                  UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.80legs.com'),
     240            UA_BOT_ABACHOBOT         => array(UA_PROP_NAME => 'ABACHOBot',            UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.abacho.com'),
     241            UA_BOT_ACCOONA_AI_AGENT  => array(UA_PROP_NAME => 'Accoona-AI-Agent',     UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.accoona.com'),
     242            UA_BOT_ARACHMO           => array(UA_PROP_NAME => 'Arachmo',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     243            UA_BOT_BLITZBOT          => array(UA_PROP_NAME => 'BlitzBOT',             UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     244            UA_BOT_MICROSOFT_BING    => array(UA_PROP_NAME => 'Microsoft Bing',       UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.bing.com/bingbot.htm'),
     245            UA_BOT_CHARLOTTE         => array(UA_PROP_NAME => 'Charlotte',            UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.searchme.com'),
     246            UA_BOT_CERBERIAN_DRTRS   => array(UA_PROP_NAME => 'Cerberian Drtrs',      UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     247            UA_BOT_COSMOS            => array(UA_PROP_NAME => 'Cosmos',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.xyleme.com/'),
     248            UA_BOT_COVARIO_IDS       => array(UA_PROP_NAME => 'Covario IDS',          UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.covario.com/ids'),
     249            UA_BOT_DATAPARKSEARCH    => array(UA_PROP_NAME => 'DataparkSearch',       UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.dataparksearch.org'),
     250            UA_BOT_GAISBOT           => array(UA_PROP_NAME => 'Gaisbot',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://gais.cs.ccu.edu.tw/'),
     251            UA_BOT_GOOGLE            => array(UA_PROP_NAME => 'Google',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.google.com/bot.html'),
     252            UA_BOT_GURUJIBOT         => array(UA_PROP_NAME => 'GurujiBot',            UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.guruji.com/en/WebmasterFAQ.html'),
     253            UA_BOT_HOLMES            => array(UA_PROP_NAME => 'Holmes',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.ucw.cz/holmes'),
     254            UA_BOT_HTDIG             => array(UA_PROP_NAME => 'htdig',                UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://htdig.sourceforge.net'),
     255            UA_BOT_IA_ARCHIVER       => array(UA_PROP_NAME => 'ia_archiver',          UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.alexa.com/'),
     256            UA_BOT_ICCRAWLER         => array(UA_PROP_NAME => 'iCCrawler',            UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.iccenter.net/bot.htm'),
     257            UA_BOT_ICHIRO            => array(UA_PROP_NAME => 'Ichiro',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://help.goo.ne.jp/door/crawler.html'),
     258            UA_BOT_BAIDU             => array(UA_PROP_NAME => 'Baidu',                UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.baidu.com'),
     259            UA_BOT_MSN_SEARCH        => array(UA_PROP_NAME => 'Microsoft MSN Search', UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://search.msn.com/msnbot.htm'),
     260            UA_BOT_EXALEAD           => array(UA_PROP_NAME => 'Exalead',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     261            UA_BOT_GAMESPY           => array(UA_PROP_NAME => 'GameSpy',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     262            UA_BOT_INKTOMI           => array(UA_PROP_NAME => 'Inktomi',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     263            UA_BOT_YAHOO_SEARCH      => array(UA_PROP_NAME => 'Yahoo! Search',        UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.yahoo.com/'),
     264            UA_BOT_LWEBIS            => array(UA_PROP_NAME => 'L.webis',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://webalgo.iit.cnr.it/index.php?pg=lwebis'),
     265            UA_BOT_LARBIN            => array(UA_PROP_NAME => 'Larbin',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     266            UA_BOT_LINKWALKER        => array(UA_PROP_NAME => 'LinkWalker',           UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.seventwentyfour.com/'),
     267            UA_BOT_LWPTRIVIAL        => array(UA_PROP_NAME => 'lwp-trivial',          UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     268            UA_BOT_MABONLAND         => array(UA_PROP_NAME => 'Mabontland',           UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.mabontland.com'),
     269            UA_BOT_MNOGOSEARCH       => array(UA_PROP_NAME => 'Mnogosearch',          UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://mnogosearch.org'),
     270            UA_BOT_MOGIMOGI          => array(UA_PROP_NAME => 'mogimogi',             UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     271            UA_BOT_MORNINGPAPER      => array(UA_PROP_NAME => 'Morning Paper',        UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.boutell.com'),
     272            UA_BOT_NETRESEARCHSERVER => array(UA_PROP_NAME => 'NetResearchServer',    UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.loopimprovements.com'),
     273            UA_BOT_NEWSGATOR         => array(UA_PROP_NAME => 'NewsGator',            UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.newsgator.com'),
     274            UA_BOT_NGSEARCH          => array(UA_PROP_NAME => 'NG-Search',            UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.ng-search.com'),
     275            UA_BOT_NYMESIS           => array(UA_PROP_NAME => 'Nymesis',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.nymesis.com'),
     276            UA_BOT_OEGP              => array(UA_PROP_NAME => 'oegp',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     277            UA_BOT_POMPOS            => array(UA_PROP_NAME => 'Pompos',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://dir.com/pompos.html'),
     278            UA_BOT_PYCURL            => array(UA_PROP_NAME => 'PycURL',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://pycurl.sourceforge.net'),
     279            UA_BOT_QSEERO            => array(UA_PROP_NAME => 'Qseero',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     280            UA_BOT_SBIDER            => array(UA_PROP_NAME => 'SBIder',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.sitesell.com'),
     281            UA_BOT_SCOUTJET          => array(UA_PROP_NAME => 'ScoutJet',             UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.scoutjet.com'),
     282            UA_BOT_SCRUBBY           => array(UA_PROP_NAME => 'Scrubby',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.scrubtheweb.com'),
     283            UA_BOT_SEARCHSIGHT       => array(UA_PROP_NAME => 'SearchSight',          UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://searchsight.com'),
     284            UA_BOT_SEMANTICDISCOVERY => array(UA_PROP_NAME => 'semanticdiscovery',    UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     285            UA_BOT_SHOULA            => array(UA_PROP_NAME => 'Shoula',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     286            UA_BOT_SNAPPY            => array(UA_PROP_NAME => 'Snappy',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.urltrends.com'),
     287            UA_BOT_STACKRAMBLER      => array(UA_PROP_NAME => 'StackRambler',         UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     288            UA_BOT_SILK              => array(UA_PROP_NAME => 'Silk',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.slider.com/silk.htm'),
     289            UA_BOT_TEOMA             => array(UA_PROP_NAME => 'Teoma',                UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://sp.ask.com/docs/about/tech_crawling.html'),
     290            UA_BOT_TINEYE            => array(UA_PROP_NAME => 'TinEye',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://tineye.com/crawler.html'),
     291            UA_BOT_TRUWOGPS          => array(UA_PROP_NAME => 'truwoGPS',             UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.lan4lano.net/browser.html'),
     292            UA_BOT_UPDATED           => array(UA_PROP_NAME => 'updated',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.updated.com'),
     293            UA_BOT_VOYAGER           => array(UA_PROP_NAME => 'voyager',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.kosmix.com/crawler.html'),
     294            UA_BOT_VYU2              => array(UA_PROP_NAME => 'vyu2',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     295            UA_BOT_WEBCOLLAGE        => array(UA_PROP_NAME => 'WebCollage',           UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     296            UA_BOT_YOOGLIFETCHAGENT  => array(UA_PROP_NAME => 'yoogliFetchAgent',     UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     297            UA_BOT_ZAO               => array(UA_PROP_NAME => 'Zao',                  UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => 'http://www.kototoi.org/zao'),
     298            UA_BOT_ZEALBOT           => array(UA_PROP_NAME => 'Zealbot',              UA_PROP_TYPE=>UA_BROWSER_TYPE_CRAWLER, UA_PROP_URL => ''),
     299
     300
     301            UA_BROWSER_UNKNOWN       => array(UA_PROP_NAME => 'Unknown',              UA_PROP_TYPE=>UA_BROWSER_TYPE_UNKNOWN, UA_PROP_URL => ''),
     302
     303            UA_BROWSER_ANDROID_WEBKIT=> array(UA_PROP_NAME => 'Android WebKit Browser',  UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => ''),
     304            UA_BROWSER_OPERA_MINI    => array(UA_PROP_NAME => 'Opera Mini',              UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www.opera.com/'),
     305            UA_BROWSER_OPERA_MOBILE  => array(UA_PROP_NAME => 'Opera Mobile',            UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www.opera.com/'),
     306            UA_BROWSER_BLACKBERRY    => array(UA_PROP_NAME => 'BlackBerry',              UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://worldwide.blackberry.com'),
     307            UA_BROWSER_FENNEC        => array(UA_PROP_NAME => 'Fennec',                  UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www.mozilla.org/en-US/mobile'),
     308            UA_BROWSER_GOBROWSER     => array(UA_PROP_NAME => 'Go Browser',              UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www.3g.cn/'),
     309            UA_BROWSER_IEMOBILE      => array(UA_PROP_NAME => 'IE Mobile',               UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => ''),
     310            UA_BROWSER_IRIS          => array(UA_PROP_NAME => 'Iris',                    UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www.torchmobile.com'),
     311            UA_BROWSER_MAEMO_BROWSER => array(UA_PROP_NAME => 'Maemo Browser',           UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://browser.garage.maemo.org'),
     312            UA_BROWSER_MIB           => array(UA_PROP_NAME => 'MIB',                     UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www.useragentstring.com/pages/MIB/www.motorola.com'),
     313            UA_BROWSER_MINIMO        => array(UA_PROP_NAME => 'Minimo',                  UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www-archive.mozilla.org/projects/minimo/'),
     314            UA_BROWSER_NETFRONT      => array(UA_PROP_NAME => 'NetFront',                UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www.access-company.com'),
     315            UA_BROWSER_SEMC          => array(UA_PROP_NAME => 'SEMC-Browser',            UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => ''),
     316            UA_BROWSER_TEASHARK      => array(UA_PROP_NAME => 'TeaShark',                UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www.navire.fi/teashark/index.html'),
     317            UA_BROWSER_SKYFIRE       => array(UA_PROP_NAME => 'Skyfire',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www.skyfire.com'),
     318            UA_BROWSER_SAFARI_MOBILE => array(UA_PROP_NAME => 'Safari',                  UA_PROP_TYPE=>UA_BROWSER_TYPE_MOBILE, UA_PROP_URL => 'http://www.apple.com/safari'),
     319
     320            UA_BROWSER_PS3           => array(UA_PROP_NAME => 'Playstation 3',           UA_PROP_TYPE=>UA_BROWSER_TYPE_CONSOLE, UA_PROP_URL => 'http://us.playstation.com/ps3'),
     321            UA_BROWSER_PSP           => array(UA_PROP_NAME => 'Playstation Portable',    UA_PROP_TYPE=>UA_BROWSER_TYPE_CONSOLE, UA_PROP_URL => 'http://us.playstation.com/psp'),
     322            UA_BROWSER_BUNJALLOO     => array(UA_PROP_NAME => 'Bunjalloo',               UA_PROP_TYPE=>UA_BROWSER_TYPE_CONSOLE, UA_PROP_URL => 'http://code.google.com/p/quirkysoft/'),
     323            UA_BROWSER_OPERA_WII     => array(UA_PROP_NAME => 'Opera',                   UA_PROP_TYPE=>UA_BROWSER_TYPE_CONSOLE, UA_PROP_URL => 'http://www.opera.com'),
     324
     325            UA_BROWSER_OPERA         => array(UA_PROP_NAME => 'Opera',                  UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.opera.com'),
     326            UA_BROWSER_SHIIRA        => array(UA_PROP_NAME => 'Shiira',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://shiira.jp/en'),
     327            UA_BROWSER_THUNDERBIRD   => array(UA_PROP_NAME => 'Thunderbird',            UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.mozilla.org/thunderbird'),
     328            UA_BROWSER_NAMOROKA      => array(UA_PROP_NAME => 'Namoroka',               UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'https://wiki.mozilla.org/Firefox/Namoroka'),
     329            UA_BROWSER_MINEFIELD     => array(UA_PROP_NAME => 'Minefield',              UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.mozilla.org/projects/minefield'),
     330            UA_BROWSER_LUNASCAPE     => array(UA_PROP_NAME => 'Lunascape',              UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.lunascape.tv'),
     331            UA_BROWSER_ARORA         => array(UA_PROP_NAME => 'Arora',                  UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://code.google.com/p/arora'),
     332            UA_BROWSER_CAMINO        => array(UA_PROP_NAME => 'Camino',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://caminobrowser.org'),
     333            UA_BROWSER_KAPIKO        => array(UA_PROP_NAME => 'Kapiko',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://ufoxlab.googlepages.com/cooperation'),
     334            UA_BROWSER_KAZEHAKAZE    => array(UA_PROP_NAME => 'Kazehakase',             UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://kazehakase.sourceforge.jp'),
     335            UA_BROWSER_CHROMEPLUS    => array(UA_PROP_NAME => 'ChromePlus',             UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://coolnovo.com'),
     336            UA_BROWSER_CHROME        => array(UA_PROP_NAME => 'Chrome',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.google.com/chrome'),
     337            UA_BROWSER_EPIPHANY      => array(UA_PROP_NAME => 'Epiphany',               UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://projects.gnome.org/epiphany'),
     338            UA_BROWSER_GALEON        => array(UA_PROP_NAME => 'Galeon',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://galeon.sourceforge.net'),
     339            UA_BROWSER_ORCA          => array(UA_PROP_NAME => 'Orca',                   UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.orcabrowser.com'),
     340            UA_BROWSER_LOBO          => array(UA_PROP_NAME => 'Lobo',                   UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://lobobrowser.org'),
     341            UA_BROWSER_SEAMONKEY     => array(UA_PROP_NAME => 'SeaMonkey',              UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.seamonkey-project.org'),
     342            UA_BROWSER_MIDORI        => array(UA_PROP_NAME => 'Midori',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://twotoasts.de/?/pages/midori_summary.html'),
     343            UA_BROWSER_MAXTHON       => array(UA_PROP_NAME => 'Maxthon',                UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.maxthon.com'),
     344            UA_BROWSER_ICEAPE        => array(UA_PROP_NAME => 'Iceape',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://packages.debian.org/fr/squeeze/iceape-browser'),
     345            UA_BROWSER_ICEWEASEL     => array(UA_PROP_NAME => 'Iceweasel',              UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.geticeweasel.org'),
     346            UA_BROWSER_NETSCAPE      => array(UA_PROP_NAME => 'Netscape',               UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://isp.netscape.com'),
     347            UA_BROWSER_FIREBIRD      => array(UA_PROP_NAME => 'Firebird',               UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.firefox.com'),
     348            UA_BROWSER_FIREFOX       => array(UA_PROP_NAME => 'Firefox',                UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.firefox.com'),
     349            UA_BROWSER_INTERNET_EXPLORER=> array(UA_PROP_NAME => 'Internet Explorer',   UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://windows.microsoft.com/en-us/internet-explorer/products/ie/home'),
     350            UA_BROWSER_KONQUEROR     => array(UA_PROP_NAME => 'Konqueror',              UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.konqueror.org'),
     351            UA_BROWSER_LINKS         => array(UA_PROP_NAME => 'Links',                  UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.jikos.cz/~mikulas/links'),
     352            UA_BROWSER_LYNX          => array(UA_PROP_NAME => 'Lynx',                   UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://lynx.browser.org'),
     353            UA_BROWSER_SAFARI        => array(UA_PROP_NAME => 'Safari',                 UA_PROP_TYPE=>UA_BROWSER_TYPE_COMPUTER, UA_PROP_URL => 'http://www.apple.com/safari')
    247354          ),
    248355
    249356  UA_DATA_OS => array(
    250             UA_OS_UNKNOWN            => array(UA_PROP_NAME => 'Unknown',                UA_PROP_URL=>''),
    251             UA_OS_LINUX              => array(UA_PROP_NAME => 'Linux',                  UA_PROP_URL=>'http://www.linux.com'),
    252             UA_OS_FREEBSD            => array(UA_PROP_NAME => 'FreeBSD',                UA_PROP_URL=>'http://www.freebsd.org/'),
    253             UA_OS_OPENBSD            => array(UA_PROP_NAME => 'OpenBSD',                UA_PROP_URL=>'http://www.openbsd.org/'),
    254             UA_OS_NETBSD             => array(UA_PROP_NAME => 'NetBSD',                 UA_PROP_URL=>'http://www.netbsd.org/'),
    255             UA_OS_WINDOWS            => array(UA_PROP_NAME => 'Windows',                UA_PROP_URL=>'http://windows.microsoft.com/'),
    256             UA_OS_SUNOS              => array(UA_PROP_NAME => 'SunOS',                  UA_PROP_URL=>''),
    257             UA_OS_BLACKBERRY         => array(UA_PROP_NAME => 'Blackberry OS',          UA_PROP_URL=>'http://us.blackberry.com/apps-software/devices'),
    258             UA_OS_SYMBIAN_OS         => array(UA_PROP_NAME => 'Symbian OS',             UA_PROP_URL=>'http://symbian.nokia.com/'),
    259             UA_OS_SYMBOS             => array(UA_PROP_NAME => 'SymbOS',                 UA_PROP_URL=>'http://www.symbos.de/'),
    260             UA_OS_MACINTOSH          => array(UA_PROP_NAME => 'Macintosh',              UA_PROP_URL=>'http://www.apple.com/'),
    261             UA_OS_MAC_OS_X           => array(UA_PROP_NAME => 'Mac OS X',               UA_PROP_URL=>'http://www.apple.com/'),
    262             UA_OS_ANDROID            => array(UA_PROP_NAME => 'Android',                UA_PROP_URL=>'http://www.android.com/'),
    263             UA_OS_IOS                => array(UA_PROP_NAME => 'iOS',                    UA_PROP_URL=>'http://www.apple.com/'),
    264             UA_OS_NINTENDO_DS        => array(UA_PROP_NAME => 'Nintendo DS',            UA_PROP_URL=>''),
    265             UA_OS_NINTENDO_WII       => array(UA_PROP_NAME => 'Nintendo Wii',           UA_PROP_URL=>''),
    266             UA_OS_SONY_PS3           => array(UA_PROP_NAME => 'Sony PS3',               UA_PROP_URL=>''),
    267             UA_OS_SONY_PSP           => array(UA_PROP_NAME => 'Sony PSP',               UA_PROP_URL=>'')
     357            UA_OS_UNKNOWN            => array(UA_PROP_NAME => 'Unknown',                UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>''),
     358            UA_OS_LINUX              => array(UA_PROP_NAME => 'Linux',                  UA_PROP_TYPE=>UA_OS_TYPE_LINUX,     UA_PROP_URL=>'http://www.linux.com'),
     359            UA_OS_FREEBSD            => array(UA_PROP_NAME => 'FreeBSD',                UA_PROP_TYPE=>UA_OS_TYPE_BSD,       UA_PROP_URL=>'http://www.freebsd.org'),
     360            UA_OS_OPENBSD            => array(UA_PROP_NAME => 'OpenBSD',                UA_PROP_TYPE=>UA_OS_TYPE_BSD,       UA_PROP_URL=>'http://www.openbsd.org'),
     361            UA_OS_NETBSD             => array(UA_PROP_NAME => 'NetBSD',                 UA_PROP_TYPE=>UA_OS_TYPE_BSD,       UA_PROP_URL=>'http://www.netbsd.org'),
     362            UA_OS_WINDOWS            => array(UA_PROP_NAME => 'Windows',                UA_PROP_TYPE=>UA_OS_TYPE_WINDOWS,   UA_PROP_URL=>'http://windows.microsoft.com'),
     363            UA_OS_SUNOS              => array(UA_PROP_NAME => 'SunOS',                  UA_PROP_TYPE=>UA_OS_TYPE_UNIX,      UA_PROP_URL=>''),
     364            UA_OS_BLACKBERRY         => array(UA_PROP_NAME => 'Blackberry OS',          UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>'http://us.blackberry.com/apps-software/devices'),
     365            UA_OS_SYMBIAN_OS         => array(UA_PROP_NAME => 'Symbian OS',             UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>'http://symbian.nokia.com'),
     366            UA_OS_SYMBOS             => array(UA_PROP_NAME => 'SymbOS',                 UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>'http://www.symbos.de'),
     367            UA_OS_MACINTOSH          => array(UA_PROP_NAME => 'Macintosh',              UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>'http://www.apple.com'),
     368            UA_OS_MAC_OS_X           => array(UA_PROP_NAME => 'Mac OS X',               UA_PROP_TYPE=>UA_OS_TYPE_BSD,       UA_PROP_URL=>'http://www.apple.com'),
     369            UA_OS_ANDROID            => array(UA_PROP_NAME => 'Android',                UA_PROP_TYPE=>UA_OS_TYPE_LINUX,     UA_PROP_URL=>'http://www.android.com'),
     370            UA_OS_IOS                => array(UA_PROP_NAME => 'iOS',                    UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>'http://www.apple.com'),
     371            UA_OS_NINTENDO_DS        => array(UA_PROP_NAME => 'Nintendo DS',            UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>'http://www.nintendo.com/ds'),
     372            UA_OS_NINTENDO_WII       => array(UA_PROP_NAME => 'Nintendo Wii',           UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>'http://www.nintendo.com/wii'),
     373            UA_OS_SONY_PS3           => array(UA_PROP_NAME => 'Sony PS3',               UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>'http://us.playstation.com/ps3'),
     374            UA_OS_SONY_PSP           => array(UA_PROP_NAME => 'Sony PSP',               UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>'http://us.playstation.com/psp'),
     375            UA_OS_CHROME_OS          => array(UA_PROP_NAME => 'Chrome OS',              UA_PROP_TYPE=>UA_OS_TYPE_LINUX,     UA_PROP_URL=>''),
     376            UA_OS_BE_OS              => array(UA_PROP_NAME => 'BeOS',                   UA_PROP_TYPE=>UA_OS_TYPE_BSD,       UA_PROP_URL=>''),
     377            UA_OS_DRAGONFLY          => array(UA_PROP_NAME => 'DragonFly BSD',          UA_PROP_TYPE=>UA_OS_TYPE_BSD,       UA_PROP_URL=>'http://www.dragonflybsd.org'),
     378            UA_OS_UNIX               => array(UA_PROP_NAME => 'UNIX',                   UA_PROP_TYPE=>UA_OS_TYPE_UNIX,      UA_PROP_URL=>''),
     379            UA_OS_DARWIN             => array(UA_PROP_NAME => 'Darwin',                 UA_PROP_TYPE=>UA_OS_TYPE_BSD,       UA_PROP_URL=>'developer.apple.com/darwin'),
     380            UA_OS_OS2                => array(UA_PROP_NAME => 'IBM OS/2',               UA_PROP_TYPE=>UA_OS_TYPE_OS2,       UA_PROP_URL=>''),
     381            UA_OS_AMIGAOS            => array(UA_PROP_NAME => 'AmigaOS',                UA_PROP_TYPE=>UA_OS_TYPE_UNKNOWN,   UA_PROP_URL=>'http://amiga.com')
    268382          ),
    269383  UA_DATA_ENGINE => array(
    270             UA_ENGINE_UNKNOWN        => array(UA_PROP_NAME => 'Unknown'),
    271             UA_ENGINE_GECKO          => array(UA_PROP_NAME => 'Gecko'),
    272             UA_ENGINE_KHTML          => array(UA_PROP_NAME => 'KHTML'),
    273             UA_ENGINE_PRESTO         => array(UA_PROP_NAME => 'Presto'),
    274             UA_ENGINE_APPLEWEBKIT    => array(UA_PROP_NAME => 'AppleWebKit'),
    275             UA_ENGINE_WEBKIT         => array(UA_PROP_NAME => 'WebKit'),
    276             UA_ENGINE_TRIDENT        => array(UA_PROP_NAME => 'Trident')
     384            UA_ENGINE_UNKNOWN        => array(UA_PROP_NAME => 'Unknown',                UA_PROP_URL=>''),
     385            UA_ENGINE_GECKO          => array(UA_PROP_NAME => 'Gecko',                  UA_PROP_URL=>'https://developer.mozilla.org/en/Gecko'),
     386            UA_ENGINE_KHTML          => array(UA_PROP_NAME => 'KHTML',                  UA_PROP_URL=>'http://api.kde.org/3.5-api/kdelibs-apidocs/khtml/html/index.html'),
     387            UA_ENGINE_PRESTO         => array(UA_PROP_NAME => 'Presto',                 UA_PROP_URL=>'http://dev.opera.com/articles/view/presto-2-1-web-standards-supported-by'),
     388            UA_ENGINE_APPLEWEBKIT    => array(UA_PROP_NAME => 'AppleWebKit',            UA_PROP_URL=>''),
     389            UA_ENGINE_WEBKIT         => array(UA_PROP_NAME => 'WebKit',                 UA_PROP_URL=>'http://www.webkit.org'),
     390            UA_ENGINE_TRIDENT        => array(UA_PROP_NAME => 'Trident',                UA_PROP_URL=>'http://msdn.microsoft.com/en-us/library/aa741317.aspx')
    277391          ),
    278392
    279   UA_DATA_PROP_NAME => array(
    280             UA_PROP_TYPE_UNKNOWN          => 'Unknown',
    281             UA_PROP_TYPE_BROWSER_COMPUTER => 'Computer',
    282             UA_PROP_TYPE_BROWSER_CONSOLE  => 'Console',
    283             UA_PROP_TYPE_BROWSER_MOBILE   => 'Mobile',
    284             UA_PROP_TYPE_CRAWLER          => 'Crawler'
     393  UA_DATA_BROWSER_TYPE => array(
     394            UA_BROWSER_TYPE_UNKNOWN  => 'Unknown',
     395            UA_BROWSER_TYPE_COMPUTER => 'Computer',
     396            UA_BROWSER_TYPE_CONSOLE  => 'Console',
     397            UA_BROWSER_TYPE_MOBILE   => 'Mobile',
     398            UA_BROWSER_TYPE_CRAWLER  => 'Crawler'
     399          ),
     400
     401  UA_DATA_OS_TYPE => array(
     402            UA_OS_TYPE_UNKNOWN  => 'Unknown',
     403            UA_OS_TYPE_LINUX    => 'Linux',
     404            UA_OS_TYPE_BSD      => 'BSD',
     405            UA_OS_TYPE_UNIX     => 'Unix',
     406            UA_OS_TYPE_WINDOWS  => 'Windows',
     407            UA_OS_TYPE_OS2      => 'OS/2'
    285408          )
     409
    286410);
    287411
  • extensions/GrumPluginClasses/js/markup.formMail.js

    r12215 r16458  
    1010 * Author     : Grum
    1111 *   email    : grum@piwigo.com
    12  *   website  : http://photos.grum.fr
    13  *   PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
     12 *   website  : http://www.grum.fr
    1413 *
    1514 *   << May the Little SpaceFrog be with you ! >>
  • extensions/GrumPluginClasses/js/markup.tabs.js

    r12215 r16458  
    1010 * Author     : Grum
    1111 *   email    : grum@piwigo.com
    12  *   website  : http://photos.grum.fr
    13  *   PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
     12 *   website  : http://www.grum.fr
    1413 *
    1514 *   << May the Little SpaceFrog be with you ! >>
  • extensions/GrumPluginClasses/js/pagesNavigator.js

    r7175 r16458  
    1010 * Author     : Grum
    1111 *   email    : grum@piwigo.com
    12  *   website  : http://photos.grum.fr
    13  *   PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
     12 *   website  : http://www.grum.fr
    1413 *
    1514 *   << May the Little SpaceFrog be with you ! >>
  • extensions/GrumPluginClasses/js/rbCriteriaBuilder.js

    r16012 r16458  
    1010 * Author     : Grum
    1111 *   email    : grum@piwigo.com
    12  *   website  : http://photos.grum.fr
    13  *   PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
     12 *   website  : http://www.grum.fr
    1413 *
    1514 *   << May the Little SpaceFrog be with you ! >>
  • extensions/GrumPluginClasses/js/rbSearch.js

    r16012 r16458  
    1010 * Author     : Grum
    1111 *   email    : grum@piwigo.com
    12  *   website  : http://photos.grum.fr
    13  *   PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
     12 *   website  : http://www.grum.fr
    1413 *
    1514 *   << May the Little SpaceFrog be with you ! >>
  • extensions/GrumPluginClasses/js/simpleTip.js

    r16012 r16458  
    1010 * Author     : Grum
    1111 *   email    : grum@piwigo.com
    12  *   website  : http://photos.grum.fr
    13  *   PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
     12 *   website  : http://www.grum.fr
    1413 *
    1514 *   << May the Little SpaceFrog be with you ! >>
Note: See TracChangeset for help on using the changeset viewer.