
$(document).ready(function() {
	navigation();
	setNavigation();
	checkTabletview();

	$('.share #social').click(function(){
		$('.tx-wind-shareorprint .media-icon').toggle();
		return false;
	});

	if (($(window).width() < 992)) {
		$('nav.main-menu a').attr('tabindex', -1);
	}

	jQuery('nav ul .submenu a').focus(function() {
		jQuery(this).parents().eq(3).addClass('focus');
	});

	jQuery('nav ul .submenu a').blur(function() {
		jQuery(this).parents().eq(3).removeClass('focus');
	});

	jQuery('nav.main-menu > ul > li > a').focus(function() {
		$('ul.submenu').hide();
		$(this).siblings('ul.submenu').show();
		$('nav.main-menu > ul > li').removeClass('focus');
		$(this).parent().addClass('focus');
	});

	$('nav.main-menu > ul li:nth-child(4) ul.submenu li:last-child a').focusout(function () {
		$('ul.submenu').hide();
		$('nav.main-menu ul li:nth-child(4)').removeClass('focus');
	});

	jQuery('.istablet nav.main-menu > ul > li > a').click(function() {
		if (jQuery(this).parent().hasClass('activeclick')) {
			return true;
		} else {
			jQuery('.istablet nav.main-menu > ul > li').each(function() {
				jQuery(this).removeClass('activeclick');
			});
			jQuery(this).parent().addClass('activeclick');
			return false;
		}
	});

	jQuery('.istablet').click(function() {
		jQuery('.istablet nav.main-menu > ul > li').each(function() {
			jQuery(this).removeClass('activeclick');
		});
	});
	$('nav.main-menu ul li').mouseleave(function() {
		$('nav.main-menu ul li ul.submenu.hide').removeClass('hide');
	});

	$(this).keyup(function(e) {
		if (e.keyCode === 27) {
			$('nav.main-menu ul li ul.submenu').hide();
			$('nav.main-menu ul li.focus').removeClass('focus');
		}
	});
});

$(window).resize(function() {
	setNavigation();
	checkTabletview();
});

function setNavigation() {
	if ($('.navbar-toggle').is(':visible')) {
		var windowHeight = $(window).height();
		$('nav.main-menu>ul').css({'height': windowHeight - 75 + 'px'});
		$('nav.main-menu>ul>li>ul').css({'height': windowHeight - 75 + 'px'});
		if ($('body').hasClass('fixedBody')) {
			return false;
		} else {
			$('nav').css({'left': 100 + '%'});
			$('nav.main-menu>ul>li>ul').css({'left': 100 + '%'});
		}

		if (($(window).width() < 992)) {
			$('nav.main-menu div.close-menu a').attr('tabindex', 0);
			$(this).siblings('ul').find('a').attr('tabindex', 0);
		}
	}
	if ($('.navbar-toggle').is(':hidden')) {
		$('body').removeClass('fixedBody');
		$('.wrapper').css({'left': 0 + '%'});
		$('nav.main-menu').removeClass('subNav');
		$('nav.main-menu>ul').css({'height': 'auto', 'left': 0 + '%'});
		$('nav.main-menu>ul>li>ul').css({'height': 'auto'});
	}
}

// function to open navigation
function navigation() {
	$('.navbar-toggle').click(function() {
		$('body').toggleClass('fixedBody');
		$('nav.main-menu ul li a').eq(1).focus();
		if($('body').hasClass('fixedBody')) {
			$('.wrapper').animate({'left':'-'+75+'%'}, 300);
			$('nav').animate({'left':25+'%'}, 300);
		} else {
			$('nav.main-menu').removeClass('subNav');
			$('.wrapper').animate({'left':0+'%'}, 300);
			$('nav.main-menu').animate({'left':100+'%'}, 300);
			$('nav.main-menu>ul >li>ul').animate({'left':100+'%'}, 300);
		}

		if (($(window).width() < 992)) {
			$('a, button, input').attr('tabindex', -1);
			$('nav.main-menu > ul > li > a, nav.main-menu div.close-menu a').attr('tabindex', 0);
		}
	});
	$('.close-menu a').click(function() {
		$('body').toggleClass('fixedBody');
		$('nav.main-menu').removeClass('subNav');
		$('.wrapper').animate({'left':0+'%'}, 300);
		$('nav.main-menu').animate({'left':100+'%'}, 300);
		$('nav.main-menu>ul >li>ul').animate({'left':100+'%'}, 300);

		if (($(window).width() < 992)) {
			$('a, button, input').attr('tabindex', 0);
			$('nav.main-menu a').attr('tabindex', -1);
		}

		return false;
	});
}

$(function () {
	var tag = 'div.tx-windraadsmoelenboek-pi1 div.single div.pi_container div.personal_info div.telefoonnummer span';
	var count = $(tag).text();
	if (count === 'T: ') {
		$(tag).addClass('hide');
	} else {
		$(tag).addClass('show');
	}

	var tagMobile = 'div.tx-windraadsmoelenboek-pi1 div.single div.pi_container div.personal_info div.mobile span';
	var countMobile = $(tagMobile).text();
	if (countMobile === 'M: ') {
		$(tagMobile).addClass('hide');
	} else {
		$(tagMobile).addClass('show');
	}
});

$(function() {
	$(".accordionblocks").accordion({
		active: false,
		collapsible: true,
		heightStyle: 'content'
	});
	$(".accordionblocks").removeAttr("role");
	$(".accordionblocks h2").removeAttr("role");
	$(".accordionblocks div").removeAttr("role");
	$(".accordionblocks h2").attr("role","button")
	$(".accordionblocks div").attr("role","region");
});

function checkTabletview() {
	$('body').removeClass('istablet');
	if (($(window).width() < 1140) && ($(window).width() > 991)) {
		$('body').addClass('istablet');
	}
}
jQuery(function($) {
	var url = window.location.href;

	var solrContainers = $('div#tx-solr-search ol.results-list');
	solrContainers.each(function() {
		var working = false;
		var getNextSolrPage = function() {
			if (!working && lastPage > currentPage) {
				working = true;
				solrContainer.addClass('loading');
				$.ajax(url, {
					data: {
						tx_solr: {
							page: currentPage + 1
						}
					},
					dataType: 'html',
					complete: function(jqXHR, textStatus) {
						solrContainer.append($(jqXHR.responseText).find('div#tx-solr-search ol.results-list').html());
						currentPage++;
						working = false;
						solrContainer.removeClass('loading');
					}
				});
			}
		}

		var solrContainer = $(this);

		var pageBrowser = solrContainer.siblings('div.pagebrowser');
		var currentPage = parseInt($('li.tx-pagebrowse-current', pageBrowser).text()) - 1;
		// Only work when current page is 0
		if (currentPage === 0) {
			var lastPageUrl = decodeURIComponent($('li.tx-pagebrowse-last a', pageBrowser).attr('href'));
			if (lastPageUrl.indexOf('tx_solr[page]=') > -1) {
				var lastPage = parseInt(lastPageUrl.substr(lastPageUrl.indexOf('tx_solr[page]=') + 14));

				// No need to do anything if there is only 1 page
				if (lastPage > 0) {
					$(window).scroll(function() {
						var win = $(window);
						if (win.scrollTop() + win.height() > $(document).height() - 200) {
							getNextSolrPage();
						}
					});
				}
			}

			pageBrowser.hide();
		}
	});
});

jQuery(document).ready(function() {
	jQuery('a.colorbox').colorbox({
		maxWidth: '100%',
		maxHeight: '100%'
	});

	jQuery('.inline').colorbox({
		inline: true,
		width: '50%'
	});

	$('div.news-item div.image a.news-colorbox').each(function() {
		var el = $(this);
		var elTitle = el.parent().next();

		el.colorbox({
			maxWidth: '100%',
			maxHeight: '100%',
			title: elTitle.text()
		});
	});
});
jQuery(function() {
	jQuery('body').addClass('jsenabled');

	if (jQuery('.tx-wind-shareorprint').length != 0) {
		var shareorprint = jQuery('.tx-wind-shareorprint');
		var sharebuttons = jQuery('.buttonContainer .sharebuttons', shareorprint).clone();

		/* Add extra buttons and links */
		jQuery('.buttonContainer .buttons', shareorprint).append('<a href="#" id="sharethispage"><span>Dit artikel delen</span></a>');
		jQuery('form', shareorprint).append('<input type="hidden" value="1" name="tx_windshareorprint_shareorprint[javascriptSubmit]" />');
		jQuery('body').append('<div id="hiddenshareoptions"><div id="sharecontent" /></div>');

		/* Hide default share options and move this to a hidden div */
		jQuery('#hiddenshareoptions').hide();
		jQuery('#hiddenshareoptions #mailformcontent').prepend(jQuery('.buttonContainer .sharebuttons, .currenturl, form', shareorprint));

		/* Add link to mailform and select link button */
		var sharecontent = jQuery('#mailformcontent');
		jQuery('.sharebuttons', sharecontent).append('<a class="mail" href="#mailform">Stuur door via e-mail</a>');
		jQuery('.currenturl', sharecontent).append('<button id="selectdirectlink">Link selecteren</button>');

		/* Select value in the input field for direct link */
		jQuery('#selectdirectlink').click(function() {
			jQuery('.currenturl input', sharecontent).select();
		});

		/* Show popup with the share options */
		jQuery('#sharethispage').click(function() {
			jQuery('form', sharecontent).hide();
			jQuery('div.sharebuttons, div.currenturl', sharecontent).show();
		});

		jQuery('#sharethispage').colorbox({
			width: "540px",
			height: "280px",
			opacity:0.25,
			inline: true,
			href: '#mailformcontent',
			onLoad: function() {
				jQuery('#cboxTopCenter').addClass('showtitle').html('<div class="title">Deel deze pagina</div>');
			}
		});

		/* Actions in popup. A link that starts with http is opening in a popup and a link with # remains in the popup. */
		jQuery('.sharebuttons a', sharecontent).click(function(e) {
			var href = jQuery(this).attr('href');

			if (href.substring(0,1) == '#') {
				jQuery('form', sharecontent).show();
				jQuery('div.sharebuttons, div.currenturl', sharecontent).hide();
				parent.$.fn.colorbox.resize({innerWidth: 540, innerHeight: 440});

			} else if (href.substring(0,4) == 'http') {

				var windowWidth = 540;
				var windowHeight = 500;

				var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left;
				var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top;

				var left = ((screen.width / 2) - (windowWidth / 2)) + dualScreenLeft;
				var top = ((screen.height / 2) - (windowHeight / 2)) + dualScreenTop;

				var newWindow = window.open(href, '', 'scrollbars=yes, width=' + windowWidth + ', height=' + windowHeight + ', top=' + top + ', left=' + left);

				parent.$.fn.colorbox.close();
			}

			e.preventDefault();
			return false;
		});

		/* Catch the submit of the mailform and send in through AJAX. */
		jQuery('#mailformcontent form').submit(function(e) {
			jQuery.ajax({
				type: 'POST',
				url: jQuery(this).attr('action'),
				data: jQuery(this).serialize(),
				success: function(data) {
					var message = 'Het versturen is niet gelukt. Controleer de velden.';
					var messageField = jQuery('#mailformcontent form div.buttons div.message');
					if (data == 1) {
						var message = 'Het versturen is gelukt.';
					}

					if (messageField.length == 0) {
						jQuery('#mailformcontent .from_info').prepend('<div class="message" />');
					}

					jQuery('#mailformcontent .from_info div.message').html(message);
				}
			});

			e.preventDefault();
			return false;
		});
	}
});
jQuery(function() {
  if (jQuery('#mapLink').length > 0) {
    var mapLink = document.getElementById('mapLink');
    jQuery('<iframe src="' + mapLink.href + '" style="width: ' + mapLink.style.width + '; height: ' + mapLink.style.height + ';" scrolling="no">').appendTo('#mapDiv');
    jQuery('#mapLink').remove();
  }
});

function SuggestController() {

    this.init = function () {

        jQuery('form[data-suggest]').each(function () {
            var $form = $(this), $searchBox = $form.find('.tx-solr-suggest');

            $form.find('.tx-solr-suggest-focus').focus();

            jQuery.ajaxSetup({jsonp: "tx_solr[callback]"})

            // when no specific container found, use the form as container
            if ($searchBox.length === 0) {
                $searchBox = $form;
            }
            $searchBox.css('position', 'relative');

            // Prevent submit of empty search form
            $form.on('submit', function (e) {
                if ($form.find('.tx-solr-suggest').val() === '') {
                    $form.find('.tx-solr-suggest').focus();
                }
            });

            $form.find('.tx-solr-suggest').devbridgeAutocomplete({
                serviceUrl: $form.data('suggest'),
                dataType: 'jsonp',
                paramName: 'tx_solr[queryString]',
                groupBy: 'category',
                maxHeight: 1000,
                autoSelectFirst: false,
                width: $searchBox.outerWidth() * 0.66,
                onSelect: function (suggestion) {
                    // go to link when selecting found result
                    if (suggestion.data.link) {
                        // Open youtube in overlay
                        if (suggestion.data.link.indexOf('https://www.youtube.com') === 0) {
                            openVideoOverlay(suggestion.data.link);
                        } else {
                            location.href = suggestion.data.link;
                        }
                        // else trigger form submit (do search)
                    } else {
                        $form.trigger('submit');
                    }
                },
                transformResult: function (response) {
                    if (!response.suggestions) return {suggestions: []};
                    var firstSuggestion, result = {
                        suggestions: $.map(response.suggestions, function (count, suggestion) {
                            if (!firstSuggestion) firstSuggestion = suggestion;
                            return {value: suggestion, data: {category: 'suggestion', count: count}};
                        })
                    };

                    $.each(response.documents, function (key, value) {
                        var dataObject = value;

                        var defaultGroup = $form.data('suggest-header') ? $form.data('suggest-header') : 'Top results';
                        dataObject.category = defaultGroup;

                        // if a group is set we try to get a label
                        if(dataObject.group) {
                            dataObject.category = $form.data('suggest-header-' + dataObject.group) ? $form.data('suggest-header-' + dataObject.group) : dataObject.group;
                        }

                        result.suggestions.push(
                            {
                                value: firstSuggestion,
                                data: dataObject
                            }
                        );
                    });

                    // 1 result means not result for given input; then we don't show is as suggestion
                    // also prevents autosubmit when selecting input box
                    if (result.suggestions.length <= 1) {
                        result.suggestions = [];
                    }

                    return result;
                },
                beforeRender: function (container) {
                    // remove first group header
                    container.find('.autocomplete-group:first').remove();
                    container.addClass('tx-solr-autosuggest');

                    // add active class to container
                    $searchBox.parent().addClass('autocomplete-active').fadeIn();
                },
                formatResult: function (suggestion, currentValue) {
                    // Do not replace anything if there current value is empty
                    if (!currentValue) {
                        return suggestion.value;
                    }
                    var pattern = '(' + $.Autocomplete.utils.escapeRegExChars(currentValue.trim()) + ')';
                    // normal suggestion
                    if (suggestion.data.category === 'suggestion') {
                        return suggestion.value
                            .replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')
                            .replace(/&/g, '&amp;')
                            .replace(/</g, '&lt;')
                            .replace(/>/g, '&gt;')
                            .replace(/"/g, '&quot;')
                            .replace(/&lt;(\/?strong)&gt;/g, '<$1>');

                        // results
                    } else {
                        var title = suggestion.data.title
                            .replace(new RegExp(pattern, 'gi'), '<em>$1<\/em>')
                            .replace(/&/g, '&amp;')
                            .replace(/</g, '&lt;')
                            .replace(/>/g, '&gt;')
                            .replace(/"/g, '&quot;')
                            .replace(/&lt;(\/?em)&gt;/g, '<$1>');

                        return '<div class="' + suggestion.data.type + '">' +
                            (!!suggestion.data.previewImage ? '<figure ' + (!!suggestion.data.hasVideo ? 'class="hasVideo"' : '') + '><img src="' + suggestion.data.previewImage + '" /></figure>' : '') +
                            '<a href="' + suggestion.data.link + '" class="internal-link">' + title + '</a>' +
                            '</div>';
                    }

                },
                deferRequestBy: 100
            }).on('blur', function () {
                $searchBox.parent().removeClass('autocomplete-active');
                var $box = $(this);
                setTimeout(function () {
                    $box.devbridgeAutocomplete('hide');
                }, 200);
            });
        });
    };
}

jQuery(document).ready(function() {
    /** solr search autocomplete **/
    var solrSuggestController = new SuggestController();
    solrSuggestController.init();
});

