// JavaScript Document
function hideElement(targetElemId) {
	$(targetElemId).hide();
	$('openVO').show();
	$('closeVO').hide();
}
function showElement(targetElemId) {
	$(targetElemId).show();
	$('openVO').hide();
	$('closeVO').show();
}

function hideElem(targetElemId) {
	$(targetElemId).hide();
}
function showElem(targetElemId) {
	$(targetElemId).show();
}

// --------------
// Formulier check functies, gemaakt met
// met google, scriptaculous & prototype
// --------------


String.prototype.trim = function()
{
	var i = 0, j = this.length;
	while (i < j && this.charAt(i) <= ' ') i++;
	while (j > i && this.charAt(j - 1) <= ' ') j--;
	return this.substring(i, j);
}
String.prototype.isSet = function() {
	if(this.trim().length > 0) {
		return true;
	} else {
		return false;	
	}
}

function addFormCheck(fieldsArray, submit_id) {
	var fieldStr = "";
	for(var i=0; i<fieldsArray.length; i++) {
		fieldStr = fieldsArray[i].split("=");
		addFieldCheck(fieldStr[0], fieldStr[1], fieldsArray, submit_id);
	}
	//submit_id = submit_id.split(","); 
	//for(var j=0; j<submit_id.length; j++) {
		Event.observe(submit_id, 'click', function(event) {
			if(!doFormCheck(fieldsArray, submit_id, true)) {
				Event.stop(event);
			}
		});
	//}
}
function doFormCheck(fieldsArray, submit_id, showError) {
	var fieldStr = "";
	var formOk = true;
	for(var i=0; i<fieldsArray.length; i++) {
		fieldStr = fieldsArray[i].split("=");
		if(showError) {
			if(!formFieldCheck(fieldStr[0], fieldStr[1], true)) {
				formOk = false;
			}
		} else {
			if(!formFieldCheck(fieldStr[0], fieldStr[1], false)) {
				formOk = false;
			}
		}
	}
	if(formOk) {
		//$(submit_id).enable();
		if(($(submit_id).className == 'formSubmitDefault') || ($(submit_id).className == 'formSubmitBad')) {
			$(submit_id).className = 'formSubmitGood';
		} else if(($(submit_id).className == 'dropformSubmitDefault') || ($(submit_id).className == 'dropformSubmitBad')) {
			$(submit_id).className = 'dropformSubmitGood';
		}
	} else {
		//$(submit_id).disable();
		if(($(submit_id).className == 'formSubmitDefault') || ($(submit_id).className == 'formSubmitBad')) {
			$(submit_id).className = 'formSubmitBad';
		} else if(($(submit_id).className == 'dropformSubmitDefault') || ($(submit_id).className == 'dropformSubmitBad')) {
			$(submit_id).className = 'dropformSubmitBad';
		}
	}
	return formOk;
}
function addFieldCheck(field_id, requirements, fieldsArray, submit_id){
	// keypress focus blur select click mouseover mouseout
	Event.observe(field_id, 'keyup', function(event) {
		formFieldCheck(field_id, requirements, true);
		doFormCheck(fieldsArray, submit_id, false);
	});
	Event.observe(field_id, 'change', function(event) {
		formFieldCheck(field_id, requirements, true);
		doFormCheck(fieldsArray, submit_id, false);
	});
}


function formFieldCheck(field_id, field_check, showError) {
	var fieldOk = true;
	var field_check_arr = $w(field_check);
	var fieldCheckParts;
	for(var i=0; i<field_check_arr.length; i++) {
		fieldCheckParts = field_check_arr[i].split(":");
		switch(String(fieldCheckParts[0])) {
			case "min":
				if($F(field_id).isSet()) {
					if($F(field_id).length < Number(fieldCheckParts[1])) {
						fieldOk = false;
					}
				}
			break;
			case "max":
				if($F(field_id).isSet()) {
					if($F(field_id).length > Number(fieldCheckParts[1])) {
						fieldOk = false;
					}
				}
			break;
			case "required":
				if(!$F(field_id).isSet()) { 
					fieldOk = false;
				}
			break;
			case "number":
				if($F(field_id).isSet()) {
					var numericExpression = /^[0-9 ]+$/;
					if(!$F(field_id).match(numericExpression)) { 
						fieldOk = false;
					}
				}
			break;
			case "string":
				if($F(field_id).isSet()) {
					var stringExpression = /^[a-zA-Z\-\_ ]+$/;
					if(!$F(field_id).match(stringExpression)) { 
						fieldOk = false;
					}
				}
			break;
			case "numstring":
				if($F(field_id).isSet()) {
					var numStringExpression = /^[a-zA-Z0-9\-\_ ]+$/;
					if(!$F(field_id).match(numStringExpression)) { 
						fieldOk = false;
					}
				}
			break;
			case "email":
				if($F(field_id).isSet()) {
					var emailExpression = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-Z0-9]{2,4}$/;
					if(!$F(field_id).match(emailExpression)) { 
						fieldOk = false;
					}
				}
			break;
			case "telefoon":
				if($F(field_id).isSet()) {
					var telefoonExpression1 = /^[0-9]{10}$/;
					var telefoonExpression2 = /^[0-9]{13}$/;
					var telefoonExpression3 = /^\+[0-9]{11}$/;
					if(!$F(field_id).match(telefoonExpression1) && !$F(field_id).match(telefoonExpression2) && !$F(field_id).match(telefoonExpression3)) { 
						fieldOk = false;
					}
				}
			break;
			case "postcode":
				if($F(field_id).isSet()) {
					var postcodeExpression1 = /^[0-9]{4}[A-Z]{2}$/;
					var postcodeExpression2 = /^[0-9]{4} [A-Z]{2}$/;
					if(!$F(field_id).match(postcodeExpression1) && !$F(field_id).match(postcodeExpression2)) { 
						fieldOk = false;
					}
				}
			break;
			case "nowhitespace":
				var numStringExpression = /(\s)/;
				if($F(field_id).match(numStringExpression)) { 
					fieldOk = false;
				}
			break;
		}
	}
	if(showError) {
		if (!fieldOk) {
			if(($(field_id).className == 'formInputDefault') || ($(field_id).className == 'formInputGood') || ($(field_id).className == 'formInputBad')) {
				$(field_id).className = 'formInputBad';
			} else if(($(field_id).className == 'dropformInputDefault') || ($(field_id).className == 'dropformInputGood') || ($(field_id).className == 'dropformInputBad')) {
				$(field_id).className = 'dropformInputBad';
			}
		} else { 
			if($F(field_id).isSet()) {
				if(($(field_id).className == 'formInputDefault') || ($(field_id).className == 'formInputBad') || ($(field_id).className == 'formInputGood')) {
					$(field_id).className = 'formInputGood';
				} else if(($(field_id).className == 'dropformInputDefault') || ($(field_id).className == 'dropformInputBad') || ($(field_id).className == 'dropformInputGood')) {
					$(field_id).className = 'dropformInputGood';
				}
			} else {
				if(($(field_id).className == 'formInputBad') || ($(field_id).className == 'formInputGood')) {
					$(field_id).className = 'formInputDefault';
				} else if(($(field_id).className == 'dropformInputBad') || ($(field_id).className == 'dropformInputGood')) {
					$(field_id).className = 'dropformInputDefault';
				}
			}
		}
	}
	return fieldOk;
}
