var globalpageform = null;

function checkInput(pageform) {
	var myRegExp = /.*required.*/gi;
	globalpageform = pageform;
	for (var i=0; i<pageform.elements.length; i++) {
		//var myel = pageform.elements(i);
		var myel = pageform.elements[i];
		if (myel.className.match(myRegExp)) {
			myel = document.getElementsByName(myel.name);
			if (checkType(myel)) {
				continue;
			} else {
				if (myel.length && !(typeSelect(myel))) {
					var formelement = myel[0];
				} else {
					var formelement = myel;
				}
				alertUser(formelement);
				return false;
			}
		}
	}

	return true;
}

function checkType(formelement) {
	var x = false;
	switch(formelement.type) {
		case 'hidden':
			x = checkValue(formelement, "");
			break;
		case 'textarea':
			x = checkValue(formelement, "");
			break;
		case 'select-one':
			x = checkValue(formelement, "0");
			break;
		case 'select-multiple':
			x = checkValue(formelement, "");
			break;
		case 'text':
			x = checkValue(formelement, "");
			break;
		case 'password':
			x = checkValue(formelement, "");
			break;
		case 'file':
			x = checkValue(formelement, "");
			break;
		case 'checkbox':
			x = checkCheckBox(formelement);
			break;
		case 'radio':
			x = checkCheckBox(formelement);
			break;
		default:
			x = checkUndefined(formelement);
			break;
	}
	return x;
}

function checkValue(formelement, check) {
	return(!((formelement.value == check) && (formelement.disabled == false)));
}

function checkUndefined(formelement) {
	var mycheck = false;
	if (formelement.length) {
		for (var i=0; i < formelement.length; i++) {
			if (checkType(formelement[i])) {
				mycheck = true;
				break;
			}
		}
	}
	return mycheck;
}

function checkCheckBox(formelement) {
	return(formelement.checked);
}

function typeHidden(formelement) {
	return(formelement.type == 'hidden');
}

function typeDisabled(formelement) {
	return formelement.disabled;
}

function typeSelect(formelement) {
	return((formelement.type == 'select-multiple') || (formelement.type == 'select-one'));
}

function alertUser(formelement) {
	var returntext = new Object();
	returntext['nl'] = 'Niet alle verplichte velden zijn ingevuld!';
	returntext['en'] = 'Please fill out all mandatory fields!';

	mylang = 'nl';
	var formlang = document.getElementsByName("language");
	if (formlang.length != 0 && formlang[0].value != "") {
		mylang = formlang[0].value;
	}

	if (!returntext[mylang]) {
		mylang = 'nl';
	}

	if (typeHidden(formelement)) {
		var mytext = formelement.getAttribute('alttext');
		if (mytext) {
			var myfocus = formelement.getAttribute('altfocus');
			if (globalpageform[myfocus]) {
				globalpageform[myfocus].focus();
			} else {
				// myfocus is probably a part of the document instead of the form
				eval(myfocus + '.focus()');
			}
			alert(mytext);
		} else {
			returntext['nl'] = 'Er mist nog een hidden field (' +formelement.name+ ')!';
			returntext['en'] = 'A hidden field is missing (' +formelement.name+ ')!';
			alert(returntext[mylang]);
		}
	} else {
		alert(returntext[mylang]);
		formelement.style.backgroundColor = "yellow";
		if (!typeDisabled(formelement)) {
			formelement.focus();
		}
	}
}
