max_checks = new Array(2, 2);
checks = new Array(0, 0);

function check_checks(tipo, oggetto) {
	if(oggetto.checked) {
		if(checks[tipo] == max_checks[tipo])
		{
			alert("Puoi selezionare al massimo "+max_checks[tipo]+" elementi");
			oggetto.checked=false;
		}
		else
		{
			checks[tipo]++;
		}
	}
	else
	{
		checks[tipo]--;
	}
	
}

function checkDate(year, month, day)
{
	// valori singoli non validi?
	if (isNaN(year) || isNaN(month) || isNaN(day)) {return false;}
	if (day < 1 || day > 31 || month < 1 || month > 12 || year < 1000 || year > 9999) {return false;}

	// incoerenza mesi di 30 giorni
	if (month == 4 || month == 6 || month == 9 || month == 11) {
		return (day <= 30);
	}

	// incoerenza febbraio
	if (month == 2) {
		if (year % 400 == 0) {
			// anno bisestile perche' divisibile per 400
			return (day <= 29);

		} else if (year % 100 == 0) {
			// anno non bisestile perche' divisibile per 100
			return (day <= 28);

		} else if (year % 4 == 0) {
			// anno bisestile perche' divisibile per 4
			return (day <= 29);

		} else {
			// anno non bisestile
			return (day <= 28);
		}
	}

	return true;
}

function checkcap(string) {
	var testresults;
	var filter=/^[0-9]{5}$/i;
	if (filter.test(string)) {
		testresults = true;
	} else {
		testresults = false;
	}
	return testresults;
}

function validateEmail(str){
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if((str.match(emailRegEx)) && (str.length > 0)){
		return true;
	}else{
		return false;
	}
}

function contactformValidateNL() {
	if (validateEmail(getE('nl_email').value)==false || getE('nl_id_regione').value==0 || getE('nl_id_settore_attivita').value==0 || getE('nl_consenso').checked == false ) {
		alert("Attenzione: è necessario riempire tutti i campi obbligatori (segnati con \"*\").");
		return false;
	}
	
	return true;
}

function contactformValidateNLc() {
	if (validateEmail(getE('nl_email').value)==false) {
		alert("Attenzione: è necessario riempire tutti i campi obbligatori (segnati con \"*\").");
		return false;
	}
	
	return true;
}

function contactformValidate() {
	if (document.getElementById('ct_nome').value=="" || document.getElementById('ct_cognome').value=="" || (validateEmail(document.getElementById('ct_email').value) == false) || document.getElementById('ct_messaggio').value=="" || document.getElementById('ct_consenso').checked == false ) {
		alert("Attenzione: è necessario riempire tutti i campi obbligatori (segnati con \"*\").");
		return false;
	}
	
	return true;
}

function checkCV(a) {
	var filename = getE('jb_curriculum').value;
	if(filename > '')
	{
		var fileTypes = new Array('.pdf', '.doc');
		var ext = filename.substr(filename.lastIndexOf('.'), filename.length);
		if (fileTypes.in_array(ext))
		{
			return true;
		}
		else
		{
			if(a)
			{
				alert('Il formato del Curriculum Vitae non e\' valido.');
			}
			return false;
		}
	}
	else
	{
		return true;
	}			
}

function checkPic(a) {
	var filename = getE('jb_foto').value;
	if(filename > '')
	{
		var fileTypes = new Array('.jpg', '.jpeg', '.gif');
		var ext = filename.substr(filename.lastIndexOf('.'), filename.length);
		if (fileTypes.in_array(ext))
		{
			return true;
		}
		else
		{
			if(a)
			{
				alert('Il formato della foto non e\' valido.');
			}
			return false;
		}
	}
	else
	{
		return true;
	}			
}

function jobformValidate() {
	if (getE('jb_nome').value=="" || getE('jb_cognome').value=="" || isNaN(getE('jb_statocivile').value) || parseInt(getE('jb_statocivile').value)<1 || getE('jb_nato_a').value=="" || getE('jb_nato_prov').value=="" 
	|| (checkDate(getE('jb_nascita_y').value, getE('jb_nascita_m').value, getE('jb_nascita_d').value) == false) || getE('jb_residente_a').value=="" || getE('jb_residente_prov').value==""  || checkcap(getE('jb_residente_cap').value) == false
	|| getE('jb_residente_via').value=="" || getE('jb_residente_nciv').value=="" || getE('jb_residente_tel').value=="" || getE('jb_residente_cell').value==""
	|| getE('jb_sesso').value=="" || validateEmail(getE('jb_email').value) == false || getE('jb_titolostudio').value==0 || getE('jb_militare').value==0
	|| (getE('jb_orario_1').value=="" && getE('jb_orario_2').value=="")  || getE('jb_consenso').checked==false || checkCV(false) == false || checkPic(false) == false)
	{
		alert("Attenzione: è necessario controllare tutti i campi obbligatori (segnati con \"*\") e il formato dei file che si vuole inviare.");
		return false;
	}
	
	return true;
}