Ext.apply(Ext.EventManager, function(){
	var resizeEvent, 
    	resizeTask,
    	D = Ext.lib.Dom,
    	E = Ext.lib.Event;
    	propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;
      	
	return { 
	    // private
	    doResizeEvent: function(){
	        resizeEvent.fire(D.getViewWidth(), D.getViewHeight());
	    },

	    onWindowResize : function(fn, scope, options){
	        if(!resizeEvent){
	            resizeEvent = new Ext.util.Event();
	            resizeTask = new Ext.util.DelayedTask(this.doResizeEvent);
	            E.on(window, "resize", this.fireWindowResize, this);
	        }
	        resizeEvent.addListener(fn, scope, options);
	    },
	
	    // exposed only to allow manual firing
	    fireWindowResize : function(){
	        if(resizeEvent){
	            if((Ext.isIE||Ext.isAir) && resizeTask){
	                resizeTask.delay(50);
	            }else{
	                resizeEvent.fire(D.getViewWidth(), D.getViewHeight());
	            }
	        }
	    },
	
	    removeResizeListener : function(fn, scope){
	        if(resizeEvent){
	            resizeEvent.removeListener(fn, scope);
	        }
	    },
	
	    // private
	    fireResize : function(){
	        if(resizeEvent){
	            resizeEvent.fire(D.getViewWidth(), D.getViewHeight());
	        }
	    },
	    
        ieDeferSrc : false   
    }
}());

Ext.EventManager.on = Ext.EventManager.addListener;

Ext.onReady(function() {
    // hover-state image preload
    Ext.each(
        //Ext.query('a[@class~="plHover"]', Ext.getBody().dom),//img
        ['english', 'deutsch', 'home', 'bio', 'fotos', 'referenzen', 'networks', 'kontakt', 'contact', 'impressum', 'imprint', 'schliessen', 'close', 'up', 'down'],
        function(el, index, arr) {
            //var hoverSrc = el.src.replace(/(.+)\.(jpg|jpeg|png|gif)/, "$1-hi.$2");
            var img = new Image();
            img.src = '../images/buttons/'+el+'-hi.png';
        }
    );
    
    // center container
    var doCenter = function(windowWidth, windowHeight) {
        var container = Ext.fly('containerOuter');
        var containerWidth = container.getWidth();
        var containerHeight = container.getHeight();
        
        container.setLeft((windowWidth-containerWidth)/2);
        container.setTop((windowHeight-containerHeight)/2);
    }
    Ext.EventManager.onWindowResize(doCenter);
    Ext.EventManager.fireWindowResize();
    var container = Ext.fly('containerOuter').show();
    
    // textscroller
    if (Ext.fly('buttonDown')) {
	var overButton = false;
	layerScroll = function(speed) {
	    if (overButton) {
		var lyr = Ext.fly('text');
		this.speed = speed;
		lyr.dom.scrollTop+=speed;
		setTimeout("layerScroll(this.speed)", 20);
	    }
	};
	
	Ext.fly('buttonDown').on('mouseover', function(e) {
	    overButton = true;
	    layerScroll(1);
	});
	Ext.fly('buttonDown').on('mouseout', function(e) {
	    overButton = false;
	});
	
	Ext.fly('buttonUp').on('mouseover', function(e) {
	    overButton = true;
	    layerScroll(-1);
	});
	Ext.fly('buttonUp').on('mouseout', function(e) {
	    overButton = false;
	});
    }
});