(function ($) {
    $.fn.cross = function (options) {
        return this.each(function (i) {
            var $$ = $(this);
            var target = $$.css('backgroundImage').replace(/^url|[\(\)'"]/g, '');
            $$.wrap('<span style="position: relative; margin: -4px;"></span>')
            .parent()
            .prepend('<img>')
            .find(':first-child')
            .attr('src', target);

            if ($.browser.mozilla) {
                $$.css({
                    'position' : 'absolute',
                    'left' : 0,
                    'background' : '',
                    'top' : this.offsetTop
                });
            } else if ($.browser.msie && $.browser.version < 7) {
                $$.css({
                    'position' : 'absolute',
                    'left' : 0,
                    'background' : '',
                    'top' : "0",
                    'margin-left' : -4
                });
            } else if ($.browser.msie && $.browser.version > 6) {
                $$.css({
                    'position' : 'absolute',
                    'left' : 0,
                    'background' : '',
                    'top' : "0",
                    'margin-left' : 0
                });
            } else if ($.browser.opera) {
                $$.css({
                    'display' : 'none'
                });
            } else {
                $$.css({
                    'position' : 'absolute',
                    'left' : 0,
                    'background' : ''
                });
            }

            $$.hover(function () {
                $$.stop().animate({
                    opacity: 0
                }, 350);
            }, function () {
                $$.stop().animate({
                    opacity: 1
                }, 350);
            });
        });
    };
})(jQuery);

$(window).bind('load', function () {
    $('img.fade').cross();
});

if ($.browser.msie && $.browser.version < 7) {
    $(function () {
        $('.bubbleInfo').each(function () {
            // options
            var distance = 10;
            var time = 250;
            var hideDelay = 250;

            var hideDelayTimer = null;

            // tracker
            var beingShown = false;
            var shown = false;

            var trigger = $('.HomePopUpLinks', this);
            var popup = $('.popup', this).css('opacity', 0);
            width=$(trigger).width();
            widthMinus=10;
            if(width<=40)
                widthMinus=5;
            // set the mouseover and mouseout on both element
            $([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: -100,
                        left: width-widthMinus,
                        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);
            });
        });
    });
} else if ($.browser.msie && $.browser.version > 6) {
    $(function () {
        $('.bubbleInfo').each(function () {
            var distance = 10;
            var time = 250;
            var hideDelay = 500;

            var hideDelayTimer = null;

            var beingShown = false;
            var shown = false;
            var trigger = $('.HomePopUpLinks', this);
            
            //linkWidth=$(triggerLink).width();
            
            var info = $('.popup', this).css('opacity', 0);
            width=$(trigger).width();
            widthMinus=85;
            if(width<=40)
                widthMinus=72;
            $([trigger.get(0), info.get(0)]).mouseover(function () {
                if (hideDelayTimer) clearTimeout(hideDelayTimer);
                if (beingShown || shown) {
                    // don't trigger the animation again
                    return;
                } else {
                    // reset position of info box
                    beingShown = true;

                    info.css({
                        top: -150,
                        left:$(trigger).width()-widthMinus,
                        display: 'block'
                    }).animate({
                        top: '-=' + distance + 'px',
                        opacity: 1
                    }, time, 'swing', function() {
                        beingShown = false;
                        shown = true;
                    });
                }

                return false;
            }).mouseout(function () {
                if (hideDelayTimer) clearTimeout(hideDelayTimer);
                hideDelayTimer = setTimeout(function () {
                    hideDelayTimer = null;
                    info.animate({
                        top: '-=' + distance + 'px',
                        opacity: 0
                    }, time, 'swing', function () {
                        shown = false;
                        info.css('display', 'none');
                    });

                }, hideDelay);

                return false;
            });
        });
    });
} else {
    $(function () {
        $('.bubbleInfo').each(function () {
            // options
            var distance = 10;
            var time = 250;
            var hideDelay = 250;

            var hideDelayTimer = null;

            // tracker
            var beingShown = false;
            var shown = false;

            var trigger = $('.HomePopUpLinks', this);
            var popup = $('.popup', this).css('opacity', 0);
            //alert("first alert="+this.width);
            // set the mouseover and mouseout on both element
            $([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;
                    width=$(trigger).width();
                    widthMinus=85;
                    if(width<=40)
                        widthMinus=72;
                    //alert("popup iwdth="+popup.width);
                    // reset position of popup box
                    popup.css({
                        top: -155,
                        left: width-widthMinus,
                        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);
            });
        });
    });
}
