﻿function CheckNumberFormat(sender, args) {
	CheckField(sender, args, "^[0-9][0-9]*$", "Geen geldig nummer");
}

function CheckDecimalFormat(sender, args) {
	CheckField(sender, args, "^[0-9]+([\.\,][0-9]{1,3})?$", "Geen geldig nummer");
}

function CheckDateFormat(sender, args) {
	CheckField(sender, args, "[0-3][0-9]-(0|1)[0-9]-(19|20)[0-9]{2}", "Geen geldige datum");
}

function CheckEmailFormat(sender, args) {
	CheckField(sender, args,
		"^[A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[@][A-Za-z0-9-][A-Za-z0-9-]+([.-][A-Za-z0-9-]+)*[.]([A-Za-z]){2,6}$",
		"Geen geldig e-mailadres");
}

function CheckMaxCharacters(sender, args) {
	var max = sender.MaxCharacters;
	var length = args.Value.length;
	var value = args.Value;

	if (max == 0) {
		args.isValid = true;
		return;
	}

	if (args.Value.length > max) {
		args.IsValid = false;
		SetError(sender, args.IsValid, "Tekst mag maximaal " + max + " tekens bevatten");
		return;
	}
}

function CheckField(sender, args, regex, errormessage) {
	var error;

	control = document.getElementById(sender.ControlToValidate);
	var arrMatch = new RegExp(regex).exec(control.value);

	if (control.value == '') {
		args.IsValid = false;
	}
	else if (!arrMatch) {
		args.IsValid = false;
		error = errormessage;
	}
	else {
		args.IsValid = true;
	}

	SetError(sender, args.IsValid, error);

	if (args.isValid) {
		CheckMaxCharacters(sender, args);
	}

}

function SetError(sender, isValid, error) {
	control = document.getElementById(sender.ControlToValidate);
	errordiv = document.getElementById(sender.ErrorDiv);
	
	if (sender.errormessage == null || sender.errormessage.indexOf(": " + sender.FieldName) == -1) {
		sender.errormessage = error + ": " + sender.FieldName;
	}

	errordiv.className = (isValid) ? "ok" : "error";
}

function CheckRequired(sender, args) {
	control = document.getElementById(sender.ControlToValidate);
	errordiv = document.getElementById(sender.ErrorDiv);

	args.IsValid = (control.value != '');

	errordiv.className = (args.IsValid) ? "ok" : "error";
}

function SetRequiredCheckBoxList(checkboxIds, textboxId) {
	var textbox = document.getElementById(textboxId);

	for (var i = 0; i < checkboxIds.length; i++) {
		var checkbox = document.getElementById(checkboxIds[i]);

		if (checkbox.checked) {
			textbox.value = (textbox.value == '') ? checkbox.value : ", " + checkbox.value;
		}
	}
}

function SetCheckBox(checkboxId, textboxValueId, textboxId) {

	var textboxValue = document.getElementById(textboxValueId);
	var checkbox = document.getElementById(checkboxId);
	var textbox = document.getElementById(textboxId);

	alert(textboxValue);

	if (checkbox.checked) {
		if (textboxValue != null) {
			textboxValue.disabled = false;
		}
		
		textbox.value = (textbox.value == '') ? checkbox.id : textbox.value + ", " + checkbox.id;
	}
	else {
		if (textboxValue != null && textboxValue.style["display"] != "none") {
			textboxValue.value = '';
			textboxValue.disabled = true;
		}
		
		textbox.value = textbox.value.replace(", " + checkbox.id, '');
		textbox.value = textbox.value.replace(checkbox.id, '');
	}
}

function FillTextBox(textBox, dropdownDay, dropdownMonth, dropdownYear) {
	var dropdownboxDay = document.getElementById(dropdownDay);
	var dropdownboxMonth = document.getElementById(dropdownMonth);
	var dropdownboxYear = document.getElementById(dropdownYear);

	var textboxValue = document.getElementById(textBox);

	textboxValue.value = '';

	//document.getElementById(textBox).value = "";

	if (dropdownboxDay.value != "0") {
		textboxValue.value = dropdownboxDay.value + '-' + dropdownboxMonth.value + '-' + dropdownboxYear.value;
	}
}

function EnableTextBox(checkbox, textboxId) 
{
	var textbox = document.getElementById(textboxId);
	textbox.disabled = (!checkbox.checked);
	
	if (!textbox.disabled) {
		textbox.focus();
	}
}
