wp/wp-content/plugins/portfolio/bws_menu/js/bws_tooltip.js
changeset 5 5e2f62d02dcd
child 7 cf61fcea0001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/wp-content/plugins/portfolio/bws_menu/js/bws_tooltip.js	Tue Jun 09 03:35:32 2015 +0200
@@ -0,0 +1,79 @@
+/**
+ * BWS tooltip function
+ *
+ */
+(function($) {
+	$(document).ready( function() {
+		jQuery.bwsTooltip = function( pointer_options ) {
+			var pointer_buttons = pointer_options['buttons'];
+			/* extend pointer options - add close button */
+			pointer_options = $.extend(pointer_options, {
+				buttons: function(event, t) {
+					var button;
+					/* check and add dismiss-type buttons */
+					for( var but in pointer_buttons ) {
+						if ( typeof pointer_buttons[ but ]['type'] != 'undefined' && pointer_buttons[ but ]['type'] == 'dismiss' && typeof pointer_buttons[ but ]['text'] != 'undefined' && pointer_buttons[ but ]['text'] != '' ) {
+							button += '<a style="margin:0px 5px 2px;" class="button-secondary">' + pointer_buttons[ but ]['text'] + '</a>';
+						}
+					}
+					button = jQuery( button );
+					button.bind('click.pointer', function () {
+						t.element.pointer('close');
+					});
+					return button;
+				},
+				/* add ajax dismiss functionality */
+				close : $.proxy(function () {
+					if ( pointer_options['actions']['onload'] == true ) {
+						$.post( ajaxurl, this );
+					}
+				}, {
+					pointer: pointer_options['tooltip_id'],
+					action: 'dismiss-wp-pointer'
+				})
+			});
+			/* function to display pointer */
+			function displayPointer( cssSelector ) {
+				cssSelector.pointer(pointer_options).pointer({
+					pointerClass: 'wp-pointer ' + pointer_options["tooltip_id"],
+					content: pointer_options['content'],
+					position: 
+					{
+						edge: pointer_options['position']['edge'],
+						align: pointer_options['position']['align'],
+					},
+				}).pointer('open');
+				/* display buttons that are not type of dismiss */
+				for ( var but in pointer_buttons ) {
+					if ( typeof pointer_buttons[ but ]['type'] != 'undefined' && pointer_buttons[ but ]['type'] != 'dismiss' && typeof pointer_buttons[ but ]['text'] != 'undefined' && pointer_buttons[ but ]['text'] != '' ) {
+						$( '.' + pointer_options['tooltip_id'] + ' .button-secondary').first().before( '<a class="button-primary" style="margin-right: 5px;" ' +
+						( ( pointer_buttons[ but ]['type'] == 'link' && typeof pointer_buttons[ but ]['link'] != 'undefined' && pointer_buttons[ but ]['link'] != '') ? 'target="_blank" href="' + pointer_buttons[ but ]['link'] + '"' : '' )
+						+ '>' + pointer_buttons[ but ]['text'] + '</a>' );
+					};
+				}
+				/* adjust position of pointer */
+				topPos = parseInt( $( "." + pointer_options["tooltip_id"] ).css("top") ) + parseInt( pointer_options['position']['pos-top'] );
+				leftPos = parseInt( $( "." + pointer_options["tooltip_id"] ).css("left") ) + parseInt( pointer_options['position']['pos-left'] );
+				if ( pointer_options['position']['align'] == 'left' ) {
+					leftPos += cssSelector.outerWidth()/2;
+				};
+				$( "." + pointer_options["tooltip_id"] ).css({ "top": topPos + "px", "left": leftPos + "px" });
+				/* adjust z-index if need */
+				pointerZindex = parseInt( $( "." + pointer_options["tooltip_id"] ).css("z-index") );
+				if ( pointerZindex != pointer_options['position']['zindex'] ) {
+					$( "." + pointer_options["tooltip_id"] ).css({ "z-index": pointer_options['position']['zindex'] });
+				}
+			}
+			/* display pointer for the first time */
+			if ( pointer_options['actions']['onload'] ) {
+				displayPointer( $( pointer_options['css_selector'] ) );
+			}
+			/* display pointer when clicked on selector */
+			if ( pointer_options['actions']['click'] ) {
+				$( pointer_options['css_selector'] ).click( function () {
+					displayPointer( $( this ) );
+				});
+			}
+		};
+	})
+})(jQuery);
\ No newline at end of file