/*
Custom Header - JS Initialisation, Setup, Events
See detailed documentation in Dev/mediawiki
deferrable:YES -- It needs time for loading anyways
*/

(function() {
	
	if( $('#custom-header').length == 0 ) return;
	
	
	// -----
	// Setup


	// Setup of super menu by current user status and watching status


	if( $('#pt-userpage').length > 0 ) {
		$('#custom-header .super-menu .headline.user').text('User: ' + $('#pt-userpage > a').text() );
	}

	// Watch indicator
	if( $('#ca-unwatch').length != 0 ) {
		$('body').addClass('page-is-watched');
	}
	
	// If no oldid was given in the search params, remove oldid from edit link
	let q = new URLSearchParams( window.location.search.substring(1) );
	$('#custom-header .super-menu .edit').attr( 'href', function( index, href ) {
		if( ! q.get('oldid') ) return href.replace( /&oldid=[^&$]+/, '' );
	});
	
	
	// Make Menu Buttons Links if it's NOT a JS active touch device
	
	
	$( '#custom-header .nav-menu .button[data-link]' ).each( function() {
		if( ( 'ontouchstart' in window ) || ( navigator.maxTouchPoints > 0 ) || ( navigator.msMaxTouchPoints > 0 ) ) return;
		
		$( `<a class="button" href="${$(this).attr('data-link')}">${$(this).text()}</a>` ).insertAfter( $(this) );
		$(this).remove();
	});
	
	
	// ------
	// Events
	
	
	// Make MouseIn over header menu (nav menu and super menu) activate header menu
	
	
	let headerMenus = $('#custom-header .header-menu');
	let headerMenuLocked;
	
	headerMenus.each( (i,headerMenu) => $(headerMenu).on( 'mouseleave', () => { $(headerMenu).removeClass('active'); console.log(headerMenu) } ) );
	
	headerMenus.each( (i,headerMenu) => $(headerMenu).children('.menu-button').on( 'mouseenter click', () => {
		if( $(headerMenu).hasClass('active') || headerMenuLocked ) return;
		
		headerMenuLocked = true;
		$(headerMenu).addClass('active');
		setTimeout( () => { headerMenuLocked = false; }, 50 );
	}));
	
	headerMenus.each( (i,headerMenu) => $(headerMenu).children('.menu-button').on( 'click', function() {
		if( ! $(headerMenu).hasClass('active') || headerMenuLocked ) return;
		
		headerMenuLocked = true;
		$(headerMenu).removeClass('active');
		setTimeout( () => { headerMenuLocked = false; }, 50 );
	}));
	
})();

/*
[[Category:MultiWiki]]
*/