function beep() {
    alert('PIIP!');
}

function formCheck(caller) {
	formOK = true;

	if (caller.msg) {
		errormsg=caller.msg+'\n\n';
	} else {
		errormsg="Lomakkeen tiedoissa on puutteita. Ole hyvä ja tarkasta seuraavat kentät:\nForm fields are not filled correctly. Please check the following fields:\n\n";
	}

	for (i=0; i < caller.length; i++) {
		var e = caller.elements[i];
		error = false;

		if (e.minlen && !e.maxlen) {
			if (e.value.length < e.minlen) {
				error=true;
			}
		}

		else if (e.maxlen && !e.minlen) {
			if (e.value.length > e.maxlen) {
				error=true;
			}
		}

		else if (e.minlen && e.maxlen) {
			if (e.value.length < e.minlen || e.value.length > e.maxlen) {
				error=true;
			}
		}

		if (e.numeric == true) {
			var numeric = /[^0-9 -+]/;
			if (numeric.test(e.value)) {
				error=true;
			}
		}

		else if (e.alpha == true) {
			var alpha = /[^a-öA-Ö '-]/;
			if (alpha.test(e.value)) {
				error=true;
			}
		}

		else if (e.alphanum == true) {
			var alphanum = /[^a-öA-Ö \/0-9+-]/;
			if (alphanum.test(e.value)) {
				error=true;
			}
		}

		if (e.type == "checkbox" && e.check == true) {
			if (!e.checked) {
				error=true;
			}
		}

		if (e.type == "password" && !e.match) {
			var passwd = /[^a-öA-Ö0-9]/;
			if (passwd.test(e.value)) {
				error=true;
			}
		} else if (e.type == "password" && e.match) {
			matcher = e.match.name;
			matchVal = caller.elements[matcher].value;
			if (e.value != matchVal) {
				error=true;
			}
		}

		if (e.email == true && e.value != "") {
			if (!checkEmail(e.value)) {
				error=true;
			}
		}

		if (e.date == true && e.value != "") {
			if (!checkDate(e.value)) {
				error=true;
			}
		}

		if (e.selected == true) {
			if (e.value == '') {
				error=true;
			}
		}

		if (error == true) {
			errormsg+=caller.elements[i].msg+'\n';
			formOK = false;
		}

	}

	if (!formOK){
		alert(errormsg);
		return false;  // Send error messages and prevent form submit
	} else {
		return true; // Accept form values and send results to servlet
	}
}


function checkEmail(email) {
	if (email.length < 6) {
		return false;
	}

	if (email.indexOf("@")==-1 || email.indexOf("@")==0 || email.indexOf(".")==-1 || email.indexOf(".")==0) {
		return false;
	}

	var emailNew = email.replace("@", ".");
	var emailParts_array = emailNew.split(".");
	var regexp = /[^a-zA-Z_0-9-]/;

	for (var $i=0; $i < emailParts_array.length; $i++) {
	var ea = emailParts_array[$i];

		if (ea.length < 1) {
			return false;
		}
	
		if (regexp.test(ea)) {
			return false;
		}

		if (ea.indexOf("-")==0 || ea.indexOf("-")==ea.length-1 || ea.substring(ea.length-1,ea.length)=="-") {
			return false;
		}
	}

	if (emailParts_array[emailParts_array.length-1].length < 2) {
		return false;
	}
return true;

}

function checkDate(dateStr){
	var dot1=dateStr.indexOf(".");
	var dot2=dateStr.indexOf(".",dot1+1);
	var overchars = dateStr.indexOf(".",dot1+dot2+1);
	var day=dateStr.substring(0,dot1);
	var month=dateStr.substring(dot1+1,dot2);
	var year=dateStr.substring(dot2+1);

	if (dot1==-1 || dot2==-1){
		return false;
	}
	if (month < 1 || month > 12){
		return false;
	}
	if (day<1 || day>31){
		return false;
	}
	if (year<1900 || year> 2100){
		return false;
	}
	if (overchars != -1){
		return false;
	}

	return true;
}


