(function($) {
    $.fn.attachAsExplanationFlyout = function() {
        return jQuery.each(this, function() {
            var flyout = this;
            var target = jQuery("#"+$(this).attr("attachTo"));
            if(target.length == 0)
                alert("Can't attach to " + jQuery(this).attr("attachTo") + " - element not found");
                        
            target.focus(function() {
                jQuery(flyout).css("position", "absolute")
                         .css("left", target.offset().left - jQuery(flyout).width() -8)
                         .css("top", target.offset().top)
                         .fadeIn("fast");
            });
            
            target.blur(function() {
                jQuery(flyout).fadeOut("fast");
            });        
        });        
    };
})(jQuery);

jQuery(function() {
    jQuery(".ExplanationFlyout[attachTo]").attachAsExplanationFlyout();
});