
var check = 
{
	start: function()
	{
		var save = document.getElementById('save');
		if (save.addEventListener)
			save.addEventListener('click', check.validate, false);
		else
			save.attachEvent('onclick', check.validate);
	},
	
	validate: function()
	{
		var form = document.getElementsByTagName('form');
		if (!check.checkField())
			form[0].submit();
	},

	checkField: function()
	{
		var hasErrors = false;
		var elements = ['input','textarea','select','checkbox'];
		for (var i=0; i<elements.length; i++)
		{
			el = document.getElementsByTagName(elements[i]);
			for (var k=0; k<el.length; k++)
			{
				el[k].style.borderColor = '';
				el[k].parentNode.parentNode.style.color = 'black';
				var classes = el[k].className.split(' ');
				for (var j=0; j<classes.length; j++)
				{
					if (classes[j] == 'required')
					{
						if (el[k].value == '' || el[k].value == null)
						{
							hasErrors = true;
							el[k].style.borderColor = 'red';
							el[k].parentNode.parentNode.style.color = 'red';
						}
						else
						{
							if (el[k].id == 'email')
							{
								if (!check.checkMail())
								{
									hasErrors = true;
									el[k].style.borderColor = 'red';
									el[k].parentNode.parentNode.style.color = 'red';
								}
							}
							if (el[k].type == 'checkbox')
							{
								if (el[k].value != 'on')
								{
									hasErrors = true;
								}
							}
						}
					}
				}
			}
		}
		return hasErrors;
	},

	checkMail: function()
	{
		var mail = document.getElementById('email');
		var strScelta = new String(mail.value);
		PositP = strScelta.indexOf("@");
		if ((PositP == -1) || (PositP == 0)) 
		  return false;
	  	PositC = strScelta.lastIndexOf(".");
		if ((PositC == -1) || (PositC == 0) || (PositC == strScelta.length - 1) || (PositC < PositP) || (Math.abs(PositC - PositP) == 1))
		  return false;
		return true;
	}
}

if (window.addEventListener)
	window.addEventListener('load', check.start, false);
else
	window.attachEvent('onload', check.start);