var burgerShown;

$(document).ready(function(){
	burgerShown = jQuery('#navigationContainer ul.mainMenu.mainNavigation .burgerItem').is(':visible');
	if(Modernizr.touchevents && !burgerShown){
		bindTabletTouchEvent();
		bindSubmenuTouchEvent();
	}
	// BMW-5179 -> Blijkbaar wordt deze bindTabletTouchEvent niet goed aangeroepen met de nieuwe iPad pro's daarom even een
	// check of het iPad is en dan dit nog maals aanroepen.
	if (Modernizr.ipad) {
		bindTabletTouchEvent();
	}
	if (burgerShown) {
		jQuery('#navigationContainer ul.mainMenu.mainNavigation li + li').css( "display", "none");
		createSubMenu();
		bindGroepClickEvent();
	}
	
	/* Dit mag altijd toegevoegd worden, css bepaalt of burgeritem visible is of niet */
	jQuery('#navigationContainer ul.mainMenu.mainNavigation .burgerItem').click(function() {
		var oItems = jQuery('#navigationContainer ul.mainMenu.mainNavigation li + li');
		if (oItems.is(':visible')) {
			oItems.css( "display", "none");
		} else {
			oItems.css( "display", "block");
		}
		return false;
	});
	
	jQuery(window).resize(function() {
		var oBurger = jQuery('#navigationContainer ul.mainMenu.mainNavigation .burgerItem').is(':visible');
		if (oBurger != burgerShown) {
			burgerShown = oBurger;
			if (oBurger) {
				jQuery('#navigationContainer ul.mainMenu.mainNavigation li + li').css( "display", "none");
				createSubMenu();
				bindGroepClickEvent();
				if(Modernizr.touchevents){
					unbindTabletTouchEvent();
					unbindSubmenuTouchEvent();
				}
			} else {
				jQuery('#navigationContainer ul.mainMenu.mainNavigation li + li').css( "display", "block");
				deleteSubMenu();
				unbindGroepClickEvent();
				if(Modernizr.touchevents){
					bindTabletTouchEvent();
					bindSubmenuTouchEvent();
				}
			}
		}
	});
	
});


//Touchdevices in landscape mode.
function bindTabletTouchEvent(){
	jQuery('#navigationContainer ul.mainMenu.mainNavigation a.top').bind("click.tabletTopTouch", function(event){
		event.preventDefault();
		var link = jQuery(this);
		var href = link.attr("href");
		var parent = link.parent();
		var subMenu = parent.find(".dropDown:first");
		if(subMenu.hasClass("empty") == true){
			if(link.attr("target") == "_blank"){
				window.open(href);
			} else {
				window.location.href = href;
			}
		}
		if((href.indexOf("javascript:void(0)") == -1) && subMenu.find("a[href='" + href + "']").length == 0){
            var cloneTopItem = parent.clone();
            cloneTopItem.unbind("click.tabletTopTouch");
            cloneTopItem.find('.top').addClass('sub').addClass('sf-with-ul').removeClass('top');
            var cloneSubMenu = cloneTopItem.find('.dropDown');
            cloneSubMenu.addClass('empty');
            cloneSubMenu.empty();
            subMenu.prepend(cloneTopItem);
            unbindSubmenuTouchEvent();
            bindSubmenuTouchEvent();
		}
	});
}

function unbindTabletTouchEvent(){
	jQuery('#navigationContainer ul.mainMenu.mainNavigation a.top').unbind("click.tabletTopTouch");
}

//Touchdevices in landscape mode op android.
function bindSubmenuTouchEvent(){
	//	Dit is een workaround! Op androidMobile doen de menuitem clickhandlers het niet!
	var navU = navigator.userAgent.toString().toLowerCase();
	var isAndroidMobile = navU.indexOf('android') > -1 && (navU.indexOf('mozilla/5.0') > -1 || navU.indexOf('applewebkit') > -1);
	var isIPad = navU.indexOf('ipad') > -1;
	if (isAndroidMobile || isIPad) {
		$("#navigationContainer ul.mainMenu.mainNavigation a:not(.top)").bind("click.submenuTouch", function(){
			if(jQuery(this).attr("target") == "_blank"){
				window.open(jQuery(this).attr("href"));
			} else {
				window.location.href = jQuery(this).attr("href");
			}
			return false;
		});
	}
	if (isIPad) {
		// Alle hoofdmenu items die geen submenu items hebben (lege ul.dropDown). Zijn nu direct een link
		// Zodat je maar 1x hoeft te klikken met een iPad ipv 2x.
		$("#navigationContainer ul.mainMenu.mainNavigation li ul.dropDown.empty").each(function( index ) {
			jQuery(this).siblings("a.top").bind("mouseenter.submenuHoverTouch", function(){
				if(jQuery(this).attr("target") == "_blank"){
					window.open(jQuery(this).attr("href"));
				} else {
					window.location.href = jQuery(this).attr("href");
				}
				return false;
			});
		});
		
		$("#navigationContainer ul.mainMenu.mainNavigation a:not(.top)").bind("mouseenter.submenuHoverTouch", function(){
			if(jQuery(this).attr("target") == "_blank"){
				window.open(jQuery(this).attr("href"));
			} else {
				window.location.href = jQuery(this).attr("href");
			}
			return false;
		});
	}
}

function unbindSubmenuTouchEvent(){
	$("#navigationContainer ul.mainMenu.mainNavigation a:not(.top)").unbind("click.submenuTouch");
	$("#navigationContainer ul.mainMenu.mainNavigation a:not(.top)").unbind("mouseenter.submenuHoverTouch");
}

//Clickhandling voor alle devices in responsive layout.
function bindGroepClickEvent(){
	$("#navigationContainer ul.mainMenu.mainNavigation > li:not(.burgerItem) > a").bind("click.groep", function(){
		var link = jQuery(this);
		var href = link.attr("href");

		if((href.indexOf("javascript:void(0)") == 0)){
			var parent = link.parent();
			var firstSubmenuLink = parent.find(".dropDown a:first");
			href = firstSubmenuLink.attr("href");

			if(firstSubmenuLink.hostname != location.hostname){
				firstSubmenuLink = parent.find(".dropDown a");
				for(var i = 0; i < firstSubmenuLink.size(); i++){
					if(location.hostname === firstSubmenuLink[i].hostname){
						href = firstSubmenuLink[i].href;
						break;
					}
				}
			}
		}
		
		if(link.attr("target") == "_blank"){
			window.open(href);
		} else {
			window.location.href = href;
		}
		return false;
	});
}

function unbindGroepClickEvent(){
	$("#navigationContainer ul.mainMenu.mainNavigation > li:not(.burgerItem) > a").unbind("click.groep");
}

function createSubMenu() {
	setTimeout(function(){
		deleteSubMenu();
		var selectedSubmenu = jQuery('#navigationContainer ul.mainMenu.mainNavigation > li.selected > ul.dropDown, #navigationContainer ul.mainMenu.mainNavigation > li.parent-of-selected > ul.dropDown').clone();
		selectedSubmenu.addClass( "seperatedSubmenu" );
		selectedSubmenu.css({
			"display": "block",
			"opacity": "1",
			"visibility" : "visible"
		});
		selectedSubmenu.children('li').removeAttr('style');
		jQuery('#bodycontent').prepend(selectedSubmenu);
	}, 0);
};

function deleteSubMenu() {
	jQuery("ul.seperatedSubmenu").remove();
};
