var xmlHttp

function validateUser(){
	document.getElementById('errmsg0').innerHTML="";
	var usernameRegEx = /^([a-zA-Z]{1,20})+([a-zA-Z0-9])+$/;
	str = document.getElementById('username').value;
	if (str.length>1) {
		if (str.match(usernameRegEx)){
			//tutto ok - superato il test lato cliente invia la richiesta per la verifica della disponibilità
			if (str.length>=4) {
				var url="checkuser.asp?n=" + str
				xmlHttp=GetXmlHttpObject(stateChanged)
				xmlHttp.open("GET", url , true)
				xmlHttp.send(null)
			}
		} else {			
			document.getElementById('errmsg0').innerHTML="<b>&nbsp;Il carattere inserito non può essere utilizzato. Si prega di riprovare</b>";
			document.getElementById('username').value="";
			return false;
		}
	}
}

function checkUserLenght(){
	validateUser();
	document.getElementById('errmsg0').innerHTML="";
	var usernameRegEx = /^([a-zA-Z]{1,20})+([a-zA-Z0-9])+$/;
	str = document.getElementById('username').value;
	
	if (str.length>=4) {
		//tutto ok
	} else {			
		document.getElementById('errmsg0').innerHTML="<b>&nbsp;Il nome utente scelto è troppo breve. Scegliere un nome composto da almeno 4 caratteri.</b>";
		return false;
	}
}

function clearError(){
	document.getElementById('errmsg0').innerHTML="";
}


function stateChanged() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
	
		document.getElementById("errmsg0").innerHTML=xmlHttp.responseText
		if(xmlHttp.responseText==""){
			document.getElementById("sub1").disabled=false
		} else {
			document.getElementById("sub1").disabled=true
		}
	} 
} 

function GetXmlHttpObject(handler) { 
	var objXmlHttp=null

	if (navigator.userAgent.indexOf("Opera")>=0)
	{
	alert("Lo script utilizzato da questo sito non è compatibile con Opera") 
	return; 
	}
	if (navigator.userAgent.indexOf("MSIE")>=0)
	{ 
	var strName="Msxml2.XMLHTTP"
	if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
	{
	strName="Microsoft.XMLHTTP"
	} 
	try
	{ 
	objXmlHttp=new ActiveXObject(strName)
	objXmlHttp.onreadystatechange=handler 
	return objXmlHttp
	} 
	catch(e)
	{ 
	alert("Errore. ActiveX potrebbe essere disabilitato.") 
	return 
	} 
	} 
	if (navigator.userAgent.indexOf("Mozilla")>=0)
	{
		objXmlHttp=new XMLHttpRequest()
		objXmlHttp.onload=handler
		objXmlHttp.onerror=handler 
		return objXmlHttp
	}

}

function isName(what)
{
   var i=new RegExp("([a-zA-Z\ ]{3,})");
   if(!i.test(what)) {
	document.getElementById("errmsg1").innerHTML="<b>&nbsp;Inserisci qui il tuo nome&nbsp;</b>" 
	return false}   
   return true;
}

function isSurname(what)
{
   var i=new RegExp("([a-zA-Z\ ]{3,})");
   if(!i.test(what)) {
	document.getElementById("errmsg2").innerHTML="<b>&nbsp;Inserisci il tuo cognome&nbsp;</b>" 
	return false}   
   return true;
}

function isUsername(what)
{
   var i=new RegExp("([a-zA-Z0-9_\.\-\ò\à\è\é\ù\ì]{3,})");
   if(!i.test(what)) {
	document.getElementById("errmsg0").innerHTML="<b>&nbsp;Il carattere non è consentito!&nbsp;</b>" 
	return false}   
   return true;
}

function isEmail(what,numerr)
{
   var i=new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
   if(!i.test(what)) {
	document.getElementById("errmsg"+numerr).innerHTML="<b>&nbsp;Inserisci un indirizzo email valido&nbsp;</b>" 
	return false}   
   return true;
}

function isPassword(what,numerr)
{
   var i=new RegExp("([a-zA-Z0-9]{6,10})");
   if(!i.test(what)) {
	document.getElementById("errmsg"+numerr).innerHTML="<b>&nbsp;Password non valida&nbsp;</b>" 
	return false}   
   return true;
}

function confronta(pass1,pass2,numerr,cosa)
{
   if(pass1 !=pass2) {
	document.getElementById("errmsg"+numerr).innerHTML="<b>&nbsp;Le "+ cosa +" non corrispondono&nbsp;</b>" 
	return false}   
   return true;
}

function toglierrore(numcampo)
{
	document.getElementById("errmsg"+numcampo).innerHTML=""
}


function validateForm(frm)
{
	if(!isName(frm.nome.value)) return false;
	if(!isSurname(frm.cognome.value)) return false;
	if(!isUsername(frm.utente.value)) return false;
	//if(!check-len(frm.utente.lenght,'3','0','Il nome utente deve essere lungo almeno')) return false;
	if(!checkUserLenght());
	if(!isPassword(frm.password.value,'5')) return false;
	if(!isPassword(frm.password2.value,'6')) return false;
	if(!confronta(frm.password.value,frm.password2.value,'6','password')) return false;
	if(!isEmail(frm.email.value,'3')) return false;
	if(!isEmail(frm.email2.value,'4')) return false;
	if(!confronta(frm.email.value,frm.email2.value,'4','email')) return false;
	
	return confirm("Proseguire con la registrazione?");
}
