valid_char =  new Array("a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","k","K","j","J","y","Y","i","I","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T","u","U","v","V","w","W","z","Z","1","2","3","4","5","6","7","8","9","0",".","_","-","@")

numeri= new Array('1','2','3','4','5','6','7','8','9','0');

function checkmail(mail)
{
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(mail)) 
		return false;
	else
		return true
}

function dateTotimestamp(values)
{
	if(values!="" && values!=0)
	{
		var arrstr=values.split("-");
		var date = new Date(arrstr[2],(arrstr[1]-1),arrstr[0],0,0,0);
		values=date.getTime()/1000;
		return(values);
	}
	else
		return(0);
	
}

function timeTotimestamp(time)
{
	if(time!="")
	{
		var arrstr=time.split(":");
		var date = new Date(1970,0,1,arrstr[0],arrstr[1],0);
		time=date.getTime()/1000;
		return(time);
	}
	else
		return("");
}
	
function is_orario(time)
{
// 	var arrtime=time.split(":");
	if(time!="" && time!=0)
	{
		var re_date = /^(\d+)\:(\d+)$/;
		if (!re_date.exec(time))
			return false;
		else 
			return true;
	}
	else
		return true
}

function checkpiva(piva)
{
	numeri= new Array('1','2','3','4','5','6','7','8','9','0');
	if(piva.length<11)
	{
		return(false);
	}
	else
	{
		errore=false;
		for(i=0;i<piva.length;i++)
		{
			if(!( numeri.in_array(piva.substr(i,1))))
			{
				errore=true;
			}
		}
		if(errore)
		{
			return(false);
		}
		else
			return(true);
	}
}

function checkCF(obj)
{
 var nTempNum;
 var nAppoNum;
 var i;
 var szTempCodFisc;
 var szLastChar;
 var szValued;
 var szInValued;
 
 szCodFisc = obj;
 
 if (szCodFisc.length<16) return false
 if (szCodFisc == "") return false;
 else {
	
  szCodFisc =szCodFisc.toUpperCase();
  szLastChar = szCodFisc.substr(szCodFisc.length - 1,1);
  szTempCodFisc =szCodFisc.substr(0,szCodFisc.length - 1);
  nTempNum = 0;
  i = 0;
 
  while (true) {
   szValued="B1A0KKPPLLC2QQD3RRE4VVOOSSF5TTG6UUH7MMI8NNJ9WWZZYYXX";
   // I DISPARI
   szInValued=szTempCodFisc.substr(i,1);
   nAppoNum = szValued.search(szInValued);
   nTempNum = nTempNum + (nAppoNum &  0x7FFE) / 2;
   i = i + 1;
   if (i>15)
    break;
   szValued="A0B1C2D3E4F5G6H7I8J9KKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ";
   // I PARI
   szInValued=szTempCodFisc.substr(i,1);
   nAppoNum = szValued.search(szInValued);
   nTempNum =  nTempNum + (nAppoNum &  0x7FFE) / 2;
   i = i + 1;
  }
  nTempNum = nTempNum % 26; //mod
  szValued="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  szValued= szValued.substr(nTempNum, 1);
  if (szValued==szLastChar) return true;
  else return false;
 }
}


function checkusername(user,len)
{
	if(user.length<len)
		return("short");
	else
	{
		for(i=0;i<user.length;i++)
		{
			errore=false;
			for(j=0;j<valid_char.length;j++)
			{
				if(user.substr(i,1)==valid_char[j])
					errore=true;
			}
			if(errore==false)
				return("invalid");
		}
		return(true);
	}
}

function checkpass(pass,pass2,len)
{
	if(pass.length<len)
		return("short");
	else
	{
		for(i=0;i<pass.length;i++)
		{
			errore=false;
			for(j=0;j<valid_char.length;j++)
			{
				if(pass.substr(i,1)==valid_char[j])
					errore=true;
			}
			if(errore==false)
				return("invalid");
		}
		if(pass==pass2)
			return(true);
		else
			return("not_match");
	}
}

function rowover(tr)
{
	tr.className='tr-select';
}

function rowoutdis(tr)
{
	tr.className='tr-disp';
}

function rowoutpari(tr)
{
	tr.className='tr-pari';
}

function checkDate(array_date)
		{
			errors='';
			
			for(i=0;i<array_date.length;i++)
			{
				array_data=array_date[i];
				nome=array_data['nome'];
				if((document.form1.elements['DATE_'+nome+'_d'].value!='')||(document.form1.elements['DATE_'+nome+'_m'].value!='')||(document.form1.elements['DATE_'+nome+'_a'].value!=''))
				{
					if((document.form1.elements['DATE_'+nome+'_d'].value!='')&&(document.form1.elements['DATE_'+nome+'_m'].value!='')&&(document.form1.elements['DATE_'+nome+'_a'].value!=''))
					{
						giorno=document.form1.elements['DATE_'+nome+'_d'].value;
							giorno=giorno.length==1?"0"+giorno:giorno
						mese=document.form1.elements['DATE_'+nome+'_m'].value;
							mese=mese.length==1?"0"+mese:mese
						anno=document.form1.elements['DATE_'+nome+'_a'].value;
						if(anno.length==4)
						{
							if(navigator.appName == "Microsoft Internet Explorer")
								nuovadata=new Date(mese+'-'+giorno+'-'+anno);
							else
								nuovadata=new Date(mese+' '+giorno+', '+anno);
							dgg=nuovadata.getDate().toString();
								dgg=dgg.length==1?"0"+dgg:dgg
							dmm=(nuovadata.getMonth()+1).toString();
								dmm=dmm.length==1?"0"+dmm:dmm
							daa=nuovadata.getFullYear().toString();
							if((giorno+'/'+mese+'/'+anno)!=(dgg+'/'+dmm+'/'+daa))
							{
								errors+='- '+array_data['descrizione']+' non è corretta\n';
							}
						}
						else
						{
							errors+='- '+array_data['descrizione']+' non è corretta\n';
						}
					}
					else
					{
						errors+='- '+array_data['descrizione']+' è incompleta\n';
					}
				}
				else
				{
					if(array_data['req'])
					{
						errors+='- '+array_data['descrizione']+' è obbligatoria\n';
					}
				}
			}
			if(errors=='')
				array_ret=new Array(true);
			else
				array_ret= new Array(false,errors);
			return(array_ret);
		}

		function checkDateInterval(prec, prox)
		{
			if((document.form1.elements['Date_'+prec+'_giorno'].value!='')&&(document.form1.elements['Date_'+prec+'_mese'].value!='')&&(document.form1.elements['Date_'+prec+'_anno'].value!='')&&(document.form1.elements['Date_'+prox+'_giorno'].value!='')&&(document.form1.elements['Date_'+prox+'_mese'].value!='')&&(document.form1.elements['Date_'+prox+'_anno'].value!=''))
			{
				giorno_prec=document.form1.elements['Date_'+prec+'_giorno'].value;
					giono=giorno.length==1?"0"+giorno:giorno
				mese_prec=document.form1.elements['Date_'+prec+'_mese'].value;
					mese=mese.length==1?"0"+mese:mese
				anno_prec=document.form1.elements['Date_'+prec+'_anno'].value;
				data_prec=new Date(anno_prec+' '+mese_prec+', '+giorno_prec);

				giorno_prox=document.form1.elements['Date_'+prox+'_giorno'].value;
					giono=giorno.length==1?"0"+giorno:giorno
				mese_prox=document.form1.elements['Date_'+prox+'_mese'].value;
					mese=mese.length==1?"0"+mese:mese
				anno_prox=document.form1.elements['Date_'+prox+'_anno'].value;
				data_prox=new Date(anno_prox+' '+mese_prox+', '+giorno_prox);

				if(data_prec>data_prox)
					return(false);
				else
					return(true);
			}
			else
				return(true);
		}

function checkDateIntervalFromTo(date)
{
	errors='';
	if((document.form1.elements['Date_FROM_'+date+'_giorno'].value!='')||(document.form1.elements['Date_FROM_'+date+'_mese'].value!='')||(document.form1.elements['Date_FROM_'+date+'_anno'].value!=''))
	{
		if((document.form1.elements['Date_FROM_'+date+'_giorno'].value!='')&&(document.form1.elements['Date_FROM_'+date+'_mese'].value!='')&&(document.form1.elements['Date_FROM_'+date+'_anno'].value!=''))
		{
			giorno=document.form1.elements['Date_FROM_'+date+'_giorno'].value;
				giorno=giorno.length==1?"0"+giorno:giorno
			mese=document.form1.elements['Date_FROM_'+date+'_mese'].value;
				mese=mese.length==1?"0"+mese:mese
			anno=document.form1.elements['Date_FROM_'+date+'_anno'].value;
			if(anno.length==4)
			{
				nuovadata=new Date(anno+' '+mese+', '+giorno);
				dgg=nuovadata.getDate().toString();
					dgg=dgg.length==1?"0"+dgg:dgg
				dmm=(nuovadata.getMonth()+1).toString();
					dmm=dmm.length==1?"0"+dmm:dmm
				daa=nuovadata.getFullYear().toString();
				if((giorno+'/'+mese+'/'+anno)!=(dgg+'/'+dmm+'/'+daa))
				{
					errors+='La data di inizio ricerca non è corretta\n';
				}
				else
				{
					data1='set';
					data1_val=nuovadata;
				}
			}
			else
			{
				errors+='La data di inizio ricerca non è corretta\n';
			}
		}
		else
		{
			errors+='La data di inizio ricerca è incompleta\n';
		}
	}
	else
	{
		data1='unset';
	}
	if((document.form1.elements['Date_TO_'+date+'_giorno'].value!='')||(document.form1.elements['Date_TO_'+date+'_mese'].value!='')||(document.form1.elements['Date_TO_'+date+'_anno'].value!=''))
	{
		if((document.form1.elements['Date_TO_'+date+'_giorno'].value!='')&&(document.form1.elements['Date_TO_'+date+'_mese'].value!='')&&(document.form1.elements['Date_TO_'+date+'_anno'].value!=''))
		{
			giorno=document.form1.elements['Date_TO_'+date+'_giorno'].value;
				giorno=giorno.length==1?"0"+giorno:giorno
			mese=document.form1.elements['Date_TO_'+date+'_mese'].value;
				mese=mese.length==1?"0"+mese:mese
			anno=document.form1.elements['Date_TO_'+date+'_anno'].value;
			if(anno.length==4)
			{
				nuovadata=new Date(anno+' '+mese+', '+giorno);
				dgg=nuovadata.getDate().toString();
					dgg=dgg.length==1?"0"+dgg:dgg
				dmm=(nuovadata.getMonth()+1).toString();
					dmm=dmm.length==1?"0"+dmm:dmm
				daa=nuovadata.getFullYear().toString();
				if((giorno+'/'+mese+'/'+anno)!=(dgg+'/'+dmm+'/'+daa))
				{
					errors+='La data di fine ricerca non è corretta\n';
				}
				else
				{
					data2='set';
					data2_val=nuovadata;
				}
			}
			else
			{
				errors+='La data di fine ricerca non è corretta\n';
			}
		}
		else
		{
			errors+='La data di fine ricerca è incompleta\n';
		}
	}
	else
	{
		data2='unset';
	}
	if(errors!='')
		array_ret= new Array(false,errors);
	else
	{
		if((data1=='unset')||(data2=='unset'))
			array_ret= new Array(true);
		else
		{
			if(data1_val>data2_val)
				array_ret= new Array(false,'Intervallo di ricerca non corretto');
			else
				array_ret= new Array(true);
		}
	}
	return(array_ret);
}

Array.prototype.in_array = function ( obj ) {
	var len = this.length;
	for ( var x = 0 ; x <= len ; x++ ) {
		if ( this[x] == obj )
		{
			return(true);
		}
	}
	return false;
}

function is_numeric(val)
{
	for(i=0;i<val.length;i++)
	{
		if(!( numeri.in_array(val.substr(i,1))))
		{
			return(false);
		}
	}
	return(true);
}

function is_double(val)
{
	punto=true;
	for(i=0;i<val.length;i++)
	{
		if(!( numeri.in_array(parseInt(val.substr(i,1)))))
		{
			if((val.substr(i,1)=='.')&&(punto))
				punto=false;
			else
				return(false);
		}
	}
	return(true);
}

function formattaPrezzo(prezzo,dec)
{
		prezzo=''+prezzo;
		var splitted=prezzo.split('.');
		if(splitted[1])
		{
			for(var x=0;x<(dec-splitted[1].length);x++)
				prezzo+='0';
		}
		else
		{
			prezzo+='.';
			for(var x=0;x<dec;x++)
				prezzo+='0';
		}
	
	return(prezzo);
}
