var Language;
$(document).ready(function() {
SubmitEventHandlers();
var domain = window.location.hostname;
if(domain.indexOf(".com") !== -1)
{
Language = "en";
}
else if(domain.indexOf(".eu") !== -1)
{
Language = "en";
}
else
{
Language = "nl";
}
});
function SubmitEventHandlers()
{
$("#FormWachtwoordHerstellen").on("submit.SEH", function( event ) {
event.preventDefault();
$('.error').remove();
CheckFormWachtwoordHerstellen();
});
$("#FormAanbieden").on("submit.SEH", function( event ) {
event.preventDefault();
$('.error').remove();
CheckFormAanbieden();
});
$("#FormGezocht").on("submit.SEH", function( event ) {
event.preventDefault();
$('.error').remove();
CheckFormGezocht();
});
$("#FormToevoegen").on("submit.SEH", function( event ) {
event.preventDefault();
$('.error').remove();
CheckFormToevoegen();
});
$("#FormWijzigen").on("submit.SEH", function( event ) {
event.preventDefault();
$('.error').remove();
CheckFormWijzigen();
});
$("#FormConfirmVerwijderen").on("submit.SEH", function( event ) {
event.preventDefault();
$('.error').remove();
CheckFormConfirmVerwijderen();
});
$("#FormInstellingen").on("submit.SEH", function( event ) {
event.preventDefault();
$('.error').remove();
CheckFormInstellingen();
});
$("#FormStart").on("submit.SEH", function( event ) {
event.preventDefault();
$('.error').remove();
CheckStart();
});
}
function CheckFormWachtwoordHerstellen (boolArray = [])
{
var formID = "#FormWachtwoordHerstellen";
boolArray.push(PassStrength('input', 0));
boolArray.push(PassSame('input', 1));
boolArray.push(Empty('input', 2));
boolArray.push(Empty('input', 3));
var check = boolArray.indexOf(false);
if (check != -1)
{
return false;
}
else
{
var submitBUTTON = $(formID).find('button[type="submit"]');
var submitVALUE = $(submitBUTTON).attr('value');
var hiddenINPUT = $(submitBUTTON).prevAll('input[type="hidden"]').first();
$(hiddenINPUT).val(submitVALUE);
$(formID).off('.SEH').submit();
return true;
}
}
function CheckFormAanbieden()
{
var formID = "#FormAanbieden";
var boolArray = [];
boolArray.push(Empty('input', 0));
boolArray.push(Char('input', 0));
boolArray.push(Empty('input', 1));
boolArray.push(Char('input', 1));
boolArray.push(Empty('input', 2));
boolArray.push(Char('input', 2));
boolArray.push(Float('input', 3));
boolArray.push(Char('input', 4));
boolArray.push(Char('input', 5));
boolArray.push(Empty('input', 6));
boolArray.push(Char('input', 6));
boolArray.push(Empty('input', 7));
boolArray.push(Char('input', 7));
boolArray.push(Radio('klinisch'));
boolArray.push(Radio('rontgenologisch'));
boolArray.push(Char('input', 8));
boolArray.push(Char('input', 9));
boolArray.push(Char('input', 10));
boolArray.push(Char('input', 11));
boolArray.push(CharT('input', 12));
if($(".checkbox").eq(0).prop("checked"))
{
boolArray.push(CharP('file', 0));
boolArray.push(Img('file', 0));
boolArray.push(CharP('file', 1));
boolArray.push(Img('file', 1));
boolArray.push(CharP('file', 2));
boolArray.push(Img('file', 2));
}
if($(".checkbox").eq(1).prop("checked"))
{
boolArray.push(CharP('file', 3));
boolArray.push(Vid('file', 3));
boolArray.push(CharP('file', 4));
boolArray.push(Vid('file', 4));
boolArray.push(CharP('file', 5));
boolArray.push(Vid('file', 5));
}
boolArray.push(CharP('input', 13));
boolArray.push(CharP('input', 14));
boolArray.push(CharP('input', 15));
boolArray.push(FileSize());
boolArray.push(Empty('input', 16));
boolArray.push(Char('input', 16));
boolArray.push(Empty('input', 17));
boolArray.push(Char('input', 17));
boolArray.push(Char('input', 18));
boolArray.push(Char('input', 19));
boolArray.push(Char('input', 20));
boolArray.push(Char('input', 21));
boolArray.push(Char('input', 22));
boolArray.push(Char('input', 23));
boolArray.push(Phone('input', 24, false));
boolArray.push(Char('input', 25));
boolArray.push(Email('input', 25));
boolArray.push(ReCaptcha('g-recaptcha', 0));
var check = boolArray.indexOf(false);
if (check !== -1)
{
return false;
}
else
{
var submitBUTTON = $(formID).find('button[type="submit"]');
var submitVALUE = $(submitBUTTON).attr('value');
var hiddenINPUT = $(submitBUTTON).prevAll('input[type="hidden"]').first();
$(hiddenINPUT).val(submitVALUE);
$(formID).off('.SEH').submit();
return true;
}
}
function CheckFormGezocht()
{
var formID = "#FormGezocht";
var boolArray = [];
boolArray.push(Empty('input', 0));
boolArray.push(Char('input', 0));
boolArray.push(Empty('input', 1));
boolArray.push(Char('input', 1));
boolArray.push(Empty('input', 2));
boolArray.push(Char('input', 2));
boolArray.push(Empty('input', 3));
boolArray.push(Char('input', 3));
boolArray.push(Empty('input', 4));
boolArray.push(Char('input', 4));
boolArray.push(Char('input', 5));
boolArray.push(Char('input', 6));
boolArray.push(CharT('input', 7));
boolArray.push(Empty('input', 8));
boolArray.push(Char('input', 8));
boolArray.push(Empty('input', 9));
boolArray.push(Char('input', 9));
boolArray.push(Empty('input', 10));
boolArray.push(Char('input', 10));
boolArray.push(Char('input', 11));
boolArray.push(Char('input', 12));
boolArray.push(Char('input', 13));
boolArray.push(Char('input', 14));
boolArray.push(Char('input', 15));
boolArray.push(Char('input', 16));
boolArray.push(Phone('input', 17, false));
boolArray.push(Char('input', 18));
boolArray.push(Email('input', 18));
boolArray.push(ReCaptcha('g-recaptcha', 0));
var check = boolArray.indexOf(false);
if (check !== -1)
{
return false;
}
else
{
var submitBUTTON = $(formID).find('button[type="submit"]');
var submitVALUE = $(submitBUTTON).attr('value');
var hiddenINPUT = $(submitBUTTON).prevAll('input[type="hidden"]').first();
$(hiddenINPUT).val(submitVALUE);
$(formID).off('.SEH').submit();
return true;
}
}
function CheckFormToevoegen()
{
var formID = "#FormToevoegen";
var boolArray = [];
boolArray.push(Empty('input', 0));
boolArray.push(Char('input', 0));
boolArray.push(Empty('input', 1));
boolArray.push(Char('input', 1));
boolArray.push(Empty('input', 2));
boolArray.push(Char('input', 2));
boolArray.push(Empty('input', 3));
boolArray.push(Char('input', 3));
boolArray.push(Char('input', 4));
boolArray.push($(".checkbox").eq(0).prop("checked") ? Img('file', 0) : true);
boolArray.push($(".checkbox").eq(0).prop("checked") ? CharP('file', 0) : true);
boolArray.push(FileSize());
boolArray.push($(".checkbox").eq(1).prop("checked") ? Youtube('input', 5) : true);
boolArray.push($(".checkbox").eq(1).prop("checked") ? CharP('input', 5) : true);
boolArray.push(ReCaptcha('g-recaptcha', 0));
var check = boolArray.indexOf(false);
if (check !== -1)
{
return false;
}
else
{
var submitBUTTON = $(formID).find('button[type="submit"]');
var submitVALUE = $(submitBUTTON).attr('value');
var hiddenINPUT = $(submitBUTTON).prevAll('input[type="hidden"]').first();
$(hiddenINPUT).val(submitVALUE);
$(formID).off('.SEH').submit();
return true;
}
}
function CheckFormWijzigen()
{
var formID = "#FormWijzigen";
var boolArray = [];
boolArray.push(Empty('input', 0));
boolArray.push(Char('input', 0));
boolArray.push(Empty('input', 1));
boolArray.push(Char('input', 1));
boolArray.push(Empty('input', 2));
boolArray.push(Char('input', 2));
boolArray.push(Empty('input', 3));
boolArray.push(Char('input', 3));
boolArray.push(Char('input', 4));
boolArray.push($(".checkbox").eq(0).prop("checked") ? Img('file', 0) : true);
boolArray.push($(".checkbox").eq(0).prop("checked") ? CharP('file', 0) : true);
boolArray.push(FileSize());
boolArray.push($(".checkbox").eq(1).prop("checked") ? Youtube('input', 5) : true);
boolArray.push($(".checkbox").eq(1).prop("checked") ? CharP('input', 5) : true);
boolArray.push(ReCaptcha('g-recaptcha', 0));
var check = boolArray.indexOf(false);
if (check !== -1)
{
return false;
}
else
{
var submitBUTTON = $(formID).find('button[type="submit"]');
var submitVALUE = $(submitBUTTON).attr('value');
var hiddenINPUT = $(submitBUTTON).prevAll('input[type="hidden"]').first();
$(hiddenINPUT).val(submitVALUE);
$(formID).off('.SEH').submit();
return true;
}
}
function CheckFormConfirmVerwijderen()
{
var formID = "#FormConfirmVerwijderen";
var boolArray = [];
boolArray.push(Empty('input', 0));
boolArray.push(Char('input', 0));
var check = boolArray.indexOf(false);
if (check !== -1)
{
return false;
}
else
{
var submitBUTTON = $(formID).find('button[type="submit"]');
var submitVALUE = $(submitBUTTON).attr('value');
var hiddenINPUT = $(submitBUTTON).prevAll('input[type="hidden"]').first();
$(hiddenINPUT).val(submitVALUE);
$(formID).off('.SEH').submit();
return true;
}
}
function CheckFormInstellingen(boolArray = [])
{
var formID = "#FormInstellingen";
boolArray.push(Empty('input', 0));
boolArray.push(Char('input', 0));
boolArray.push(PassStrength('input', 1));
boolArray.push(PassSame('input', 2));
var check = boolArray.indexOf(false);
if (check != -1)
{
return false;
}
else
{
var submitBUTTON = $(formID).find('button[type="submit"]');
var submitVALUE = $(submitBUTTON).attr('value');
var hiddenINPUT = $(submitBUTTON).prevAll('input[type="hidden"]').first();
$(hiddenINPUT).val(submitVALUE);
$(formID).off('.SEH').submit();
return true;
}
}
function CheckFormStart(boolArray = [])
{
var formID = "#FormStart";
boolArray.push(Char('input', 0));
boolArray.push(Int('input', 0));
var check = boolArray.indexOf(false);
if (check != -1)
{
return false;
}
else
{
var submitBUTTON = $(formID).find('button[type="submit"]');
var submitVALUE = $(submitBUTTON).attr('value');
var hiddenINPUT = $(submitBUTTON).prevAll('input[type="hidden"]').first();
$(hiddenINPUT).val(submitVALUE);
$(formID).off('.SEH').submit();
return true;
}
}
//tests//
function GetError(test, name = "", nr = null, paraObj = null)
{
if(paraObj === null)
{
paraObj = [null, null, null, null, null, null, null, null, null, null];
}
Error = {
"nl" : {
"Empty" : "U heeft " + name + " niet ingevuld!",
"Char" : "Invoerveld (" + name + ") mag geen quotes (dubbele of enkele), slashes en $ bevatten!",
"CharP" : "Invoerveld (" + name + ") mag geen quotes (dubbele of enkele) en $ bevatten!",
"CharT" : "Invoerveld (" + name + ") mag geen $ bevatten!",
"Float" : [
"U heeft " + name + " niet ingevuld!",
"U heeft bij " + name + " een ongeldig getal ingevuld.",
"U heeft bij " + name + " een ongeldig getal ingevuld. U moet een getal invoeren vanaf "+paraObj[0]+" tot en met "+paraObj[1]+"!",
"U heeft bij " + name + " een ongeldig getal ingevuld. U moet een getal invoeren dat "+paraObj[0]+" tot en met "+paraObj[1]+" tekens bevat!"
],
"Radio" : "U heeft geen keuze gemaakt bij " + name + "!",
"Img" : "U heeft een ongeldig bestand gekozen! Alleen .gif .jpeg .jpg .bmp en .png afbeeldingen zijn toegestaan.",
"Vid" : "U heeft een ongeldig bestand gekozen! Alleen .m4v .avi .mpg en .mp4 video's zijn toegestaan.",
"FileSize" : [
"Uw toegevoegde bestanden (Foto's en Video's uit bestand) hebben gezamenlijk de maximale toelaatbare grootte van "+paraObj[0]+"Mb overschreden (Totale grootte: "+paraObj[1]+" Mb). Verwijder één of meer bestanden om onder de "+paraObj[0]+"Mb te komen. Als u toch graag alle bestanden wilt meesturen raden we u aan om uw bestanden (voornamelijk video's) te comprimeren. Door op de volgende link te klikken, komt u op een pagina met informatie over hoe u zelf uw video's kunt comprimeren: Hoe u video's kunt comprimeren?",
"Uw toegevoegde foto heeft de maximale toelaatbare grootte van "+paraObj[0]+"Mb overschreden (Totale grootte: "+paraObj[1]+" Mb). Verwijder de foto of kies een andere om onder de "+paraObj[0]+"Mb te komen. Als u toch graag deze foto wilt meesturen raden we u aan om uw foto te comprimeren. Door op de volgende link te klikken, komt u op een pagina met informatie over hoe u zelf uw foto kunt comprimeren: Hoe u foto's kunt comprimeren?"
],
"Phone" : "Telefoonnummer is niet geldig!",
"Email" : "E-mailadres is niet geldig!",
"ReCaptcha" : "U heeft het reCAPTCHA formulier nog niet aangevinkt!"
},
"en" : {
"Empty" : "You have not entered " + name + "!",
"Char" : "Field (" + name + ") may not contain quotes (dubble or single), hashes and $ !",
"CharP" : "Field (" + name + ") may not contain quotes (dubble or single) and $ !",
"CharT" : "Field (" + name + ") may not contain $ !",
"Float" : [
"You have not entered " + name + "!",
"You have entered an invalid number at "+ name +".",
"You have entered an invalid number at "+ name +". You must enter a number from "+ paraObj [0] +" to "+ paraObj [1] +"!",
"You have entered an invalid number at "+ name +". You must enter a number that contains "+ paraObj [0] +" to "+ paraObj [1] +" characters!"
],
"Radio" : "You have not made a choice at "+ name +"!",
"Img" : "You have chosen an invalid file! Only .gif .jpeg .jpg .bmp and .png images are allowed.",
"Vid" : "You have chosen an invalid file! Only .m4v .avi .mpg and .mp4 videos are allowed.",
"FileSize" : [
"Your added files (Photos and Videos) together have exceeded the maximum permissible size of "+paraObj[0]+"Mb (Total size: "+paraObj[1]+" Mb). Delete one or more files to get below "+paraObj[0]+"Mb. If you still want to send all files, we advise you to compress your files (mainly videos). Clicking on the following link will take you to a page with information on how to compress your videos yourself: How to compress videos?",
"Your added photo has exceeded the maximum allowable size of "+paraObj[0]+"Mb (Total size: "+paraObj[1]+" Mb). Delete the photo or choose another to get under the "+paraObj[0]+"Mb. If you still want to send this photo, we recommend you compress your photo. Clicking on the following link will take you to a page with information about how you can compress your photo yourself: How to compress photos?"
],
"Phone" : "Phonenumber is not valid!",
"Email" : "E-mail adress is not valid!",
"ReCaptcha" : "You have not yet selected the reCAPTCHA form!"
},
"de" : {
"Empty" : "",
"Char" : "",
"CharP" : "",
"CharT" : "",
"Float" : [
"",
"",
"",
""
],
"Radio" : "",
"Img" : "",
"Vid" : "",
"FileSize" : [
"",
"",
],
"Phone" : "",
"Email" : "",
"ReCaptcha" : ""
}
};
if(nr !== null)
{
return Error[Language][test][nr];
}
else
{
return Error[Language][test];
}
}
var PHP_INT_MIN = -2147483648; // 32-bit systeem
var PHP_INT_MAX = 2147483647; // 32-bit systeem
var PHP_UPLOAD_MAX_FILESIZE = 64000000;
function Empty(vclass, i)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value.replace(/\s+/g, '');
if (value == "")
{
var name = document.getElementsByClassName(vclass)[i].getAttribute("data-name");
var error = "
" + GetError('Empty', name) + "
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}
function Char(vclass, i)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value.replace(/\s+/g, '');
var a = value.indexOf("\"");
var b = value.indexOf("\'");
var c = value.indexOf("\\");
var d = value.indexOf("/");
var e = value.indexOf("$");
var total = a + b + c + d + e;
if (total != -5)
{
var name = document.getElementsByClassName(vclass)[i].getAttribute("data-name");
var error = "" + GetError('Char', name) + "
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}
function CharP(vclass, i)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value.replace(/\s+/g, '');
var a = value.indexOf("\"");
var b = value.indexOf("\'");
var c = value.indexOf("$");
var total = a + b + c;
if (total != -3)
{
var name = document.getElementsByClassName(vclass)[i].getAttribute("data-name");
var error = "" + GetError('CharP', name) + "
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}
function CharT(vclass, i)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value.replace(/\s+/g, '');
var a = value.indexOf("$");
var total = a;
if (total != -1)
{
var name = document.getElementsByClassName(vclass)[i].getAttribute("data-name");
var error = "" + GetError('CharT', name) + "
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}
function Int(vclass, i, MINint = PHP_INT_MIN, MAXint = PHP_INT_MAX, MINlength = 0, MAXlength = PHP_INT_MAX, empty = false)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value.replace(/\s+/g, '');
var name = document.getElementsByClassName(vclass)[i].getAttribute("data-name");
if (empty === true && value == "")
{
return true;
}
else if (empty === false && value == "")
{
var error = "U heeft " + name + " niet ingevuld!
";
}
else if (isNaN(value) || (parseInt(Number(value)) != value) || isNaN(parseInt(value, 10)) || value.indexOf(".") !== -1)
{
var error = "U heeft bij " + name + " een ongeldig getal ingevuld, decimalen zijn niet toegestaan!
";
}
else if (MINint > parseInt(Number(value)) || MAXint < parseInt(Number(value)))
{
var error = "U heeft bij " + name + " een ongeldig getal ingevuld. U moet een getal invoeren vanaf "+MINint+" tot en met "+MAXint+"!
";
}
else if (MINlength > value.length || MAXlength < value.length)
{
var error = "U heeft bij " + name + " een ongeldig getal ingevuld. U moet een getal invoeren dat "+MINlength+" tot en met "+MAXlength+" tekens bevat!
";
}
else
{
return true;
}
$(error).insertAfter($(qclass)[i]);
return false;
}
function Float(vclass, i, MINint = PHP_INT_MIN, MAXint = PHP_INT_MAX, MINlength = 0, MAXlength = PHP_INT_MAX, empty = false)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value.replace(/\s+/g, '');
var name = document.getElementsByClassName(vclass)[i].getAttribute("data-name");
if (empty === true && value == "")
{
return true;
}
else if (empty === false && value == "")
{
var error = "" + GetError('Float', name, 0) + "
";
}
else if (isNaN(value) || (parseFloat(Number(value)) != value) || isNaN(parseFloat(value)))
{
var error = "" + GetError('Float', name, 1) + "
";
}
else if (MINint > parseFloat(Number(value)) || MAXint < parseFloat(Number(value)))
{
var error = "" + GetError('Float', name, 2, [MINint, MAXint]) + "
";
}
else if (MINlength > value.length || MAXlength < value.length)
{
var error = "" + GetError('Float', name, 3, [MINlength, MAXlength]) + "
";
}
else
{
return true;
}
$(error).insertAfter($(qclass)[i]);
return false;
}
function Radio(vname)
{
var qname = "input[name=" + vname + "]:checked";
var iname = "input[name=" + vname + "]";
var value = $(qname).val();
var name = document.getElementsByName(vname)[0].getAttribute("data-name");
if (value == "" || value == null)
{
var error = "" + GetError('Radio', name) + "
";
$(error).insertAfter($(iname).last());
return false;
}
else
{
return true;
}
}
function Img(vclass, i)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value.replace(/\s+/g, '');
if (value == "")
{
return true;
}
else
{
var Ext = $($(qclass)[i]).val().split('.').pop().toLowerCase();
var ValidImageExt = ['gif','png','jpg','jpeg','bmp'];
if ($.inArray(Ext, ValidImageExt) < 0)
{
var error = "" + GetError('Img') + "
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}
}
function Vid(vclass, i)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value.replace(/\s+/g, '');
if (value == "")
{
return true;
}
else
{
var Ext = $($(qclass)[i]).val().split('.').pop().toLowerCase();
var ValidVideoExt = ['m4v', 'avi','mpg','mp4'];
if ($.inArray(Ext, ValidVideoExt) < 0)
{
var error = "" + GetError('Vid') + "
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}
}
function FileSize()
{
$('.mediaError').remove();
var errorNr = (document.getElementsByClassName("file")[0].hasAttribute("data-errorNr") ? parseInt(document.getElementsByClassName("file")[0].getAttribute("data-errorNr")) : 0);
var maxAllowedSizePHP = PHP_UPLOAD_MAX_FILESIZE;
var maxAllowedSizeATR = 0;
var totalSize = 0;
$(".file").each(function() {
for (var i = 0; i < this.files.length; i++)
{
totalSize += this.files[i].size;
if(this.hasAttribute("data-size"))
{
maxAllowedSizeATR = maxAllowedSizeATR + parseInt(this.getAttribute("data-size"));
}
else
{
maxAllowedSizeATR = maxAllowedSizeATR + maxAllowedSizePHP;
}
}
});
var maxAllowedSize = (maxAllowedSizeATR > maxAllowedSizePHP) ? maxAllowedSizePHP : maxAllowedSizeATR;
if (totalSize > maxAllowedSize)
{
var Total = totalSize / 1000000;
var echoTotalSize = Total.toString();
var echoMaxAllowedSize = (maxAllowedSize / 1000000).toString();
var error = "" + GetError('FileSize', null, errorNr, [echoMaxAllowedSize, echoTotalSize]) + "
";
$(error).insertAfter($(".bied-page-blok-input-media").last());
return false;
}
else
{
return true;
}
}
function Phone(vclass, i, empty = false)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value.replace(/\s+|\-|/g, "");
if (empty === true && value == "")
{
return true;
}
else
{
var phonenumber = new RegExp("^([0-9]{7,10})$");
var checkPhonenumber = phonenumber.test(value);
var phonenumberland = new RegExp("^(00[0-9]{9,11})$");
var checkPhonenumberland = phonenumberland.test(value);
var phonenumberlandPlus = new RegExp("^(\\+[0-9]{9,11})$");
var checkPhonenumberlandPlus = phonenumberlandPlus.test(value);
if (checkPhonenumber == false && checkPhonenumberland == false && checkPhonenumberlandPlus == false)
{
var error = "" + GetError('Phone') + "
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}
}
function Email(vclass, i)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value.replace(/\s+/g, '');
var email = /^(([^<>()\[\]\\.,;:\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 checkEmail = email.test(value);
if (checkEmail == false)
{
var error = "" + GetError('Email') + "
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}
function Youtube(vclass, i)
{
//Variables
var APIkey = "AIzaSyCNCfzCCD6RKyw4xPP_he2oIcI1pN-c4zw";
var qclass = "." + vclass;
var linkPRE = $(qclass).eq(i).val();
var link = $.trim(linkPRE);
//Dynamic variables
var listSPLIT = link.split('list=');
var videoSPLIT = link.split('v=');
var urlSPLIT = link.split('https://youtu.be/');
var embedSPLIT = link.split('https://www.youtube.com/embed/');
var list = (listSPLIT[1] !== undefined) ? listSPLIT[1].split('&')[0] : false;
var video = (videoSPLIT[1] !== undefined) ? videoSPLIT[1].split('&')[0] : false;
var url = (urlSPLIT[1] !== undefined) ? urlSPLIT[1].split('/')[0] : false;
var embed = (embedSPLIT[1] !== undefined) ? embedSPLIT[1].split('/')[0] : false;
var empty = (link === "") ? true : false;
//Execute check
$('.linkError').remove();
if (empty === true)
{
return true;
}
else if (list !== false)
{
getURL = "https://www.googleapis.com/youtube/v3/playlists";
getValue = list;
getType = "playlist";
}
else if (video !== false)
{
getURL = "https://www.googleapis.com/youtube/v3/videos";
getValue = video;
getType = "video";
}
else if (url !== false)
{
getURL = "https://www.googleapis.com/youtube/v3/videos";
getValue = url;
getType = "url";
}
else if (embed !== false)
{
getURL = "https://www.googleapis.com/youtube/v3/videos";
getValue = embed;
getType = "embeded video";
}
else
{
var error = "U heeft een ongeldige youtube url ingevoerd!
";
$(error).insertAfter($(".link"));
return false;
}
//AJAX GET_REQUEST
$.get(getURL, {part: "id", id: getValue, key: APIkey })
.done(function(data) {
console.log(data);
if (data.pageInfo.totalResults > 0)
{
return true;
}
else
{
var error = "De ingevoerde youtube url ("+getType+") bestaat niet!
";
$(error).insertAfter($(".link"));
return false;
}
})
.fail(function(xhr){
console.log(xhr.responseText);
alert('GET error: ' + xhr + ' (' + xhr.status + '). De controle van uw youtube url ('+getType+') is niet gelukt.');
return false;
})
;
}
function ReCaptcha (vclass, i)
{
var qclass = "." + vclass;
if (grecaptcha.getResponse() == "")
{
var error = "" + GetError('ReCaptcha') + "
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}
function PassStrength(vclass, i, submit = true)
{
//Wachtwoord vereisten
// - Minimaal 8 chars lang
// - Minimaal 3/4 volgende punten
// - Minimaal 1 lowercase char
// - Minimaal 1 uppercase char
// - Minimaal 1 cijfer
// - Minimaal 1 symbool
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i].value;
//Variabelen aanmaken
if (1===1)
{
var bUnvalid = false;
var nLength = 0;
var v1 = 0;
var v2 = 0;
var v3 = 0;
var v4 = 0;
var v5 = 0;
var nReq = 0;
var cReq = 0;
var bReq = false;
var nLC = 0;
var cConsecLC;
var nConsecLC = 0;
var nUC = 0;
var cConsecUC;
var nConsecUC = 0;
var nMidCH = 0;
var nNR = 0;
var cConsecNR;
var nConsecNR = 0;
var nSY = 0;
var cConsecSY;
var nConsecSY = 0;
var nRepeatCH = 0;
var nUniqueCH = 0;
var vRepeatCH = 0;
var sequenceABC = "abcdefghijklmnopqrstuvwxyz";
var sequenceNR = "0123456789";
var sequenceSY = ")!@#$%^&*()";
var nSequenceABC = 0;
var nSequenceNR = 0;
var nSequenceSY = 0;
var score = 0;
}
//Waardes berekenen
if (1===1)
{
//bUnvalid (Bool)
var a = value.indexOf(" "); // Spatie
var b = value.indexOf("\"");// "
var c = value.indexOf("\'");// '
var d = value.indexOf("\\");// \
var e = value.indexOf("/"); // /
var f = value.indexOf("$"); // $
var cUnvalid = a + b + c + d + e + f;
if (cUnvalid != -6){bUnvalid = true;}else{bUnvalid = false;}
//nLength (INT)
var nLength = value.length;
for (var x=0; x < nLength; x++)
{
stringArray = value.split("");
//nLC (INT)
if (stringArray[x].match(/[a-z]/gm))
{
nLC = nLC + 1;
//nConsecutiveLC
if (cConsecLC !== "")
{
if ((cConsecLC + 1) == x){nConsecLC = nConsecLC + 1;}
}
cConsecLC = x;
}
//nUC (INT)
else if (stringArray[x].match(/[A-Z]/gm))
{
nUC = nUC + 1;
//nConsecutiveUC
if (cConsecUC !== "")
{
if ((cConsecUC + 1) == x){nConsecUC = nConsecUC + 1;}
}
cConsecUC = x;
}
//nNR (INT)
else if (stringArray[x].match(/[0-9]/gm))
{
nNR = nNR + 1;
//nMidCH (INT)
if (x > 0 && x < (nLength - 1)){nMidCH = nMidCH + 1;}
//nConsecutiveNR
if (cConsecNR !== "")
{
if ((cConsecNR + 1) == x){nConsecNR = nConsecNR + 1;}
}
cConsecNR = x;
}
//nSY (INT)
else if (stringArray[x].match(/[^a-zA-Z0-9_]/gm))
{
nSY = nSY + 1;
//nMidCH (INT)
if (x > 0 && x < (nLength - 1)){nMidCH = nMidCH + 1;}
//nConsecutiveSY
if (cConsecSY !== "")
{
if ((cConsecSY + 1) == x){nConsecSY = nConsecSY + 1;}
}
cConsecSY = x;
}
//nRepeatCH & vRepeatCH (INT)
var bRepeatCH = false;
for (var y=0; y < nLength; y++)
{
if (stringArray[i] == stringArray[y] && x != y)
{
bRepeatCH = true;
//Reductie bepaald door totale password lengte gedeeld door de afstand tussen de herhaalde char
vRepeatCH = vRepeatCH + Math.abs(nLength/(y-x));
}
}
if (bRepeatCH)
{
nRepeatCH = nRepeatCH + 1;
nUniqueCH = nLength - nRepeatCH;
vRepeatCH = (nUniqueCH) ? Math.ceil(vRepeatCH/nUniqueCH) : Math.ceil(vRepeatCH);
}
}
//nSequenceABC (INT) Minimaal 3 op- of afloppende chars
for (var z=0; z < 23; z++)
{
var sequenceFwd = sequenceABC.substring(z,parseInt(z+3));
var sequenceSplit = sequenceFwd.split("");
var sequenceRev = sequenceSplit[0] + sequenceSplit[1] + sequenceSplit [2];
if (value.toLowerCase().indexOf(sequenceFwd) != -1 || value.toLowerCase().indexOf(sequenceRev) != -1){nSequenceABC = nSequenceABC + 1;}
}
//nSequenceNR (INT) Minimaal 3 op- of afloppende chars
for (var z=0; z < 7; z++)
{
var sequenceFwd = sequenceNR.substring(z,parseInt(z+3));
var sequenceSplit = sequenceFwd.split("");
var sequenceRev = sequenceSplit[0] + sequenceSplit[1] + sequenceSplit [2];
if (value.toLowerCase().indexOf(sequenceFwd) != -1 || value.toLowerCase().indexOf(sequenceRev) != -1){nSequenceNR = nSequenceNR + 1;}
}
//nSequenceSY (INT) Minimaal 3 op- of afloppende chars
for (var z=0; z < 8; z++)
{
var sequenceFwd = sequenceSY.substring(z,parseInt(z+3));
var sequenceSplit = sequenceFwd.split("");
var sequenceRev = sequenceSplit[0] + sequenceSplit[1] + sequenceSplit [2];
if (value.toLowerCase().indexOf(sequenceFwd) != -1 || value.toLowerCase().indexOf(sequenceRev) != -1){nSequenceSY = nSequenceSY + 1;}
}
//nReq (INT)
if (nLength >= 8){v1 = 1;} else{v1 = 0;}
if (nLC >= 1){v2 = 1;} else{v2 = 0;}
if (nUC >= 1){v3 = 1;} else{v3 = 0;}
if (nNR >= 1){v4 = 1;} else{v4 = 0;}
if (nSY >= 1){v5 = 1;} else{v5 = 0;}
nReq = v1 + v2 + v3 + v4 + v5;
cReq = v2 + v3 + v4 + v5;
//bReq (Bool)
if (v1 === 1 && cReq >= 3){bReq = true;}
}
//Score berekenen
if (1===1)
{
//+++
//nLength
score = parseInt(score + (nLength * 4));
//nLC
score = parseInt(score + ((nLength - nLC) * 2));
//nUC
score = parseInt(score + ((nLength - nUC) * 2));
//nNR
score = parseInt(score + (nNR * 4));
//nSY
score = parseInt(score + (nSY * 6));
//nMidCH
score = parseInt(score + (nMidCH * 2));
//nReq
score = parseInt(score + (nReq * 2));
//---
//Only Letters
if ((nLC + nUC) === nLength){score = parseInt(score - nLength);}
//Only Numbers
if (nNR === nLength){score = parseInt(score - nLength);}
//vRepeatCH
if (nRepeatCH > 0){score = parseInt(score - vRepeatCH);}
//nConsecLC
score = parseInt(score - (nConsecLC * 2));
//nConsecUC
score = parseInt(score - (nConsecUC * 2));
//nConsecNR
score = parseInt(score - (nConsecNR * 2));
//nConsecSY
score = parseInt(score - (nConsecSY * 2));
//nSequenceABC
score = parseInt(score - (nSequenceABC * 3));
//nSequenceNR
score = parseInt(score - (nSequenceNR * 3));
//nSequenceSY
score = parseInt(score - (nSequenceSY * 3));
//Correctie
//bUnvalid
if (bUnvalid === true){score = 0;}
//bReq
if (bReq === false && score >= 40){score = 39;}
//<0
if (score <= 0){score = 0;}
//>100
if (score >= 100){score = 100;}
}
//Visualisatie
if (1===1)
{
var wachtwoordbar = $($(qclass)[i]).nextAll('.wachtwoordbar').first();
var wachtwoordbarLines = $(wachtwoordbar).children('.wachtwoordbar-line');
var wachtwoordbarSpan = $(wachtwoordbar).children('.wachtwoordbar-span').first();
if (nLength <= 0)
{
$(wachtwoordbarLines).eq(0).removeClass('barrood');
$(wachtwoordbarLines).eq(1).removeClass('baroranje');
$(wachtwoordbarLines).eq(2).removeClass('bargroen');
$(wachtwoordbarSpan).html('Wachtwoord is leeg');
}
else
{
if (score <= 39)
{
$(wachtwoordbarLines).eq(0).addClass('barrood');
$(wachtwoordbarLines).eq(1).removeClass('baroranje');
$(wachtwoordbarLines).eq(2).removeClass('bargroen');
$(wachtwoordbarSpan).html('Zwak');
}
else if (40 <= score && score <= 69)
{
$(wachtwoordbarLines).eq(0).addClass('barrood');
$(wachtwoordbarLines).eq(1).addClass('baroranje');
$(wachtwoordbarLines).eq(2).removeClass('bargroen');
$(wachtwoordbarSpan).html('Goed');
}
else if (score >= 70)
{
$(wachtwoordbarLines).eq(0).addClass('barrood');
$(wachtwoordbarLines).eq(1).addClass('baroranje');
$(wachtwoordbarLines).eq(2).addClass('bargroen');
$(wachtwoordbarSpan).html('Sterk');
}
}
}
//Return
if (submit === true)
{
if (bUnvalid === true)
{
var error = "Uw wachtwoord is ongeldig! Spaties, \", ', \\, / en $ mogen niet gebruikt worden
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else if (bReq === false)
{
var error = "Uw wachtwoord voldoet niet aan de vereisten! Het wachtwoord moet minimaal 8 tekens lang zijn en 3 van de 4 volgende punten bevatten: kleineletter, hoofdletter, cijfer of een symbool.
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else if (score <= 39)
{
var error = "Uw wachtwoord is te zwak!
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}
else
{
$('#errorPASS').remove();
if (bUnvalid === true)
{
var error = "Uw wachtwoord is ongeldig! Spaties, \", ', \\, / en $ mogen niet gebruikt worden
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else if (bReq === false){return false;}
else if (score <= 39){return false;}
else{return true;}
}
}
function PassSame(vclass, i)
{
var qclass = "." + vclass;
var value = document.getElementsByClassName(vclass)[i-1].value;
var value1 = document.getElementsByClassName(vclass)[i].value;
$('#errorSAME').remove();
if (value !== value1)
{
var error = "Uw wachtwoorden komen niet overeen!
";
$(error).insertAfter($(qclass)[i]);
return false;
}
else
{
return true;
}
}