/* ---------------------------------------- START OF: /cms_files/components/cms/modules/contactform/js/script.js */
$(document).ready(function() {
// Find contactforms
var forms = $('form[data-type="contact-form"]');
$.each(forms, function(key, item) {
item = $(item);
var formHash = item.attr('data-hash');
// Create input
item.append('');
});
});
/* ---------------------------------------- END OF: /cms_files/components/cms/modules/contactform/js/script.js */
/* ---------------------------------------- START OF: /cms_files/components/cms/modules/blog/js/script.js */
$(document).ready(function() {
// Find contactforms
var forms = $('form[data-type="blog-form"]');
$.each(forms, function(key, item) {
item = $(item);
var formHash = item.attr('data-hash');
// Create input
item.append('');
});
});
function cms_blog_submitComment(el) {
var form = $(el).closest('form');
var fields = ['name', 'email', 'comment'];
var formValid = true;
$.each(fields, function(key, item) {
var field = form.find('[name="'+item+'"]');
if (item == 'email' && field.val() != '') {
if (field.val().indexOf('@') == -1 || field.val().indexOf('.') == -1) {
alert(__('Vul een geldig e-mail adres in.'));
formValid = false;
return false;
}
} else if (item != 'email') {
if (field.val() == '') {
formValid = false;
return false;
}
}
});
if (!formValid) {
alert(__('Vul alle verplichte velden in.'));
return false;
} else {
form.trigger("submit");
}
}
function cms_blog_commentAnswer(el, level1, level2) {
el = $(el);
var parent = el.closest('.cms-blog-comment').find('.cms-blog-comment-name').first().text();
var wrapper = el.closest('.cms-blog-item-wrapper');
var form = wrapper.find('form').first();
form.find('.cms-blog-answer').show();
form.find('.cms-blog-answer-to').text(parent);
form.find('[name=blog_respond_to]').val(level1);
form.find('[name=blog_respond_to_2]').val(level2);
// Scroll to the form
window.scrollTo(0, form.offset().top - 250);
}
function cms_blog_cancelAnswer(el) {
el = $(el);
var wrapper = el.closest('.cms-blog-item-wrapper');
var form = wrapper.find('form').first();
form.find('.cms-blog-answer').hide();
form.find('.cms-blog-answer-to').text('');
form.find('[name=blog_respond_to]').val('');
form.find('[name=blog_respond_to_2]').val('');
}
function cms_blog_showComments(el) {
el = $(el);
// Scroll to the form
window.scrollTo(0, $('.cms-blog-comments-container').first().offset().top - 250);
}
/* ---------------------------------------- END OF: /cms_files/components/cms/modules/blog/js/script.js */
/* ---------------------------------------- START OF: /cms_files/components/cms/modules/formbuilder/js/script.js */
$(document).ready(function() {
$('.formbuilder-submitbutton').on('click', formbuilder_submitForm);
// Find contactforms
var forms = $('form[data-type="custom-form"]');
$.each(forms, function(key, item) {
item = $(item);
var formHash = item.attr('data-hash');
// Create input
item.append('');
});
});
function formbuilder_submitForm(e) {
var button = $(e.target);
var form = $($(button).parents('form'));
e.preventDefault();
if (form.length == 0) {
alert('Fout');
return false;
} else {
// Validate
var validations = form.find('.form-group');
var formOk = true;
$.each(validations, function(key, item) {
item = $(item);
if (item.attr('data-mandatory') == '1') {
// Check if field is set
switch(item.attr('data-type')) {
case 'file':
var value = $(item.find('input')).val();
if (value == '') {
formOk = false;
item.addClass('error');
} else {
item.removeClass('error');
}
break;
case 'text':
case 'appendedtext':
case 'prependedtext':
var value = $(item.find('input')).val();
if (value == '') {
formOk = false;
item.addClass('error');
} else {
item.removeClass('error');
}
break;
case 'checkbox':
var checkboxes = item.find('input');
var checked = false;
$.each(checkboxes, function(checkKey, checkItem) {
if ($(checkItem).prop('checked') === true) {
checked = true;
return false;
}
});
if (!checked) {
formOk = false;
item.addClass('error');
} else {
item.removeClass('error');
}
break;
case 'radio':
var radios = item.find('input');
var checked = false;
$.each(radios, function(checkKey, checkItem) {
if ($(checkItem).prop('checked') === true) {
checked = true;
}
});
if (checked === false) {
formOk = false;
item.addClass('error');
} else {
item.removeClass('error');
}
break;
case 'dropdown':
var value = $(item.find('select')).val();
if (value == '') {
formOk = false;
item.addClass('error');
} else {
item.removeClass('error');
}
break;
case 'textarea':
var value = $(item.find('textarea')).val();
if (value == '') {
formOk = false;
item.addClass('error');
} else {
item.removeClass('error');
}
break;
}
}
});
if (formOk === true) {
form[0].submit();
}
}
return false;
}
/* ---------------------------------------- END OF: /cms_files/components/cms/modules/formbuilder/js/script.js */
/* ---------------------------------------- START OF: /cms_files/components/cms/modules/menu/js/script.js */
$(document).ready(function() {
// Activate parent LI if child active
$('.module-menu').find('li.active').parents('li').addClass('active');
});
function menu_toggleMobileMenu(id) {
var menu = $('#'+id);
if (menu.parent().prop('tagName').toLowerCase() != 'body') {
menu.appendTo('body');
}
// Show the menu
menu.animate({
'left': '0px'
});
}
function menu_closeMobileMenu(id) {
var menu = $('#'+id);
if (menu.parent().prop('tagName').toLowerCase() != 'body') {
menu.appendTo('body');
}
menu.animate({
'left': '-90vw'
});
}
function menu_showSubMenu(el) {
el = $(el);
var submenu = el.closest('li').children('.menu-mobile-submenu').eq(0);
submenu.toggle();
}
/* ---------------------------------------- END OF: /cms_files/components/cms/modules/menu/js/script.js */
/* ---------------------------------------- START OF: /cms_files/components/cms/modules/search/js/script.js */
var search_timer = null;
$(function() {
$('.cms-search-form').on('submit', function(e) {
e.preventDefault();
search_execute(true, this);
return false;
});
});
function search_execute(direct, el) {
if (search_timer !== null) {
clearTimeout(search_timer);
}
if (direct) {
var form = $(el);
var input = form.find('[name=search-query]');
var query = input.val();
if (query != '') {
$.ajax({
url: '/cms_files/components/cms/modules/search/a.php',
data: {
query: query
},
dataType: 'html',
success: function(response) {
var resultContainer = form.find('.cms-search-results-wrapper').first();
resultContainer.html(response);
resultContainer.show();
}
});
}
} else {
search_timer = setTimeout(function() {
search_execute(true, el);
}, 500);
}
}
function search_hide(el) {
var form = $(el).closest('form');
form.find('[name=search-query]').val('');
form.find('.cms-search-results-wrapper').hide();
}
/* ---------------------------------------- END OF: /cms_files/components/cms/modules/search/js/script.js */
/* ---------------------------------------- START OF: /cms_files/components/cms/modules/accordion/js/script.js */
$(document).ready(function() {
accordion_initialize();
});
function accordion_initialize() {
var accordions = $('.module-accordion');
$.each(accordions, function(key, item) {
item = $(item);
if (item.data('accordion-init') != '1') {
var collapses = $(item).find('.collapse');
// Active first item
collapses.first().prev('.panel-heading').addClass('active');
collapses.first().prev('.panel-heading').find('a').addClass('active');
$.each(collapses, function(key, item) {
item = $(item);
item.on('hide.bs.collapse', function () {
$(this).prev('.panel-heading').removeClass('active');
$(this).prev('.panel-heading').find('a').removeClass('active');
});
item.on('show.bs.collapse', function () {
$(this).prev('.panel-heading').addClass('active');
$(this).prev('.panel-heading').find('a').addClass('active');
});
});
item.data('accordion-init', '1');
}
});
}
/* ---------------------------------------- END OF: /cms_files/components/cms/modules/accordion/js/script.js */
/* ---------------------------------------- START OF: /cms_files/components/cms/modules/useraccount/js/script.js */
var userAccountAjax = '/cms_files/components/cms/modules/useraccount/a.php';
var userAccountEmailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var userAccountCheckTimer = null;
var userAccountRequest = null;
var userAccountLastChecked = '';
var userAccountStrongPassLoaded = false;
var userAccountPasswordOk = false;
var userAccountPasswordsProcessed = false;
var userAccountExists = false;
var userAccountCheckInterval = null;
var userAccountModule = '';
var userAccountView = '';
var userAccountbannedPasswords = [
// see study here: http://smrt.io/JlNfrH
'123456',
'12345',
'123456789',
'password',
'iloveyou',
'princess',
'rockyou',
'1234567',
'12345678',
'abc123',
'nicole',
'daniel',
'babygirl',
'monkey',
'jessica',
'lovely',
'michael',
'ashley',
'654321',
'qwerty',
'password1',
'welkom',
'qwerty',
'welcome',
'welcome1',
'password2',
'password01',
'password3',
'p@ssw0rd',
'passw0rd',
'password4',
'password123',
'summer09',
'password6',
'password7',
'password9',
'password8',
'welcome2',
'welcome01',
'winter',
'spring',
'summer',
'wachtwoord',
'zomer',
'winter',
'herfst',
'lente',
'wachtwoord1',
'wachtwoord2',
'wachtwoord01',
'wachtwoord3',
'w4chtw00rd',
'wachtw00rd',
'wachtwoord4',
'wachtwoord123',
'wachtwoord6',
'wachtwoord7',
'wachtwoord9',
'wachtwoord8',
'admin',
'administrator'
];
var useraccount_loginAction = '';
$(function() {
$('#cms-user-login-button').on('click', function(e) {
e.preventDefault();
useraccount_showLoginForm();
});
if (cms.getUrlVar('a') == 'password_reset') {
useraccount_loginAction = 'password_reset';
useraccount_showLoginForm();
}
});
function useraccount_finishPasswordReset() {
var hash = cms.getUrlVar('h');
$('#cms-account-title').text('Nieuw wachtwoord instellen');
if (hash == '') {
alert('De herstellink is niet juist of is al gebruikt, kopieer de link naar je browser en probeer het opnieuw.');
$('#cms-account-content').hide();
useraccount_loginAction = '';
} else {
$.ajax({
url: userAccountAjax+'?action=validateHash',
data: {
hash: hash
},
success: function(response) {
if (response.success === true) {
$('#account-email').val(response.email);
$('#cms-account-email').val(response.email);
} else {
alert('De herstellink is niet juist of is al gebruikt, kopieer de link naar je browser en probeer het opnieuw.');
useraccount_loginAction = '';
$('#cms-account-content').hide();
}
}
});
$('.account-login-form').hide();
$('.account-registration-form').show();
}
}
function useraccount_resetPassword() {
$('#cms-account-forgotpassword').hide();
$('#cms-account-title').text('Wachtwoord vergeten');
var email = $('#cms-account-email').val();
$('#cms-account-loading-message').show();
$('#cms-account-password').hide();
$.ajax({
url: userAccountAjax+'?action=forgotPassword',
data: {
email: email
},
success: function(response) {
if (response.success) {
$('.account-login-form').hide();
$('.account-passwordreset-sent').show();
} else {
useraccount_loginAction = '';
$('#cms-account-content').hide();
}
}
});
}
function useraccount_showToolbar() {
var toolbar = $('#cms-useraccount-toolbar-collapse');
toolbar.slideToggle();
}
function isValidDate(dateString) {
// First check for the pattern
if(!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(dateString))
return false;
// Parse the date parts to integers
var parts = dateString.split("/");
var day = parseInt(parts[1], 10);
var month = parseInt(parts[0], 10);
var year = parseInt(parts[2], 10);
// Check the ranges of month and year
if(year < 1000 || year > 3000 || month == 0 || month > 12)
return false;
var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
// Adjust for leap years
if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0))
monthLength[1] = 29;
// Check the range of the day
return day > 0 && day <= monthLength[month - 1];
}
function useraccount_register() {
var email = $('#cms-account-email').val();
var password = $('#cms-register-account-password').val();
var passwordRepeat = $('#cms-register-password-repeat').val();
if (password != passwordRepeat) {
$('#cms-account-password-repeat').addClass('form-error');
return false;
} else {
$('#cms-account-password-repeat').removeClass('form-error');
}
if (useraccount_loginAction == 'password_reset') {
$.ajax({
url: userAccountAjax+'?action=resetPassword',
data: {
hash: cms.getUrlVar('h'),
password: password
},
method: 'post',
dataType: 'json',
success: function(response) {
// Log the user in
$('#cms-account-email').val(email);
$('#cms-account-password').val(password);
$('.account-registration-form').hide();
$('.account-passwordreset-complete').show();
$('.account-login-form').show();
$('#cms-account-password').show();
$('#cms-account-title').text('Inloggen');
$('#cms-account-button').text('Inloggen');
$('#cms-account-email').prop('disabled', true);
$('#cms-account-password').prop('disabled', true);
setTimeout(function() {
useraccount_login();
}, 2000);
}
});
return true;
}
if (!userAccountEmailRegex.test(email)) {
alert('Je hebt een ongeldig e-mailadres gebruikt. Druk op de terug knop en vul een correct e-mailadres in.');
return false;
}
// Load the password checker
if (!userAccountPasswordOk) {
alert('Je wachtwoord dient minimaal 6 karakters lang te zijn.');
return false;
}
$.ajax({
url: userAccountAjax+'?action=register',
data: {
email: email,
password: password
},
method: 'post',
dataType: 'json',
success: function(response) {
console.log(response);
if (response.success) {
// Log the user in
$('#cms-account-email').val(email);
$('#cms-account-password').val(password);
$('.account-registration-form').hide();
$('.account-registration-complete').show();
$('.account-login-form').show();
$('#cms-account-password').show();
$('#cms-account-title').text('Inloggen');
$('#cms-account-button').text('Inloggen');
$('#cms-account-email').prop('disabled', true);
$('#cms-account-password').prop('disabled', true);
setTimeout(function() {
useraccount_login();
}, 2000);
} else {
alert('Er ging iets mis in de registratie, controleer je gegevens of probeer het opnieuw.');
}
}
});
}
function useraccount_login(email, password, refresh) {
if (!email) {
email = $('#cms-account-email').val();
password = $('#cms-account-password').val();
}
$('#cms-account-email').prop('disabled', true);
$('#cms-account-password').prop('disabled', true);
$.ajax({
url: userAccountAjax+'?action=login',
method: 'post',
data: {
email: email,
password: password
},
dataType: 'json',
success: function(response) {
if (response.success) {
// Refresh
if (refresh) {
if (useraccount_loginAction == 'password_reset') {
window.location = '/';
} else {
window.location = window.location;
}
} else {
$('.account-login-failed').hide();
$('#cms-useraccount-form').unbind('submit');
if (useraccount_loginAction == 'password_reset') {
window.location = '/';
} else {
window.location = window.location;
}
//$('#cms-useraccount-form').trigger('submit');
}
} else {
$('#cms-account-email').prop('disabled', false);
$('#cms-account-password').prop('disabled', false);
$('.account-login-failed').show();
}
}
});
}
function useraccount_passwordStrength() {
var password = $('#cms-register-account-password').val();
if (!userAccountPasswordsProcessed) {
// Process
var year = new Date().getFullYear();
var adds = [year-1, year, year+1, (year-1).toString().substr(2), (year).toString().substr(2), (year+1).toString().substr(2)];
var addedPasswords = [];
$.each(adds, function(key, item) {
$.each(userAccountbannedPasswords, function(passKey, password) {
addedPasswords.push(password+item);
});
});
$.each(addedPasswords, function(key, item) {
userAccountbannedPasswords.push(item);
});
userAccountPasswordsProcessed = true;
}
var score = 0;
if (password.length >= 6) {
// Minimum length
score += 25;
$('.cms-account-passworderror').hide();
} else {
$('.cms-account-passworderror').show();
}
var alphaString = 'abcdefghijklmnopqrstuvwxyz';
var numericString = '0123456789';
var alpha = false;
var numeric = false;
var special = false;
var upperCase = false;
var lowerCase = false;
for (var i = 0; i < password.length; i++) {
if (alphaString.indexOf(password[i].toLowerCase()) !== -1) {
alpha = true;
}
if (numericString.indexOf(password[i]) !== -1) {
score += 10;
}
if (alphaString.indexOf(password[i].toLowerCase()) === -1 && numericString.indexOf(password[i]) === -1) {
score += 20;
}
if (alphaString.indexOf(password[i]) !== -1) {
lowerCase = true;
}
if (alphaString.toUpperCase().indexOf(password[i]) !== -1) {
upperCase = true;
}
}
if (lowerCase && upperCase) {
score += 25;
}
if (password.length > 9) {
score += 25;
}
if (score > 100) {
score = 100;
} else if (score < 10) {
score = 10;
}
$('#cms-account-passwordstrength div').width(score+'%');
if (userAccountbannedPasswords.indexOf(password) !== -1) {
score = 10;
$('.cms-account-passworderror').text('Wachtwoord niet toegestaan');
$('.cms-account-passworderror').show();
} else {
$('.cms-account-passworderror').text('Min. 6 karakters');
}
if (score < 30) {
$('#cms-account-passwordstrength div').removeClass('bad').removeClass('good').removeClass('average').addClass('bad');
} else if (score >= 30 && score < 80) {
$('#cms-account-passwordstrength div').removeClass('bad').removeClass('good').removeClass('average').addClass('average');
if (password.length >= 6) {
userAccountPasswordOk = true;
}
} else {
$('#cms-account-passwordstrength div').removeClass('bad').removeClass('good').removeClass('average').addClass('good');
if (password.length >= 6) {
userAccountPasswordOk = true;
}
}
}
function useraccount_close() {
$('body').css('overflow', 'visible');
$('#cms-account-content').remove();
}
function useraccount_saveExtendedFields() {
var extended = $('#cms-account-content').find('input, select, textarea');
var data = {};
$.each(extended, function(key, item) {
item = $(item);
if (item.attr('name') != '') {
var value = item.val();
switch(item.attr('type')) {
case 'radio':
if (!(item.attr('name') in data)) {
// Get the checked one
var checked = $('#cms-account-content').find('input[name='+item.attr('name')+']:checked');
if (checked.length > 0) {
data[item.attr('name')] = checked.attr('value');
}
}
break;
default:
data[item.attr('name')] = item.val();
break;
}
}
});
$('#cms-account-settings-saved').show();
setTimeout(function() {
$('#cms-account-settings-saved').fadeOut();
}, 3000);
$.ajax({
url: userAccountAjax+'?action=saveSettings',
dataType: 'json',
data: data,
method: 'post',
success: function(response) {
useraccount_loadContent();
}
});
}
function useraccount_updateAccount() {
var email = $('#cms-useraccount-email').val();
var password = $('#cms-register-account-password').val();
$.ajax({
url: userAccountAjax+'?action=updateAccount',
dataType: 'json',
data: {
email: email,
password: password
},
method: 'post',
success: function(response) {
if (response.success === false) {
$('#cms-account-update-error').text(response.message);
$('#cms-account-update-error').show();
$('#cms-account-update-success').hide();
} else {
$('#cms-account-update-error').hide();
$('#cms-account-update-success').show();
if (response.emailChanged) {
// Needs to login again
alert('Je e-mailadres is bijgewerkt en je bent automatisch uitgelogd. Log opnieuw in met je nieuwe e-mailadres.');
window.location = window.location;
}
}
}
});
}
function useraccount_loadContent(module, view) {
if (module) {
userAccountModule = module;
}
if (view) {
userAccountView = view;
}
$('#cms-useraccount-toolbar-collapse').fadeOut();
if ($('#cms-account-content').length === 0) {
// Load this first
$.ajax({
url: userAccountAjax+'?action=getAccountSettings',
dataType: 'json',
success: function(response) {
var container = $('.site-scope');
container = $('body');
if (container.length == 0) {
container = $('body');
}
container.append(response.html);
useraccount_loadContent(module, view);
}
});
} else {
// Load the user account content
$('#cms-account-content').fadeIn();
$.ajax({
url: '/cms_files/components/cms/modules/'+userAccountModule+'/a.php?action=useraccount',
data: {
view: userAccountView
},
method: 'post',
dataType: 'html',
success: function(response) {
$('#cms-account-nav li').removeClass('active');
$('#cms-account-nav li[data-module='+userAccountModule+'][data-view='+userAccountView+']').addClass('active');
$('#cms-account-tab-content').html(response);
}
});
}
}
function useraccount_showLoginForm(modal) {
$('#cms-account-content').remove();
if (userAccountCheckInterval !== null) {
clearInterval(userAccountCheckInterval);
}
$.ajax({
url: userAccountAjax+'?action=getLoginForm',
dataType: 'json',
success: function(response) {
var container = $('.site-scope');
container = $('body');
if (container.length == 0) {
container = $('body');
}
container.append(response.html);
$('[name=cms-account-action]').on('click', function(e) {
if ($(this).val() == 'register') {
$('#cms-account-button').text('Registreren');
$('#cms-account-password').hide();
$('#cms-account-title').text('Registreren');
} else {
$('#cms-account-button').text('Inloggen');
$('#cms-account-password').show();
$('#cms-account-title').text('Inloggen');
}
});
$('#cms-account-backbutton').on('click', function(e) {
e.preventDefault();
$('.account-registration-form').hide();
$('.account-login-form').show();
});
$('#cms-account-button').on('click', function() {
var email = $('#cms-account-email').val();
if (!userAccountEmailRegex.test(email)) {
$('#cms-account-email').addClass('form-error');
} else {
if (userAccountExists) {
useraccount_login();
} else {
$('#cms-account-email').removeClass('form-error');
$('#account-email').val(email);
$('.account-registration-form').show();
$('.account-login-form').hide();
}
}
});
$('#cms-useraccount-form').on('submit', function(e) {
e.preventDefault();
if (userAccountExists) {
useraccount_login();
} else {
useraccount_checkAccount();
}
return false;
});
userAccountCheckInterval = setInterval(function() {
useraccount_checkAccount();
}, 500);
window.scrollTo(0, 0);
$('#cms-account-content').fadeIn();
if (modal) {
$('body').css('overflow', 'hidden');
$('#cms-account-haze').css({
width: $(window).width(),
height: $(window).height()
});
$('#cms-account-haze').fadeIn();
$('#cms-account-haze').on('click', function() {
useraccount_close();
});
}
if (useraccount_loginAction == 'password_reset') {
useraccount_finishPasswordReset();
}
}
});
return false;
}
function useraccount_checkAccount() {
var email = $('#cms-account-email').val();
if (userAccountEmailRegex.test(email)) {
if (userAccountLastChecked == email) {
return;
}
userAccountLastChecked = email;
if (userAccountCheckTimer !== null) {
clearTimeout(userAccountCheckTimer);
}
if (userAccountRequest !== null) {
userAccountRequest.abort();
userAccountRequest = null;
}
userAccountCheckTimer = setTimeout(function() {
$('#cms-account-loading-message').show();
userAccountRequest = $.ajax({
url: userAccountAjax+'?action=checkEmail',
dataType: 'json',
method: 'post',
data: {
email: email
},
success: function(response) {
$('#cms-account-loading-message').hide();
if (response.exists === true) {
$('#cms-account-button').html(' Inloggen');
$('#cms-account-password').show();
$('#cms-account-forgotpassword').show();
$('#cms-account-title').text('Inloggen');
$('#cms-account-password')[0].focus();
userAccountExists = true;
} else {
$('#cms-account-button').html(' Registreren');
$('#cms-account-password').hide();
$('#cms-account-forgotpassword').hide();
$('#cms-account-title').text('Registreren');
userAccountExists = false;
}
$('#cms-account-button').show();
}
});
}, 500);
} else {
$('#cms-account-button').hide();
$('#cms-account-forgotpassword').hide();
$('#cms-account-password').hide();
userAccountLastChecked = '';
}
}
/* ---------------------------------------- END OF: /cms_files/components/cms/modules/useraccount/js/script.js */