﻿matching=new Array(2)
matching[0]=/^[a-zìèéòçàù][a-zìèéòçàù\'\-\s]+$/                  	// nome, cognome
matching[1]=/^[a-zìèéòçàù0-9\'\/\-\s,\n\.\"\';*:,#\?°\(\)%&@]+$/ // messaggio


campi=new Array();
campi["nome"]="Name";
campi["testata"]="Journal";
campi["mail"]="E-mail";
campi["Fruolo"]="Posizione/Role";
campi["nazione"]="State/Nation";
campi["telefono"]="Telephone/Mobile";
campi["username"]="Username";
campi["password1"]="Password";
campi["password2"]="Repeat Password";
campi["check_code"]="Secure Check";

function validate_password(e)
{
var b,matching
matching=/^[A-Za-z0-9\-_\.~]+$/

if ((e.name=="password1")||(e.name=="password2"))
        {
        if (e.value=="")
            {
            alert("Fields Password and/or Repeat Password can\'t be empty!");
            e.select()
			e.focus();
            return false;
            }
        if (e.value.length<6)
            {
            alert("The Password field must contain at least 6 characters!");
            e.select()
			e.focus();
            return false;
            }
		b=e.value.match(matching)
		if ( b==null )
			{
            alert("Field Password and/or Repeat Password is not correct!");
			e.select()
			e.focus();
            return false;
            }
		
        }

return true;
}


function validate_username(e)
{
var b,matching
matching=/^[A-Za-z0-9\-_\.~]+$/
    if (e.value=="")
       {
       alert("Fields Username can\'t be empty!");
       e.select()
	   e.focus();
       return false;
       }
    if (e.value.length<8)
       {
       alert("The Password Username must contain at least 8 characters!");
       e.select()
	   e.focus();
	   return false;
       }
	b=e.value.match(matching)
	if ( b==null )
	   {
       alert("Field Username is not correct!");
	   e.select()
	   e.focus();
       return false;
       }
return true;
}


function verifica_email(email)
	{
	var stringa=email
	var b=/^[a-zA-Z0-9~\-_]+[a-zA-Z0-9~\-_\.]+@[a-zA-Z0-9~\-_\.]+\.[a-zA-Z0-9~\-_\.]+[a-zA-Z0-9~\-_]$/
	var c=/\.\./
	var d=/\.@/
	var e=/@\./
	var matching=stringa.match(b)
	var matching2=stringa.match(c)+stringa.match(d)+stringa.match(e)
	if ((matching==null)||((matching2!=null)&&(matching2!=""))) return false
	return true;
	}


function verifica_campo(elemento)
	{
	var result
	if (elemento.value=="") return true
	result=true
	switch(elemento.name)
        {
        case "username":
				result=validate_username(elemento)
				break;
        case "password1":
        case "password2":
				result=validate_password(elemento)
				break;
		case "mail":
                result=verifica_email(elemento.value)
				if (!(result))
				    {
                	alert('Field '+campi[elemento.name] +' is not correct!')
					elemento.focus();
                    elemento.select();
                    }
                return result
                break
        default:
                return false
        }
	return result
	}

function ver(sub_frm)
	{
	var counter=0
	var flag_cell=0
	var cur_elem
	var cur_elem_type
	var frm=sub_frm
	var cur_elem_name
	var num_elem=frm.elements.length
	while (counter<num_elem)
        {
        cur_elem=frm.elements[counter]
        cur_elem_type=cur_elem.name.substring(0,1)
        if((cur_elem.value == "")&&(cur_elem_type!="F")&&(cur_elem.type!="hidden")&&(cur_elem.name !="invio")&&(cur_elem.name !="reset")&&(cur_elem.name !="conduso"))
			{
			alert('Field '+  campi[cur_elem.name]  +' can\'t be empty!');
			cur_elem.focus();
			if (cur_elem.type == "text" )
				{
		 		cur_elem.select();
				}
			return false;
			}
	if (cur_elem.type!="hidden")
		{
        cur_elem_name=cur_elem.name
        if (cur_elem_type=="F")
			{
			cur_elem_name=cur_elem_name.substring(1,cur_elem_name.length)
			}
        switch(cur_elem_name)
              {
			  case "username":
			  case "password1":
			  case "password2":
	 	      case "mail":			  
			  	if(!verifica_campo(cur_elem))
					{
					return false;
					}
			  	break;
              default:
              break
              }
		}
		counter++
	}


	if (frm.password1.value != frm.password2.value)
            {
            alert("The contents in the two password fields do not coincide!");
            frm.password1.select()
			frm.password1.focus();
            return false;
            }
			
		if (!(frm.conduso.checked))
			{
		 	alert ('You must agree with the privacy policy in order to proceed.');
			frm.conduso.focus();
			return false;
			}
	return true;
	}


