/*
* Orginal: http://adomas.org/javascript-mouse-wheel/
* prototype extension by "Frank Monnerjahn" themonnie @gmail.com
*/
Object.extend(Event, {
        wheel:function (event){
                var delta = 0;
                if (!event) event = window.event;
                if (event.wheelDelta) {
                        delta = event.wheelDelta/120;
                        if (window.opera) delta = -delta;
                } else if (event.detail) { delta = -event.detail/3; }
                return Math.round(delta); //Safari Round
        }
});

/**
 * A wrapper for the screen resolution.
 * The method "getAvailableHeight" returns the available height,
 * that is not covered by the header, the navigation or the footer.
 *
 * @author Florian Herlings <florian.herlings@gmail.com>
 */
var CurrentScreen = {
  
  /**
   * Returns the width of the viewport (= available width)
   */
  'getWidth': function() {
    return document.viewport.getDimensions().width;
  },
  
  
  /**
   * Returns the height of the viewport (= available width)
   */
  'getHeight': function() {
    return document.viewport.getDimensions().height;
  },
  
  
  /**
   * Returns the part of the available height, that is not
   * covered by the header oder footer navigation containers.
   */
  'getAvailableHeight': function() {
    return this.getHeight();
  }
}

/**
* The ResizeDetector object checks the window sizes
* every second to detect if the window has been resized.
* If this is the case, it calls the "correct_position"
* function on the MultiContainerHandler, which pushes
* all the containers to their new positions.
*
* @author Florian Herlings <florian.herlings@gmail.com>
*/
var ResizeDetector = {

  /**
   * Constructor
   */
  'init': function() {
  
    ResizeDetector.buffer = document.viewport.getDimensions();
    new PeriodicalExecuter(ResizeDetector.check, 0.25);
    
  },
  
  /**
   * Tries to find out, if the window has been resized. This method
   * has to be called periodically, but not __too__ often, because
   * that may slow the browser engine down significantly.
   */
  'check': function() {
        
    if ((CurrentScreen.getWidth() != ResizeDetector.buffer.width)
        || (CurrentScreen.getHeight() != ResizeDetector.buffer.height)) {
      
      ResizeDetector.buffer = document.viewport.getDimensions();
      ResizeDetector.hasUpdated();
      
    }
  },

  /**
   * This method is called, whenever the windows has been resized.
   */
  'hasUpdated': function() {
    
  }
}

var imageCounter = 0;
var imageEffect = null; 
var imageBrowser =
{
    'init': function()
    {
        var f = images[0];
        var p = getUrlParam('do');
        var d = p.split('.');
        
        imageCounter++;
        $('bg_pic').hide();
        $('bg_pic').src = f;
        $('bg_pic').observe('load', function(){    
            imageEffect = new Effect.Appear($('bg_pic'),{duration: 0.2});
        }); 
        $(document.body).observe('click', function(e){
            var element = Event.element(e);
            if(element.tagName != 'A'){
                if(d[0] == 'portfolio'){
                    imageBrowser.next();   
                }else if((d[0] == 'index' && d[1] == 'hello') || p == ""){
                    //document.location.href = '/?do=index.enter';
                }else{
                    //nothing      
                } 
            }
        });      
    },
    'next': function()
    {
        var n = ''; 
        if(imageCounter < images.length){
            n = images[imageCounter];; 
            imageCounter++;   
        }else{
            n = images[0]; 
            imageCounter = 1;    
        }
        imageEffect = new Effect.Fade($('bg_pic'),{
            duration: 0.2,
            afterFinish: function(){
            $('bg_pic').src = n;
          }
        });      
    }
}
