/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Formulier Afhandeling +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/* ***************************************************************************************
    FormHandler (formId, formvariabelen)
***************************************************************************************** */
function fnFormHandler() {
	fArgs = fnFormHandler.arguments;
	aPostData = new Array();
	var bCheckbox = false;
	var bCheckboxChecked = false;
	
	formId = fArgs[0];
	form = document.forms[formId];
	
	form.method = "post";
	
	fError = new Array();
		
	//i begint bij 1 omdat 1e arggument formId is(, en eindigd bij op 1 naar laatste omdat de laatste de submit is??)
	for (i = 1; i <= form.length - 1; i++) {
		formElementNr = i - 1;
				
		var n = form.elements[formElementNr].name;
		var v = form.elements[formElementNr].value;
		var t = form.elements[formElementNr].type;
		var objElement = form.elements[formElementNr];
		
		if (t == "checkbox") {
			bCheckbox = true;
			
			if (objElement.checked == true) {
				
				if (bCheckboxChecked == false) {
					bCheckboxChecked = true;
				}
			}
		}
		
		switch(fArgs[i]) {
			case "email":
					if (!fnValidateEmail(v)) {
						fError[formElementNr] = form.elements[formElementNr].name + " is invalid";
					}
				    break;
			case "postal":
					if (checkPostcode(form.elements[formElementNr].value) === false) {
						fError[formElementNr] = form.elements[formElementNr].name + " is invalid";
					}
					break;
			case "date":
					if (fnValidateDate(v) == false) {
						fError[formElementNr] = form.elements[formElementNr].name + " is invalid (mm-dd-yyyy)";
					}
					break;	
			case 1:
					if (form.elements[formElementNr].value == "") {
						fError[formElementNr] = form.elements[formElementNr].name + " is required";
					}
					break;
				default:
				//Nothing
		}
	}
	
	if (bCheckbox == true) {
		if (bCheckboxChecked == false) {
			fError[fError.length + 1] = "Al least one interest needs to be checked";
		}
	}

	//Geef de fouten weer wanneer die er zijn, anders het form versturen
	if (fError.length > 0) {
		for (keyName in fError) {
			alert(fError[keyName]);
			break;
		}
	}
	else {
		form.submit();
	}
	return false;
}

//Controleer geldigheid Email adres
function fnValidateEmail(emailAddress) {
	var foundAtSymbol = 0;
	var foundDot = 0;
	var md;

	//Ga eerste elk teken bij langs
	for (var x=0; x < emailAddress.length - 1; x++) {
		md = emailAddress.substr(x, 1);

		//Is het een @
		if (md == '@') {
			foundAtSymbol++;
		}

		//Tel hoeveelheid punten na @
		if (md == '.' && foundAtSymbol == 1) 
			foundDot++;
		}

	//Is er 1 @ en meer punten?
	if (foundDot > 0 && foundAtSymbol == 1) {
		return(true);
	} 
	else {
		return(false);
	}
}

function fnValidateDate(p_sDate) {
	regex_Date = /\d{1,2}-\d{1,2}-\d{4}/;	//Date format = mm-dd-yy
	
	if (regex_Date.test(p_sDate)) {
		return true;
	}
	else {
		return false;
	}
}
