var body;
var w;

window.addEvent('load', function() {
    body = $(document.body);
    w    = $(window);
    if (body.hasClass('main')) {
        // главная страница
        
        // супербольшая картинка
        (function() {
            var IMGWIDTH  = 5766;
            var IMGOFFSET = 740;
            var BODYWIDTH = 960;
            var DURATION  = 240000;
            var FULLPATH  = IMGWIDTH - BODYWIDTH;
            
            var x = 0;
            var direction = 'right';
            
            var moveFx = new Fx.Tween(body, {
                property: 'backgroundPosition',
                transition: 'linear',
                fps: 100,
                duration: 0,
                onCancel: function() {
                    x = getX();
                },
                onComplete: function() {
                    changeDirection();
                    startFx();
                }
            });
            
            var imageIsLoaded = function() {
                //var c = body.getCoordinates();alert(window.innerWidth)
                var c = document.documentElement.clientWidth;
                x = -(IMGOFFSET - Math.floor((c - BODYWIDTH) / 2));
                body.setStyle('background', 'url(' + XLImage.get('src') + ') ' + (x) + 'px 0 no-repeat');
                
                startFx();
            };
            
            var calculateDuration = function() {
                return ((calculatePathLength() * DURATION) / FULLPATH).toInt();
            };
            
            var calculateFullPathLength = function() {
                return IMGWIDTH - document.documentElement.clientWidth;
            };
            
            var calculatePathLength = function() {
                switch (direction) {
                    case 'right':
                        return calculateFullPathLength() + getX();
                    case 'left':
                        return -getX();
                }
                return 0;
            };
            
            var getX = function() {
                return (x = body.getStyle('backgroundPosition').match(/^([\-\d]+)(?:px|%|pt)/)[1].toInt());
            };
            
            var calculateStopX = function() {
                switch (direction) {
                    case 'right':
                        return -(IMGWIDTH - document.documentElement.clientWidth);
                    case 'left':
                        return 0;
                };
                return 0;
            };
            
            var changeDirection = function() {
                if (direction == 'right') {
                    direction = 'left';
                } else {
                    direction = 'right';
                };
            };
            
            var startFx = function() {
                moveFx.options.duration = calculateDuration();
                moveFx.start(calculateStopX() + 'px 0px');
            };
            
            var stopFx = function() {
                moveFx.cancel();
            };
            
            var windowDoneResizing = function() {
                startFx();
            };
            
            var adjustImagePosition = function() {
                var width = document.documentElement.clientWidth;
                if ((IMGWIDTH + x) <= width) {
                    body.setStyle('backgroundPosition', -(IMGWIDTH - width) + 'px 0px');
                };
            };
            
            w.addEvent('resize', function() {
                stopFx();
                adjustImagePosition();
            });
            w.addEvent('resize', windowDoneResizing.debounce(250, false));
            
            var XLImage = $(new Image());
            XLImage.addEvent('load', imageIsLoaded);
            XLImage.set('src', '/images/mainpage-large-bg.jpg');
        })();
    };
});
