var NomeDelForm
var NomeDelCampo

function MostraCaricamento() {
	Element.update('message','loading...');
	Element.show('message');
}

function NascondiCaricamento() {
	Element.update('message','');
	Element.hide('message');
}

function validaCampoForm(form,campo,obbligatorio,tipoCampo,valore_da_verificare_uguaglianza){
	var campoform = eval("document."+form+"."+campo);
	var valorecampo = Trim(eval("document."+form+"."+campo+".value"));
	var campoerrore = "err_"+campo
	var err = ""
	if (valorecampo == "") {
		if (obbligatorio ==	"1") {
			err = "campo obbligatorio"	
		}
	} else {
		if (tipoCampo == 1) { // solo testo

		}
		if (tipoCampo == 2) { // codice fiscale
			var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
			var Codice=Trim(valorecampo.toUpperCase());
			if (re.test(Codice) == false) {
				err = "codice fiscale non corretto"
			}
		}
		if (tipoCampo == 3) { // numerico
			if (isNaN(valorecampo)) {
				err = "valore non corretto"
			}
		}
		if (tipoCampo == 4) { // email
		var re = /^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$/;
			var Codice=Trim(valorecampo.toUpperCase());
			if (re.test(Codice) == false) {
				err = "email non corretta"
			}
		}
		if (tipoCampo == 5) { // data
			var re = /^(?=\d)(?:(?!(?:(?:0?[5-9]|1[0-4])(?:\.|-|\/)10(?:\.|-|\/)(?:1582))|(?:(?:0?[3-9]|1[0-3])(?:\.|-|\/)0?9(?:\.|-|\/)(?:1752)))(31(?!(?:\.|-|\/)(?:0?[2469]|11))|30(?!(?:\.|-|\/)0?2)|(?:29(?:(?!(?:\.|-|\/)0?2(?:\.|-|\/))|(?=\D0?2\D(?:(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:(?:\d\d)(?:[02468][048]|[13579][26])(?!\x20BC))|(?:00(?:42|3[0369]|2[147]|1[258]|09)\x20BC))))))|2[0-8]|1\d|0?[1-9])([-.\/])(1[012]|(?:0?[1-9]))\2((?=(?:00(?:4[0-5]|[0-3]?\d)\x20BC)|(?:\d{4}(?:$|(?=\x20\d)\x20)))\d{4}(?:\x20BC)?)(?:$|(?=\x20\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\d){0,2}(?:\x20[aApP][mM]))|(?:[01]\d|2[0-3])(?::[0-5]\d){1,2})?$/;
			if (re.test(valorecampo) == false) {
				err = "data non corretta"
			}
		}
		if (tipoCampo == 6) { // id(numerico > 0)
			if (isNaN(valorecampo)) {
				err = "valore non corretto"
			} else {
				if ((valorecampo == "0") && (obbligatorio == "1")) {err="campo obbligatorio"}
			}
		}
		if (tipoCampo == 7) { // username
			var re = /^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+$/;
			var Codice=Trim(valorecampo.toUpperCase());
			if (re.test(Codice) == false) {
				err = "username non corretta"
			}
		}
		if (tipoCampo == 8) { // password
			var re = /^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+$/;
			var Codice=Trim(valorecampo.toUpperCase());
			if (re.test(Codice) == false) {
				err = "password non corretta"
			}
		}
		if (tipoCampo == 9) { // campo uguale a
			if (valorecampo != valore_da_verificare_uguaglianza) {
				err = "verificare il valore immesso"
			}
		}
	}
	
	var campo_div = document.getElementById(campo).parentNode;
	if (err != "") {
		var primo_campo_errore = ""
		if (flagvalidita == true) {
			Element.scrollTo(campo_div);
			eval("document."+form+"."+campo+".focus()");
		}
		flagvalidita=false
		if (!$(campoerrore)) {
			new Insertion.After(campoform, "<span class=\"alert_text_form\" id=\""+campoerrore+"\">"+err+"</span>");
			Element.addClassName(campo_div,'form_item_alert');
		} else {
			Element.update(campoerrore,err)	
		}
	} else {
		if (!$(campoerrore) == false) {Element.remove(campoerrore)}
		Element.removeClassName(campo_div,'form_item_alert');
	}
}

function Trim(sString) {
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	}
return sString;
}

function QuerySedeOperativa(valorecampo,NomeForm) {
	NomeDelForm = NomeForm;
	var select_da_modificare = eval("document."+NomeDelForm+".id_sede_operativa");
	if ((valorecampo != "0") && (valorecampo != "")) {	
		var opt = {	
			method: 'post',
			postBody: 'reg='+valorecampo,
			onSuccess: function(t) {
				CompilaSelect(t.responseText,select_da_modificare);
				if (select_da_modificare.options.length == 1) {
					Element.hide(select_da_modificare.parentNode);
				} else {
					Element.show(select_da_modificare.parentNode);
				}
				NascondiCaricamento();
			},
			on404: function(t) {
				alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
				alert('Error ' + t.status + ' -- ' + t.statusText);
			},
			onLoading: function(t) {
				select_da_modificare.disabled=true;
				MostraCaricamento();
			}
		}
		new Ajax.Request("funzioni/cercasedioperative.asp", opt);
	} else {
		select_da_modificare.options.length=0;
		select_da_modificare.options[select_da_modificare.options.length]= new Option("[seleziona]", "0");
		select_da_modificare.disabled=true;
	}
}

function QueryCombo(NomeForm,NomeCampoDa,NomeCampoA,NomeFunzione,valore) {
	NomeDelForm = NomeForm;
	NomeDelCampo = NomeCampoA;
	var valorecampo = eval("document."+NomeForm+"."+NomeCampoDa+".options[document."+NomeForm+"."+NomeCampoDa+".selectedIndex].value");	
	var select_da_modificare = eval("document."+NomeDelForm+"."+NomeDelCampo);
	if ((valorecampo != "0") && (valorecampo != "")) {	
		var opt = {	
			method: 'post',
			postBody: 'reg='+valorecampo,
			onSuccess: function(t) {
				CompilaSelect(t.responseText,select_da_modificare);
				if (!valore) {
					NascondiCaricamento();					
				} else {
					select_da_modificare.value = valore;
					NascondiCaricamento();					
				}
			},
			on404: function(t) {
				alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
				alert('Error ' + t.status + ' -- ' + t.statusText);
			},
			onLoading: function(t) {
				select_da_modificare.disabled=true;
				MostraCaricamento();
			}
		}
		new Ajax.Request("admin/funzioni/"+NomeFunzione+".asp", opt);
	} else {
		select_da_modificare.options.length=0;
		select_da_modificare.options[select_da_modificare.options.length]= new Option("[seleziona]", "0");
		select_da_modificare.disabled=true;
	}	
}

function CompilaSelect(stringa,select_da_modificare) {
	eval("var valoricombo = {"+stringa+"}");
	var content = '';
	select_da_modificare.options.length=0;
	for(var i in valoricombo) {
		select_da_modificare.options[select_da_modificare.length]= new Option(valoricombo[i], i);		
	}
	select_da_modificare.disabled=false;
}

function QueryCasella(NomeForm,NomeCampoDa,NomeCampoA,NomeFunzione) {
	NomeDelForm = NomeForm;
	NomeDelCampo = NomeCampoA;
	var valorecampo = eval("document."+NomeForm+"."+NomeCampoDa+".options[document."+NomeForm+"."+NomeCampoDa+".selectedIndex].value");	
	var campo_da_modificare = eval("document."+NomeDelForm+"."+NomeDelCampo)	
	if ((valorecampo != "0") && (valorecampo != "")) {
		var opt = {	
			method: 'post',
			postBody: 'reg='+valorecampo,
			onSuccess: function(t) {
				campo_da_modificare.value=t.responseText;
				NascondiCaricamento();
				campo_da_modificare.disabled=false;
			},
			on404: function(t) {
				alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
				alert('Error ' + t.status + ' -- ' + t.statusText);
			},
			onLoading: function(t) {
				campo_da_modificare.disabled=true;
				MostraCaricamento();
			}
		}
		new Ajax.Request("admin/funzioni/"+NomeFunzione+".asp", opt);
	} else {
		campo_da_modificare.value='';
	}	
}

function MostraNascondiDatiItalia(valore,div_italia,div_non_italia) {
	if (valore == '1') {
		if (div_non_italia != '') {Element.hide(div_non_italia)};
		if (div_italia != '') {Element.show(div_italia)};
	} else if (valore == '0') {
		if (div_italia != '') {Element.hide(div_italia)};
		if (div_non_italia != '') {Element.hide(div_non_italia)};
	} else {
		if (div_italia != '') {Element.hide(div_italia)};
		if (div_non_italia != '') {Element.show(div_non_italia)};
	}
}

function MostraNascondiBoxStranieri(valorecampo,NomeForm) { 
	if (valorecampo == 'italiana') {
		Element.hide('BoxStranieri');
	} else {
		Element.show('BoxStranieri');
		QueryCombo(NomeForm,'cittadinanza','cittadinanza_str','cercanazione');
		if (valorecampo == 'ue') {
			Element.update("carta_permesso","carta di soggiorno");
		} else {
		Element.update("carta_permesso","permesso di soggiorno");
		}
	}
}

function MostraNascondiBoxStranieri2(valorecampo) { 
	if (valorecampo != '') {
		if (valorecampo == 'italiana') {
			Element.hide('BoxStranieri');
		} else {
			Element.show('BoxStranieri');
			QueryCombo('frm_1','cittadinanza','cittadinanza_str','cercanazione');
		}
	} else {
		Element.hide('BoxStranieri');	
	}
}

function MostraNascondiDaCheckbox(valore,elemento_div) {
	if (valore == true) {
		Element.show(elemento_div);
	} else {
		Element.hide(elemento_div);
	}
}

function MostraNascondiDaCheckbox2(valore,elemento_div) {
	if (valore == true) {
		Element.hide(elemento_div);
	} else {
		Element.show(elemento_div);
	}
}

function CompilaDescrizioneTitoloStudio(nomeform) {
	var valorecampo = eval("document."+nomeform+".id_titolo_studio.options[document."+nomeform+".id_titolo_studio.selectedIndex].value;");
	if (valorecampo != "0") {
		var opt = {
			method: 'post',
			postBody: 'reg='+valorecampo,
			onSuccess: function(t) {
				RiceviCompilaDescrizioneTitoloStudio(nomeform,t.responseText);
				NascondiCaricamento();
			},
			on404: function(t) {
				alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
				alert('Error ' + t.status + ' -- ' + t.statusText);
			},
			onLoading: function(t) {
				MostraCaricamento();
			}			
		}
	new Ajax.Request('admin/funzioni/cercadescrizionetitolostudio.asp', opt);
	}
}
 

function RiceviCompilaDescrizioneTitoloStudio(nomeform,stringa) {
	var arrValori;
	if (stringa.substring(0,1) == "$") {
		Element.hide("voti_"+nomeform);
	} else {
		Element.show("voti_"+nomeform);
	}

	stringa = stringa.substring(1, stringa.length)
		
	if (stringa == "%") {
		Element.hide('descrizionetestuale_'+nomeform);
		Element.hide('descrizionecombo_'+nomeform);
	}

	if (stringa == "%%") {	
		Element.show("descrizionetestuale_"+nomeform);
		Element.hide("descrizionecombo_"+nomeform);
	}

	if ((stringa != "%") && (stringa != "%%")) {
		var select_da_modificare = eval("document."+nomeform+".id_descrizione_titolo_studio");
		CompilaSelect(stringa,select_da_modificare);
		Element.hide("descrizionetestuale_"+nomeform);
		Element.show("descrizionecombo_"+nomeform);
	}
}

function QueryComboFiguraProfessionale(NomeForm,area,figura) {
	var valorecampo = eval("document."+NomeForm+".id_gruppo_professionale.options[document."+NomeForm+".id_gruppo_professionale.selectedIndex].value");
	var select_area_professionale = eval("document."+NomeForm+".id_area_professionale");
	var select_figura_professionale = eval("document."+NomeForm+".id_figura_professionale");	
	if ((valorecampo != "0") && (valorecampo != "")) {	
		var opt = {	
			method: 'post',
			postBody: 'reg='+valorecampo,
			onSuccess: function(t) {
				select_figura_professionale.options.length=0;
				Element.update(select_figura_professionale,'');		
				select_figura_professionale.options[select_figura_professionale.options.length]= new Option("[seleziona]", "0");
				select_figura_professionale.disabled=true;						
				CompilaSelectOptGroup(t.responseText,select_area_professionale);
				if (!area) {
					NascondiCaricamento();
				} else {
					select_area_professionale.value=area;
					QueryCombo(NomeForm,'id_area_professionale','id_figura_professionale','cercafigureprofessionali',figura);
				}
			},
			on404: function(t) {
				alert('Error 404: location "' + t.statusText + '" was not found.');
			},
			onFailure: function(t) {
				alert('Error ' + t.status + ' -- ' + t.statusText);
			},
			onLoading: function(t) {
				select_area_professionale.disabled=true;
				select_figura_professionale.disabled=true;
				MostraCaricamento();
			}
		}
		new Ajax.Request("admin/funzioni/cercaareeprofessionali.asp", opt);
	} else {
		select_area_professionale.options.length=0;
		Element.update(select_area_professionale,'');
		select_area_professionale.options[select_area_professionale.options.length]= new Option("[seleziona]", "0");
		select_area_professionale.disabled=true;
		select_figura_professionale.options.length=0;
		Element.update(select_figura_professionale,'');		
		select_figura_professionale.options[select_figura_professionale.options.length]= new Option("[seleziona]", "0");
		select_figura_professionale.disabled=true;		
	}
}

function CompilaSelectOptGroup(stringa,select_da_modificare) {
	eval("var valoricombo = {"+stringa+"}");
	var content = '';
	var progressivo = 0;
	select_da_modificare.options.length=0;
	Element.update(select_da_modificare,'');
	for(var i in valoricombo) {
		if (i.slice(0,1) == "$") {
			progressivo = progressivo + 1
			if (progressivo > 1) {
				select_da_modificare.appendChild(newGrp);
			}
			newGrp = document.createElement("optgroup");
			newGrp.setAttribute("label", valoricombo[i]);
		} else {
			if (progressivo == 0) {
				select_da_modificare.options[select_da_modificare.options.length]= new Option(valoricombo[i], i);				
//				select_da_modificare.appendChild(new Option(valoricombo[i], i));
			} else {
				newopt = document.createElement("option")
				newopt.setAttribute("value", i);
				newopt.innerHTML = valoricombo[i];
				newGrp.appendChild(newopt);
			}
		}
	}
	if (progressivo > 0) { 
		select_da_modificare.appendChild(newGrp);
	}
	select_da_modificare.disabled=false;
}

function popupcentrale(nome,w,h) {
	var l = Math.floor((screen.width-w)/2);
	var t = Math.floor((screen.height-h)/2);
	window.open(nome,"","width=" + w + ",height=" + h + ",top=" + t + ",left=" + l + ",resizable=no, menubar=no, scrollbars=yes");
}

function Ritorna(NomeForm,Gruppo,Area,Figura){
	eval("document."+NomeForm+".id_gruppo_professionale.value = "+Gruppo);
	QueryComboFiguraProfessionale(NomeForm,Area,Figura)
}
function RitornaAzienda(NomeForm,Azienda){
	eval("document."+NomeForm+".id_azienda.value = "+Azienda);
	if ($('id_sede_operativa')) {
		QuerySedeOperativa(Azienda,NomeForm)
	}
}
function RitornaSettore(NomeForm,SettoreCommerciale,Settore){
	eval("document."+NomeForm+".id_settore_ateco.value = "+SettoreCommerciale);
	QueryCombo(NomeForm,'id_settore_ateco','id_settore','cercasettore',Settore)
}

function MostraNascondiFiltriRicerca(span,div) {
	if (Element.visible(div)) {
		new Effect.BlindUp(div, {duration:.5});
		Element.update(span,'mostra filtri');
	} else {
		new Effect.BlindDown(div, {duration:.5});
		Element.update(span,'nascondi filtri');		
	}
}

function esporta(cosa,valore_id,formato) {
	alert(cosa);
	alert(valore_id);
	alert(formato);
	var opt = {	
		method: 'post',
		postBody: 'id='+valore_id,
		onSuccess: function(t) {
			NascondiCaricamento();
		},
		on404: function(t) {
			alert('Error 404: location "' + t.statusText + '" was not found.');
		},
		onFailure: function(t) {
			alert('Error ' + t.status + ' -- ' + t.statusText);
		},
		onLoading: function(t) {
			MostraCaricamento();
		}
	}
	new Ajax.Request("funzioni/esportazioni/"+cosa+".asp", opt)	
}