// JavaScript 1.2 Document
/*
	Libreria funzioni che operano su valori ora:
		Versione 1.0
		Ultima modifica/revisione: 18/12/2003.
		Autore: Baket
	Vedi fnc_time_inc.doc per una descrizione delle funzioni esportate.
*/

function isTime(timeStr) {
	if (timeStr.length == 0) return true; // Stringa nulla.
	
	var h,m,s = 0;
	
	var matchArray = timeStr.match(/^(\d{1,2})(:|\.)(\d{2})(:|\.)(\d{2})$/); 
	if (matchArray == null) {
		matchArray = timeStr.match(/^(\d{1,2})(:|\.)(\d{2})$/);
		if (matchArray == null)	
			return false;
	} else
		s = parseInt(matchArray[5]);		
	h = parseInt(matchArray[1]);
	m = parseInt(matchArray[3]); 

	if (h < 0 || h > 23) return false;
	if (m < 0 || m > 60) return false;
	if (s < 0 || s > 60) return false;
	return true; // date is valid
}

var msgIsTime = 'Indicato in modo errato';

function fldIsTime(fld, fldName) {
	if (!isTime(fld.value)) {
		alert(fldName + ': ' + msgIsTime);
		fld.focus();
		return false;	
	}
	return true;
}

function compareTime(t1, t2) {   // -1 se t1 < t2, 0 se t1 = t2, +1 se t1 > t2. 
	var s1 = 0, s2 = 0;
	
	var matchArray = t1.match(/^(\d{1,2})(:|\.)(\d{2})(:|\.)(\d{2})$/); 
	if (matchArray == null) {
		matchArray = t1.match(/^(\d{1,2})(:|\.)(\d{2})$/);
		if (matchArray == null)	
			return false;
	} else
		s1 = parseInt(matchArray[5], 10);		
	var h1 = parseInt(matchArray[1], 10);
	var m1 = parseInt(matchArray[3], 10); 

	matchArray = t2.match(/^(\d{1,2})(:|\.)(\d{2})(:|\.)(\d{2})$/); 
	if (matchArray == null) {
		matchArray = t2.match(/^(\d{1,2})(:|\.)(\d{2})$/);
		if (matchArray == null)	
			return false;
	} else
		s2 = parseInt(matchArray[5], 10);		
	var h2 = parseInt(matchArray[1], 10);
	var m2 = parseInt(matchArray[3], 10); 	

	if (h1 < h2) return -1;
	else if (h1 > h2) return 1;
	  else if (m1 < m2) return -1;
	  else if (m1 > m2) return 1;
		else if (s1 < s2) return -1;
		else if (s1 > s2) return 1;
		else return 0;
}