var validate = new Object();

validate['empty'] = function(field) {
	var ok = document.getElementById(field).value != '';
	if (!ok) {
		document.getElementById(field + '_empty').style.display = 'list-item';
	}
	return ok;
}

validate['checkbox_empty'] = function(form, field) {
	//alert('form: ' + form + ' field: ' + field);
	//alert(document.forms["contactform"].elements["specialoptions[]"]);
	var boxes = eval('document.forms["'+form+'"].elements["'+field+'[]"]');
	
	var ok = false;
	for (var i = 0; i < boxes.length; i++) {
		if (boxes[i].checked) {
			ok = true;
		}
	}
	if (!ok) {
		document.getElementById(form + '_' + field + '_empty').style.display = 'list-item';
	}
	return ok;
}

validate['long'] = function(field, max) {
	max = parseInt(max);
	var ok = document.getElementById(field).value.length <= max;
	if (!ok) {
		document.getElementById(field + '_long').style.display = 'list-item';
	}
	return ok;
}

validate['badchar'] = function(field, type) {
	var ok = true;
	var value = document.getElementById(field).value;
	switch (type) {
	case 'name_person':
		if (!/^[A-Za-z-',. ]*$/.test(value)) {
			ok = false;
		}
		break;
	case 'phone_NAmer':
		if (value.replace(/[^0-9]/g, '').length != 10) {
			ok = false;
		}
		break;
	case 'text_line':
		if (/\0\f\n\r\t\v/.test(value)) {
			ok = false;
		}
		break;
	case 'email':
		if (!/^[^@]+@[^@.]+\.[^@]*\w\w$/.test(value) || /[\(\)\<\>\,\;\:\\\"\[\]]/.test(value)) {
			ok = false;
		}
		break;
	}
	if (!ok) {
		document.getElementById(field + '_badchar').style.display = 'list-item';
	}
	return ok;
}
