home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 October / Chip_2001-10_cd1.bin / tema / goldring / js / xxapi2_lite.js < prev   
Text File  |  2001-09-03  |  8KB  |  210 lines

  1. //    ********************************************************************
  2. //
  3. //    XXAPI2.2LITE (010417)
  4. //    Copyright (c) Y2K-1 - Y2K+1 Xycht (www.xycht.cz)
  5. //
  6. //    This program is free software; you can redistribute it and/or modify
  7. //    it under the terms of the GNU General Public License as published by
  8. //    the Free Software Foundation; either version 2 of the License, or
  9. //    (at your option) any later version.
  10. //
  11. //    This program is distributed in the hope that it will be useful,
  12. //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. //    GNU General Public License for more details.
  15. //
  16. //    You should have received a copy of the GNU General Public License
  17. //    along with this program; if not, write to the Free Software
  18. //    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19. //
  20. //    ********************************************************************
  21.  
  22.  
  23.  
  24. // global variables & functions
  25.  
  26. var _width = 0;
  27. var _height = 0;
  28. var blank_img = 'images/blank.gif';
  29.  
  30.  
  31.  
  32. function browser_check() {
  33.     this.agt = navigator.userAgent.toLowerCase();
  34.     this.major = parseInt( navigator.appVersion );
  35.     this.minor = parseFloat( navigator.appVersion );
  36.  
  37. // netscape detection
  38.     this.ns =    (    ( this.agt.indexOf( 'mozilla' ) != -1 ) &&    // mozilla YES
  39.                 ( this.agt.indexOf( 'spoofer' ) == -1 ) &&    // spoofers NO
  40.                 ( this.agt.indexOf( 'compatible' ) == -1) &&    // compatible (ie and so on) NO
  41.                 ( this.agt.indexOf( 'opera' ) == -1 ) &&    // opera NO
  42.                 ( this.agt.indexOf( 'webtv' ) == -1 ) );    // webtv NO
  43.  
  44.     this.ns2 =    ( this.ns && ( this.major == 2 ) );            // netscape 2
  45.     this.ns3 =    ( this.ns && ( this.major == 3 ) );            // netscape 3
  46.     this.ns4 =    ( this.ns && ( this.major == 4 ) );            // netscape 4
  47.     this.ns5 =    ( this.ns && ( this.major == 5 ) );            // netscape 5
  48.  
  49.     this.ie =    ( this.agt.indexOf( 'msie' ) != -1);            // explorer
  50.     this.ie3 =    ( this.ie && ( this.major < 4 ) );            // explorer 3
  51.  
  52.     this.ie4 =    ( this.ie && ( this.major == 4 ) &&            // explorer 4
  53.                 ( this.agt.indexOf( 'msie 4.0' ) != -1 ) );
  54.     this.ie5 =    ( this.ie && 
  55.             ( this.major == 4 ) &&
  56.                 ( this.agt.indexOf ('msie 5.0') != -1) );    // explorer 5
  57.     this.ie55 =    ( this.ie && 
  58.             ( this.major == 4 ) &&
  59.                 ( this.agt.indexOf( 'msie 5.5' ) != -1 ) );    // explorer 5.5
  60.     this.ie6 =    ( this.ie && 
  61.             ( this.major == 4 ) &&
  62.                 ( this.agt.indexOf( 'msie 6.0' ) != -1 ) );    // explorer 6.0
  63.  
  64.     this.aol =    ( this.agt.indexOf( 'aol' ) != -1 );            // aol browser
  65.     this.aol3 =    ( this.aol && this.ie3 );                // aol3
  66.     this.aol4 =    ( this.aol && this.ie4 );                // aol4
  67.     this.aol5 =    ( this.aol && this.ie5 );                // aol5
  68.  
  69.     this.opera =    ( this.agt.indexOf( 'opera' ) != -1 );            // opera
  70.     this.webtv =    ( this.agt.indexOf( 'webtv' ) != -1 );            // webtv
  71.  
  72.     this.js;
  73.     if        ( this.ns2 || this.ie3 )                    this.js = 1.0;
  74.     else if        ( this.ns3 || this.opera )                    this.js = 1.1;
  75.     else if        (    ( this.ns4 && ( this.minor <= 4.05 ) ) || this.ie4 )    this.js = 1.2;
  76.     else if        (    ( this.ns4 && ( this.minor > 4.05 ) ) || this.ie5 )    this.js = 1.3;
  77.     else if        ( this.ns5 )                            this.js = 1.4;
  78.     else if        ( this.ns && ( this.major > 5 ) )                this.js = 1.4;
  79.     else if        ( this.ie && ( this.major > 5 ) )                this.js = 1.3;
  80.     else                                        this.js = 0.0;
  81.  
  82.     this.win =    (    ( this.agt.indexOf( 'win' ) != -1 ) ||                // windows
  83.                 ( this.agt.indexOf( '16bit' ) != -1 ) );
  84.     this.win31 =    (    ( this.agt.indexOf( 'windows 3.1' ) != -1 ) ||            // windows 3.1x
  85.                 ( this.agt.indexOf( 'win16' ) != -1 ) ||
  86.                 ( this.agt.indexOf( 'windows 16-bit' ) != -1 ) );
  87.     this.win95 =    (    ( this.agt.indexOf( 'win95' ) != -1 ) ||            // windows 95
  88.                 ( this.agt.indexOf( 'windows 95' ) != -1 ) );
  89.     this.win98 =    (    ( this.agt.indexOf( 'win98' ) != -1 ) ||            // windows 98
  90.                 ( this.agt.indexOf( 'windows 98' ) != -1 ) );
  91.     this.winnt =    (    ( this.agt.indexOf( 'winnt' ) != -1 ) ||            // windows nt
  92.                 ( this.agt.indexOf( 'windows nt' ) != -1 ) );
  93.     this.win2000 =    (    ( this.agt.indexOf( 'winnt 5.0' ) != -1 ) ||            // windows 2000
  94.                 ( this.agt.indexOf( 'windows nt 5.0' ) != -1 ) );
  95.     this.win16 =    (    ( this.agt.indexOf( 'win16' ) != -1 ) ||            // windows 16bit
  96.                 ( this.agt.indexOf( '16bit' ) != -1 ) ||
  97.                 ( this.agt.indexOf( 'windows 3.1' ) != -1 ) ||
  98.                 ( this.agt.indexOf( 'windows 16-bit' ) != -1 ) );
  99.     this.win32 =    (    this.win95 || this.winnt ||    this.win98 ||            // windows 32bit
  100.             (    ( this.major >= 4) &&
  101.                 ( navigator.platform == 'Win32' ) ) ||
  102.                 ( this.agt.indexOf( 'win32' ) != -1 ) ||
  103.                 ( this.agt.indexOf( '32bit' ) != -1 ) );
  104.     
  105.     this.os2 =    (    ( this.agt.indexOf('os/2')!=-1) ||                // os/2
  106.                 ( navigator.appVersion.indexOf( 'OS/2' ) != -1 ) ||
  107.                 ( this.agt.indexOf( 'ibm-webexplorer' ) != -1 ) );
  108.  
  109.     this.mac =        ( this.agt.indexOf( 'mac' ) != -1 );                // mac
  110.     this.mac68k =    ( this.mac &&                                // mac68k
  111.             (    ( this.agt.indexOf( '68k' ) != -1 ) ||
  112.                 ( this.agt.indexOf( '68000' ) != -1 ) ) );
  113.     this.macppc =    ( this.mac &&                                // mac powerpc
  114.             (    ( this.agt.indexOf( 'ppc' ) != -1 ) ||
  115.                 ( this.agt.indexOf( 'powerpc' ) != -1 ) ) );
  116.  
  117.     this.linux =    ( this.agt.indexOf( 'inux' ) != -1 );                    // linux
  118.     this.unix =    (    ( this.agt.indexOf( 'inux' ) != -1 ) ||                // unix
  119.                 ( this.agt.indexOf( 'sunos' ) != -1 ) ||
  120.                 ( this.agt.indexOf( 'irix' ) != -1 ) ||
  121.                 ( this.agt.indexOf( 'hp-ux' ) != -1 ) ||
  122.                 ( this.agt.indexOf( 'aix' ) != -1 ) ||
  123.                 ( this.agt.indexOf( 'sco' ) != -1 ) ||
  124.                 ( this.agt.indexOf( 'unix' ) != -1 ) ||
  125.                 ( this.agt.indexOf( 'ncr' ) != -1 ) ||
  126.                 ( this.agt.indexOf( 'dec' ) != -1 ) ||
  127.                 ( this.agt.indexOf( 'sinix' ) != -1 ) ||
  128.                 ( this.agt.indexOf( 'bsd' ) != -1 ) );
  129.     this.x11 =        ( this.agt.indexOf( 'x11' ) != -1 );                // x11
  130.  
  131.     this.min =    ( this.ns4 || this.ns5 || this.ie4 || this.ie5 || this.ie55 || this.ie6)        // supported
  132.  
  133.     this.dom1 =    ( this.ns5 );                                // dom1 full support (mozilla)
  134.     this.domns =    ( this.ns4 );                                // netscape 4 dom style
  135.     this.domie =    ( this.ie4 || this.ie5 || this.ie55 || this.ie6 || this.aol4 || this.aol5 );    // iexplore 4 dom style
  136.  
  137.     this.lang =    ( ( this.ns ) ? navigator.language : navigator.userLanguage ).substr( 0, 2 );    // check 4 language
  138.     this.sublang =    ( ( this.ns ) ? navigator.language : navigator.userLanguage ).substr( 3, 2 );
  139.     }
  140.  
  141.  
  142.  
  143. function get_scr_res() {
  144. // check out the document resolution
  145. // todo: in ns it checks 4 window.size, in ie document.size!
  146.     _width = ( is.ns ) ? window.innerWidth + 4 : document.body.offsetWidth;
  147.     _height = ( is.ns ) ? window.innerHeight + 4 : document.body.offsetHeight;
  148.     if ( is.ns5 ) {
  149.         _width -= 4;
  150.         _height -= 4;
  151.         }
  152.     }
  153.  
  154.  
  155.  
  156. // ------------------------------------------------------------------------------------------------
  157. // dynamic code generation
  158. // ------------------------------------------------------------------------------------------------
  159.  
  160. function add_reset() {
  161.     add_str = '';
  162.     }
  163.  
  164. function add( str ) {
  165.     add_str += str + '\n';
  166.     }
  167.  
  168. function add_finish() {
  169.     document.writeln( add_str );
  170.     }
  171.  
  172.  
  173.  
  174. // ------------------------------------------------------------------------------------------------
  175. // images
  176. // ------------------------------------------------------------------------------------------------
  177.  
  178. function im_preload( img_obj, img_src ) {
  179. // preload the image
  180.     if ( document.images ) {
  181.         eval( img_obj + ' = new Image()' );
  182.         eval( img_obj + '.src = "' + img_src + '"' );
  183.         }
  184.     }
  185.  
  186. function im_change( layer, img_name, img_obj ) {
  187. // chacge the image to the preloaded one
  188.     if ( document.images ) {
  189.         if ( document.layers && layer != null ) eval( 'document.layers["' + layer + '"].document.images["' + img_name + '"].src = ' + img_obj + '.src');
  190.         else document.images[ img_name ].src = eval( img_obj + ".src" );
  191.         }
  192.     }
  193.  
  194. function im_swap( layer, my_obj, my_val ) {
  195. // swap image to the url
  196.     if ( document.images ) {
  197.         if ( document.layers && layer != null ) eval( 'document.' + layer + '.document.images["' + my_obj + '"].src = \'' + my_val + '\'' );
  198.         else document.images[ my_obj ].src = my_val;
  199.         }
  200.     }
  201.  
  202.  
  203.  
  204. // ------------------------------------------------------------------------------------------------
  205. // runtime
  206. // ------------------------------------------------------------------------------------------------
  207.  
  208. // check for the browser
  209. is = new browser_check();
  210.