var DERPUNKT = {
    start: function() {
      this.init();
      this.initToggleHandler();
      this.enableFancyNavigation();
      this.targetHandler();
      this.disableDummyLinks();
      this.equalizeContentHeight();
      //this.christmasFade();
    },

    init: function() {
      var pageSmoothScroll = new Fx.SmoothScroll({
        duration: 250
      });

      // Wird das benutzt?
      var buttonLinks = $$('a.button');
      if (buttonLinks.length) {
        buttonLinks.each(function(item, i) {
          var myHover = item.getElement('span');
          item.addEvents({
            'mouseenter': function() {
              myHover.tween('opacity', 1);
            },
            'mouseleave': function() {
              myHover.tween('opacity', 0);
            }
          });
        });
      }

      //if the box contains a flash movie or an image and no text: disable padding of div.box-text
      var boxCollection = $$('.box');
      if (boxCollection.length) {
        boxCollection.each(function(el) {
          if ((el.getElement('object') || el.getElement('img')) && el.getElement('div.box-text').get('text') == false) {
            el.getElement('div.box-text').setStyle('padding', ' 0 0 0 0');
          }
          if (el.getElement('object.bossbox')) {
            // Error Error Error.
            try {
              correctBoxHeight = el.getElement('object').getStyle('height').toInt();
              el.getElement('div.box-body').setStyle('height', correctBoxHeight);
            } catch (e) {}
          }
        });
      }
    },

    initToggleHandler: function() {
      var toggleAll = $$('.toggle-module');
      var content = $('content');

      toggleAll.each(function(el, i) {
        var myTrigger = el.getElement('h3');
        var mySlide = el.getElement('div.toggle-slide');
        var myInner = el.getElement('div.toggle-module-inner');
        var toggleWrap = new Element('div', {
          'class': 'toggle-wrap'
        }).wraps(el);
        var myRandom = 'st-' + i;
        i++;

        if(Browser.Engine.trident && (Browser.Engine.version == 5) ){
            mySlide.setStyle('visibility' , 'hidden');
            var ie7 = true;
        }


        el.setStyles({
          'border-top': '1px #eaebee solid',
          'margin-bottom': 0
        });
        myTrigger.setStyles({
          'padding-top': '6px',
          'padding-bottom': '7px',
          'cursor': 'pointer',
          'background-position': '0 11px'
        }).set('id', myRandom);

        var mySlideFx = new Fx.Slide(mySlide, {
          duration: 2000
        }).hide();

        var myScrollFx = new Fx.Scroll(document.body);
        myTrigger.addEvents({
          'click': function() {
            if (myTrigger.hasClass('open')) {

                myTrigger.removeClass('open');

                if(ie7 == true){
                    mySlide.setStyle('visibility' , 'hidden');
                }
                mySlide.slide('out');
                myInner.tween('padding', '0 10px 0 9px');

                myScrollFx.toTop();

                (function() {
                    if(ie7 == true) {
                        mySlide.setStyle('visibility' , 'hidden');
                    }
                    content.setStyle('min-height', 403);
                }).delay(500);

            } else {
                if(ie7 == true) {
                    mySlide.setStyles( 'visibility','hidden');
                }

                var myOpen = $$('h3.open');
                myOpen.removeClass('open');

                if(myOpen.length != 0) {

                    var myOuterSlide = $$('div.toggle-slide');
                    myOuterSlide.slide('out');

                    if(ie7 == true) {
                        myOuterSlide.setStyle('visibility' , 'hidden');
                    }

                    var myOuter = $$('div.toggle-module-inner');
                    myOuter.tween('padding', '0 10px 0 9px');

                    var myDelay = 500;
                } else {
                    var myDelay = 0;
                }

                (function() {

                    mySlide.slide('in');
                    myTrigger.addClass('open');
                    myInner.tween('padding', '12px 10px 9px 9px');

                    (function() {
                        if(ie7 == true) {
                           $$( mySlide).setStyle('visibility' , 'visible');
                        }

                        var contentHeight = content.getStyle('height').toInt();
                        content.setStyle('min-height', contentHeight);
                    }).delay(500);
                }).delay(myDelay);
            }
          }
        });

      });
    },

    enableFancyNavigation: function() {
      // Sub-Navigation
      $$('div#column-left ul li a').each(function(el) {
        if (el.get('class') != 'active') {
          var original = el.getStyle('color');
          var tween = new Fx.Tween(el, {
            duration: 250,
            link: 'cancel'
          });
          el.getElements('span').setStyle('background-position', '0 0').addEvents({
            'mouseenter': function(e) {
              tween.start('background-position', '-143px 0');
            },
            'mouseleave': function(e) {
              tween.start('background-position', '0 0');
            }
          });
        }
      });
    },

    targetHandler: function() {
      $$('a.new-window').each(function(link) {
        link.addEvent('click', function() {
          window.open(this);
          return false;
        });
      });
    },

    disableDummyLinks: function() {
      $$('a[href$=#]').addEvent('click', function(event) {
        event.stop();
      });
    },


    equalizeContentHeight: function() {
      var pageBody = document.body.getScrollSize().y;
      var content = $('content').getSize().y;

      if ($$('.column-center')[0].hasClass('wide')) {
        var difference = 565;
      } else if ($('site-index')) {
        var difference = 550;
      } else {
        var difference = 442;
      }

      if ((pageBody - difference >= content) && !$('slide')) {
        $('content').setStyle('min-height', content + (pageBody - content - difference));
      }
    },
    
    //special fade, yey
    //for christmas
    christmasFade : function() {
        var box = $('christmas');
        var boxLink = $$('#christmas a');
        
        if(boxLink.length){
            box.addEvents({
                
                'mouseenter' : function(){
                    boxLink.setStyles({'background-image':'url(fileadmin/templates/derpunkt.de-2009-demo/img/christmas.gif)', 'background-position':'-248px 0' , 'opacity':'0'});
                    boxLink.fade(1);
                },
                'mouseleave' : function(){
                    boxLink.fade('out');
                }
            });
        }
    }
    

}

window.addEvent('domready', function() {
  DERPUNKT.start();

  // Coverflow Scrolling
  if ((Browser.Engine.gecko || Browser.Engine.webkit) && (flashContainer = $('coverflow'))) {
    flashContainer.addEvent('mousewheel', function(e) {
      flashContainer.mousewheelHandler(event.wheel);
      e.stop();
    });
  }

});

