var agt = navigator.userAgent.toLowerCase();
var badBrowser = (agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1) && (parseInt(navigator.appVersion) == 4) && (agt.indexOf("mac")!=-1);
var W3CDOM = (!badBrowser && document.getElementsByTagName && document.createElement);

window.onload = function ()
{
	document.forms[0].onsubmit = function () {
		return validate()
	}
}
var requiredField = new Array ('nome','cognome','email','azienda','citta','cap','provincia','attivita','tel','accept')
var validForm;
var firstError;
function validate()
{
	validForm = true;
	firstError = false;
	errorstring = 'Controlla che tutti i dati richiesti siano corretti prima di mandare il modulo.\n';
	var x = document.forms[0].elements;
	for (var i=0;i<requiredField.length;i++) {
		if (!x[requiredField[i]].value)
			writeError(x[requiredField[i]],'Campo richiesto');
		else if (requiredField[i] == 'email' && x['email'].value.indexOf('@') == -1)
				writeError(x['email'],'Indirizzo email non valido');
		if (requiredField[i] == 'accept' && !x['accept'].checked) {
			writeError(x['accept'],'Deve acconsentire all\'utilizzo dei suoi dati per inviare il modulo');
		}
	}
	if (!W3CDOM)
		alert(errorstring);
	if (firstError)
		firstError.focus();
	return validForm;
}

function writeError(obj,message)
{
	if (obj.hasError) {
		if (validForm)
			validForm = false;
		if(!firstError)
			firstError = obj;
		return;
	}
	if (W3CDOM)
	{
		obj.className += ' error';
		if (obj.id == 'accept') obj.onclick = removeError;
		else obj.onchange = removeError;
		var sp = document.createElement('span');
		sp.className = 'error';
		sp.appendChild(document.createTextNode(message));
		obj.parentNode.appendChild(sp);
		obj.hasError = sp;
	}
	else
	{
		errorstring += obj.name + ': ' + message + '\n';
		obj.hasError = true;
	}
	if (validForm)
		firstError = obj;
	validForm = false;
}

function removeError()
{
	this.className = this.className.substring(0,this.className.lastIndexOf(' '));
	this.parentNode.removeChild(this.hasError);
	this.hasError = null;
	this.onchange = null;
}