Ozein.BackTrap = Class.create();
Ozein.BackTrap.prototype = {
  initialize: function(node, options) {
    this.setOptions(options);
    if (!this.options.onBack && (e = node.getAttribute('onBack'))) {
      eval('this.options.onBack = function(){'+e+'}.bind(this)');
    }
    if (node.value == 'loaded') {
      if (this.options.onBack) this.options.onBack();
      if (this.options.autoReload) this.reloadWindow();
    }
    node.value = 'loaded';
  },
  setOptions: function(options) {
    this.options = {
      coverColor: '#fff',
      coverOpacity: 0.8,
      reloadMsg: '',
      msgClass: 'ozein-reload-msg',
      loadingImg: null,
      autoReload: true
    }
    Object.extend(this.options, options || {});
  },
  reloadWindow: function() {
    var op = this.options;
    var size = Ozein.Screen.getSize();
    var cover = document.createElement('div');
    Element.setStyle(cover, {
      backgroundColor: op.coverColor,
      opacity: op.coverOpacity,
      width: '100%',
      height: size[1] + 'px',
      position: 'absolute',
      left: 0,
      top: 0,
      zIndex: 1000
    });
    document.body.appendChild(cover);
    cover.innerHTML = '<div class='+op.msgClass+'>'+op.reloadMsg+'</div>';
    if (op.loadingImg) {
      var img = document.createElement('img');
      if (op.imgWidth) img.style.width = op.imgWidth + 'px';
      if (op.imgHeight) img.style.height = op.imgHeight + 'px';
      img.style.position = 'absolute';
      cover.appendChild(img);
      Ozein.Screen.setCenterPosition(img);
      img.src = op.loadingImg;
    }
    setTimeout(this._reload.bind(true), 1);
  },
  _reload: function() {
    window.location.reload(true);
  }
}
