/*
 +-------------------------------------------------------------------+
 |                    J S - L O A D E R   (v1.7)                     |
 |                          P a r t   II                             |
 |                                                                   |
 | Copyright Gerd Tentler               www.gerd-tentler.de/tools    |
 | Created: Mar. 26, 2002               Last modified: Dec. 15, 2007 |
 +-------------------------------------------------------------------+
 | This program may be used and hosted free of charge by anyone for  |
 | personal purpose as long as this copyright notice remains intact. |
 |                                                                   |
 | Obtain permission before selling the code for this program or     |
 | hosting this software on a commercial website or redistributing   |
 | this software over the Internet or in any other medium. In all    |
 | cases copyright must remain intact.                               |
 +-------------------------------------------------------------------+

======================================================================================================
 This script was tested with the following systems and browsers:

 - Windows XP: IE 6, NN 7, Opera 7 + 9, Firefox 2
 - Mac OS X:   IE 5

 If you use another browser or system, this script may not work for you - sorry.

 NOTE: Safari 1 (Mac OS X) does not support "document.images[].complete", so the progress bar will
       not be shown.
======================================================================================================
*/
  function LOADER() {
    this.bar, this.iv, this.timer;
    this.imgAll = 0;
    this.opacity = contentOpacity;
    this.opName = '';

    this.getObj = function(id) {
      var obj;
      if(document.getElementById) obj = document.getElementById(id);
      else if(document.all) obj = document.all[id];
      return obj;
    }

    this.hasOpacity = function(obj) {
      if(obj) {
        if(typeof(obj.style.opacity) != 'undefined') return 'opacity';
        if(typeof(obj.style.MozOpacity) != 'undefined') return 'MozOpacity';
        if(typeof(obj.style.KhtmlOpacity) != 'undefined') return 'KhtmlOpacity';
        if(typeof(obj.style.filter) != 'undefined') return 'filter';
      }
      return false;
    }

    this.setOpacity = function(obj, opacity) {
      if(obj && !document.layers) {
        if(this.opName == 'filter') {
          obj.style.filter = 'alpha(opacity=' + opacity + ')';
        }
        else if(this.opName) {
          obj.style[this.opName] = opacity / 100;
        }
      }
    }

    this.fadeIn = function(id) {
      var obj = this.getObj(id);
      if(obj) {
        if(document.all) obj.style.position = 'absolute';
        obj.style.visibility = 'visible';
        if(fadeInSpeed && this.opacity < 100) {
          this.opacity += fadeInSpeed;
          if(this.opacity > 100) this.opacity = 100;
          this.setOpacity(obj, this.opacity);
          if(this.timer) clearTimeout(this.timer);
          this.timer = setTimeout("loader.fadeIn('" + id + "')", 1);
        }
        else {
          this.opacity = 100;
          this.setOpacity(obj, 100);
        }
      }
    }

    this.setBar = function() {
      if(this.imgAll < document.images.length) this.imgAll = document.images.length;
      for(var i = cnt = 0; i < this.imgAll; i++) {
        if(document.images[i] && document.images[i].complete) cnt++;
        else if(document.images[i].complete == null) cnt++;
      }
      var mul = barLength / this.imgAll;
      var len = Math.round(cnt * mul);
      if(len > barLength) len = barLength;
      this.bar.style.width = len + 'px';
      window.status = cnt + ' / ' + this.imgAll;
      if(cnt >= this.imgAll) {
        if(this.iv) clearInterval(this.iv);
        setTimeout('loader.loaded()', 100);
      }
    }

    this.init = function() {
      var content = this.getObj('Content');
      this.opName = this.hasOpacity(content);
      if(contentOpacity < 0) contentOpacity = 0;
      else if(contentOpacity > 100) contentOpacity = 100;
      this.setOpacity(content, contentOpacity);
      if(contentOpacity == 100 || (this.opName && contentOpacity)) {
        content.style.visibility = 'visible';
      }
      this.bar = this.getObj('divBar');
      if(document.images && document.images.length) {
        if(this.iv) clearInterval(this.iv);
        this.iv = setInterval('loader.setBar()', 100);
      }
      else this.loaded();
    }

    this.loaded = function() {
      window.status = '';
      this.fadeIn('Content');
      var obj = this.getObj('divBox');
      obj.style.visibility = 'hidden';
    }
  }

//----------------------------------------------------------------------------------------------------
// Show dialog box and progress bar
//----------------------------------------------------------------------------------------------------

  if((document.all || document.getElementById)) {
    document.write('</div>');
    var loader = new LOADER();
    loader.init();
  }

//----------------------------------------------------------------------------------------------------
