function trim(str) {
  return str.replace(/^\s*|\s*$/g,"");
}

function valida() {
  var validacampi=true;
  
  var elFrm = document.getElementById("frmRegister");

  if (elFrm.Email != undefined) {

  	if ((trim(elFrm.Email.value) =='')&& (validacampi==true))
  		{
  		validacampi=false;
  		elFrm.buttvalue.value='NO';
  		alert("Inserire l\'indirizzo E-Mail");
  		}
  
    	if (!emailCorretta(elFrm.Email.value) && validacampi)
    		{
    		validacampi=false;
    		elFrm.buttvalue.value='NO';
    		alert("L\'email specificata non è un indirizzo valido.");
    		}
  
    	if ((trim(elFrm.Pwd.value)=='') && (validacampi==true))
    		{
    		validacampi=false;
    		elFrm.buttvalue.value='NO';
    		alert("Password non valida");
    		}
      
      if ((trim(elFrm.Pwd.value) == trim(elFrm.Email.value)) && (validacampi==true))
    		{
    		validacampi=false;
    		elFrm.buttvalue.value='NO';
    		alert("Per la sicurezza dei tuoi dati è necessario scegliere una Password differente dall'indirizzo E-Mail");
    		}
      
    	if (elFrm.Pwd.value != elFrm.REPEAT_Pwd.value)
    		{
    		validacampi=false;
    		elFrm.buttvalue.value='NO';
    		alert("La Password non è stata ripetuta correttamente");
    		}
    
    	if ((elFrm.AcceptAll[0].checked == false) &&  ( validacampi==true)) {
    		validacampi=false;
    		elFrm.buttvalue.value='NO';
    		alert("Per proseguire è necessario prestare il consenso all'informativa.");
    	}
	
	}
	
	if ((elFrm.Sesso[0].checked == false && elFrm.Sesso[1].checked == false) &&  ( validacampi==true)){
		validacampi=false;
		elFrm.buttvalue.value='NO';
		alert("Indicare il sesso");
	}
	
	if ((trim(elFrm.selD.value) == '' || trim(elFrm.selM.value) == '' || trim(elFrm.selY.value) == '' ) && (validacampi==true)){
		validacampi=false;
		elFrm.buttvalue.value='NO';
		alert("La data di nascita non è stata inserita correttamente");
	}

	if ((trim(elFrm.rProvincia.value)=='') && (validacampi==true)){
		validacampi=false;
		elFrm.buttvalue.value='NO';
		alert("Inserire la provincia di residenza");
	}
	
	if ((trim(elFrm.MyMasterFacol.value)=='') && (validacampi==true)){
		validacampi=false;
		elFrm.buttvalue.value='NO';
		alert("Indicare la facoltà di interesse");
	}

	if (validacampi==true) {
	  manageValoriAccessoriBeforeSubmit();
	  elFrm.buttvalue.value="OK";
		elFrm.submit();
  }
  
  
}


function emailCorretta(stringa){
		var valida = false;
		var c;
		var found_chiocciola = 0;
		var found_punto = false;
		var found_spazio = false;
		var found_virgola = false;

	  	// CONTROLLO solo 1 "@" e almeno 1 "." e nessuno " " e nessuna ","
	  	if (stringa.length > 6) {
		  	for (i=0;i<stringa.length;i++){
		  		c = stringa.charAt(i);
		  		if (c==".") found_punto = true;
		  		if (c=="@") found_chiocciola++;
		  		if (c==" ") found_spazio = true;
		  		if (c==",") found_virgola = true;
		  	}
		}
		if (found_chiocciola==1 && found_punto) valida = true;
		if (found_spazio) valida = false;
		if (found_virgola) valida = false;


	  	// CONTROLLO "@" e "." all'inizio oppure alla fine
	  	if (valida) {
		  	c = stringa.charAt(0);
		  	if (c=="@" || c==".") {
		  		valida = false;
		  	}
		  	c = stringa.charAt(stringa.length-1);
		  	if (c=="@" || c==".") {
		  		valida = false;
		  	}
		}

		// CONTROLLO "@." e ".@"
		if (valida) {
			var aParts = stringa.split("@");
		  	var err=false;
		  	for (i=0;i<aParts.length;i++) {
		  		if (aParts[i].charAt(aParts[i].length-1)==".") {
		  			valida=false;
		  			break;
		  		}
		  		if (aParts[i].charAt(0)==".") {
		  			valida=false;
		  			break;
		  		}
		  	}
		}
	return valida;
}

function validaCaratteri(s){
	var c,i;
	var valida=false;
	for (i=0;i<s.length;i++){
		c = s.charCodeAt(i);
		// lettere minuscole,     lettere maiuscole,    numeri
		if ( (c>=97 && c<=122) || (c>=65 && c<=90) || (c>=48 && c<=57) ) {
			valida=true;
		}
		else {
			valida=false;
			break;
		}
	}
	return valida;
}

function capitalize(obj) {
  var s = trim(obj.value);
  obj.value = doCapitalize(s);
}

function doCapitalize(s) {
  var newVal = '';
  s = s.toLowerCase();
  var val = s.split(' ');
  for(var c=0; c < val.length; c++) {
    newVal += val[c].substring(0,1).toUpperCase() + val[c].substring(1,val[c].length) + ' ';
  }
  s = newVal;
  return trim(s);
}


function isAccentata(c) {
  return (c=='à' || c=='è'|| c=='é' || c=='ì' || c=='ò' || c=='ù');
}

function validChars(s) {
  var c,i;
	var valida=false;
	for (i=0;i<s.length;i++){
		c = s.charCodeAt(i);
		if (
		    (c==39) || (c==32) ||
		    (c>=48 && c<=57) ||
		    (c>=65 && c<=90) ||
		    (c>=97 && c<=122) ||
		    (c>=192 && c<=255)
		    ) {
			valida=true;
		}
		else {
			valida=false;
			//alert(i+"="+c);
			break;
		}
	}
	return valida;
}

function setLaureaQuest() {
  
  var elFrm = document.getElementById("frmRegister");
  
  var doQuest = elFrm.optlaurea[1].checked;
  //var elQuest = elFrm.laureaquest;
  var elQuest = document.getElementById("laureaquest");
  var elTitol = elFrm.TitStudio;
  
  rendiVisibile(elQuest, doQuest);
  
  //laureaquest.style.visibility = (doQuest) ? 'visible' : 'hidden';
  
  elTitol.selectedIndex = (doQuest) ? 0 : 4;
}

function setLaureaDate(el) {
  
  var elFrm = document.getElementById("frmRegister");
  
  setSelColor(el);
  
  var elTitol = elFrm.TitStudio;
  var iY = elFrm.selLaureaY.selectedIndex;
  var iM = elFrm.selLaureaM.selectedIndex;
  
  elTitol.selectedIndex = (iY > 0 && iM > 0) ? 4 : 0;
}

function setSex(v) {
  var el = document.getElementById("labelSex1");
  el.innerHTML = (v == "M") ? "Laureato" : "Laureata";
  
  el = document.getElementById("labelSex2");
  el.innerHTML = (v == "M") ? "informato" : "informata";
  
  el = document.getElementById("labelSex3");
  el.innerHTML = (v == "M") ? "avvisato" : "avvisata";
  
}

function setSelColor(el) {
  var i = el.selectedIndex;
  el.style.color = (i == 0) ? "#969696" : "#000000";
}

function manageProfessioneBlocks() {
  var elProf = document.getElementById("selProfessione");
  var elStud = document.getElementById("selStudenteIscrittoA");
  
  var elBigBlock = document.getElementById("studentequest");
  var elBlockB = document.getElementById("studentequestcasob");
  var elBlockC = document.getElementById("studentequestcasoc");
  
  var elDottBlock = document.getElementById("dottorandoquest");
  var elRicBlock  = document.getElementById("ricercatorequest"); 
  var elDocBlock  = document.getElementById("docentequest"); 
  
  var elWorkBlock  = document.getElementById("lavoratorequest"); 
  var elNoworkBlock  = document.getElementById("disoccupatoquest"); 
  
  var strProfessione = elProf[elProf.selectedIndex].innerHTML;
  
  /* Selezione di: Professione = Studente */
  if (strProfessione == 'Studente') {
    rendiVisibile(elBigBlock, true);
  } else {
    rendiVisibile(elBigBlock, false);
  }
  
  /* Selezione di: Studente: caso B */
  if (elStud.selectedIndex == 2) {
    rendiVisibile(elBlockB, true);
  } else {
    rendiVisibile(elBlockB, false);
  }
  
  /* Selezione di: Studente: caso C */
  if (elStud.selectedIndex == 3) {
    rendiVisibile(elBlockC, true);
  } else {
    rendiVisibile(elBlockC, false);
  }
  
  /* Selezione di: Professione = Dottorando */
  if (strProfessione == 'Dottorando') {
    rendiVisibile(elDottBlock, true);
  } else {
    rendiVisibile(elDottBlock, false);
  }
  
  /* Selezione di: Professione = Ricercatore */
  if (strProfessione == 'Ricercatore') {
    rendiVisibile(elRicBlock, true);
  } else {
    rendiVisibile(elRicBlock, false);
  }
  
  /* Selezione di: Professione = Docente */
  if (strProfessione == 'Docente') {
    rendiVisibile(elDocBlock, true);
  } else {
    rendiVisibile(elDocBlock, false);
  }
  
  /* Selezione di: Professione = Lavoratore dipendente ... */
  if (
      strProfessione == 'Lavoratore dipendente' ||
      strProfessione == 'Libero professionista' ||
      strProfessione == 'In attesa di impiego' |
      strProfessione == 'Lavoratore interinale, contratto a progetto'
      ) {
    rendiVisibile(elWorkBlock, true);
  } else {
    rendiVisibile(elWorkBlock, false);
  }
  
  /* Selezione di: Professione = In attesa di impiego */
  if (
      strProfessione == 'In attesa di impiego'
      ) {
    rendiVisibile(elNoworkBlock, true);
  } else {
    rendiVisibile(elNoworkBlock, false);
  }
}

function rendiVisibile(el, visibile) {
  
  var u = top.location.href;
  
  if (u.indexOf("anagrafica") == -1) {
    resetAllBlockFields();
  }
  
  if (visibile) {
    el.style.visibility = "visible";
    el.style.display    = "block";
  } else {
    el.style.visibility = "hidden";
    el.style.display    = "none";
  }
}

function getNomeBloccoSelezionato() {
  
  var listaBlocchi = new Array (
    "studentequest",
    "studentequestcasob",
    "studentequestcasoc",
    "dottorandoquest",
    "ricercatorequest",
    "docentequest"
  );
  
  var elBlock;
  var res = "";
  
  for (var i=0; i < listaBlocchi.length; i ++) {
    elBlock  = document.getElementById(listaBlocchi[i]);
    if (elBlock.style.visibility == "visible")
      res = listaBlocchi[i];
  }
  
  return res;
}


function resetAllBlockFields() {
  
  var elFrm = document.getElementById("frmRegister");
  
  elFrm.UsrInfo1.value = "";
  elFrm.UsrInfo2.value = "";
  elFrm.UsrInfo3.value = "";
  elFrm.CorsoID.value = "";
  //elFrm.Corso.value = "";
  elFrm.FacolID.value = "";
  elFrm.Facol.value = "";
  elFrm.UnivID.value = "";
  elFrm.Univ.value = "";
} 
  
function manageValoriAccessoriBeforeSubmit() {
  
  var elFrm = document.getElementById("frmRegister");
  
  /* valori accessori */
	
	var elemUsrInfo1  = elFrm.UsrInfo1;
	var elemFacolId   = elFrm.FacolID;
	var elemUnivId    = elFrm.UnivID;
	var elemUniv      = elFrm.Univ;
	
	var n = getNomeBloccoSelezionato();
	
	if (n == "studentequestcasob") {
	  
	  elemUsrInfo1.value  = elFrm.UsrInfo1_1.value;
	  elemFacolId.value   = elFrm.FacolID_1.value;
	  elemUnivId.value    = elFrm.UnivID_1.value;
	  
	} else if (n == "studentequestcasoc") {
	  
	  elemUsrInfo1.value  = elFrm.UsrInfo1_1.value;
	  elemUnivId.value    = elFrm.UnivID_2.value;
	  elemUniv.value      = elFrm.Univ_1.value;
	  
	} else if (n == "dottorandoquest") {
	  
	  elemUnivId.value    = elFrm.UnivID_3.value;
	  elemUniv.value      = elFrm.Univ_2.value;
	  
	} else if (n == "ricercatorequest") {
	  
	  elemUnivId.value    = elFrm.UnivID_4.value;
	  elemUniv.value      = elFrm.Univ_3.value;
	  
	} else if (n == "docentequest") {
	  
	  elemUsrInfo1.value  = elFrm.UsrInfo1_2.value;
	  elemFacolId.value   = elFrm.FacolID_2.value;
	  elemUnivId.value    = elFrm.UnivID_5.value;
	  elemUniv.value      = elFrm.Univ_4.value;
	  
	}
	
}
