$(document).ready(function() {

    $('a#onlineFeatureLink').html('&gt;&gt; Click to view');

    // Main Menu
    $('#globalMenu ul').hide();
    $('#globalMenu li.active ul').show();


    $('li.withSub a:not(.aTagLevel-2)').bind('click', function() {
        $('li.withSub.open ul').hide();
        $('li.withSub.open').removeClass('open');
        $(this).parent('.globalMenuLevel-1').addClass('open');
        $('li.withSub.open ul').show();
        return false;
    });

    // Home Page Drawers

    $('.drawerContent').hide();
    $('.drawerContent:first').slideDown('slow');

    $('.drawerHeader').bind('click', function() {
        if ($(this).next('.drawerContent').is(':hidden')) {
            $('.drawerContent').slideUp('fast');
            $('.drawerHeader').removeClass('active');
            $(this).addClass('active');
            $(this).next('.drawerContent').slideDown('fast');
        }
    });

    $('#checkout .proceed').bind('click', function() {

        if ($('#tab-1').hasClass('active')) {
            $('.tab').removeClass('active');
            $('#tab-2').addClass('active');
            $('#myAccount .formHeader').hide();
            $('#checkout .formHeader').hide();
            $('#myAccount .manageBillingHeader').show();
            $('#checkout .shippingInfoHeader').show();
            $('.formBodyWrap').hide();
            $('#formPanel-2').show();
            return false;
        }

        else if ($('#tab-2').hasClass('active')) {
            $('.tab').removeClass('active');
            $('#tab-3').addClass('active');
            $('#myAccount .formHeader').hide();
            $('#checkout .formHeader').hide();
            $('#myAccount .manageShippingHeader').show();
            $('#checkout .creditCardInfoHeader').show();
            $('.formBodyWrap').hide();
            $('#formPanel-3').show();
            return false;
        }

        else if ($('#tab-3').hasClass('active')) {
            $('.tab').removeClass('active');
            $('#tab-4').addClass('active');
            $('#myAccount .formHeader').hide();
            $('#checkout .formHeader').hide();
            $('#myAccount .managePromoEmailHeader').show();
            $('#checkout .orderMethodHeader').show();
            $('.formBodyWrap').hide();
            $('#formPanel-4').show();
            $('#checkout .formSubmit').removeClass('proceed');
            return false;
        }

        else {
            return true;
        }


    });

    $('a.cvv2Help').tipsy({ gravity: 's'});
});

//Tipsy
(function($) {
    $.fn.tipsy = function(options) {

        options = $.extend({}, $.fn.tipsy.defaults, options);

        return this.each(function() {

            var opts = $.fn.tipsy.elementOptions(this, options);

            $(this).hover(function() {

                $.data(this, 'cancel.tipsy', true);

                var tip = $.data(this, 'active.tipsy');
                if (!tip) {
                    tip = $('<div class="tipsy"><div class="tipsy-inner"/></div>');
                    tip.css({ position: 'absolute', zIndex: 100000 });
                    $.data(this, 'active.tipsy', tip);
                }

                if ($(this).attr('title') || typeof ($(this).attr('original-title')) != 'string') {
                    $(this).attr('original-title', $(this).attr('title') || '').removeAttr('title');
                }

                var title;
                if (typeof opts.title == 'string') {
                    title = $(this).attr(opts.title == 'title' ? 'original-title' : opts.title);
                } else if (typeof opts.title == 'function') {
                    title = opts.title.call(this);
                }

                tip.find('.tipsy-inner')[opts.html ? 'html' : 'text'](title || opts.fallback);

                var pos = $.extend({}, $(this).offset(), { width: this.offsetWidth, height: this.offsetHeight });
                tip.get(0).className = 'tipsy'; // reset classname in case of dynamic gravity
                tip.remove().css({ top: 0, left: 0, visibility: 'hidden', display: 'block' }).appendTo(document.body);
                var actualWidth = tip[0].offsetWidth, actualHeight = tip[0].offsetHeight;
                var gravity = (typeof opts.gravity == 'function') ? opts.gravity.call(this) : opts.gravity;

                switch (gravity.charAt(0)) {
                    case 'n':
                        tip.css({ top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 }).addClass('tipsy-north');
                        break;
                    case 's':
                        tip.css({ top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 }).addClass('tipsy-south');
                        break;
                    case 'e':
                        tip.css({ top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth }).addClass('tipsy-east');
                        break;
                    case 'w':
                        tip.css({ top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }).addClass('tipsy-west');
                        break;
                }

                if (opts.fade) {
                    tip.css({ opacity: 0, display: 'block', visibility: 'visible' }).animate({ opacity: 0.8 });
                } else {
                    tip.css({ visibility: 'visible' });
                }

            }, function() {
                $.data(this, 'cancel.tipsy', false);
                var self = this;
                setTimeout(function() {
                    if ($.data(this, 'cancel.tipsy')) return;
                    var tip = $.data(self, 'active.tipsy');
                    if (opts.fade) {
                        tip.stop().fadeOut(function() { $(this).remove(); });
                    } else {
                        tip.remove();
                    }
                }, 100);

            });

        });

    };

    // Overwrite this method to provide options on a per-element basis.
    // For example, you could store the gravity in a 'tipsy-gravity' attribute:
    // return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });
    // (remember - do not modify 'options' in place!)
    $.fn.tipsy.elementOptions = function(ele, options) {
        return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;
    };

    $.fn.tipsy.defaults = {
        fade: false,
        fallback: '',
        gravity: 'n',
        html: false,
        title: 'title'
    };

    $.fn.tipsy.autoNS = function() {
        return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';
    };

    $.fn.tipsy.autoWE = function() {
        return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w';
    };

})(jQuery);