$(function() {

    $('.bubbleInfo').each(function() {

        // options
        var distance = 10;
        var time = 150;
        var hideDelay = 100;

        var hideDelayTimer = null;

        // tracker
        var beingShown = false;
        var shown = false;

        var popupName = null;

        //        $('*[className^="trigger"]').each(function() {
        $('.lanch').each(function() {
            var trigger = $(this);
            var position = $(this).position();

            popupName = ".popup" + $(this).attr('className').split('trigger')[1];
            popupName = popupName.replace(" lanch", "");
            var popup = $(popupName, '.bubbleInfo').css('opacity', 0);
//            var top = 200;
//            var left = 150;
//            if (popupName = ".popup-1") {
//                top = 120;
//                left = 65;
//            }

            $([trigger.get(0), popup.get(0)]).mouseover(function() {
                // stops the hide event if we move from the trigger to the popup element
                if (hideDelayTimer) clearTimeout(hideDelayTimer);

                // don't trigger the animation again if we're being shown, or already visible
                if (beingShown || shown) {
                    return;
                } else {
                    beingShown = true;

                    // reset position of popup box
                    popup.css({
                    top: position.top - 120,
                    left: position.left + 65,
                        display: 'block' // brings the popup back in to view
                    })

                    // (we're using chaining on the popup) now animate it's opacity and position
        .animate({
            top: '-=' + distance + 'px',
            opacity: 1
        }, time, 'swing', function() {
            // once the animation is complete, set the tracker variables
            beingShown = false;
            shown = true;
        });
                }
            }).mouseout(function() {
                // reset the timer if we get fired again - avoids double animations
                if (hideDelayTimer) clearTimeout(hideDelayTimer);

                // store the timer so that it can be cleared in the mouseover if required
                hideDelayTimer = setTimeout(function() {
                    hideDelayTimer = null;
                    popup.animate({
                        top: '-=' + distance + 'px',
                        opacity: 0
                    }, time, 'swing', function() {
                        // once the animate is complete, set the tracker variables
                        shown = false;
                        // hide the popup entirely after the effect (opacity alone doesn't do the job)
                        popup.css('display', 'none');
                    });
                }, hideDelay);
            });
        });
    });
});






