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

function validPassword(string)
{
	var testresults;
	var filter=/^[A-Za-z0-9]{6,}$/i;

	if (filter.test(string)) {
		testresults = true;
	}
	else {
		testresults = false;
	}
	
	return(testresults);
}

function contactformValidate()
{
	var myForm = document.getElementById('contactForm');
	if (myForm) {
		if (myForm.form_nome.value==""
		 || myForm.form_cognome.value==""
		 || myForm.form_email.value==""
		 || myForm.form_text.value == ""
		 || !myForm.form_consenso.checked) {
			alert(mytext(1));
			return false;
		}
		
		if (checkemail(trim(myForm.form_email.value))==false) {
			alert(mytext(2));
			return false;
		}
	
	}
	return true;
}

function pwdchangeFormValidate()
{ // TODO valida il form cambio password

	var pwdchangeForm = document.getElementById('pwdchangeForm');
	if (pwdchangeForm) {

		if (pwdchangeForm.pwdc_old.value==""
		 || pwdchangeForm.pwdc_new1.value==""
		 || pwdchangeForm.pwdc_new2.value=="") {
			alert(mytext(7));
			return false;
		}

		if (validPassword(pwdchangeForm.pwdc_old.value)==false
		 || validPassword(pwdchangeForm.pwdc_new1.value)==false
		 || validPassword(pwdchangeForm.pwdc_new2.value)==false) {
			alert(mytext(4));
			return false;
		}

		if (pwdchangeForm.pwdc_new1.value != pwdchangeForm.pwdc_new2.value) {
			alert(mytext(8));
			pwdchangeForm.pwdc_new1.value = "";
			pwdchangeForm.pwdc_new2.value = "";
			pwdchangeForm.pwdc_new1.focus();
			return false;
		}

	}
	return true;
}

function emailchangeFormValidate()
{ // TODO valida il form cambio e-mail

	var myForm = document.getElementById('emailchangeForm');
	if (myForm) {
	
		if (myForm.form_pwd.value==""
		 || myForm.form_email.value=="") {
			alert(mytext(10));
			return false;
		}

		if (checkemail(trim(myForm.form_email.value))==false) {
			alert(mytext(2));
			return false;
		}

		if (validPassword(myForm.form_pwd.value)==false) {
			alert(mytext(4));
			return false;
		}
	
	}
	return true;
}

function signupFormValidate(italyValue)
{ // valida il form registrazione utente

	var myForm = document.getElementById('signupForm');
	if (myForm) {

		/* campi obbligatori */
		if (myForm.form_email.value == ""
		 || myForm.form_pwd1.value == ""
		 || myForm.form_pwd2.value == ""
		 || myForm.form_nome.value == ""
		 || myForm.form_cognome.value == ""
		 || myForm.form_indirizzo.value == ""
		 || myForm.form_citta.value == ""
		 || myForm.form_cap.value == ""
		 || myForm.form_tel.value == ""
		 || myForm.form_country.value < 1
		 || myForm.form_utype.value < 1
		 || !myForm.form_consenso.checked) {
			alert(mytext(1));
			return false;
		}

		/* provincia e CAP */
		if (myForm.form_country.value == italyValue) {
			if (myForm.form_provincia_it.value == -1) {
				alert(mytext(39));
				return false;
			
			} else if (myForm.form_provincia_it.value < 1) {
				alert(mytext(1));
				return false;
			}

			if (!checkcap(trim(myForm.form_cap.value))) {
				alert(mytext(6));
				return false;
			}

		} else {
			if (myForm.form_provincia_ab.value == "") {
				alert(mytext(1));
				return false;
			}
		}

		/* email */
		if (checkemail(trim(myForm.form_email.value))==false) {
			alert(mytext(2));
			return false;
		}

		/* password */
		if (validPassword(myForm.form_pwd1.value)==false
		 || validPassword(myForm.form_pwd2.value)==false) {
			alert(mytext(4));
			return false;
		}
	
		if (myForm.form_pwd1.value != myForm.form_pwd2.value) {
			alert(mytext(5));
			myForm.form_pwd1.value = "";
			myForm.form_pwd2.value = "";
			myForm.form_pwd1.focus();
			return false;
		}

	} 
	return true;
}

function editprofileFormValidate(italyValue)
{ /* valida il form edit profile utente */

	var myForm = document.getElementById('editprofileForm');
	if (myForm) {

		/* campi obbligatori */
		if (myForm.form_nome.value == ""
		 || myForm.form_cognome.value == ""
		 || myForm.form_indirizzo.value == ""
		 || myForm.form_citta.value == ""
		 || myForm.form_cap.value == ""
		 || myForm.form_tel.value == ""
		 || myForm.form_country.value < 1) {
			alert(mytext(10));
			return false;
		}

		/* provincia e CAP */
		if (myForm.form_country.value == italyValue) {
			if (myForm.form_provincia_it.value < 1) {
				alert(mytext(1));
				return false;
			}
			if (!checkcap(trim(myForm.form_cap.value))) {
				alert(mytext(6));
				return false;
			}

		} else {
			if (myForm.form_provincia_ab.value == "") {
				alert(mytext(1));
				return false;
			}
		}

	} 
	return true;
}

function newsletterFormValidate(iType) {
	// iType: 0=subscribe, 1=unsubscribe
	var formId = (iType == 0)? 'subscribeForm' : 'unsubscribeForm';
	var myForm = document.getElementById(formId);
	if (myForm) {

		if (myForm.form_email.value == "") {
			alert(mytext(7));
			return false;
		}

		if (iType == 0) {
			/* altri campi obbligatori */
			if (myForm.form_nome.value == ""
			 || myForm.form_cognome.value == ""
			 || myForm.form_utype.value < 1
			 || myForm.form_country.value < 1
			 || !myForm.form_consenso.checked) {
				alert(mytext(7));
				return false;
			}
		}

		if (checkemail(trim(myForm.form_email.value))==false) {
			alert(mytext(2));
			return false;
		}

	}
	return true;
}

function orderFormCheckAvail() {
/*
 * restituisce false, impedendo l'invio del form, se
 * nel form ci sono prodotti NON disponibili (classe 'disp_rosso')
 */

	var myForm = document.getElementById('orderForm');
	var valid;
	if (myForm) {
		valid = ($('.disp_rosso', myForm).length == 0);
		if (!valid) {
			alert(mytext(29));
		}
		return (valid);
	} else {
		return true;
	}
}

function orderFormValidate(italyValue) {
	var myForm = document.getElementById('orderForm');
	var hasDelivery = document.getElementById('delivery_type_1');
	var delivery;
	var num;

	if (myForm) {

		// metodo di pagamento
		num = radioValue(myForm.payment_method);
		if (isNaN(num) || (num < 1) || (num > 2)) {
		 	alert(mytext(22));
		 	return false;
		}

		// tipologia di consegna
		if (hasDelivery) {
			delivery = radioValue(myForm.delivery_type);
			if (isNaN(delivery) || (delivery < 1) || (delivery > 2)) {
			 	alert(mytext(23));
			 	return false;
			}
		} else {
			// solo in punto vendita
			delivery = 2;
		}

		// indirizzo di fatturazione completo
		if (myForm.invoice_nome.value == ""
		 || myForm.invoice_cognome.value == ""
		 /* || myForm.invoice_ragsoc.value == "" */
		 || myForm.invoice_indirizzo.value == ""
		 || myForm.invoice_nciv.value == ""
		 || myForm.invoice_citta.value == ""
		 || myForm.invoice_cap.value == ""
		 || myForm.invoice_paese.value < 1) {
			alert(mytext(24));
			return false;
		}
		
		if (myForm.invoice_paese.value == italyValue) {
			// provincia, CAP, codice fiscale e partita IVA in Italia
			if (myForm.invoice_prov.value < 1) {
				alert(mytext(24));
				return false;
			}

			if (myForm.codice_fiscale.value == "") {
				alert(mytext(28));
				return false;
			}

			if (!checkcap(trim(myForm.invoice_cap.value))) {
				alert(mytext(26));
				return false;
			}

		} else {
			// provincia all'estero
			if (myForm.invoice_altprov.value == "") {
				alert(mytext(24));
				return false;
			}
		}

		// indirizzo consegna a domicilio
		if (delivery == 1) {
			if (myForm.delivery_nome.value == ""
			 || myForm.delivery_cognome.value == ""
			 /* || myForm.delivery_ragsoc.value == "" */
			 || myForm.delivery_indirizzo.value == ""
			 || myForm.delivery_nciv.value == ""
			 || myForm.delivery_citta.value == ""
			 || myForm.delivery_cap.value == ""
			 || myForm.delivery_paese.value < 1) {
				alert(mytext(25));
				return false;
			}

			if (myForm.delivery_paese.value == italyValue) {
				// provincia, CAP in Italia
				if (myForm.delivery_prov.value < 1) {
					alert(mytext(25));
					return false;
				}

				if (!checkcap(trim(myForm.delivery_cap.value))) {
					alert(mytext(27));
					return false;
				}
			} else {
				// provincia all'estero
				if (myForm.delivery_altprov.value == "") {
					alert(mytext(25));
					return false;
				}
			}

		}

	}
	return true;
}

/* controlli su regexp */
function checkcap(string) {
	var testresults;
	var filter=/^[0-9]{5}$/i;
	if (filter.test(string)) {
		testresults = true;
	}
	else {
		testresults = false;
	}
	
	return(testresults);
}

function checkemail(email_addr) {
	var testresults;
	var filter=/^[\'+\\./0-9A-Z^_\`a-z{|}~\-]+@[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+){1,4}$/i;

	if (filter.test(email_addr)) {
		testresults = true;
	}
	else {
		testresults = false;
	}
	
	return(testresults);
}
