function isAlphaSpace(str)
{	
	var valStr = /^[a-zA-Zאטלעש\s]+$/;
	
	if(valStr.exec(str))
		return true;
	else
		return false;
}

function isAlphaNumSpace(str)
{	
	var valStr = /^[a-zA-Zאטלעש0-9\s]+$/;
	
	if(valStr.exec(str))
		return true;
	else
		return false;
}

function isEmail(strEmail)
{
	var valStr = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
				 
	if(valStr.exec(strEmail))
		return true;
	else
		return false;
}

function isNum(strNum)
{
	var valStr = /^([1-9]{1}[0-9]{0,}(\.[0-9]{1,2})?|0(\.[0-9]{1,2})?)$/;
	strNum = strNum.replace(',','.');
	
	if(valStr.exec(strNum))
		return true;
	else
		return false;
}

function isInt(strNum)
{
	var valStr = /^[0-9]+$/;
	if(valStr.exec(strNum))
		return true;
	else
		return false;
}

function isInRange(value, min, max)
{
	if((value >= min) && (value <= max))
		return true;
	else
		return false;
}

function isAlphaNum(strAlphaNum)
{
	var valStr = /^[a-zA-Zאטלעש0-9]+$/;

	if(valStr.exec(strAlphaNum))
		return true;
	else
		return false;
}

function isTime(strTime)
{
	var valStr = /^(([0-1][0-9])|([2][0-3])):([0-5][0-9])(:([0-5][0-9]))?$/;
	
	if(valStr.exec(strTime))
		return true;
	else
		return false;
}

function isPrecedentTime(time1, time2)
{
	var time1Array = time1.split(':');
	var time2Array = time2.split(':');
	var time1Mod = time1Array[0] + time1Array[1];
	var time2Mod = time2Array[0] + time2Array[1];
	if (parseInt(time1Mod, 10) < parseInt(time2Mod, 10))
		return true;
	else
		return false;
}

function isDate(strDate)
{
	var strDateArray = strDate.split('/');
	
	var day = strDateArray[0];
	var month = strDateArray[1];
	var year = strDateArray[2];
	if(day != null && month != null && year != null)
	{
		// nel caso l'utente inserisca solo una cifra in giorno e mese
		if(day.length == 1)
			day = '0' + day;
		if(month.length == 1)
			month = '0' + month;
		
		if(day.length == 2 && month.length == 2 && year.length == 4)
		{
			var newDate = month + '/' + day + '/' + year;
			var myDate = new Date(newDate);
			var myDateStr = myDate.toString();
			var myDateStrArray = myDateStr.split(' ');
			// IE produce una stringa diversa di myDate.toString
			// rispetto a Firefox e Netscape
			if(navigator.appName.substring(0,9) != "Microsoft")
			{	
				if(myDateStrArray[2] == day && myDateStrArray[3] == year)
					return true;
				else
					return false;
			}
			else
			{
				// IE rappresenta cifre singole nel formato #
				// FireFox e Netscape nel formato 0#
				if(myDateStrArray[2] != null && myDateStrArray[2].length == 1)
					myDateStrArray[2] = '0' + myDateStrArray[2];
				if(myDateStrArray[2] == day && myDateStrArray[5] == year)
					return true;
				else
					return false;
			}
		}
		else
			return false;
	}
	else
		return false;
}

function isCodiceFiscale(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;
}