diff --git a/js/beautytips.js b/js/beautytips.js
index 632d621..0972d9d 100644
--- a/js/beautytips.js
+++ b/js/beautytips.js
@@ -22,6 +22,7 @@
             btOptions[beautytips[key]['list'][k]] = beautytips[key][beautytips[key]['list'][k]];
           }
         }
+
         if (beautytips[key]['cssSelect']) {
           if (beautytips[key]['animate']) {
             btOptions = beautytipsAddAnimations(beautytips[key]['animate'], btOptions);
@@ -34,13 +35,18 @@
               }
             });
           }
+          // Run this if the content is straight text being passed.
           if (beautytips[key]['text']) {
             $(beautytips[key]['cssSelect']).each(function() {
               if (!beautytipsProcessed(this)) {
+                if (beautytipsOffsetParentEval(beautytips[key], btOptions)) {
+                  btOptions['offsetParent'] = eval(btOptions['offsetParent']);
+                }
                 $(this).bt(beautytips[key]['text'], btOptions);
               }
             });
           }
+          // Run this if we are grabbing ajax loaded content.
           else if (beautytips[key]['ajaxPath']) {
             $(beautytips[key]['cssSelect']).each(function() {
               if (!beautytipsProcessed(this)) {
@@ -49,18 +55,26 @@
                     event.preventDefault();
                   });
                 }
+                if (beautytipsOffsetParentEval(beautytips[key], btOptions)) {
+                  btOptions['offsetParent'] = eval(btOptions['offsetParent']);
+                }
                 $(this).bt(btOptions);
               }
             });
           }
-          else { 
+          // Run this if we are grabbing content from some place on the page.
+          else {
             $(beautytips[key]['cssSelect']).each(function() {
               if (!beautytipsProcessed(this)) {
+                if (beautytipsOffsetParentEval(beautytips[key], btOptions)) {
+                  btOptions['offsetParent'] = eval(btOptions['offsetParent']);
+                }
                 $(this).bt(btOptions);
               }
             });
           }
         }
+        // Clear out the options for the next tip.
         btOptions.length = 0;
       }
     }
@@ -79,6 +93,17 @@
     return false;
   }
 
+  /**
+   * Determine if the offsetParent needs to be found.
+   *  doing this allows us to choose adifferent offset parent per
+   *  individual beautytip, or to choose and to choose an offset
+   *  based on its relationship to the element.
+   */
+  function beautytipsOffsetParentEval(beautytip, btOptions) {
+    return (beautytip['offsetParentEval'] === "always" || (beautytip['offsetParentEval'] === "once" && jQuery.type(btOptions['offsetParent']) === "string"));
+  }
+
+
   function beautytipsAddAnimations(animations, btOptions) {
     switch (animations['on']) {
       case 'none':
diff --git a/js/beautytips.min.js b/js/beautytips.min.js
index 40de9dd..dff0696 100644
--- a/js/beautytips.min.js
+++ b/js/beautytips.min.js
@@ -1 +1 @@
-(function($){Drupal.behaviors.beautytips={attach:function(context,settings){if(typeof(jQuery.bt)=="undefined"&&jQuery.bt==null){return}jQuery.bt.options.closeWhenOthersOpen=true;var beautytips=Drupal.settings.beautytips;var styles=Drupal.settings.beautytipStyles;for(var key in beautytips){var btOptions=styles[beautytips[key]["style"]];if(beautytips[key]["list"]){for(var k=0;k<beautytips[key]["list"].length;k++){btOptions[beautytips[key]["list"][k]]=beautytips[key][beautytips[key]["list"][k]]}}if(beautytips[key]["cssSelect"]){if(beautytips[key]["animate"]){btOptions=beautytipsAddAnimations(beautytips[key]["animate"],btOptions)}if(beautytips[key]["contentSelector"]&&beautytips[key]["preEval"]){$(beautytips[key]["cssSelect"]).each(function(){if(!beautytipsProcessed(this,false)){eval(beautytips[key]["contentSelector"])}})}if(beautytips[key]["text"]){$(beautytips[key]["cssSelect"]).each(function(){if(!beautytipsProcessed(this)){$(this).bt(beautytips[key]["text"],btOptions)}})}else{if(beautytips[key]["ajaxPath"]){$(beautytips[key]["cssSelect"]).each(function(){if(!beautytipsProcessed(this)){if(beautytips[key]["ajaxDisableLink"]){$(this).click(function(event){event.preventDefault()})}$(this).bt(btOptions)}})}else{$(beautytips[key]["cssSelect"]).each(function(){if(!beautytipsProcessed(this)){$(this).bt(btOptions)}})}}}btOptions.length=0}}};function beautytipsProcessed(element,addClass){if($(element).hasClass("beautytips-module-processed")){return true}if(addClass!=false){$(element).addClass("beautytips-module-processed")}return false}function beautytipsAddAnimations(animations,btOptions){switch(animations.on){case"none":break;case"fadeIn":btOptions.showTip=function(box){$(box).fadeIn(500)};break;case"slideIn":break}switch(animations.off){case"none":break;case"fadeOut":btOptions.hideTip=function(box,callback){$(box).animate({opacity:0},500,callback)};break;case"slideOut":btOptions.hideTip=function(box,callback){var width=$("body").width();$(box).animate({left:"+="+width+"px"},"slow",callback)};break}return btOptions}})(jQuery);
\ No newline at end of file
+(function($){Drupal.behaviors.beautytips={attach:function(context,settings){if(typeof(jQuery.bt)=="undefined"&&jQuery.bt==null){return}jQuery.bt.options.closeWhenOthersOpen=true;var beautytips=Drupal.settings.beautytips;var styles=Drupal.settings.beautytipStyles;for(var key in beautytips){var btOptions=styles[beautytips[key]["style"]];if(beautytips[key]["list"]){for(var k=0;k<beautytips[key]["list"].length;k++){btOptions[beautytips[key]["list"][k]]=beautytips[key][beautytips[key]["list"][k]]}}if(beautytips[key]["cssSelect"]){if(beautytips[key]["animate"]){btOptions=beautytipsAddAnimations(beautytips[key]["animate"],btOptions)}if(beautytips[key]["contentSelector"]&&beautytips[key]["preEval"]){$(beautytips[key]["cssSelect"]).each(function(){if(!beautytipsProcessed(this,false)){eval(beautytips[key]["contentSelector"])}})}if(beautytips[key]["text"]){$(beautytips[key]["cssSelect"]).each(function(){if(!beautytipsProcessed(this)){if(beautytipsOffsetParentEval(beautytips[key],btOptions)){btOptions.offsetParent=eval(btOptions.offsetParent)}$(this).bt(beautytips[key]["text"],btOptions)}})}else{if(beautytips[key]["ajaxPath"]){$(beautytips[key]["cssSelect"]).each(function(){if(!beautytipsProcessed(this)){if(beautytips[key]["ajaxDisableLink"]){$(this).click(function(event){event.preventDefault()})}if(beautytipsOffsetParentEval(beautytips[key],btOptions)){btOptions.offsetParent=eval(btOptions.offsetParent)}$(this).bt(btOptions)}})}else{$(beautytips[key]["cssSelect"]).each(function(){if(!beautytipsProcessed(this)){if(beautytipsOffsetParentEval(beautytips[key],btOptions)){btOptions.offsetParent=eval(btOptions.offsetParent)}$(this).bt(btOptions)}})}}}btOptions.length=0}}};function beautytipsProcessed(element,addClass){if($(element).hasClass("beautytips-module-processed")){return true}if(addClass!=false){$(element).addClass("beautytips-module-processed")}return false}function beautytipsOffsetParentEval(beautytip,btOptions){return(beautytip.offsetParentEval==="always"||(beautytip.offsetParentEval==="once"&&jQuery.type(btOptions.offsetParent)==="string"))}function beautytipsAddAnimations(animations,btOptions){switch(animations.on){case"none":break;case"fadeIn":btOptions.showTip=function(box){$(box).fadeIn(500)};break;case"slideIn":break}switch(animations.off){case"none":break;case"fadeOut":btOptions.hideTip=function(box,callback){$(box).animate({opacity:0},500,callback)};break;case"slideOut":btOptions.hideTip=function(box,callback){var width=$("body").width();$(box).animate({left:"+="+width+"px"},"slow",callback)};break}return btOptions}})(jQuery);
\ No newline at end of file
