var layerRef="", styleSwitch="";

function validate() {
var i, valore, rb, nomecampo, giornonascita, mesenascita, annonascita;
valore = "";
 if(document.getElementById("country").selectedIndex == 0) {
   alert("Please, choose a country.");
   document.getElementById("country").focus();
   return(false);
 }
rb = document.getElementById("radiobutton");
nomecampo = rb.id;
//alert(nomecampo);
for (i=0;i<document.forms[0].elements[nomecampo].length;i++){ 
   if (document.forms[0].elements[nomecampo](i).checked == true) valore = "OK";
}
if(valore == "") {
  alert("Please, make a choice (stage/work).");
  //document.forms[0].elements[nomecampo](i).focus();
  return(false);
}

 if(trim(document.getElementById("cognome").value) == "") {
   alert("Write your surname in the Surname area.");
   document.getElementById("cognome").focus();
   return(false);
  }
 if(trim(document.getElementById("nome").value) == "") {
   alert("Write your name in the Name area.");
   document.getElementById("nome").focus();
   return(false);
  }
 if(document.getElementById("sesso").selectedIndex == 0) {
   alert("Please, make a choice (M/F).");
   document.getElementById("sesso").focus();
   return(false);
 }

  if(trim(document.getElementById("annoNascita").value) == "") {
    alert("Write your Birth Date.");
    document.getElementById("annoNascita").focus();
    return(false);
 }
 if(isNaN(document.getElementById("annoNascita").value) == true) {
   alert("Wrong birth date.");
   document.getElementById("annoNascita").focus();
   return(false);
 }

 giornonascita =  document.getElementById("giornoNascita").selectedIndex;
 mesenascita =  document.getElementById("meseNascita").selectedIndex;
 annonascita = document.getElementById("annoNascita").value;

 if(controllodata(giornonascita, mesenascita, annonascita) == false) {
   alert("Wrong birth date.");
   document.getElementById("annoNascita").focus();
   return(false);
}

 if(trim(document.getElementById("luogoNascita").value) == "") {
   alert("Write your Town/Country of Birth.");
   document.getElementById("luogoNascita").focus();
   return(false);
  }

 if(document.getElementById("statocivile").selectedIndex == 0) {
   alert("Please, make a choice (married/unmarried).");
   document.getElementById("statocivile").focus();
   return(false);
 }
 if(document.getElementById("nazionalita").selectedIndex == 0) {
   alert("Please, make a choice.");
   document.getElementById("nazionalita").focus();
   return(false);
 }

 if(trim(document.getElementById("indirizzo").value) == "") {
   alert("Write your address.");
   document.getElementById("indirizzo").focus();
   return(false);
  }
 if(trim(document.getElementById("city").value) == "") {
   alert("Write your city.");
   document.getElementById("city").focus();
   return(false);
  }
 if(trim(document.getElementById("statoresidenza").value) == "") {
   alert("Write your nation.");
   document.getElementById("statoresidenza").focus();
   return(false);
  }

 if(trim(document.getElementById("telefono").value) == "") {
   alert("Write your phone number.");
   document.getElementById("telefono").focus();
   return(false);
  }

if(trim(document.getElementById("mittente").value) == "") {
  alert("Write your e-mail address.");
  document.getElementById("mittente").focus();
  return(false);
}

if(isEmail(document.getElementById("mittente").value) == false || document.getElementById("mittente").value.indexOf(" ") != -1) {
  alert("Wrong e-mail address.");
  document.getElementById("mittente").focus();
  return(false);
}

 if(document.getElementById("figura").selectedIndex == 0) {
   alert("Please, make a choice.\n\n\[Role]");
   document.getElementById("figura").focus();
   return(false);
 }

if(trim(document.getElementById("giornoInizio").value) == "") {
  alert("Please, write the day.");
  document.getElementById("giornoInizio").focus();
  return(false);
}
if(isNaN(document.getElementById("giornoInizio").value) == true) {
  alert("Please, write a number to indicate the day.");
  document.getElementById("giornoInizio").focus();
  return(false);
}
if(parseInt(document.getElementById("giornoInizio").value) < 1 || parseInt(document.getElementById("giornoInizio").value) > 31) {
  alert("Wrong day value (1-31).");
  document.getElementById("giornoInizio").focus();
  return(false);   
}
if(trim(document.getElementById("meseInizio").value) == "") {
  alert("Please, write the month.");
  document.getElementById("meseInizio").focus();
  return(false);
}
if(isNaN(document.getElementById("meseInizio").value) == true) {
  alert("Please, write a number to indicate the month.");
  document.getElementById("meseInizio").focus();
  return(false);
}
if(parseInt(document.getElementById("meseInizio").value) < 1 || parseInt(document.getElementById("meseInizio").value) > 12) {
  alert("Wrong month value (1-12).");
  document.getElementById("meseInizio").focus();
  return(false);   
}

if(trim(document.getElementById("giornoFine").value) == "") {
  alert("Please, write the day.");
  document.getElementById("giornoFine").focus();
  return(false);
}
if(isNaN(document.getElementById("giornoFine").value) == true) {
  alert("Please, write a number to indicate the day.");
  document.getElementById("giornoFine").focus();
  return(false);
}
if(parseInt(document.getElementById("giornoFine").value) < 1 || parseInt(document.getElementById("giornoFine").value) > 31) {
  alert("Wrong day value (1-31).");
  document.getElementById("giornoFine").focus();
  return(false);   
}
if(trim(document.getElementById("meseFine").value) == "") {
  alert("Please, write the day.");
  document.getElementById("meseFine").focus();
  return(false);
}
if(isNaN(document.getElementById("meseFine").value) == true) {
  alert("Please, write a number to indicate the month.");
  document.getElementById("meseFine").focus();
  return(false);
}
if(parseInt(document.getElementById("meseFine").value) < 1 || parseInt(document.getElementById("meseFine").value) > 12) {
  alert("Wrong month value (1-12).");
  document.getElementById("meseFine").focus();
  return(false);   
}
if(document.getElementById("patente").selectedIndex == 0) {
  alert("Please, make a choice.\n\n[Driver's License]");
  document.getElementById("patente").focus();
  return(false);
}
return(true);
}

function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,4})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

function controllodata(giorno, mese, anno) {
var ritorno = true;
giorno++;
mese++;
if(mese == 2 && giorno > 29) { // mese = febbraio e giorno > 29
  ritorno = false;
} 
if(mese == 2 && giorno == 29) { // mese = febbraio e giorno = 29 controllo se l'anno è bisestile
  ritorno = isleapyear(anno);
} 
if(mese == 4 || mese == 6 || mese == 9 || mese == 11) { // mesi con 30 giorni
  if(giorno == 31) ritorno = false;
}
return(ritorno);
}
function isleapyear(AYear) {
 result = (AYear % 4 == 0) && ((AYear % 100 != 0) || (AYear % 400 == 0));
 return (result);
}

function mostralink(p1,obj) {
var valore, nomecampo, rb, i, link;
if(typeof(p1) == "string") rb = document.getElementById(p1);
nomecampo = rb.id;
alert(nomecampo + " " + typeof(obj));
for (i=0;i<document.forms[1].elements[nomecampo].length;i++){ 
   if (document.forms[1].elements[nomecampo](i).checked == true) valore = document.forms[1].elements[nomecampo](i).value;
}
alert(valore);
if (navigator.appName == "Netscape") {
    var layerRef="document.layers";
    var styleSwitch="";
  }else{
     var layerRef="document.all";
     var styleSwitch=".style";
 }

layerName = "link1";

if(valore == "Work") {
       eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');
  }
else {
       eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');
   }
}

function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function

