function trim(str){
	return str.replace(/^\s+|\s+$/g,"");
} 

function formCheck(frmName,highlightColor,thickness) {

	/*contatori*/
	var username    = 0;
	var password    = 0;
	var oggetto	    = 0;
	var valore		= 0;
	var testo 		= 0;
	var email 		= 0;
	var email_noprev= 0;
	var phone 		= 0;
	var phone_mand	= 0;
	var number		= 0;
	var price		= 0;
	var privacy		= 0;
	var name		= 0;
	var piva		= 0;
	var company		= 0;
	var address		= 0;
	var address_mand= 0;
	var city		= 0;
	var city_mand   = 0;
	var cap			= 0;
	var cap_mand    = 0;
	var filename	= 0;
	
	
	var highlight	= thickness+" solid #"+highlightColor;
	
		
	var frm = document.forms[frmName];
	
	/*ciclo i campi della form*/
	for(i=0;i<frm.length;i++) {
		
		var fieldObj	= frm.elements[i];
		var fieldName 	= frm.elements[i].name;
		var fieldValue	= trim(frm.elements[i].value);
		var fieldType	= frm.elements[i].type;
		var fieldToType	= frm.elements[i].getAttribute('check');
		var fieldDis	= frm.elements[i].disabled;
		
		fieldObj.style.border="";
		
		if(frm.elements[i].type!="submit") {
			//alert("Campo: " + frm.elements[i].name + " and it’s value is: " + frm.elements[i].value + "e dev'essere di tipo: " + frm.elements[i].getAttribute('check'));
			
			switch(fieldToType) {
				case "text":
					//alert(fieldValue.length);
					
					re = new RegExp("^[a-zA-Z0-9אטילעש].+$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						testo++;
					}
					
					break;
					
				case "filename":
					//alert(fieldValue.length);
					
					re = new RegExp("^[a-zA-Z0-9אטילעש\\-\\_\'\ ]+$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						filename++;
					}
					
					break;
					
				case "name":
					
					re = new RegExp("^[a-zA-Zאטילעש][a-zA-Zאטילעש\'\ ]+[a-zA-Zאטילעש]$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						name++;
					}
					
					
					break;
					
				case "company":
					
					re = new RegExp("^[a-zA-Z0-9].{1,}$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						company++;
					}
					
					break;
					
				case "address":
					if(fieldValue!="") {
						re = new RegExp("^[a-zA-Zאטילעש][a-zA-Z0-9אטילעש\,\.\^\°\/\'\ ]+$");
						if(!fieldValue.match(re)) {
							fieldObj.style.border=highlight;
							address++;
						}
					}
					
					break;
					
				case "address_mand":
					re = new RegExp("^[a-zA-Zאטילעש][a-zA-Z0-9אטילעש\,\.\^\°\/\'\ ]+$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						address_mand++;
					}
					
					break;
					
				case "city":
					if(fieldValue!="") {
						re = new RegExp("^[a-zA-Zאטילעש][a-zA-Zאטילעש\'\\-\ ]+$");
						if(!fieldValue.match(re)) {
							fieldObj.style.border=highlight;
							city++;
						}
					}
					
					break;
					
				case "city_mand":
					re = new RegExp("^[a-zA-Zאטילעש][a-zA-Zאטילעש\'\\-\ ]+$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						city_mand++;
					}
					
					break;
					
				case "cap":
					if(fieldValue!="") {
						re = new RegExp("^[0-9]{5}$");
						if(!fieldValue.match(re)) {
							fieldObj.style.border=highlight;
							cap++;
						}
					}
					
					break;
					
				case "cap_mand":
					re = new RegExp("^[0-9]{5}$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						cap_mand++;
					}
					
					break;
					
				case "email":
				
					re = new RegExp("^[a-zA-Z0-9][a-zA-Z0-9\-\.\_]+@[a-zA-Z0-9\-\.\_]+\.[a-zA-Z]+$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						email++;
					}
						 
					break;
					
				case "email_noprev":
					
					re = new RegExp("^[a-zA-Z0-9][a-zA-Z0-9\-\.\_]+@[a-zA-Z0-9\-\.\_]+\.[a-zA-Z]+$");
					
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						email_noprev++;
					}
					
					if(fieldValue==document.getElementById('form_email').value) {
						fieldObj.style.border=highlight;
						email_noprev++;
					}
						 
					break;
					
				case "phone":
					if(fieldValue!="") {
						re = new RegExp("^\\+[0-9]+\.[0-9]+$");
						if(!fieldValue.match(re)) {
							fieldObj.style.border=highlight;
							phone++;
						}
					}
				
					break;
					
				case "phone_mand":
					re = new RegExp("^\\+[0-9]+\.[0-9]+$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						phone_mand++;
					}
				
					break;
					
				case "number":
				
					re = new RegExp("^[0-9]+$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						number++;
					}
				
					break;
					
				case "piva":
					
					re = new RegExp("^[0-9]{11,}$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						piva++;
					}
				
					break;
					
				case "price":
				
					re = new RegExp("^[0-9]+(\,[0-9][0-9])??$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						price++;
					}
				
					break;
					
				case "privacy":
					if(fieldObj.checked==false) {
						fieldObj.style.border=highlight;
						privacy++;
					}
					
					break;
					
				case "username":
					
					re = new RegExp("^[a-zA-Z0-9][a-zA-Z0-9\.]{5,}$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						username++;
					}
						 
					break;
				
				case "password":
					
					re = new RegExp("^[a-zA-Z0-9]{6,}$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						password++;
					}
						 
					break;
					
				case "subject":
					
					re = new RegExp("^[a-zA-Z0-9][a-zA-Z0-9אטילעש\.\'\&\-\/_\ ]{5,}$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						oggetto++;
					}
						 
					
					break;
					
				case "valore":
					
					re = new RegExp("^[0-9\,\.]+$");
					if(!fieldValue.match(re)) {
						fieldObj.style.border=highlight;
						valore++;
					}
						 
					break;
			}
			
		}
		
	}
	
	var msg="I campi contrassegnati vanno compilati correttamente:\n\n";
	
	if(username>0) {
		msg+="- Il campo username e' in un formato non corretto o e' vuoto\n";
	}
	if(password>0) {
		msg+="- Il campo password e' in un formato non corretto o e' vuoto\n";
	}
	if(name>0) {
		msg+="- I campi nome e/o cognome sono in un formato non corretto o sono vuoti\n";
	}
	if(company>0) {
		msg+="- Il campo azienda e' in un formato non corretto o e' vuoto\n";
	}
	if(address>0) {
		msg+="- Il campo indirizzo e' in un formato non corretto\n";
	}
	if(address_mand>0) {
		msg+="- Il campo indirizzo e' in un formato non corretto o e' vuoto\n";
	}
	if(filename>0) {
		msg+="- I campi nome file sono vuoti o in un formato non corretto (consentite solo lettere minuscole, maiuscole, numeri, trattini alti e bassi e spazi)\n";
	}
	if(testo>0) {
		msg+="- I campi testuali sono vuoti o in un formato non corretto\n";
	}	
	if(email>0) {
		msg+="- I campi email sono in un formato non corretto o sono vuoti\n";
	}
	if(email_noprev>0) {
		msg+="- L'email tecnica non puע essere vuota o uguale all'email e deve essere in un formato corretto\n";
	}
	if(phone>0) {
		msg+="- I campi telefono sono in un formato non corretto (esempio: +39.0541649292)\n";
	}
	if(phone_mand>0) {
		msg+="- I campi telefono sono in un formato non corretto (esempio: +39.0541649292) o sono vuoti\n";
	}
	if(piva>0) {
		msg+="- Il campo partita iva e' in un formato non corretto (esempio: 02067170403) o e' vuoto\n";
	}
	if(city>0) {
		msg+="- Il campo citta' e/o provincia e/o cittadinanza e' in un formato non corretto\n";
	}
	if(city_mand>0) {
		msg+="- Il campo citta' e/o provincia e/o cittadinanza e' in un formato non corretto o e' vuoto\n";
	}
	if(cap>0) {
		msg+="- Il campo cap e' in un formato non corretto (esempio: 47838)\n";
	}
	if(cap_mand>0) {
		msg+="- Il campo cap e' in un formato non corretto (esempio: 47838) o e' vuoto\n";
	}
	if(number>0) {
		msg+="- I campi numerici non contengono solo numeri o sono vuoti\n";
	}
	if(price>0) {
		msg+="- I campi prezzo sono in un formato non corretto (esempio: 123; 123,50) o sono vuoti\n";
	}
	if(oggetto>0) {
		msg+="- I campi testuali sono vuoti\n";
	}
	if(valore>0) {
		msg+="- Il campo valore e' in un formato non corretto (esempio: 123; 123,50; 1.230,00) o e' vuoto\n";
	}
	if(privacy>0) {
		msg+="- La privacy dev'essere accettata\n";
	}
	
	if(testo>0 || filename>0 || email>0 || email_noprev>0 || phone>0 || phone_mand>0 || number>0 || price>0 || privacy>0 || oggetto>0 || valore>0 || username>0 || password>0 || name>0 || piva>0 || company>0 || address>0 || address_mand>0 || city>0 || city_mand>0 || cap>0 || cap_mand>0) {
		alert(msg);
		return false;
	}	
	else {
		return true;
	}
	
}

function toggleValue(elmid,textvalue) {
	elemento 		= document.getElementById(elmid);
	
	if (elemento.value == "" || elemento.value == "Nome" || elemento.value == "Indirizzo Email") {
		elemento.value	= textvalue;
	}
		
}

function showsubmenu(menuid) {
	var submenu = document.getElementById('submenu_'+menuid);
	var expand  = document.getElementById('plus_'+menuid);
	
	expand.innerHTML = '<a onclick="hidesubmenu('+menuid+')" style="cursor:pointer;">[-]</a>';
	submenu.style.display = 'block';
}

function hidesubmenu(menuid) {
	var submenu = document.getElementById('submenu_'+menuid);
	var expand  = document.getElementById('plus_'+menuid);
	
	expand.innerHTML = '<a onclick="showsubmenu('+menuid+')" style="cursor:pointer;">[+]</a>';
	submenu.style.display = 'none';
}

