diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 8dd129d..409692a 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -2,6 +2,11 @@ X-editable changelog
=============================
+Version 1.4.4 wip
+----------------------------
+[bug] editable-poshytip on inline mode tries to write in $.Poshytip (vitalets)
+
+
Version 1.4.3 Mar 8, 2013
----------------------------
[bug #32] hotfix for jQuery UI 1.9+ (vitalets)
diff --git a/src/containers/editable-poshytip.js b/src/containers/editable-poshytip.js
index ff8cb00..b08b242 100644
--- a/src/containers/editable-poshytip.js
+++ b/src/containers/editable-poshytip.js
@@ -105,99 +105,101 @@
* see https://github.com/vadikom/poshytip/issues/7
*/
/*jshint eqeqeq:false, curly: false*/
- var tips = [],
- reBgImage = /^url\(["']?([^"'\)]*)["']?\);?$/i,
- rePNG = /\.png$/i,
- ie6 = !!window.createPopup && document.documentElement.currentStyle.minWidth == 'undefined';
-
- $.Poshytip.prototype.refresh = function(async) {
- if (this.disabled)
- return;
-
- var currPos;
- if (async) {
- if (!this.$tip.data('active'))
- return;
- // save current position as we will need to animate
- currPos = {left: this.$tip.css('left'), top: this.$tip.css('top')};
- }
+ if($.Poshytip) { //need this check, because in inline mode poshytip may not be loaded!
+ var tips = [],
+ reBgImage = /^url\(["']?([^"'\)]*)["']?\);?$/i,
+ rePNG = /\.png$/i,
+ ie6 = !!window.createPopup && document.documentElement.currentStyle.minWidth == 'undefined';
+
+ $.Poshytip.prototype.refresh = function(async) {
+ if (this.disabled)
+ return;
+
+ var currPos;
+ if (async) {
+ if (!this.$tip.data('active'))
+ return;
+ // save current position as we will need to animate
+ currPos = {left: this.$tip.css('left'), top: this.$tip.css('top')};
+ }
- // reset position to avoid text wrapping, etc.
- this.$tip.css({left: 0, top: 0}).appendTo(document.body);
+ // reset position to avoid text wrapping, etc.
+ this.$tip.css({left: 0, top: 0}).appendTo(document.body);
- // save default opacity
- if (this.opacity === undefined)
- this.opacity = this.$tip.css('opacity');
+ // save default opacity
+ if (this.opacity === undefined)
+ this.opacity = this.$tip.css('opacity');
- // check for images - this code is here (i.e. executed each time we show the tip and not on init) due to some browser inconsistencies
- var bgImage = this.$tip.css('background-image').match(reBgImage),
- arrow = this.$arrow.css('background-image').match(reBgImage);
+ // check for images - this code is here (i.e. executed each time we show the tip and not on init) due to some browser inconsistencies
+ var bgImage = this.$tip.css('background-image').match(reBgImage),
+ arrow = this.$arrow.css('background-image').match(reBgImage);
- if (bgImage) {
- var bgImagePNG = rePNG.test(bgImage[1]);
- // fallback to background-color/padding/border in IE6 if a PNG is used
- if (ie6 && bgImagePNG) {
- this.$tip.css('background-image', 'none');
- this.$inner.css({margin: 0, border: 0, padding: 0});
- bgImage = bgImagePNG = false;
- } else {
- this.$tip.prepend('
')
- .css({border: 0, padding: 0, 'background-image': 'none', 'background-color': 'transparent'})
- .find('.tip-bg-image').css('background-image', 'url("' + bgImage[1] +'")').end()
- .find('td').eq(3).append(this.$inner);
- }
- // disable fade effect in IE due to Alpha filter + translucent PNG issue
- if (bgImagePNG && !$.support.opacity)
- this.opts.fade = false;
- }
- // IE arrow fixes
- if (arrow && !$.support.opacity) {
- // disable arrow in IE6 if using a PNG
- if (ie6 && rePNG.test(arrow[1])) {
- arrow = false;
- this.$arrow.css('background-image', 'none');
- }
- // disable fade effect in IE due to Alpha filter + translucent PNG issue
- this.opts.fade = false;
- }
+ if (bgImage) {
+ var bgImagePNG = rePNG.test(bgImage[1]);
+ // fallback to background-color/padding/border in IE6 if a PNG is used
+ if (ie6 && bgImagePNG) {
+ this.$tip.css('background-image', 'none');
+ this.$inner.css({margin: 0, border: 0, padding: 0});
+ bgImage = bgImagePNG = false;
+ } else {
+ this.$tip.prepend('')
+ .css({border: 0, padding: 0, 'background-image': 'none', 'background-color': 'transparent'})
+ .find('.tip-bg-image').css('background-image', 'url("' + bgImage[1] +'")').end()
+ .find('td').eq(3).append(this.$inner);
+ }
+ // disable fade effect in IE due to Alpha filter + translucent PNG issue
+ if (bgImagePNG && !$.support.opacity)
+ this.opts.fade = false;
+ }
+ // IE arrow fixes
+ if (arrow && !$.support.opacity) {
+ // disable arrow in IE6 if using a PNG
+ if (ie6 && rePNG.test(arrow[1])) {
+ arrow = false;
+ this.$arrow.css('background-image', 'none');
+ }
+ // disable fade effect in IE due to Alpha filter + translucent PNG issue
+ this.opts.fade = false;
+ }
- var $table = this.$tip.find('table.fallback');
- if (ie6) {
- // fix min/max-width in IE6
- this.$tip[0].style.width = '';
- $table.width('auto').find('td').eq(3).width('auto');
- var tipW = this.$tip.width(),
- minW = parseInt(this.$tip.css('min-width'), 10),
- maxW = parseInt(this.$tip.css('max-width'), 10);
- if (!isNaN(minW) && tipW < minW)
- tipW = minW;
- else if (!isNaN(maxW) && tipW > maxW)
- tipW = maxW;
- this.$tip.add($table).width(tipW).eq(0).find('td').eq(3).width('100%');
- } else if ($table[0]) {
- // fix the table width if we are using a background image
- // IE9, FF4 use float numbers for width/height so use getComputedStyle for them to avoid text wrapping
- // for details look at: http://vadikom.com/dailies/offsetwidth-offsetheight-useless-in-ie9-firefox4/
- $table.width('auto').find('td').eq(3).width('auto').end().end().width(document.defaultView && document.defaultView.getComputedStyle && parseFloat(document.defaultView.getComputedStyle(this.$tip[0], null).width) || this.$tip.width()).find('td').eq(3).width('100%');
- }
- this.tipOuterW = this.$tip.outerWidth();
- this.tipOuterH = this.$tip.outerHeight();
+ var $table = this.$tip.find('table.fallback');
+ if (ie6) {
+ // fix min/max-width in IE6
+ this.$tip[0].style.width = '';
+ $table.width('auto').find('td').eq(3).width('auto');
+ var tipW = this.$tip.width(),
+ minW = parseInt(this.$tip.css('min-width'), 10),
+ maxW = parseInt(this.$tip.css('max-width'), 10);
+ if (!isNaN(minW) && tipW < minW)
+ tipW = minW;
+ else if (!isNaN(maxW) && tipW > maxW)
+ tipW = maxW;
+ this.$tip.add($table).width(tipW).eq(0).find('td').eq(3).width('100%');
+ } else if ($table[0]) {
+ // fix the table width if we are using a background image
+ // IE9, FF4 use float numbers for width/height so use getComputedStyle for them to avoid text wrapping
+ // for details look at: http://vadikom.com/dailies/offsetwidth-offsetheight-useless-in-ie9-firefox4/
+ $table.width('auto').find('td').eq(3).width('auto').end().end().width(document.defaultView && document.defaultView.getComputedStyle && parseFloat(document.defaultView.getComputedStyle(this.$tip[0], null).width) || this.$tip.width()).find('td').eq(3).width('100%');
+ }
+ this.tipOuterW = this.$tip.outerWidth();
+ this.tipOuterH = this.$tip.outerHeight();
- this.calcPos();
+ this.calcPos();
- // position and show the arrow image
- if (arrow && this.pos.arrow) {
- this.$arrow[0].className = 'tip-arrow tip-arrow-' + this.pos.arrow;
- this.$arrow.css('visibility', 'inherit');
- }
+ // position and show the arrow image
+ if (arrow && this.pos.arrow) {
+ this.$arrow[0].className = 'tip-arrow tip-arrow-' + this.pos.arrow;
+ this.$arrow.css('visibility', 'inherit');
+ }
- if (async) {
- this.asyncAnimating = true;
- var self = this;
- this.$tip.css(currPos).animate({left: this.pos.l, top: this.pos.t}, 200, function() { self.asyncAnimating = false; });
- } else {
- this.$tip.css({left: this.pos.l, top: this.pos.t});
- }
- };
+ if (async) {
+ this.asyncAnimating = true;
+ var self = this;
+ this.$tip.css(currPos).animate({left: this.pos.l, top: this.pos.t}, 200, function() { self.asyncAnimating = false; });
+ } else {
+ this.$tip.css({left: this.pos.l, top: this.pos.t});
+ }
+ };
+ }
/*jshinteqeqeq: true, curly: true*/
}(window.jQuery));
\ No newline at end of file