$(function() {

    var bgWidth = 1890;
    var bgHeight = 672;
    var wrapper = null;
    var subnavTimeout = null;
    var subnavTimeoutTime = 200;
    var subnavVisible = false;
    var isTouchDevice = false;

    if(navigator.userAgent.match(/Android/i) ||
        navigator.userAgent.match(/webOS/i) ||
        navigator.userAgent.match(/iPhone/i) ||
        navigator.userAgent.match(/iPod/i) ||
        navigator.userAgent.match(/iPad/i) ||
        navigator.userAgent.match(/BlackBerry/i)
        ) {
        isTouchDevice = true;
    }

    function init() {

        $('#overlay').hide();
        $('#sub-nav').hide();
        $('#company-menu').hide();
        $('#media-menu').hide();
        $('#news-menu').hide();
        $('#catalogue-menu').hide();

        $('#footer').css('visibility', 'visible');

        //var overlay = $('#overlay');
        //var oX = Math.round((bgWidth / 2) - (overlay.width() / 2));
        //var oY = Math.round((bgHeight / 2) - (overlay.height() / 2));
        //
        //overlay
        //.css({
        //    'left': oX + 'px',
        //    'top': oY + 'px'
        //    });

        wrapper = $('#wrapper');
        wrapper
        .width(bgWidth)
        .height(bgHeight)
        .css('visibility', 'visible');

        //resetLayout();
        //$(window).resize(resetLayout);
        
        var midX = Math.round((bgWidth - $(window).width()) / 2);
        window.scrollTo(midX, 0);

        var builderTea = $('#builder-tea');
        builderTea.data('label', 'builder-tea');
        builderTea.data('numFrames', 144);
        builderTea.startAnimation();

        var builderPointing = $('#builder-pointing');
        builderPointing.data('label', 'builder-pointing');
        builderPointing.data('numFrames', 86);
        builderPointing.startAnimation();

        var builderMeasure = $('#builder-measure');
        builderMeasure.data('label', 'builder-measure');
        builderMeasure.data('numFrames', 78);
        builderMeasure.data('pause', true);
        builderMeasure.data('pauseTime', 2000);
        builderMeasure.data('offsetFrame', 20);
        builderMeasure.startAnimation();

        var builderLadder = $('#builder-ladder');
        builderLadder.data('label', 'builder-ladder');
        builderLadder.data('numFrames', 71);
        builderLadder.data('pause', true);
        builderLadder.data('pauseTime', 2000);
        builderLadder.data('interval', 80);
        builderLadder.startAnimation();

        $('#top-nav li a').click(topNavItemClickHandler);
        $('#sub-nav li a').click(subNavItemClickHandler);
        $('#overlay #close-button').click(function() {

		$("#fancybox-wrap").fadeOut('fast');
            $('#overlay').fadeOut('fast');

        });

        if(!isTouchDevice) {

            $('#top-nav #company, #top-nav #media,#top-nav #news, #top-nav #catalogue ').hover(topNavHoverInHandler, topNavHoverOutHandler);
            $('#sub-nav').hover(subnavHoverIn, subnavHoverOut);
        }
    }

    function subNavItemClickHandler() {

        $('#overlay').fadeIn('fast', function() {

            $('#overlay-inner').jScrollPane();
        });

        $('#sub-nav').fadeOut('fast');
        $('#company-menu').hide();
        $('#media-menu').hide();
        $('#news-menu').hide();
        $('#catalogue-menu').hide();
    }

    function topNavItemClickHandler() {

        if(!$(this).parents('li').hasClass('inactive')) {

            var itemId = $(this).parents('li').attr('id');

            if(itemId == 'company') {

                if($('#sub-nav').is(':visible')) {

                    $('#sub-nav').fadeOut('fast');
                    $('#company-menu').hide();
                    $('#news-menu').hide();
                    $('#catalogue-menu').hide();
                    $('#media-menu').hide();
                } else {

                    $('#media-menu').hide();
                    $('#news-menu').hide();
                    $('#catalogue-menu').hide();
                    $('#company-menu').show();
                    $('#sub-nav').fadeIn('fast');
                }
            } else if(itemId == 'media') {

                if($('#sub-nav').is(':visible')) {

                    $('#sub-nav').fadeOut('fast');
                    $('#company-menu').hide();
                    $('#news-menu').hide();
                    $('#catalogue-menu').hide();
                    $('#media-menu').hide();
                } else {

                    $('#media-menu').show();
                    $('#company-menu').hide();
                    $('#news-menu').hide();
                    $('#catalogue-menu').hide();
                    $('#sub-nav').fadeIn('fast');
                }
            }else if(itemId == 'news') {

                if($('#sub-nav').is(':visible')) {

                    $('#sub-nav').fadeOut('fast');
                    $('#company-menu').hide();
                    $('#news-menu').hide();
                    $('#catalogue-menu').hide();
                    $('#media-menu').hide();
                } else {

                    $('#news-menu').show();
                    $('#company-menu').hide();
                    $('#media-menu').hide();
                    $('#catalogue-menu').hide();
                    $('#sub-nav').fadeIn('fast');
                }
            }
            else if(itemId == 'catalogue') {

                if($('#sub-nav').is(':visible')) {

                    $('#sub-nav').fadeOut('fast');
                    $('#company-menu').hide();
                    $('#news-menu').hide();
                    $('#catalogue-menu').hide();
                    $('#media-menu').hide();
                } else {

                    $('#catalogue-menu').show();
                    $('#company-menu').hide();
                    $('#media-menu').hide();
                    $('#news-menu').hide();
                    $('#sub-nav').fadeIn('fast');
                }
            }

            else {

                $('#overlay').fadeIn('fast', function() {

                    $('#overlay-inner').jScrollPane();
                });

                $('#sub-nav').fadeOut('fast');
                $('#company-menu').hide();
                $('#media-menu').hide();
                $('#news-menu').hide();
                $('#catalogue-menu').hide();
            }

        }
    }

    function subnavHoverIn() {

        clearTimeout(subnavTimeout);
    }

    function subnavHoverOut() {

        clearTimeout(subnavTimeout);
        subnavTimeout = setTimeout(subnavTimeoutHandler, subnavTimeoutTime);
    }

    function topNavHoverInHandler() {

        var itemId = $(this).attr('id');

        clearTimeout(subnavTimeout);

        if(itemId == 'company') {

            $('#media-menu').hide();
            $('#news-menu').hide();
            $('#catalogue-menu').hide();
            $('#company-menu').show();
            $('#sub-nav').fadeIn('fast');
        } else if(itemId == 'media') {

            $('#company-menu').hide();
            $('#news-menu').hide();
            $('#catalogue-menu').hide();
            $('#media-menu').show();
            $('#sub-nav').fadeIn('fast');
        }
        else if(itemId == 'news') {

            $('#company-menu').hide();
            $('#media-menu').hide();
            $('#catalogue-menu').hide();
            $('#news-menu').show();
            $('#sub-nav').fadeIn('fast');
        }
        else if(itemId == 'catalogue') {

            $('#company-menu').hide();
            $('#media-menu').hide();
            $('#news-menu').hide();
            $('#catalogue-menu').show();
            $('#sub-nav').fadeIn('fast');
        }

    }

    function subnavTimeoutHandler() {

        clearTimeout(subnavTimeout);
        $('#sub-nav').fadeOut('fast');
        $('#company-menu').hide();
        $('#media-menu').hide();
        $('#news-menu').hide();
        $('#catalogue-menu').hide();
    }

    function topNavHoverOutHandler() {

        clearTimeout(subnavTimeout);
        subnavTimeout = setTimeout(subnavTimeoutHandler, subnavTimeoutTime);
    }

    function resetLayout() {

        var wrapper = $('#wrapper');
        var lP = Math.round(($(window).width() / 2) - (wrapper.width() / 2));
        wrapper.css('left', lP + 'px');
    }

    jQuery.fn.startAnimation = function() {

        var sprite = $(this);
        var label = sprite.data('label');
        var numFrames = sprite.data('numFrames');
        var startFrame = 0;
        var frameCount = 0;
        if(sprite.data('offsetFrame')) {

            frameCount = sprite.data('offsetFrame');
            startFrame = frameCount;
        }
        
        var interval = 42;
         if(sprite.data('interval')) {
         	
         	interval = sprite.data('interval');
         }

        var reverse = false;

        var animationInterval = setInterval(function() {

            var frame = frameCount.toString();
            sprite.attr('class', 'sprite ' + label + frame);

            if(reverse) {

                if(frameCount > startFrame) {

                    frameCount--;
                } else {

                    reverse = false;

                    if(sprite.data('pause')) {

                        sprite.stopAnimation();
                    }
                }

            } else {

                if(frameCount < numFrames) {

                    frameCount++;
                } else {

                    reverse = true;
                }
            }

        }, interval);

        sprite.data('animationInterval', animationInterval);
    }

    jQuery.fn.stopAnimation = function() {

        var sprite = $(this);
        clearInterval(sprite.data('animationInterval'));
        sprite.data('animationInterval', null);

        if(sprite.data('pause')) {

            setTimeout(function() {

                sprite.startAnimation();
            }, sprite.data('pauseTime'))

        }
    }

    $(window).load(init);

})


































