// JavaScript Document
//------------------------------------------------------------------------
// checkForm : checks each field for a given pattern of chars
function checkForm(frm){
	var pattern;
	// Utente (lettere, numeri, e i segni . _ -)
  pattern = /^([a-zA-Z0-9\.\_\-])+$/;
	if(!checkPatternChars('Utente',frm.user.value,pattern,true))
  { 
    frm.user.focus();
    return false; 
  }
	// Password (min 6, max 12 di caratteri, numeri, _ * - + ! ? , : ; . 
  // e lettere accentate)
	pattern = /^[a-zA-Z0-9\_\*\-\+\!\?\,\:\;\.\xE0\xE8\xE9\xF9\xF2\xEC\x27]{6,12}/;
	if(!checkPatternChars('Password',frm.password.value,pattern,true))
  { 
    frm.password.focus();
    return false; 
  }  
	// Nome (caratteri, lettere accentate apostrofo e un solo spazio fra le parole)
	pattern = /^([a-zA-Z\xE0\xE8\xE9\xF9\xF2\xEC\x27]\s?)+$/;
  if(!checkPatternChars('Nome',frm.name.value,pattern))
  { 
    frm.name.focus();
    return false; 
  }
	// C.A.P.  (5 numeri)
  pattern = /^\d{5}$/;
  if(!checkPatternChars('CAP',frm.cap.value,pattern))
  { 
    frm.cap.focus();
    return false; 
  }
	// E-mail  
	pattern = /^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	if(!checkPatternChars('E-mail',frm.email.value,pattern,true))
  { 
    frm.email.focus();
    return false; 
  }
	// Data formato mm/gg/aaaa o mm-gg-aaaa o mm.gg.aaaa  
  pattern = /^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[-/.](19|20)\d\d/;
  if(!checkPatternChars('Data',frm.data.value,pattern))
  { 
    frm.data.focus();
    return false; 
  }
	// Codice fiscale
  pattern = /^[a-zA-Z]{6}\d\d[a-zA-Z]\d\d[a-zA-Z]\d\d\d[a-zA-Z]/;
  if(!checkPatternChars('Codice fiscale',frm.cf.value,pattern))
  { 
    frm.cf.focus();
    return false; 
  }
  
  return true;
}

//------------------------------------------------------------------------
// checkPatternChars : checks a specific pattern of typed chars
function checkPatternChars(nm,vlu,pattern,required){
  if ( required === undefined ) {
      required = false;
   } 
  if(!required && vlu==""){
    return true;
  }
  if (!pattern.test(vlu)){
    alert("Il campo "+nm+" non e\' valido!");
    return false;
  }
  else { 
    return true; 
  }
}

