//Verifica che una stringa contenga solo lettere////////////////////////////////////////////////////////
function isAlphabetic(string, allowSpace, required) {
	if (required && trmSpaces(string).length == 0) {
		return false;
	}
	if (!required && string.length == 0) {
		return true;
	}	
	if (allowSpace && (trmSpaces(string).search(/[^a-zA-Z\s]/) != -1 || trmSpaces(string).length == 0)) {
		return false;
	}
	if (!allowSpace && (trmSpaces(string).search(/[^a-zA-Z]/) != -1 || trmSpaces(string).length == 0)) {
		return false;
	}		
	return true;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che una stringa contenga caratteri alfanumerci///////////////////////////////////////////////
function isAlphanumeric(string, allowSpace, required) {
	if (required && trmSpaces(string).length == 0) {
		return false;
	}
	if (!required && string.length == 0) {
		return true;
	}	
	if (allowSpace && (trmSpaces(string).search(/[^\w\s]/) != -1 || trmSpaces(string).length == 0)) {
		return false;
	}
	if (!allowSpace && (trmSpaces(string).search(/\W/) != -1 || trmSpaces(string).length == 0)) {
		return false;
	}		
	return true;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che una stringa sia un numero valido/////////////////////////////////////////////////////////
function isNumeric(string, int, required) {
	if (required && string.length == 0) {
		return false;
	}
	if (int && string.search(/[^\d]/) != -1) {
		return false;
	}
	if (!int && isNaN(string.replace(",","."))) {
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che una stringa sia un indirizzo e-mail valido////////////////////////////////////////////////
function isEmail(string, required) {
	if (required && string.length == 0) {
		return false;
	}
	if (string.length > 0 && string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1){
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che una stringa sia un indirizzo http valido//////////////////////////////////////////////////
function isUrl(string, required) {
	if (required && string.length == 0) {
		return false;
	}
	if (string.length > 0 && string.search(/http:\/\/([a-zA-Z]{2,})\.([a-zA-Z\.0-9]{2,})/) == -1){
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che una stringa sia un numero di telefono/fax valido//////////////////////////////////////////
function isTelFax(string, required) {
	if (required && string.length == 0) {
		return false;
	}
	if (string.length > 0 && string.search(/([0-9]{2,})\/([0-9]{5,})/) == -1){
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che una stringa sia una password valida///////////////////////////////////////////////////////
function isPassword(string, required) {
	if (required && string.length == 0) {
		return false;
	}
	if (string.length > 0 && string.search(/([a-zA-Z0-9]{7,20})/) == -1){
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che una stringa sia un codice fiscale valido//////////////////////////////////////////////////
function isCf(string, required) {
	if (required && string.length == 0) {
		return false;
	}
	if (string.length > 0 && string.search(/([a-zA-Z0-9]{16})/) == -1){
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che una stringa sia un codice postale valido//////////////////////////////////////////////////
function isCap(string, required) {
	if (required && string.length == 0) {
		return false;
	}
	if (string.length > 0 && string.search(/^[0-9]{5}$/) == -1){
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che una stringa sia della lunghezza specificata///////////////////////////////////////////////
function isValidLength(string, min, max) {
	if (string.length < min || string.length > max) {
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che una stringa non contenga caratteri speciali///////////////////////////////////////////////
function isBadChar(string, required) {
	if (required && string.length == 0) {
		return false;
	}
	if (string.length > 0 && string.search(/[<>\"\'%;\)\(&\+]/) != -1){
		return false;
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Verifica che un campo sia valorizzato//////////////////////////////////////////////////////////////////
function isValorized(field) {
	if ((field.type == "text" || field.type == "textarea" || field.type == "file" || field.type == "password") && trmSpaces(field.value).length < 1) {
		return false;
	}
	if ((field.type == "select-one" && field.selectedIndex == 0) || (field.type == "select-multiple" && field.selectedIndex == -1)) {
		return false;
	}
	if (field[0].type == "radio" || field[0].type == "checkbox") {
		var isChecked = false;
		for (var i = 0; i < field.length; i++) {
			if (field[i].checked == true) {
				isChecked = true;
				break;
			}	
		}
		if (isChecked == false) {
			return false;
		}
	}
	return true;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Rimuove gli spazi all'inizio e alla fine di una stringa////////////////////////////////////////////////
function trmSpaces(string) {
	var trimmedString  = '';
	var tmpString  = '';
	bgnFound = false;
	
	for (var i = 0; i < string.length; i++) {
		if (string.charAt(i) != ' ' && string.charCodeAt(i) != 9) {			
			if (tmpString != '') {
				trimmedString += tmpString;
				tmpString = '';
			}
			trimmedString += string.charAt(i);
			if (bgnFound == false) bgnFound = true;
		}		
		else if (bgnFound == true) tmpString += string.charAt(i);
	}
	return trimmedString;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Rimuove gli spazi all'inizio e alla fine di una stringa////////////////////////////////////////////////
function trmSpaces2(string) {
	var removeChar = ' ';
	var returnString = inputString;	

	while(''+returnString.charAt(0)==removeChar) {
	  	returnString=returnString.substring(1,returnString.length);
	}
	while(''+returnString.charAt(returnString.length-1)==removeChar) {
		returnString=returnString.substring(0,returnString.length-1);
  	}

	return returnString;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Rimuove i caratteri specificati da una stringa/////////////////////////////////////////////////////////
function rplChars(string, oldTxt, newTxt) {
	var rplString;
	rplString = string.split(oldTxt);
	rplString = rplString.join(newTxt);
	return rplString;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////

//Limita il numero massimo di caratteri in una textarea//////////////////////////////////////////////////
function limChars(limit, fieldToCheck, fieldToDisplay) {
	var limit = limit-1;	
	if (fieldToCheck.value.length > limit) {
		fieldToCheck.value = fieldToCheck.value.substring(0, limit);
	}		 
	else if (fieldToDisplay != null) {
		fieldToDisplay.value = limit - fieldToCheck.value.length;
	}			
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////