function menuToolTip(selector, placement) {
	const onGoingBig = function onGoingBig() {
		const isGoing = ($('#powerTip').data('powerTip-open') !== undefined && $('#powerTip').data('powerTip-open') === 'yes');
		Logger.log(['onBig main menu called', isGoing]);
		if (!isGoing) {
			$('#powerTip').data('powerTip-open', 'yes').css('width:300px');
			const $elements = $(selector);
			$elements.powerTip({
			// $(selector).powerTip({
				placement,
				smartPlacement:true, // placement, // eslint-disable-line object-shorthand
				fadeInTime: 0,
				fadeOutTime: 0,
				offset: 10,
			});
			$(selector).on({
				// about to render tooltip - give it the content
				powerTipPreRender: function powerTipPreRender() {
					$(this).data('powertip-open', 'yes');
					const text64 = $(this).attr('data-tooltip');
					const html = base64.decode(text64);
					Logger.log('menu tooltip powerPreTipRender', html, text64, this);
					$(this).data('powertip', html);
				},
				powerTipRender : function PowerTipRender() {
					$('#powerTip').css('max-width', '400px');
					$('#powerTip').css('white-space', 'normal');
					Logger.log(['menu tooltip open', this, $('#powerTip')]);
				},
				powerTipOpen : function powerTipOpen() {
					Logger.log(['menu tooltip open', this, $('#powerTip')]);
				},
			});
		}
	};

	const onGoingSmall = function onGoingSmall() {
		Logger.log(['onSmall main menu called']);
		$(selector).powerTip('destroy');
		$('#powerTip').data('powerTip-open', 'no');
	};
	OnBigSmall.register(onGoingBig, onGoingSmall);
}
const initialize = function init(selector) {
	const columns = $(selector);
	let currentHeight;
	let tallestcolumn = 0;
	let isBig = false;

	const setColumns = function setColumns(pcolumns) {
		pcolumns.each((unused_ix, element) => { // eslint-diable no-unused-vars
			currentHeight = Math.max(element.scrollHeight, element.clientHeight);
			Logger.log([`colequal currentHeight `, currentHeight]);
			if (currentHeight > tallestcolumn) {
				tallestcolumn = currentHeight;
			}
		});
		columns.height(tallestcolumn);
	};

	const resetColumns = function resetColumns(pcolumns) {
		pcolumns.each(() => {
			$(this).css('height', '');
		});
	};

	const onGoingLarge = () => {
		Logger.log('equalHeight::GOING MEDIUM screen entered');
		if (!isBig) {
			setColumns(columns);
			isBig = true;
		}
	};

	const onGoingSmall = () => {
		Logger.log('equalHeight::GOING SMALL screen entered');
		if (isBig) {
			resetColumns(columns);
			isBig = false;
		}
	};

	OnBigSmall.register(onGoingLarge, onGoingSmall);
};
module.exports = function(selector, placement)
{

	onBigSmall.register(
		// going big - turn on tooltip ( but only once - this even is bouncy)
		// use a flag in the #powerTip elements data entry to record starting
		function(){
			var isGoing = ($('#powerTip').data('powerTip-open') !== undefined && $('#powerTip').data('powerTip-open')=="yes" )
			Logger.log(["onBig main menu called", isGoing])
			if( ! isGoing ){
				$('#powerTip').data('powerTip-open','yes').css("width:300px")
				$(selector).powerTip({
					placement: placement,
					fadeInTime: 0,
					fadeOutTime: 0
				})
				$(selector).on({
					// about to render tooltip - give it the content
					powerTipPreRender: function() {
						$(this).data('powertip-open','yes')
						var text64 = $(this).attr('data-tooltip')
						var html = base64.decode(text64)
			        	Logger.log('menu tooltip powerPreTipRender', html, text64, this);
			        	$(this).data('powertip' , html);
			    	},
					powerTipRender : function(){
						var el = $("#powerTip").css("max-width","400px")
						$("#powerTip").css("white-space","normal")
						// $("#powerTip").css("display","table")
						// $("#powerTip").css("word-wrap","break-word")
						// $("#powerTip  p").css("display","block")
						// $("#powerTip p").css("float","left")
						// $("#powerTip p").css("width","300px")
						// $("#powerTip p").css("word-wrap","break-word")
						
						// var w = el.width()
						// var h = el.height()
						// Logger.log(["render", w, h])
						// if( w/h > 3){
						// 	w = w /2
						// 	h = h * 2
						// }
						// Logger.log(["render", w, h])
						// el.width(w)
						// el.height(h)
						Logger.log(["menu tooltip open", this, $("#powerTip")])
						
					},
					powerTipOpen : function(){
						Logger.log(["menu tooltip open", this, $("#powerTip")])
					}
				})
			}
		},
		// going small - turn off tooltip
		function(){
			Logger.log(["onSmall main menu called"])
			$(selector).powerTip('destroy')
			$('#powerTip').data('powerTip-open','no')
		}
	)
}