function getFieldObject (name)
{
	// by id:
	return document.getElementById(name);
/*
	// by name:
	objs = document.getElementsByName(name);
	if (objs.length > 0)
		return objs[0];
	else
		return null;
*/
}

function checkFieldText (name, title)
{
	obj = getFieldObject(name);
	if (!obj)
		return false;

	if (obj.value != "")
		return true;

	obj.focus();
	obj.select();
	alert (title);
	
	return false;
}

function checkFieldEmail (name, title)
{
	obj = getFieldObject(name);
	if (!obj)
		return false;
	
//	var filter = /^.+\@.+\..+$/;	// most simple check: something@something.something
	var filter = /^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
	if (filter.test(obj.value))
		return true;

	obj.focus();
	obj.select();
	
	if (!title || title == '')
		title = 'Please specify a valid e-mail address.';
	alert (title);
	
	return false;
}

function checkFieldPassword (name, title)
{
	obj = getFieldObject(name);
	if (!obj)
		return false;
		
	if (obj.value.length >= 8)
		return true;

	obj.focus();
	obj.select();
	alert (title);
	
	return false;
}

function checkFieldDate (name, title, format)
{
	obj = getFieldObject(name);
	if (!obj)
		return false;
	
	var mo, day, yr;
	var entry = obj.value;
	var re = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
	if (re.test(entry))
	{
		var delimChar = (entry.indexOf("/") != -1) ? "/" : "-";
		var delim1 = entry.indexOf(delimChar);
		var delim2 = entry.lastIndexOf(delimChar);
		mo = parseInt(entry.substring(0, delim1), 10);
		day = parseInt(entry.substring(delim1+1, delim2), 10);
		yr = parseInt(entry.substring(delim2+1), 10);
		if (format[0] == 'd' || format[0] == 'D')
		{ tmp = day; day = mo; mo = tmp; }
		var testDate = new Date(yr, mo-1, day);
		if (testDate.getDate() == day) {
			if (testDate.getMonth() + 1 == mo) {
				if (testDate.getFullYear() == yr) {
					return true;
				}
			}
		}
	}
/*				} else {
					alert("There is a problem with the year entry.");
				}
			} else {
				alert("There is a problem with the month entry.");
			}
		} else {
			alert("There is a problem with the date entry.");
		}
	} else {
		alert("Incorrect date format. Enter as mm/dd/yyyy.");
	}
*/	
	obj.focus();
	obj.select();
	alert (title);
	
	return false;
}

function checkPersonalData (message)
{
	ok =   checkFieldText ('name', message)
		&& checkFieldText ('surname', message)
		&& checkFieldEmail ('email', message)
		&& checkFieldText ('phone', message)
		&& checkFieldText ('country', message)
		&& checkFieldText ('postcode', message)
		&& checkFieldText ('city', message)
		&& checkFieldText ('address', message)
	;
	
	if (ok)
	{
		obj = document.getElementById('conditions');
		if (obj && !obj.checked)
		{
			ok = false;
			alert (message);
		}
	}
	
	return ok;
}
