/* scroll spy plugin / class */
var ScrollSpy = new Class({

  /* implements */
  Implements: [Options,Events],

  /* options */
  options: {
    min: 0,
    mode: 'vertical',
    max: 0,
    container: window,
    onEnter: $empty,
    onLeave: $empty,
    onTick: $empty
  },

  /* initialization */
  initialize: function(options) {
    /* set options */
    this.setOptions(options);
    this.container = $(this.options.container);
    this.enters = this.leaves = 0;
    this.max = this.options.max;

    /* fix max */
    if(this.max == 0)
    {
      var ss = this.container.getScrollSize();
      this.options.max = this.options.mode == 'vertical' ? ss.y : ss.x;
    }
    /* make it happen */
    this.addListener();
  },

  /* a method that does whatever you want */
  addListener: function() {
    /* state trackers */
    this.inside = false;
    this.container.addEvent('scroll',function() {
      /* if it has reached the level */
      var position = this.container.getScroll();
      var xy = this.options.mode == 'vertical' ? position.y : position.x;
      /* if we reach the minimum and are still below the max... */
      if(xy >= this.options.min && xy <= this.max) {
          /* trigger Enter event if necessary */
          if(!this.inside) {
            /* record as inside */
            this.inside = true;
            this.enters++;
            /* fire enter event */
            this.fireEvent('enter',[position,this.enters]);
          }
          /* trigger the "tick", always */
          this.fireEvent('tick',[position,this.inside,this.enters,this.leaves]);
      }
      else {
        /* trigger leave */
        if(this.inside)
        {
          this.inside = false;
          this.leaves++;
          this.fireEvent('leave',[position,this.leaves]);
        }
      }
    }.bind(this));
  }
});

var o = 'opacity';

document.addEvent('domready', function(){
  (function() {
     var topbar = $('topbar').set('tween',{ duration: 200 });
     var topbarME = function() { topbar.tween(o,1); }, topbarML = function() { topbar.tween(o,0.5); }, ws = window.getScrollSize().y;
     var ss = new ScrollSpy({
       min: 30,
       max: ws-30,
       onLeave: function(pos) {
         topbar.tween(o,1).removeEvents('mouseenter',topbarME).removeEvents('mouseleave',topbarML);
       },
       onEnter: function() {
         topbar.tween(o,0.5).addEvent('mouseenter',topbarME).addEvent('mouseleave',topbarML);
       },
       onTick: function(pos) {
       }
   });
 })();





  if ($('asd') !== undefined) {
    var obj = new Swiff('http://dev.dotweb.ro/htmlcss/codfiscal/flash/' + swf_file, {
      id: 'asd',
      container: 'lorem',
      width: 550,
      height: 720,
      params: {
        wmode: 'opaque',
        bgcolor: '#fff'
      }
    });
  }

})

