// Alfred Supik

var errors = new Array();	// záznam chyb v zadaných údajích

function validate_contact(form)
{
	errors = new Array();	// vymazání předchozích hlášení
	var valid = true;
	var errmess = "";
	errors["name"] = validate_name("name",2,30);
	errors["email"] = validate_email("email",50);
	validate_message("message",10,1200);
	for (var key in errors){
		if(!errors[key]){
			valid = false;
			errmess += "\t<li>" + errdesc[key] + "</li>\n";
		}
	}
	var errbox = document.getElementById("err-box");
	if(errbox != null && errmess != ""){
		errbox.innerHTML = "<ul>\n" + errmess + "</ul>\n";
		errbox.scrollIntoView();
	}else
		valid = true;
	return valid;
}

function validate_name(id, minVal, maxVal){
	var vzor = /[^a-zA-ZěščřžýáíéúůóďťňĚŠČŘŽÝÁÍÉÚŮÓĎŤŇ\'\-\´ ]/;
	var elem = document.getElementById(id);
	if(!(elem != null && elem.nodeName == "INPUT"))
		return true;
	var value = elem.value;
	return (value.length >= minVal && value.length <= maxVal && value.search(vzor) == -1);
}


function validate_email(id, maxVal){
	var elem = document.getElementById(id);
	if(!(elem != null && elem.nodeName == "INPUT"))
		return true;
	var value = elem.value;
	var valid = false;
	var vzor1 = /[^a-zA-Z0-9.]/;
	var vzor2 = /[^a-zA-Z]/;
	var vzor3 = /[.]{2}/;
	var vzor4 = /[a-zA-Z]/;
	var zav = value.indexOf("@");
	var zavLast = value.lastIndexOf("@");
	if(zav > 0 && zav == zavLast){
		var em1 = value.slice(0,zav);
		var em = value.slice((zav + 1));
		var dot = em.indexOf(".");
		var dotLast = em.lastIndexOf(".");
			if(dot > 0 && dot == dotLast){
				em2 = em.slice(0,dot);
				em3 = em.slice((dot + 1));
				valid = (em1.search(vzor4) != -1 && em1.search(vzor1) == -1 && em1.search(vzor3) == -1 && em2.search(vzor4) != -1 && em2.search(vzor1) == -1 && em3.search(vzor2) == -1 && (em3.length == 2 || em3.length == 3));
			}
		}
	return valid && value.length <= maxVal;
}

function validate_message(id, minVal, maxVal){
	var vzor = /[^0-9a-zA-ZěščřžýáíéúůóďťňĚŠČŘŽÝÁÍÉÚŮÓĎŤŇ,.;%!:?=§\n\r\"\- ]/;
	var elem = document.getElementById(id);
	if(!(elem != null && elem.nodeName == "TEXTAREA"))
		return true;
	if(elem.value.search(vzor) != -1){
		errors["message"] = false;
		return false;
	}
	if(elem.value.length < minVal){
		errors["short_message"] = false;
		return false;
		}
	if(elem.value.length > maxVal){
		errors["long_message"] = false;
		return false;
		}
}

