Jeugdigen & Ouders

Soms loopt het thuis even anders dan je wilt. Misschien is er veel spanning, zijn er zorgen of is er tijdelijk extra hulp nodig. Op deze pagina vind je informatie voor jeugdigen én ouders.

Voor jeugdigen

Heb je vragen over pleegzorg, wonen in een gezinshuis of hulpverlening? Hier vind je uitleg, antwoorden en verhalen van andere jongeren.

DSC_5881
DSC_5268

Voor ouders

Lees meer over pleegzorg, samenwerking met hulpverlening en wat je kunt verwachten wanneer er extra ondersteuning nodig is.

(function () { 'use strict';console.log('Vigere Form Submit Tracking is geladen');/* * Configuratie per pagina. */ const formPages = { '/gezinshuiszorg/': { provider: 'jotform', form_id: '261861994296373', form_name: 'gezinshuisouder_interesse', form_location: 'gezinshuiszorg' },'/gezinshuiszorg/gezinshuisouder-worden/': { provider: 'jotform', form_id: '261861994296373', form_name: 'gezinshuisouder_interesse', form_location: 'route_gezinshuisouder' },'/agenda/4754/': { provider: 'jotform', form_id: '261746366832061', form_name: 'informatiebijeenkomst_aanmelding', form_location: 'goes' },'/agenda/informatiebijeenkomst-gezinshuis-starten-in-oudenbosch/': { provider: 'jotform', form_id: '261746366832061', form_name: 'informatiebijeenkomst_aanmelding', form_location: 'oudenbosch' },'/pleegzorg/aanvragen-informatiepakket/': { provider: 'jotform', form_id: '240945264662360', form_name: 'informatiepakket_aanvraag', form_location: 'pleegzorg' },'/vacatures/gezinshuisouder-bij-vigere/': { provider: 'elementor', form_id: 'solliciteer_vigere', form_name: 'vacature_gezinshuisouder', form_location: 'vacaturepagina' } };/* * Bewaart verstuurde events kort om dubbele metingen * door meerdere succesberichten te voorkomen. */ const recentlySentEvents = {};/** * Normaliseert het paginapad. */ function getPagePath() { let path = window.location.pathname;if (!path.endsWith('/')) { path += '/'; }return path; }/** * Geeft de configuratie voor de huidige pagina. */ function getCurrentFormConfig() { return formPages[getPagePath()] || null; }/** * Voorkomt dat hetzelfde event binnen vijf seconden * meerdere keren wordt verstuurd. */ function isDuplicate(eventKey) { const now = Date.now(); const previousTime = recentlySentEvents[eventKey] || 0;if (now - previousTime < 5000) { return true; }recentlySentEvents[eventKey] = now;return false; }/** * Stuurt het definitieve event naar de GTM-dataLayer. */ function pushFormSubmit(config) { if (!config) { return; }const pagePath = getPagePath();const eventKey = [ config.provider, config.form_id, pagePath ].join(':');if (isDuplicate(eventKey)) { console.log( 'Dubbel form_submit-event tegengehouden:', eventKey );return; }const eventData = { event: 'form_submit', form_id: config.form_id, form_name: config.form_name, form_location: config.form_location, page_path: pagePath };window.dataLayer = window.dataLayer || []; window.dataLayer.push(eventData);console.log( 'form_submit naar dataLayer verstuurd:', eventData ); }/** * Controleert of een bericht van een geldig * Jotform-domein afkomstig is. */ function isJotformOrigin(origin) { let hostname;try { hostname = new URL(origin).hostname.toLowerCase(); } catch (error) { return false; }return ( hostname === 'jotform.com' || hostname.endsWith('.jotform.com') || hostname === 'jotformeu.com' || hostname.endsWith('.jotformeu.com') ); }/** * Controleert of het bericht werkelijk afkomstig is van * een Jotform-iframe op de huidige pagina. */ function isJotformIframeSource(sourceWindow) { const jotformIframes = Array.from( document.querySelectorAll( [ 'iframe[src*="jotform.com"]', 'iframe[src*="jotformeu.com"]', 'iframe[id^="JotFormIFrame"]' ].join(',') ) );return jotformIframes.some(function (iframe) { return iframe.contentWindow === sourceWindow; }); }/** * Zet verschillende mogelijke Jotform-berichtformaten * om naar een bruikbaar object. */ function parseJotformMessage(data) { if (data && typeof data === 'object') { return data; }if (typeof data !== 'string') { return null; }try { const parsedData = JSON.parse(data);if (parsedData && typeof parsedData === 'object') { return parsedData; } } catch (error) { /* * Het bericht is geen JSON. Hieronder controleren * we daarom de tekstuele eventnaam. */ }if (data.includes('submission-completed')) { return { action: 'submission-completed' }; }return null; }/** * JOTFORM TRACKING * * Jotform stuurt na een succesvolle verzending vanuit * het iframe een submission-completed-bericht. */ window.addEventListener('message', function (event) { const config = getCurrentFormConfig();/* * Luister alleen op pagina's die als Jotform-pagina * zijn geconfigureerd. */ if (!config || config.provider !== 'jotform') { return; }/* * Accepteer uitsluitend Jotform-domeinen. */ if (!isJotformOrigin(event.origin)) { return; }/* * Controleer daarnaast of het bericht afkomstig is * van het ingesloten Jotform op deze pagina. */ if (!isJotformIframeSource(event.source)) { return; }const message = parseJotformMessage(event.data);/* * Log alleen herkende Jotform-berichten. */ if (message) { console.log('Jotform-bericht ontvangen:', { origin: event.origin, data: event.data }); }if ( !message || message.action !== 'submission-completed' ) { return; }/* * Extra controle als Jotform een Form ID meestuurt. */ const receivedFormId = message.formID || message.formId || message.form_id || '';if ( receivedFormId && String(receivedFormId) !== config.form_id ) { console.warn( 'Jotform Form ID komt niet overeen:', { verwacht: config.form_id, ontvangen: String(receivedFormId) } );return; }pushFormSubmit(config); });/** * ELEMENTOR TRACKING * * Elementor geeft submit_success pas af nadat de * formulierverwerking succesvol is afgerond. */ if (window.jQuery) { window.jQuery(document).on( 'submit_success', function (event) { const config = getCurrentFormConfig();/* * Luister alleen op de geconfigureerde * Elementor-vacaturepagina. */ if (!config || config.provider !== 'elementor') { return; }const form = event.target;if ( !form || !form.classList || !form.classList.contains('elementor-form') ) { return; }/* * Elementor voegt de ingestelde Form ID doorgaans * toe als verborgen veld. */ const formIdField = form.querySelector( 'input[name="form_id"]' );const receivedFormId = formIdField ? formIdField.value : '';/* * Als de ID beschikbaar is, moet deze overeenkomen * met solliciteer_vigere. */ if ( receivedFormId && receivedFormId !== config.form_id ) { return; }console.log( 'Succesvolle Elementor-inzending ontvangen:', config.form_id );pushFormSubmit(config); } ); } else { console.warn( 'Vigere Form Submit Tracking: jQuery is niet beschikbaar.' ); } })();