aboutsummaryrefslogtreecommitdiffstats
path: root/js/jquery-compat.js
diff options
context:
space:
mode:
authorThomas Willingham <founder@kakste.com>2013-12-18 18:21:47 +0000
committerThomas Willingham <founder@kakste.com>2013-12-18 18:21:47 +0000
commit7ac00d02d110ec2f2d33779d8316e17c13cda149 (patch)
tree03b41e86e0790895fe56488beea2b5f554fbaeae /js/jquery-compat.js
parent733cb37ef14eb4dd5408e1a8c453f13cd41952eb (diff)
parentdf34aaba4733b1c38ac2b8b9c19c5a945d5a841b (diff)
downloadvolse-hubzilla-7ac00d02d110ec2f2d33779d8316e17c13cda149.tar.gz
volse-hubzilla-7ac00d02d110ec2f2d33779d8316e17c13cda149.tar.bz2
volse-hubzilla-7ac00d02d110ec2f2d33779d8316e17c13cda149.zip
Merge remote-tracking branch 'upstream/master'
Conflicts: mod/page.php
Diffstat (limited to 'js/jquery-compat.js')
-rw-r--r--js/jquery-compat.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/js/jquery-compat.js b/js/jquery-compat.js
new file mode 100644
index 000000000..7bf912542
--- /dev/null
+++ b/js/jquery-compat.js
@@ -0,0 +1,71 @@
+
+// provide jquery.browser so we can get rid of the migration toolkit
+
+jQuery.uaMatch = function( ua ) {
+ ua = ua.toLowerCase();
+
+ var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
+ [];
+
+ return {
+ browser: match[ 1 ] || "",
+ version: match[ 2 ] || "0"
+ };
+};
+
+
+// Don't clobber any existing jQuery.browser in case it's different
+if ( !jQuery.browser ) {
+ matched = jQuery.uaMatch( navigator.userAgent );
+ browser = {};
+
+ if ( matched.browser ) {
+ browser[ matched.browser ] = true;
+ browser.version = matched.version;
+ }
+
+ // Chrome is Webkit, but Webkit is also Safari.
+ if ( browser.chrome ) {
+ browser.webkit = true;
+ } else if ( browser.webkit ) {
+ browser.safari = true;
+ }
+
+ jQuery.browser = browser;
+}
+
+jQuery.fn.toggle = function( fn, fn2 ) {
+
+ // Don't mess with animation or css toggles
+ if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {
+ return oldToggle.apply( this, arguments );
+ }
+
+ // Save reference to arguments for access in closure
+ var args = arguments,
+ guid = fn.guid || jQuery.guid++,
+ i = 0,
+ toggler = function( event ) {
+ // Figure out which function to execute
+ var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
+ jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[ lastToggle ].apply( this, arguments ) || false;
+ };
+
+ // link all the functions, so any of them can unbind this click handler
+ toggler.guid = guid;
+ while ( i < args.length ) {
+ args[ i++ ].guid = guid;
+ }
+
+ return this.click( toggler );
+};