function goToURL() { 
	// carica una certa url nel browser
  	var i, args=goToURL.arguments;
  	document.returnValue = false;
  	for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function goToBack() { 
	// torna alla pagina precedente del browser
	window.history.back();
}

function goToNext() { 
	// va alla pagina successiva del browser
	window.history.forward();
}

function goToNum(i) { 
	// va ad una certa pagia nella storia del browser (i negativi per tornare indietro)
	window.history.go(i);
}

function getRadioValue(radioObj) { 
	// ritorna il valore del campo selezionato in una serie di radio button
	var value = null;
	for (var i=0; i<radioObj.length; i++) {
		if (radioObj[i].checked){
			value = radioObj[i].value;
			break; }
	}
	return value;
}

function campoVuoto(formObj) { 
	// ritorna true se il campo passato è vuoto
	if (formObj.value.length == 0) return true
	for (var i=0; i<formObj.value.length; ++i) {
		var ch = formObj.value.charAt(i);
		if ((ch != '') && (ch != '\t')) return false;
	}
	return true;
}

function campoLungoMin(formObj, minlen) { 
	var len = formObj.value.length;
	if (len < minlen) return false;
	return true;
}

function campoVuotoVal(formObjVal) { 
	// ritorna true se il campo passato è vuoto
	if (formObjVal.length == 0) return true
	return false;
}

function campoIntero(formObj) { 
	// ritorna true se il campo passato è un intero
	var newVal = formObj.value;
	var newLen = formObj.value.length;
	for (var i=0; i!=newLen ; i++) {
		thisChar = newVal.substring(i,i+1);
		if ((thisChar < '0') || (thisChar > '9')) return false;
	}
	return true;
}

function campoInteroCompreso(formObj,valMin,valMax) {
	// ritorna true se il campo passato è un intero compreso tra valMin e valMax)
	var newVal = formObj.value;
	var newLen = formObj.value.length;
	for (var i=0; i!=newLen ; i++) {
		thisChar = newVal.substring(i,i+1);
		if ((thisChar < '0') || (thisChar > '9')) return false;
	}
	if ((formObj.value < valMin) || (formObj.value > valMax)) return false;
	return true;
}

function campoFloat(formObj) {
	// ritorna true se il campo passato è un intero
	var newVal = formObj.value;
	var newLen = formObj.value.length;
	for (var i=0; i!=newLen ; i++) {
		thisChar = newVal.substring(i,i+1);
		if (!( ((thisChar >= '0') && (thisChar <= '9')) || (thisChar == '.') )) return false;
	}
	return true;
}

function campoMail(formMail) { 
	// ritorna true se il campo passato è un campo mail valido
	var i=0;
	var len = formMail.value.length;
	if (len<7) { return false };
	while (i<len) {
		var ch = formMail.value.charAt(i);
		if (ch == '@') { break; }
		if (ch == '.') { return false; }
		i++;
	}
	i++;
	while (i<len) {
		var ch = formMail.value.charAt(i);
		if (ch == '.') {
			break;
		}
		if (ch == '@') { return false; }
		i++;
	}
	i++;
	while (i<len) {
		var ch = formMail.value.charAt(i);
		if (ch == '@') { return false; }
		i++;
	}
	return true;
}

// aggiunge la funzione trim alla classe String di sistema
String.prototype.trim = function () { 
	return this.replace(/^\s+|\s+$/g, ''); 
}

function FormatNumber(val) {
	var valore=val.replace(/\./g,"");
	// Conserva i centesimi
	centesimi="";
	 if (valore.indexOf(",")>-1) {
		espr=valore.split(",");
		valtomod=valore.substring(0,valore.indexOf(","));
		centesimi=valore.substring(valore.indexOf(",")+1,valore.length+1);
		valore=valtomod;
	}
	// Toglie gli zeri iniziali
	while (valore.substr(0,1)=='0') {
		valore=valore.substr(1,valore.length-1);
	}
	temp="";
	// Aggiungi i punti
	while (valore.length>0) {
		if (valore.length>3) {
			temp="."+valore.substr(valore.length-3,3)+temp;
			valore=valore.substr(0,valore.length-3);
		} else {
			temp=valore+temp;
			valore="";
		}
	}
	if (centesimi!="") {
	 	temp=temp+","+centesimi;
	}
	return temp;
}

function NumberKeyPress(e, typeFloat) {
	var keynum;
	var keychar;
	if(window.event) {
		keynum = e.keyCode;
	} else if( typeof( e.which ) == 'number' ) {
		keynum = e.which;
	}
	if (keynum!=8 && keynum!=13 && keynum!=0) {
		keychar = String.fromCharCode(keynum);
		if (typeFloat) {
			if ((keychar<'0' || keychar>'9') && (keychar!=',')) return false;
		} else {
			if (keychar<'0' || keychar>'9') return false;
		}
	}
	return true;
}

function FormatImporto(e, textinput) {
	var keynum;
	if(window.event) {
		keynum = e.keyCode;
	} else if( typeof( e.which ) == 'number' ) {
		keynum = e.which;
	}
	if (keynum!=188) {
		var valore=textinput.value.replace(/\./g,"");
		textinput.value=FormatNumber(valore);
	}
}

function KeyPress(dec) {
	var k=String.fromCharCode(event.keyCode);
	if (dec) {
		if ((k<'0' || k>'9') && (k!=',') && (k!=13)) event.returnValue=false;
	} else {
		if ((k<'0' || k>'9') && (k!=13)) event.returnValue=false;
	}
}

function KeyUp(textinput) {
	if (event.keyCode!=188) {
		var valore=textinput.value.replace(/\./g,"");
		textinput.value=FormatNumber(valore);
	}
}

function ClearInput(textinput,confronto) {
	if (textinput.value==confronto) {
		textinput.value="";
	}
}

function AddOpp(sel,val,text) {
  document.getElementById(sel).options.add(new Option(text, val));
}

function RemoveOpp(sel,init) {
  sel=document.getElementById(sel);
	if (sel.length>0) {
  	end=sel.options.length;
    for (i=init; i<end; i++) {
    	sel.remove(init);
    }
	}
}

function CHKSingleData(idCampo, descrCampo, defaultValue) {
	if ((document.getElementById(idCampo).value).trim()=="") {
		alert("Compila il campo obbligatorio: '"+descrCampo+"'.");
		document.getElementById(idCampo).focus();
  	return false;
	}
	if (defaultValue!="") {
   	if ((document.getElementById(idCampo).value).trim()==defaultValue) {
			alert("Il valore del campo '"+descrCampo+"' non è valido.");
			document.getElementById(idCampo).focus();
    	return false;
   	}
 	}
}

function CHKDate(campoDay, campoMonth, campoYear, dateDescr) {
	var day=parseFloat(document.getElementById(campoDay).value);
	var month=parseFloat(document.getElementById(campoMonth).value);
	var year=parseFloat(document.getElementById(campoYear).value);
	if ((day<1) || (day>31)) {
		alert("Giorno di "+dateDescr+" non valido.");
		document.getElementById(campoDay).focus();
		return false;
	}
	if ((month>12) || (month<1)) {
		alert("Mese di "+dateDescr+" non valido.");
		document.getElementById(campoMonth).focus();
		return false;
	}
	if (document.getElementById(campoYear).value.length<4) {
		alert("L'anno di "+dateDescr+" dev'essere di 4 cifre.");
		document.getElementById(campoYear).focus();
		return false;
	}
	if (((month==4) || (month==6) || (month==9) || (month==11)) && (day>30)) {
		alert("Giorno di "+dateDescr+" non valido.");
		document.getElementById(campoDay).focus();
		return false;
	}
	if (month==2) {
		if (day>29) {
			alert("Giorno di "+dateDescr+" non valido.");
			document.getElementById(campoDay).focus();
			return false;
		}
		if (day==29) {
			if (year % 4 == 0) {
				if ((year % 100 == 0) && (year % 400 != 0)) {
					alert("Giorno di "+dateDescr+" non valido.");
					document.getElementById(campoDay).focus();
					return false;				
				}
			} else {
				alert("Giorno di "+dateDescr+" non valido.");
				document.getElementById(campoDay).focus();
				return false;				
			}
		}
	}
	return true;
}

function CHKAmount(idCampo, descrCampo, minValue, maxValue) {
 	if (document.getElementById(idCampo).value=="") {
		alert("Compila il campo obbligatorio: '"+descrCampo+"'.");
		document.getElementById(idCampo).focus();
  		return false;
 	}
 	var amount=parseFloat(document.getElementById(idCampo).value.replace(/\./g,""));
	if (amount<0) {
		alert("Compila il campo obbligatorio: '"+descrCampo+"'.");
		document.getElementById(idCampo).focus();
  		return false;
 	}
 	if (minValue!="" && minValue>0) {
	 	if (amount<minValue) {
			alert("Il valore del campo '"+descrCampo+"' dev'essere di minimo " + FormatNumber(minValue + "") + " euro.");
			document.getElementById(idCampo).focus();
	  		return false;
	 	}
 	}
 	if (maxValue!="" && maxValue>0) {
	 	if (amount>maxValue) {
			alert("Il valore del campo '"+descrCampo+"' dev'essere di massimo " + FormatNumber(maxValue + "") + " euro.");
			document.getElementById(idCampo).focus();
	  		return false;
	 	}
 	}
}

function CHKEmail(idCampo) {
 	var e=document.getElementById(idCampo);
	var eValue=(e.value).trim()
 	if(eValue.indexOf('@') == -1 ||
     	eValue.indexOf('@') == 0 ||
		eValue.indexOf('.') == (eValue.length -1)||
		eValue.indexOf('.') == -1 ||
  		eValue.indexOf('.') == (eValue.length) ||
  		eValue.indexOf('@') == (eValue.length) ||
  		eValue.indexOf('.') == (eValue.indexOf('@')-1)
	) {
		return false;
	}
 	if(!(eValue.match(/([A-Z._\-èéòàùì0-9]+@[A-Z_\-0-9]+\.[A-Z._\-0-9]+)/i))){
  		return false;
	}
	if (e.value.indexOf(" ")>=0) {
  		return false;
	}
	if (eValue.indexOf(",")>=0) {
  		return false;
	}
}

function emailcheck(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    return false
	}
	if (str.indexOf(at,(lat+1))!=-1){
	   return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	return false
	}
	if (str.indexOf(dot,(lat+2))==-1){
	return false
	}
	if (str.indexOf(" ")!=-1){
	return false
	}
	return true					
}

function selectmenu(menu, str) {
	var menu2 = document.getElementById(menu);
	var elementi = menu2.options;
 	for (j=0; j<elementi.length; j++) {
  		if (elementi[j].value == str) {
   			menu2.selectedIndex = j;
  		}
	}
}
