function show(divId) {
  document.getElementById(divId).style.visibility = 'visible';
  document.getElementById(divId).style.display = 'block';
}

function hide(divId) {
  document.getElementById(divId).style.visibility = 'hidden';
  document.getElementById(divId).style.display = 'none';
}

function toggle(divId) {
	var currentDisplay = document.getElementById(divId).style.display;
	if (currentDisplay == 'block')
		hide(divId);
	else
		show(divId);
}

function trim(str) {
	return str.replace(/^\s+|\s+$/g, '');
}

function getTrimmedValue(element) {
	return trim(element.value);
}

function getSelectValue(element) {
	return element.options[element.selectedIndex].value;
}

function getSelectText(element) {
	return element.options[element.selectedIndex].text;
}

// Restituisce il valore del radio selezionato
function getRadioValue(element) {
	for (i=0;i<element.length;i++) {
		if (element[i].checked) {
			return element[i].value; 
		}
	}
	return null;
}

// Controlla la correttezza dell'indirizzo email
function checkEmail(element) {
	// questo serve per evitare due messaggi di errore quando l'email non e' compilata
	if (getTrimmedValue(element) == '')
		return true;
		
	var filter  = /^(\s*[a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4}\s*){1}$/;
	return filter.test(element.value);
}

//Controlla la correttezza di indirizzi email separati da virgola (con un numero qualsiasi di spazi prima e dopo)
function checkEmailList(element) {
	// questo serve per evitare due messaggi di errore quando l'email non e' compilata
	if (getTrimmedValue(element) == '')
		return true;
		
	//var filter  = /^(\s*[a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4}\s*){1}$/;
	//var mailsingola = /^(\s*[a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4}\s*){1}$/;
	
	var filter  = /^(\s*[a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4}\s*){1}(,{1}\s*(\s*[a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4}\s*){1})*$/;
	return filter.test(element.value);
}

//Controlla che il campo sia un numero
function checkNumber(element) {
	try{

		
		var filter = /^([0-9])+$/;
		return filter.test(element.value);
	}catch(e){
		return false;
	}

	
}


//Controlla che il campo sia un numero a "n" cifre
function checkNumber(element,n) {
	try{
		if(n > 0){
			//alert(element.value.length);
			if(element.value.length != n) return false;
		}
		
		var filter = /^([0-9])+$/;
		return filter.test(element.value);
	}catch(e){
		return false;
	}

	
}

//Controlla che il campo sia un numero compreso tra minValue e maxValue
function checkNumber(element,minValue,maxValue) {
	try{

		
		var filter = /^([0-9])+$/;
		if(filter.test(element.value)){
			//alert(element.value+"\n"+minValue+"\n"+maxValue);
			if(element.value >= minValue && element.value <= maxValue) return true;
			
		}
		return false;
	}catch(e){
		return false;
	}

	
}

//Controlla che l'elemento sia un numero di telefono
//339-4248
//339-42-48
//339 42 48
//339 4248
//3394248
//(095) #phone#
//(095)#phone#
//+7 (095) #phone#
//+7 (095)#phone#
//+7(095) #phone#
//+7(095)#phone#
function checkPhone(element) 
{
	// questo serve per evitare due messaggi di errore quando il campo non e' compilata
	if (getTrimmedValue(element) == '')
		return true;
	var filter = /^(\(?(\d*)\)?[- ]?)+$/;
	//alert(element.value);
	if (filter.test(element.value)) {
   		return true;
 	} 
 	
	return false;

}

//Controlla che l'elemento sia una Partita Iva
function checkVatNumber(element) 
{
	// questo serve per evitare due messaggi di errore quando il campo non e' compilata
	//if (getTrimmedValue(element) == ''){
		return true;
	//N.B: per ora la partita iva non la controlliamo perche' dipende dal paese
	
	//var filter = /^\d{11}$/;
	//alert(element.value);
	//if (filter.test(element.value)) {
   		//return true;
 	//} 
 	
	//return false;

}

//Controlla che il campo sia un codice fiscale (solo lettere e numeri)
function checkTaxCode(element) 
{
	// questo serve per evitare due messaggi di errore quando il campo non e' compilata
	//if (getTrimmedValue(element) == '')
		//return true;
	//var filter = /^([a-zA-Z0-9\-])+$/;
	//alert(element.value);
	//if (filter.test(element.value)) {
   		return true;
 	//} 
 	
	//return false;

}


function checkEmailAndShowMessage(element, message) {
	if (!checkEmail(document.formNewsletter.email)) { 
		alert(message); 
		return false;
	} else {
		return true;
	}	
}
