//Apre e Restituisce una finestra senza barre, toolbar, status, etc..
function GetApriCentrata(pWidht,pHeight,Indirizzo,Nome) {
	var pleft = (screen.width - eval(pWidht))/2;
	var ptop = (screen.height - eval(pHeight))/2;
	var a=window.open(Indirizzo,Nome,'left='+pleft+',top='+ptop+',width='+pWidht+',height='+pHeight+',toolbar=no,resizable=no,menubar=no,scrollbars=no');
	a.focus();
	return a;
}

//Apre una finestra senza barre, toolbar, status, etc..
function ApriCentrata(pWidht,pHeight,Indirizzo,Nome) {
	var pleft = (screen.width - eval(pWidht))/2;
	var ptop = (screen.height - eval(pHeight))/2;
	var a=window.open(Indirizzo,Nome,'left='+pleft+',top='+ptop+',width='+pWidht+',height='+pHeight+',toolbar=no,resizable=no,menubar=no,scrollbars=no');
	a.focus();
}

//Apre una finestra Centrata con le barre di scorrimento
function ApriScroller(pWidht,pHeight,Indirizzo,Nome) {
	var pleft = (screen.width - eval(pWidht))/2;
	var ptop = (screen.height - eval(pHeight))/2;
	var a= window.open(Indirizzo,Nome,'left='+pleft+',top='+ptop+',width='+pWidht+',height='+pHeight+',toolbar=no,resizable=n0,menubar=no,scrollbars=yes');
	a.focus();
}

//Apre una finestra Centrata con le barre di scorrimento
function ApriFullScreen(Indirizzo,Nome) {
	var a=window.open(Indirizzo,Nome,'left=0,top=0,width='+screen.width+',height='+screen.height+',toolbar=no,resizable=yes,menubar=no,scrollbars=yes');
	a.focus();
}

//Apre una finestra Centrata con le barre di scorrimento
function ApriStampa(Indirizzo,Nome) {
	var a=window.open(Indirizzo,Nome,'left=0,top=0,width='+screen.width+',height='+screen.height+',toolbar=no,resizable=yes,menubar=yes,scrollbars=yes');
	a.focus();
}

//Apre una finestra con il calendario e restituisce la data
function ApriCalendario(control) {
	var pWidht=200;var pHeight=200;
	var pleft = (screen.width -650)/2
	var ptop = (screen.height -500)/2
	window.open('../Calendario.asp?CTR='+control,'Calendario','left='+pleft+',top='+ptop+',width='+pWidht+',height='+pHeight+',toolbar=no,resizable=no,menubar=no,scrollbars=no');
}


//Funzione che inverte il valore della checkbox di un form
function CheccaDececca(NomeForm,NomeControllo) {
		var myChecks = document.forms[NomeForm][NomeControllo];

		if(myChecks[0].checked == true){
			myChecks[1].checked = false;
		}else{
			myChecks[1].checked = true;
		}
}

//Funzione che prepara l'invio del form EDITSQL (nome utilizzato da tutti i form di arrADD [motore dati])
function Inviami() {
	CheckCheckBox();
	document.EDITSQL.submit();
}


function CheckCheckBox() {
	for (k=0; k<document.forms.length; ++k)
		{
		for (i=0; i<document.forms[k].elements.length; ++i)
			{
				if(document.forms[k].elements[i].type=="checkbox")
				{
					if((document.forms[k].elements[i].value=="SI")&&(document.forms[k].elements[i].checked==false))
					{
						var nomeSI =document.forms[k].elements[i].name;
						for (z=0; z<document.forms[k].elements.length; ++z)
							{
								if((document.forms[k].elements[z].name==nomeSI)&&(document.forms[k].elements[z].value=='NO'))
								{
									//alert(document.forms[0].elements[z].name + ' = ' + document.forms[0].elements[z].value);
									document.forms[k].elements[z].checked=true;
								}
							}
					}
				}
			}
		}
	}

//Funzione che pulisce tutti i campi  di qualsiasi form della pagina a cui è incorporata questa funzione
function PulisciCampi() {
		for (k=0; k<document.forms.length; ++k)
			{
			for (i=0; i<document.forms[k].elements.length; ++i)
				{
					if(document.forms[k].elements[i].type=="checkbox")
					{
						document.forms[k].elements[i].checked=false;
					}
					else if(document.forms[k].elements[i].type=="text")
					{
						document.forms[k].elements[i].value='';
					}
					else if(document.forms[k].elements[i].type=="password")
					{
						document.forms[k].elements[i].value='';
					}
					else if(document.forms[k].elements[i].type=="file")
					{
						document.forms[k].elements[i].value='';
					}
		
				}
			}
	}

//Funzione che impedisce di digitare valori diversi dal numero
function SoloNumeri() {
         if(((event.keyCode < 48) || (event.keyCode > 57))) {
             event.keyCode=0; 
            }
        }

function ElemendoDaID(IDElemento){
	var NewElem=document.getElementById(IDElemento);
	return NewElem;
	}

function MakeNumber(sControllo,sAlert,sForzaNumero){
// Assegna al controllo il numero del valore sostituendo l'eventuale punto con la virgola
// se sAlert è uguale a true allora avviso in caso di errore

// anzalizzo se il controllo ha il campo vuoto se deve essere valorizzato
	if (sControllo.value=='') {
		if (sForzaNumero==true){
			if(sAlert==true){alert('valorizzare il campo con un numero prima di procedere!');}
			sControllo.focus();
			return false;
		}else{
			return true;
		}
	}

// se il campo non è vuoto allora controllo che contenga solo numeri ed una virgola
	var ValidChars = "0123456789,";
	var sErr=false;
	var Char;
	var Virgola=0
// sostituisco il punto con la virgola
	sControllo.value=sControllo.value.replace('.',',')
	
	for (i = 0; i < sControllo.value.length; i++) 
	{ 
		Char = sControllo.value.charAt(i); 
		if (Char==','){Virgola++}
	    if (ValidChars.indexOf(Char) == -1) {sErr=true;}
	}
	if (Virgola>1){sErr=true;}
		
	if (sErr==true){
		if (sAlert==true){alert('Inserire solo numeri ed una virgola come separatore decimale');}
		sControllo.focus();
		return false;
	}else{	
	   return true;
   }
}

function SoloNumeriInteri(sValore){
// se il Valore non è vuoto allora controllo che contenga solo numeri ed una virgola
	if (sValore==null){
		alert('Inserire solo numeri interi e senza separatori di migliaia');
		return false;	
	}
	var ValidChars = "0123456789";
	var sErr=false;
	var Char;

	for (i = 0; i < sValore.length; i++) 
	{ 
		Char = sValore.charAt(i); 
	    if (ValidChars.indexOf(Char) == -1) {sErr=true;}
	}
		
	if ((sErr==true)||(sValore=='')){
		alert('Inserire solo numeri interi e senza separatori di migliaia');
		return false;
	}else{	
	   return true;
   }
}


//Funzione che controlla il valore del campo anno
	function CeckAnno(ctr){
		var pV=ctr.value
		if(pV!=''){
			if (pV.length==2){
				ctr.value='20'+pV;
			}else{
				if (pV.length!=4){
					alert('Inserire l\'anno con 2 o 4 cifre!');
					ctr.focus();
				}
			}
		}
	}
	
//Funzione che controlla il valore del campo annoVettura
	function CeckAnnoAuto(ctr){
		var pV=ctr.value;
		if(pV!=''){
		
			if (isNaN(pV)){
				alert('Inserire solo numeri interi');
				return false;
			}
			
			if (pV.length==2){
				if (eval(pV)>50){
					ctr.value='19'+pV
				}else{
					ctr.value='20'+pV
				}
			}else{
				if (pV.length!=4){
					alert('Inserire l\'anno con 2 o 4 cifre!');
					ctr.focus();
					return false;
				}
			}
		}
	}
	
//Funzione che controlla il valore del campo MeseVettura
	function CeckMeseAuto(ctr){
		var pV=ctr.value;
		if(pV!=''){
			if (isNaN(pV)){
				alert('Inserire solo numeri interi');
				return false;
			}
			
			if (pV.length==1){
				ctr.value='0'+pV
			}else if (pV.length==2){
				if((eval(pV)>12)||(eval(pV)<1)){
					alert('Inserire il mese [da 1 a 12]');
					return false;					
				}
			}else{
				if (pV.length!=4){
					alert('Inserire il mese con 1 o 2 cifre!');
					ctr.focus();
					return false;
				}
			}
		}
	}

function MakeData(sControllo,sAlert,sForzaData){
// Assegna al controllo il numero del valore formattato dd/mm/yyyy
// se sAlert è uguale a true allora avviso in caso di errore

	var strValore=sControllo.value;
// anzalizzo se il controllo ha il campo vuoto se deve essere valorizzato
	if (strValore==''){
		if(sForzaData==true){	
			if (sAlert==true){alert('Valorizzare il campo con una data!');}
			sControllo.focus();
			return false;
		}else{
			return true;
		}
	}
	
	var pErr=false;
	var pgg="";	var pmm="";	var pyy="";
	
	strValore.replace("\\","/");
	var matD=strValore.split('/');
	if(matD.length!=3) {
		pErr=true;
	}else{
		
		pgg=matD[0];
		pmm=matD[1];
		pyy=matD[2];

		if ((isNaN(pgg))||(isNaN(pmm))||(isNaN(pyy))){ 
			pErr=true;
		}else{
	
			if ((eval(pgg)<1)||(eval(pgg)>31)) { pErr=true; }
			if ((eval(pmm)<1)||(eval(pmm)>12)) { pErr=true; }
			if (eval(pyy)<1) { pErr=true; }
	
			if ((pgg.length>2)||(pgg.length==0)) { pErr=true; }
			if ((pmm.length>2)||(pmm.length==0)) { pErr=true; }
			if ((pyy.length>4)||(pyy.length==0)||(pyy.length==3)) { pErr=true; }
			
			if (pgg.length<2) { pgg='0'+pgg; }
			if (pmm.length<2) { pmm='0'+pmm; }
			if (pyy.length==1) { pyy='200'+pyy; }
			if (pyy.length==2) { pyy='20'+pyy; }
		}
	}
	
	if(pErr==true){
		if(sAlert==true){alert('Inserire una data valida')}
		sControllo.focus();
		return false;
	}else{
		sControllo.value= pgg + '/' + pmm + '/' + pyy; 
		return true;
	}
}

function StringaAlfaNumerica(sTesto){

    var myregexp = /^[a-zA-Z0-9]+$/;
    if (myregexp.test(sTesto) == false)
    {
        alert("Puoi usare solo caratteri alfanumerici");
        return false
    }

}

function ConfrontoDate(DataPrecedente,DataSuccessiva){
//RITORNA:
//	=1 Valore corretto (La data precedente è realmente precedente)
//	=2 Valore incoretto (Le date sono uguali)
// 	=3 Valore Sbagliato (La data precedente in realtà è successiva)

// ASSICURARSI CHE I VALORI SIANO PASSATI PRIMA PER MAKEDATA()
//non faccio controlli di validità in questa funzione, 
//assumo per certo che entrambi i campi siano date formattate DD/MM/YYYY

	var dpG="";	var dpM="";	var dpA=""; var dsG="";	var dsM="";	var dsA="";
	
//Gestione DataPrecedente
	var matDp=DataPrecedente.split('/');
		
	dpG=matDp[0];
	dpM=matDp[1];
	dpA=matDp[2];
	
//Gestione DataSuccessiva
	var matDs=DataSuccessiva.split('/');
		
	dsG=matDs[0];
	dsM=matDs[1];
	dsA=matDs[2];

	if (DataPrecedente==DataSuccessiva){return 2;}			// Se le date sono uguali esco e passo 2 come valore di ritorno	
	
//se procede si assume che le date siano diverse
//quindi procedo con l'Anno
	if (dpA<dsA) {return 1;} 								// Anno precedente è minore [OK]
	if (dpA>dsA) {return 3;} 								// Anno precedente è maggiore [SBAGLIATO]
	
//se procede si assume che l'anno sia uguale
//quindi procedo con il mese
	if (dpM<dsM) {return 1;} 								// Mese precedente è minore [OK]
	if (dpM>dsM) {return 3;} 								// Mese precedente è maggiore [SBAGLIATO]
	
//se procede si assume che il mese sia uguale
//quindi procedo con il giorno
	if (dpG<dsG) {return 1;} 								// Giorno precedente è minore [OK]
	if (dpG>dsG) {return 3;} 								// Giorno precedente è maggiore [SBAGLIATO]




}



