
// Check Cv
function cv_form_check(formname) {

    var msg = "";
			
    //Personal Data
    if(formname.title.value == "")
	    msg = msg + "Title is missing\n";
    if(formname.firstname.value == "")
	    msg = msg + "First name is missing\n";
	if(formname.lastname.value == "")
	    msg = msg + "Last name is missing\n";
    if(formname.email.value == "" )
	    msg = msg + "Email is missing\n";
    if (formname.email.value != formname.email2.value )
	  msg = msg + "Email are not the same, please check.\n";
    if(formname.yyyy.value == "" | formname.mm.value == "" | formname.dd.value == "" )
	    msg = msg + "Date of of birth is missing or incomplete\n";	  
	if(formname.city.value == "" )
        msg = msg + "City is missing\n";
//	if( formname.country.options[formname.country.selectedIndex].text == "" ||  formname.country.options[formname.country.selectedIndex].text == "Select country" )
//	      msg = msg + "Country is missing\n";	
	if(formname.phone.value == "")
	    msg = msg + "Phone number is missing\n";
    if(!emailCheck(formname.email.value))
	    msg = msg + "Email is incorrect\n";
		
	// I would like to work at
	
        // About me
        if(formname.aboutme.value == "")
	    msg = msg + "About me is missing\n";
        
        //Accademic Background
        		 
	//Most recent work
	if(formname.experience.value == "")
	    msg = msg + "Most recent work is missing\n";
	
	//Languages

	//Computer Skill
	if(formname.computer.value == "")
	    msg = msg + "Computer Skill is missing\n";
	// I Enjoy
		
    if(msg != ""){	
	   alert(msg);
	   return false;
	}	

}
// Check Newsletter
function nl_form_check(formname) {

    var msg = "";
	
    if(formname.email.value == "" )
	    msg = msg + "Email is missing\n";
    if (formname.email.value != formname.email2.value )
	  msg = msg + "Email are not the same, please check.\n";
    //if (formname.pass1.value == "" || formname.pass2.value == "")
    //	  msg = msg + "Blank password are not allowed\n";
    //if (formname.pass1.value != formname.pass2.value )
    //	  msg = msg + "Password are not the same, please check.\n";
    if (!emailCheck(formname.email.value)) 
	  msg = msg + "Email is invalid.\n";

    if(msg != ""){
	   alert(msg);
	   return false;
	}	

}
// Check contact
function contact_form_check(formname) {

    var msg = "";
		
    if(formname.title.value == "")
	    msg = msg + "Title is missing\n";
    if(formname.firstname.value == "")
	    msg = msg + "First name is missing\n";
	if(formname.lastname.value == "")
	    msg = msg + "Last name is missing\n";
    if(formname.email.value == "" )
	    msg = msg + "Email is missing\n";
    if(!emailCheck(formname.email.value))
	    msg = msg + "Email is incorrect\n";
    if (formname.email.value != formname.email2.value )
	  msg = msg + "Email are not the same, please check.\n";
    if(formname.companyname.value == "")
	    msg = msg + "Company name is missing\n";
    if(formname.phone.value == "")
	    msg = msg + "Phone number is missing\n";
    


    if(msg != ""){
	   alert(msg);
	   return false;
	}	

}

// Check TextArea

function maxTextArea(info,size) {
  //Lunghezza = info.value.length;
  if (info.value.length > size ) {
    info.value = info.value.substring(0,size)
    window.alert("This field can't exceeed " + size + " characters/i");
  }
}

// Check Mail
function emailCheck (emailStr) {
	
   var emailPat=/^(.+)@(.+)$/;
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
   var validChars="\[^\\s" + specialChars + "\]";
   var quotedUser="(\"[^\"]*\")";
   var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
   var atom=validChars + '+';
   var word="(" + atom + "|" + quotedUser + ")";
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
   var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");


   var matchArray=emailStr.match(emailPat)
   if (matchArray==null) {
        //Too many/few @'s or something; basically, this address doesn't even fit the general mould of a valid e-mail address. 
	alert("Email address seems incorrect (check @ and .'s)");
	return false;
    }
    var user=matchArray[1];
    var domain=matchArray[2];

    if (user.match(userPat)==null) {
      alert("The username doesn't seem to be valid.");
      return false;
    }

   var IPArray=domain.match(ipDomainPat);
   if (IPArray!=null) {
       // this is an IP address
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("Destination IP address is invalid!");
		return false;
	    }
      }
      return true;
    }

   var domainArray=domain.match(domainPat);
   if (domainArray==null) {
	alert("The domain name doesn't seem to be valid.");
        return false;
   }

   var atomPat=new RegExp(atom,"g");
   var domArr=domain.match(atomPat);
   var len=domArr.length;
   if (domArr[domArr.length-1].length<2 || 
       domArr[domArr.length-1].length>3) {
      alert("The address must end in a three-letter domain, or two letter country.");
      return false;
   }

   if (len<2) {
      var errStr="This address is missing a hostname!";
      alert(errStr);
      return false;
   }

   return true;
}

// Countries
/////////////////////////////////////////////////////////////////////////////////////////////
//SCRIPT LANGUAGE="JavaScript"
//This script and many more are available free online at 
//The JavaScript Source!! http://javascript.internet.com or http://javascriptsource.com"
/////////////////////////////////////////////////////////////////////////////////////////////

var africaArray = new Array("('Select country','',true,true)","('Ethiopia')","('Somalia')","('South Africa')","('Other')");
var middleeastArray = new Array("('Select country','',true,true)","('Egypt')","('Iran')","('Israel')","('Kuwait')","('Lebanon')","('Morocco')","('Saudi Arabia')","('Syria')","('Turkey')","('U. A. Emirates')","('Other')");
var asiaArray = new Array("('Select country','',true,true)","('Armenia')","('Bangladesh')","('Cambodia')","('China')","('India')","('Indonesia')","('Japan')","('Malaysia')","('Myanmar')","('Nepal')","('Pakistan')","('Philippines')","('Singapore')","('South Korea')","('Sri Lanka')","('Taiwan')","('Thailand')","('Uzbekistan')","('Vietnam')","('Other')");
var europeArray = new Array("('Select country','',true,true)","('Albania')","('Austria')","('Belarus')","('Belgium')","('Bosnia')","('Bulgaria')","('Croatia')","('Cyprus')","('Czech Rep.')","('Denmark')","('Estonia')","('Finland')","('France')","('Germany')","('Greece')","('Hungary')","('Iceland')","('Ireland')","('Italy')","('Latvia')","('Liechtenstein')","('Lithuania')","('Luxembourg')","('Macedonia')","('Malta')","('Monaco')","('Netherlands')","('Norway')","('Poland')","('Portugal')","('Romania')","('Russia')","('Slovakia')","('Slovenia')","('Spain')","('Sweden')","('Switzerland')","('Ukraine')","('United Kingdom')","('Other')");
var australiaArray = new Array("('Select country','',true,true)","('Australia')","('New Zealand')","('Other')");
var lamericaArray = new Array("('Select country','',true,true)","('Costa Rica')","('Cuba')","('El Salvador')","('Guatemala')","('Haiti')","('Jamaica')","('Mexico')","('Panama')","('Other')");
var namericaArray = new Array("('Select country','',true,true)","('Canada')","('USA')","('Other')");
var samericaArray = new Array("('Select country','',true,true)","('Argentina')","('Bolivia')","('Brazil')","('Chile')","('Colombia')","('Ecuador')","('Paraguay')","('Peru')","('Suriname')","('Uruguay')","('Venezuela')","('Other')");

function populateCountry(inForm,selected) {
var selectedArray = eval(selected + "Array");
while (selectedArray.length < inForm.country.options.length) {
inForm.country.options[(inForm.country.options.length - 1)] = null;
}
for (var i=0; i < selectedArray.length; i++) {
eval("inForm.country.options[i]=" + "new Option" + selectedArray[i]);
}
if (inForm.region.options[0].value == '') {
inForm.region.options[0]= null;
if ( navigator.appName == 'Netscape') {
if (parseInt(navigator.appVersion) < 4) {
window.history.go(0);
}
else {   	
if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
window.history.go(0);
            }
         }
      }
   }
}


function populateUSstate(inForm,selected) {  
var stateArray =  new Array("('Select State','',true,true)","('Alabama')","('Alaska')","('Arizona')","('Arkansas')","('California')","('Colorado')","('Connecticut')","('Delaware')","('Columbia')","('Florida')","('Georgia')","('Hawaii')","('Idaho')","('Illinois')","('Indiana')","('Iowa')","('Kansas')","('Kentucky')","('Louisiana')","('Maine')","('Maryland')","('Massachusetts')","('Michigan')","('Minnesota')","('Mississippi')","('Missouri')","('Montana')","('Nebraska')","('Nevada')","('New Hampshire')","('New Jersey')","('New Mexico')","('New York')","('North Carolina')","('North Dakota')","('Ohio')","('Oklahoma')","('Oregon')","('Pennsylvania')","('Rhode Island')","('South Carolina')","('South Dakota')","('Tennessee')","('Texas')","('Utah')","('Vermont')","('Virginia')","('Washington')","('West Virginia')","('Wisconsin')","('Wyoming')");

if (selected == 'USA') {
  for (var i=0; i < stateArray.length; i++) {
    eval("inForm.country.options[i]=" + "new Option" + stateArray[i]);
  }
  if ( navigator.appName == 'Netscape') {
    if (parseInt(navigator.appVersion) < 4) {
        window.history.go(0);
    }
    else {    	
       if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
          window.history.go(0);
        }
      }
   }
}
else {
}  
if (selected == 'Other') {
newCountry = "";
while (newCountry == ""){
newCountry=prompt ("Please enter the name of your country.", "");
}
if (newCountry != null) {
inForm.country.options[(inForm.country.options.length-1)]=new Option(newCountry,newCountry,true,true);
inForm.country.options[inForm.country.options.length]=new Option('Other, not listed','Other');
   }
}
if(inForm.country.options[0].text == 'Select country') {
inForm.country.options[0]= null;
   }
}

////////////////////////////////////////////////////
// 
// @ i parametri passati devono essere stringhe!!!
// @doc:        document name (ex oggetto) 
// @formName:   form name (stringa tipo "document.formname" o "this.formname"
//
////////////////////////////////////////////////////
function drawCountry(doc, formName){

 var form = formName;
 var region = form + ".region";
 var country = form + ".country";

 doc.write("<select  class=inbox name=\"region\" onChange=\"populateCountry(" + form);
 doc.write("," + region + ".options[" + region + ".selectedIndex].value)\">");
 doc.write("<option selected value=\"\">Select Region</option>\n");
 doc.write("<option value=\"asia\">Asia</option>");
 doc.write("<option value=\"africa\">Africa</option>");
 doc.write("<option value=\"australia\">Australia</option>");
 doc.write("<option value=\"europe\">Europe</option>");
 doc.write("<option value=\"middleeast\">Middle East</option>");
 doc.write("<option value=\"lamerica\">Latin America</option>");
 doc.write("<option value=\"namerica\">North America</option>");
 doc.write("<option value=\"samerica\">South America</option>\n");
 doc.write("</select>\n");

 doc.write("<select  class=inbox name=\"country\" onChange=\"populateUSstate(" + form);
 doc.write("," + country + ".options[" + country + ".selectedIndex].text)\">");
 //doc.write("<option value=\"\"><--------------------</option>");
 doc.write("<option value=\"\"></option>");
 doc.write("</select>");

}
