function Trim(strString) {
	return String(strString).replace(/^ */, '').replace(/ *$/, '');
}
function LTrim(strString) {
	return String(strString).replace(/^ */, '');
}
function RTrim(strString) {
	return String(strString).replace(/ *$/, '');
}
function NaturalNumber(Number) {
	var intNumber = 0;
	if (!isNaN(Number)) intNumber = parseInt(Number);
	if (intNumber<0) intNumber=0;
	return intNumber;
}
function Left(strString, intLength) {
	return String(strString).substr(0, NaturalNumber(intLength));
}
function Right(strString, intLength) {
	var objString = String(strString);
	return objString.substring(objString.length - NaturalNumber(intLength), objString.length);
}
function Mid(strString, intStart, intLength) {
	return String(strString).substr(NaturalNumber(intStart)-1, NaturalNumber(intLength));
}
function Repeat(strString, intTimes) {
	var strStringToRepeat = String(strString);
	var strOutput='';
	for (i=0; i<NaturalNumber(intTimes); i++) strOutput+=strStringToRepeat;
	return strOutput;
}
function LPad(strString, strChar, intLength) {
	var intLen = NaturalNumber(intLength);
	return Right(Repeat(Left(strChar + ' ', 1), intLen) + strString, intLen);
}
function RPad(strString, strChar, intLength) {
	var intLen = NaturalNumber(intLength);
	return Left(strString + Repeat(Left(strChar + ' ', 1), intLen), intLen);
}
function isValidDate(dateStr) {
	//Versione italiana, DD/MM/YYYY senza ulteriori caratteri alla fine

	// Checks for the following valid date formats:
	// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
	// Also separates date into month, day, and year variables

	var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{2}|\d{4})$/;

	//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
	// To require a 4 digit year entry, use this line instead:
	// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

	//if (dateStr == '') {
	//	return true;
	//}

	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
		alert("Il formato data valido è GG/MM/AAAA.");
		return false;
	}
	// parse date into variables
	month = matchArray[3];
	day = matchArray[1]; 
	year = matchArray[4];
	
	if (month < 1 || month > 12) { // check month range
		alert("Il mese deve essere compreso fra 1 e 12.");
		return false;
	}
	if (day < 1 || day > 31) {
		alert("Il giorno deve essere compreso fra 1 e 31.");
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert("Il mese "+month+" non ha 31 giorni!");
		return false;
	}
	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			alert("Febbraio " + year + " non ha " + day + " giorni!");
			return false;
	   }
	}
	return true;  // date is valid
}
function isEmail(str) {
  // are regular expressions supported?
	var supported = 0;
	if (window.RegExp) {
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) supported = 1;
	}
	if (!supported) return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(str) && r2.test(str));
}
function FormattaData(dtmData) {
	var myDate = new Date(dtmData);
	var strData = '';
	strData += LPad(myDate.getDate(), '0', 2);
	strData += "/" + LPad(myDate.getMonth()+1, '0', 2);
	strData += "/" + LPad(myDate.getFullYear(), '0', 4);
	return strData;
}
function FormattaOrario(dtmData) {
	var myDate = new Date(dtmData);
	var strOrario = '';
	strOrario += LPad(myDate.getHours(), '0', 2);
	strOrario += ":" + LPad(myDate.getMinutes(), '0', 2);
	strOrario += ":" + LPad(myDate.getSeconds(), '0', 2);
	return strOrario;
}
function FormattaGiorno(dtmData) {
	var myDate = new Date(dtmData);
	switch (myDate.getDay()) {
		case 0:
			return 'Domenica';
		case 1:
			return 'Lunedì';
		case 2:
			return 'Martedì';
		case 3:
			return 'Mercoledì';
		case 4:
			return 'Giovedì';
		case 5:
			return 'Venerdì';
		case 6:
			return 'Sabato';
	};
}
function FormattaMese(dtmData) {
	var myDate = new Date(dtmData);
	switch (myDate.getMonth()) {
		case 0:
			return 'Gennaio';
		case 1:
			return 'Febbraio';
		case 2:
			return 'Marzo';
		case 3:
			return 'Aprile';
		case 4:
			return 'Maggio';
		case 5:
			return 'Giugno;';
		case 6:
			return 'Luglio';
		case 7:
			return 'Agosto';
		case 8:
			return 'Settembre';
		case 9:
			return 'Ottobre';
		case 10:
			return 'Novembre';
		case 11:
			return 'Dicembre';
	};
}
function setDisplay(IdElemento, blnDisplay) {
	var objElemento = document.getElementById(IdElemento);
	if (objElemento==null) {
		return false;
	}
	else {
		objElemento.style.display = blnDisplay?'':'none';
		return true;
	};
}
function getDisplay(IdElemento) {
	var objElemento = document.getElementById(IdElemento);
	if (objElemento==null) {
		return false;
	}
	else {
		return objElemento.style.display!='none';
	};
}
function swapDisplay(IdElemento) {
	var objElemento = document.getElementById(IdElemento);
	if (objElemento==null) {
		return false;
	}
	else {
		objElemento.style.display = (objElemento.style.display=='none')?'':'none';
		return true;
	};
}
function isFormChanged(Form) {
	for (var i=0; i<Form.elements.length; i++) {
		if (Form.elements[i].value!=Form.elements[i].defaultValue) return true;
	};
	return false;
}
function checkFormRicerca()
{
	var sAlert='';
	f = document.forms['frmricerca'];
	
	
	if (f.elements['txtSearch']!=undefined) {
		if ((f.elements['txtSearch'].value == false) || (f.elements['txtSearch'].value == "Cerca nel sito")) {
			sAlert+=((sAlert!='')?'\n':'')+'Filtro di Ricerca: obbligatorio';
		};
	};
	
	
	if (sAlert!='') {
		alert(sAlert);
		return false;
	};	

	return true;
	
}