aboutsummaryrefslogtreecommitdiff
path: root/vendors/jquery/ui.base.js
diff options
context:
space:
mode:
Diffstat (limited to 'vendors/jquery/ui.base.js')
-rwxr-xr-xvendors/jquery/ui.base.js204
1 files changed, 204 insertions, 0 deletions
diff --git a/vendors/jquery/ui.base.js b/vendors/jquery/ui.base.js
new file mode 100755
index 000000000..36a623912
--- /dev/null
+++ b/vendors/jquery/ui.base.js
@@ -0,0 +1,204 @@
+/*
+ * jQuery UI @VERSION
+ *
+ * Copyright (c) 2008 Paul Bakaus (ui.jquery.com)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI
+ *
+ * $Date: 2008-04-01 09:23:47 -0400 (Tue, 01 Apr 2008) $
+ * $Rev: 5174 $
+ */
+;(function($) {
+
+ //If the UI scope is not available, add it
+ $.ui = $.ui || {};
+
+ //Add methods that are vital for all mouse interaction stuff (plugin registering)
+ $.extend($.ui, {
+ plugin: {
+ add: function(module, option, set) {
+ var proto = $.ui[module].prototype;
+ for(var i in set) {
+ proto.plugins[i] = proto.plugins[i] || [];
+ proto.plugins[i].push([option, set[i]]);
+ }
+ },
+ call: function(instance, name, arguments) {
+ var set = instance.plugins[name]; if(!set) return;
+ for (var i = 0; i < set.length; i++) {
+ if (instance.options[set[i][0]]) set[i][1].apply(instance.element, arguments);
+ }
+ }
+ },
+ cssCache: {},
+ css: function(name) {
+ if ($.ui.cssCache[name]) return $.ui.cssCache[name];
+ var tmp = $('<div class="ui-resizable-gen">').addClass(name).css({position:'absolute', top:'-5000px', left:'-5000px', display:'block'}).appendTo('body');
+
+ //if (!$.browser.safari)
+ //tmp.appendTo('body');
+
+ //Opera and Safari set width and height to 0px instead of auto
+ //Safari returns rgba(0,0,0,0) when bgcolor is not set
+ $.ui.cssCache[name] = !!(
+ (!/auto|default/.test(tmp.css('cursor')) || (/^[1-9]/).test(tmp.css('height')) || (/^[1-9]/).test(tmp.css('width')) ||
+ !(/none/).test(tmp.css('backgroundImage')) || !(/transparent|rgba\(0, 0, 0, 0\)/).test(tmp.css('backgroundColor')))
+ );
+ try { $('body').get(0).removeChild(tmp.get(0)); } catch(e){}
+ return $.ui.cssCache[name];
+ },
+ disableSelection: function(e) {
+ e.unselectable = "on";
+ e.onselectstart = function() { return false; };
+ if (e.style) e.style.MozUserSelect = "none";
+ },
+ enableSelection: function(e) {
+ e.unselectable = "off";
+ e.onselectstart = function() { return true; };
+ if (e.style) e.style.MozUserSelect = "";
+ },
+ hasScroll: function(e, a) {
+ var scroll = /top/.test(a||"top") ? 'scrollTop' : 'scrollLeft', has = false;
+ if (e[scroll] > 0) return true; e[scroll] = 1;
+ has = e[scroll] > 0 ? true : false; e[scroll] = 0;
+ return has;
+ }
+ });
+
+ /******* fn scope modifications ********/
+
+ $.each( ['Left', 'Top'], function(i, name) {
+ if(!$.fn['scroll'+name]) $.fn['scroll'+name] = function(v) {
+ return v != undefined ?
+ this.each(function() { this == window || this == document ? window.scrollTo(name == 'Left' ? v : $(window)['scrollLeft'](), name == 'Top' ? v : $(window)['scrollTop']()) : this['scroll'+name] = v; }) :
+ this[0] == window || this[0] == document ? self[(name == 'Left' ? 'pageXOffset' : 'pageYOffset')] || $.boxModel && document.documentElement['scroll'+name] || document.body['scroll'+name] : this[0][ 'scroll' + name ];
+ };
+ });
+
+ var _remove = $.fn.remove;
+ $.fn.extend({
+ position: function() {
+ var offset = this.offset();
+ var offsetParent = this.offsetParent();
+ var parentOffset = offsetParent.offset();
+
+ return {
+ top: offset.top - num(this[0], 'marginTop') - parentOffset.top - num(offsetParent, 'borderTopWidth'),
+ left: offset.left - num(this[0], 'marginLeft') - parentOffset.left - num(offsetParent, 'borderLeftWidth')
+ };
+ },
+ offsetParent: function() {
+ var offsetParent = this[0].offsetParent;
+ while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && $.css(offsetParent, 'position') == 'static') )
+ offsetParent = offsetParent.offsetParent;
+ return $(offsetParent);
+ },
+ mouseInteraction: function(o) {
+ return this.each(function() {
+ new $.ui.mouseInteraction(this, o);
+ });
+ },
+ removeMouseInteraction: function(o) {
+ return this.each(function() {
+ if($.data(this, "ui-mouse"))
+ $.data(this, "ui-mouse").destroy();
+ });
+ },
+ remove: function() {
+ jQuery("*", this).add(this).trigger("remove");
+ return _remove.apply(this, arguments );
+ }
+ });
+
+ function num(el, prop) {
+ return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;
+ };
+
+
+ /********** Mouse Interaction Plugin *********/
+
+ $.ui.mouseInteraction = function(element, options) {
+
+ var self = this;
+ this.element = element;
+
+ $.data(this.element, "ui-mouse", this);
+ this.options = $.extend({}, options);
+
+ $(element).bind('mousedown.draggable', function() { return self.click.apply(self, arguments); });
+ if($.browser.msie) $(element).attr('unselectable', 'on'); //Prevent text selection in IE
+
+ // prevent draggable-options-delay bug #2553
+ $(element).mouseup(function() {
+ if(self.timer) clearInterval(self.timer);
+ });
+ };
+
+ $.extend($.ui.mouseInteraction.prototype, {
+
+ destroy: function() { $(this.element).unbind('mousedown.draggable'); },
+ trigger: function() { return this.click.apply(this, arguments); },
+ click: function(e) {
+
+ if(
+ e.which != 1 //only left click starts dragging
+ || $.inArray(e.target.nodeName.toLowerCase(), this.options.dragPrevention || []) != -1 // Prevent execution on defined elements
+ || (this.options.condition && !this.options.condition.apply(this.options.executor || this, [e, this.element])) //Prevent execution on condition
+ ) return true;
+
+ var self = this;
+ var initialize = function() {
+ self._MP = { left: e.pageX, top: e.pageY }; // Store the click mouse position
+ $(document).bind('mouseup.draggable', function() { return self.stop.apply(self, arguments); });
+ $(document).bind('mousemove.draggable', function() { return self.drag.apply(self, arguments); });
+
+ if(!self.initalized && Math.abs(self._MP.left-e.pageX) >= self.options.distance || Math.abs(self._MP.top-e.pageY) >= self.options.distance) {
+ if(self.options.start) self.options.start.call(self.options.executor || self, e, self.element);
+ if(self.options.drag) self.options.drag.call(self.options.executor || self, e, this.element); //This is actually not correct, but expected
+ self.initialized = true;
+ }
+ };
+
+ if(this.options.delay) {
+ if(this.timer) clearInterval(this.timer);
+ this.timer = setTimeout(initialize, this.options.delay);
+ } else {
+ initialize();
+ }
+
+ return false;
+
+ },
+ stop: function(e) {
+
+ var o = this.options;
+ if(!this.initialized) return $(document).unbind('mouseup.draggable').unbind('mousemove.draggable');
+
+ if(this.options.stop) this.options.stop.call(this.options.executor || this, e, this.element);
+ $(document).unbind('mouseup.draggable').unbind('mousemove.draggable');
+ this.initialized = false;
+ return false;
+
+ },
+ drag: function(e) {
+
+ var o = this.options;
+ if ($.browser.msie && !e.button) return this.stop.apply(this, [e]); // IE mouseup check
+
+ if(!this.initialized && (Math.abs(this._MP.left-e.pageX) >= o.distance || Math.abs(this._MP.top-e.pageY) >= o.distance)) {
+ if(this.options.start) this.options.start.call(this.options.executor || this, e, this.element);
+ this.initialized = true;
+ } else {
+ if(!this.initialized) return false;
+ }
+
+ if(o.drag) o.drag.call(this.options.executor || this, e, this.element);
+ return false;
+
+ }
+ });
+
+})(jQuery);
+ \ No newline at end of file