var wasError = false;
var lastErrorTime = new Date;
lastErrorTime = new Date;

function showError(msg) { 
	lastErrorTime = new Date;
	alert(msg);
	lastErrorTime = new Date;
}

function toCheckError() {
	var currTime = new Date;
	currTime = currTime.getTime ();
	var lastErrorMillisec = lastErrorTime.getTime ();
	
	if (currTime - lastErrorMillisec < 500) return false;
	return true;
}

function DateCtrl(dateObj,obbl,dataDef) {
	if (!toCheckError()) return false;

	dateStr = dateObj.value;
	if (dateStr == "") { 
		if (obbl == 1) {
   		wasError = true;
			dateObj.value = dataDef;
		
			showError("E' obbligatorio inserire una data");			
         setTimeout(function(){dateObj.focus();dateObj.select();},10);
			
         return false;
		} 
		else {
			return true;
		}
	}
   dateId = dateObj.name;
   // Controllo formato 10 caratteri con separatori oppure 8 caratteri senza separatori
   datePattern = /^\d{2}(\/|\-|\.| )?\d{2}(\/|\-|\.| )?\d{4}$/;
   if (!datePattern.test(dateStr)) {
		dateObj.value = dataDef;
		wasError = true;	
		
	   showError("Formato data non valido");
		
		setTimeout(function(){dateObj.focus();dateObj.select();},10);	
		
      return false;
   }
   
   dateArr = dateStr.split(/\/|\-|\.| /);
   if (dateArr.length < 3) {
      dateArr[0] = dateStr.substr(0, 2);
      dateArr[1] = dateStr.substr(2, 2);
    	dateArr[2] = dateStr.substr(4, 4);
   }
   int_date = new Date(dateArr[1] + "/" + dateArr[0] + "/" + dateArr[2]);
   day = int_date.getDate();
   month = int_date.getMonth()+1;
   year = int_date.getFullYear();
   
   if (parseInt(dateArr[0], 10) != day 
      || parseInt(dateArr[1], 10) != month 
	   || parseInt(dateArr[2], 10) != year
	) {
		dateObj.value = dataDef;
		wasError = true;			
	
		showError("Data non corretta");
		setTimeout(function(){dateObj.focus();dateObj.select();},10);
		//dateObj.focus();
			 
		return false;
   }
	
	return true;
}

function controllanum(num, campo){
	if (isNaN(num)){
		errore = "Formato "+campo.name+" non valido";
		showError(errore);
		setTimeout(function(){campo.value="";campo.focus();campo.select();},10);
	}
}
