var globaLive = {
    searchText: '',
    timer: null,
    init: function() {
        this.searchText = $('#globalSearchText').val();

        if ($.browser.msie && $.browser.version == 6) {
            this.initImageSource(); //IE 6 img element png replacement
            this.fixInlineSearchBtn();
        }

        this.initButtons();
        this.initSearch();
        this.positionNav();
        this.initNavButtons();
        this.initNavEvents();
        this.initPrint();
    },
    fixInlineSearchBtn: function() {
        $('#inlineSearchBtn').each(function() {
            this.value = '';
        });
    },
    initImageSource: function() {
        $('#home #intro img, #companies img, #content .giving img').each(function() {
            this.src = this.src.replace('.png', '.gif');
        });
    },
    initPrint: function() {
        $('#subMenu .print').click(function() {
            window.print();
            return false;
        });
    },
    initSearch: function() {
        var searchBox = $('#globalSearchText');
        var myObj = this;

        $(searchBox).bind('focus', function() {
            if (myObj.searchText == $(this).val()) this.value = '';
        });
    },
    initButtons: function() {
        $('.btnTypeB').unbind().bind('mouseover', function() {
            $(this).css({'background-position': 'right -35px'});
            $(this).find('a').css({'background-position': '0 -35px'});
        }).bind('mouseout', function() {
            $(this).css({'background-position': 'right 0'});
            $(this).find('a').css({'background-position': '0 0'});
        });
    },
    initNavEvents: function() {
        var myObj = this;
        var hideSpeed = 350;

        $('.fatNavMenu').bind('mouseleave', function() {
            myObj.timer = setTimeout("$('.fatNavMenu').hide()", hideSpeed);
        }).bind('mouseenter', function() {
            clearTimeout(myObj.timer);
        });

        $('#mainNav').bind('mouseleave', function() {
            myObj.timer = setTimeout("$('.fatNavMenu').hide()", hideSpeed);
        });

        $('.fatNavMenu .subColumnA, .fatNavMenu .subColumnB, .fatNavMenu .subColumnC').bind('mouseover', function() {
            $('.fatNavMenu div h3').removeClass('active');
            myObj.setHoverClass(this);
        });
    },
    initNavButtons: function() {
        var myObj = this;

        $('#mainNav a').each(function(navIndex) {
            $(this).bind('mouseover', function() {
                clearTimeout(myObj.timer);
                myObj.positionNavArrow(navIndex);
                myObj.showNavOverlay(navIndex);
            });
        });
    },
    setHoverClass: function(elm) {
        $(elm).find('h3').removeClass().addClass('active');
    },
    positionNav: function() {
        var winWidth = $(window).width();
        var navOffset = 409;
        var rightOffset = 70;
        var myLeft = Math.floor(winWidth/2) - (navOffset-rightOffset);

        $('.fatNavMenu').css({'left': myLeft + 'px'});
    },
    positionNavArrow: function(section) {
        var navArrow = $('.fatNavMenu .sectionArrow img');

        switch (section) {
            case 0:
                navArrow.css({'margin-left': '415px'});
                break;
            case 1:
                navArrow.css({'margin-left': '514px'});
                break;
            case 2:
                navArrow.css({'margin-left': '627px'});
                break;
            case 3:
                navArrow.css({'margin-left': '747px'});
        }
    },
    positionLogoImage: function(myPosition, isIE, iePosX) {
        var widthLimit = $('.pWrapper').width();
        var myLeft;

        if ($(window).width() < widthLimit) {
            if (isIE) {
                myLeft = parseInt(iePosX) - ((widthLimit - $(window).width()) / 2);
                $('.pWrapper').css({'background-position-x': myLeft + 'px'});
            } else {
                myLeft = parseInt(myPosition[0]) - ((widthLimit - $(window).width()) / 2);
                $('.pWrapper').css({'background-position': myLeft + 'px ' + myPosition[1]});
            }

        } else {
            if (isIE) {
                $('.pWrapper').css({'background-position-x': parseInt(iePosX) - 1 + 'px'});
            } else {
                $('.pWrapper').css({'background-position': parseInt(myPosition[0]) - 1 + 'px ' + myPosition[1]});
            }

        }
    },
    showNavOverlay: function(section) {
        $('.fatNavMenu').hide();

        switch(section) {
            case 0:
                $('#aboutFAT').show();
                break;
            case 1:
                $('#consumerFAT').show();
                break;
            case 2:
                $('#businessFAT').show();
                break;
            case 3:
                $('#newsFAT').show();
        }
    }
}

$(function() {
    globaLive.init();

    // Logo slice image positioning (brands which cut into main globe)
    var myPosition = null;
    var targets = $('#businessPage .pWrapper, #consumerPage .pWrapper');
    var positionLogo = targets.size() > 0;
    var positionLogoIE = false;
    if ($.browser.msie) positionLogoIE = true;
    var myPositionX = 0;
    var myPositionY = 0;

    if (positionLogoIE) {
        myPositionX = targets.css('background-position-x');
        myPositionY = targets.css('background-position-y');
        $('.pWrapper').css({'background-position-x': parseInt(myPositionX) - 1 + 'px', 'background-position-y': myPositionY});
    } else if (positionLogo && !positionLogoIE) {
        myPosition = targets.css('background-position').split(' ');
        $('.pWrapper').css({'background-position': parseInt(myPosition[0]) - 1 + 'px ' + myPosition[1]});
    }

    $(window).bind('resize', function() {
        globaLive.positionNav();
        if (positionLogo) globaLive.positionLogoImage(myPosition, positionLogoIE, myPositionX);
    });

    /* Tag external links with Google Analytics */
    jQuery("a").click(function(ev){
        if (jQuery(this).attr('href').indexOf('http://www.globalive.com') == -1 && jQuery(this).attr('href').indexOf('http://') != -1) {
            pageTracker._trackPageview('/outgoing/'+ jQuery(this).attr('href'));
        }
    });
});