function lTrim(stringa){
    var newstr = stringa + "";
    while(newstr.charAt(0) == " ") 
        newstr = newstr.substring(1, newstr.length);    
    return newstr;
}

function rTrim(stringa){
    var newstr = stringa + "";
    while(newstr.charAt(newstr.length - 1) == " ") 
        newstr = newstr.substring(0, newstr.length - 1);    
    return newstr;
}

function trim(stringa){
    var newstr = stringa + "";
    newstr = lTrim(newstr);
    newstr = rTrim(newstr);
    return newstr;
}

function convalida_email(mail){
	if (trim(mail)=='')return false;
		var espressione = /^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/;	
		if (espressione.test(mail))return true;
		else return false;
}		

function delZero(stringa){
	var newstr = stringa + "";
  while(newstr.charAt(0) == "0") 
       newstr = newstr.substring(1, newstr.length);    
  return newstr;
}

function IsNumeric(sText){
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
   if(sText=='')return false;
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) IsNumber = false;
      }
   return IsNumber;
}

function IsValidPw(sText){
   var ValidChars = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";
   var IsValidPw=true;
   var Char;
   if(sText=='')return false;
   for (i = 0; i < sText.length && IsValidPw == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) IsValidPw = false;
      }
   return IsValidPw;
}

function ValidateData(DateString) {
		var match;
		var tmpDate;
		var validFormat = false;
									
		try {
				match = DateString.match(/^(\d?\d)[/](\d?\d)[/](\d{4})$/);
				tmpDate = new Date(match[3], match[2] - 1, match[1]);
				validFormat = ((tmpDate.getMonth()==match[2]-1) && (tmpDate.getDate()==match[1]));
		}catch (e) {}
			finally { return validFormat;}
}

function getEta(Date1,Date2) {
		var match;
		var d1;
		var d2;
		match = Date1.match(/^(\d?\d)[/](\d?\d)[/](\d{4})$/);
		match2 = Date2.match(/^(\d?\d)[/](\d?\d)[/](\d{4})$/);
		d1 = new Date(match2[3], match[2] - 1, match[1]);
		d2 = new Date(match2[3], match2[2] - 1, match2[1]);
		var eta=match2[3]-match[3];
		if(d1>d2)return eta-1;
		else return eta;
}
  
function astaTime(elemento, inizio, fine){
  if (!document.getElementById || !document.getElementById(elemento))return;
  this.inizio=inizio;
  this.fine=fine;
  this.elemento=document.getElementById(elemento);
  this.localtime=new Date(inizio*1000);
  this.attivo=true;
  this.updateTime=updateTime;
  
  function updateTime(el){
     	el.localtime.setSeconds(el.localtime.getSeconds()+1);
      if(el.attivo)setTimeout(function(){el.updateTime(el)}, 1000);
      var timediff=Math.floor((el.fine*1000-el.localtime.getTime())/1000);
      if (timediff<=0){
		      el.attivo=false;
		      el.elemento.innerHTML="<span class='time'>asta terminata</span>";
    	}else{
    		var oneMinute=60;
    		var oneHour=60*60;
		    var oneDay=60*60*24;
		    var dayfield=Math.floor(timediff/oneDay);
		    var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour);
		    var minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour)/oneMinute);
		    var secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute));
		    this.elemento.innerHTML="<span class='time'>"+dayfield+" g </span><span class='time'>"+hourfield+" h </span><span class='time'>"+minutefield+" m </span><span class='time'>"+secondfield+" s</span>";
    	}
  }
	this.updateTime(this);
}

function ControllaCF(cf)
{
    var validi, i, s, set1, set2, setpari, setdisp;
    if( cf == '' )  return false;
    cf = cf.toUpperCase();
    if( cf.length != 16 )return false;
    validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    for( i = 0; i < 16; i++ )
        if( validi.indexOf( cf.charAt(i) ) == -1 )
            return false;
    set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
    s = 0;
    for( i = 1; i <= 13; i += 2 )
        s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
    for( i = 0; i <= 14; i += 2 )
        s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
    if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
        return false;
    return true;
}