// crValidate.js

var errfound = false;
var firstsubmit = false;
var GM = "\" field is required.\nPlease fill in all required fields.";
var CM = "\nPlease make the appropriate changes and try again.";
var EM="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-@.";

function fixPhone(phone){
 temp="";
 for (i=0;i<phone.length;i++) {
  if (parseInt(phone.substring(i,i+1))>=0) {
   temp=temp+phone.substring(i,i+1);
  }
 }
 while (temp.substring(0,1)=="1"){
  temp=temp.substring(1,temp.length);
 }
 document.contactForm.phone.value=temp;
}

function fixZip(zip) {
 temp="";
 for (i=0;i<zip.length;i++) {
  if (parseInt(zip.substring(i,i+1))>=0) {
   temp=temp+zip.substring(i,i+1);
  }
 }
 if (temp.length>=9) {
  zip=temp.substring(0,5)+"-"+temp.substring(5,9);
 } else {
  zip=temp.substring(0,5);
 }
 document.contactForm.zip.value=zip;
}

//Verify not a PO Box address
function ValidPOB(address) {
 var ValidPOB = false;
 temp="";
 if (address.length>0) {
  address = address.toUpperCase();
  for (i=0;i<Address.length;i++) {
   if (address.substring(i,i+1)!="." && address.substring(i,i+1)!="," && address.substring(i,i+1)!=" ") {
    temp=temp+address.substring(i,i+1);
   }
  }
  address = temp;
  if (address.substring(0,3)!="POB" && address.substring(0,4)!="POST" && address.substring(0,3)!="BOX") {
   ValidPOB = true;
  }
 } else {
  ValidPOB = true;
 }
 return(ValidPOB);
}

//verify not a APO address
function ValidCity(city) {
 var ValidCity = false;
 temp="";
 if (city.length>0) {
  city = city.toUpperCase();
  for (i=0;i<city.length;i++) {
   if (city.substring(i,i+1)!="." && city.substring(i,i+1)!="," && city.substring(i,i+1)!=" ") {
    temp=temp+city.substring(i,i+1);
   }
  }
  city = temp;
  if (city.substring(0,3)!="APO" && city.substring(0,3)!="AFO") {
   ValidCity = true;
  }
 } else {
  ValidCity = true;
 }
 return (ValidCity);
}

//Reset if address changed
function Address() {
 firstsubmit = false;
}

function prepareSubmit (form)
{
	if (validate())
		form.submit();
}

// main validation function
function validate() {
	errfound = false;
	$("input").removeClass("highlight");
	$("#input").removeClass("highlight");
	with (document.contactForm) {
		if (emailAddress.value.indexOf("@") == -1 || emailAddress.value.indexOf("..") != -1 || emailAddress.value.indexOf(".") == -1 || emailAddress.value.indexOf("@.") != -1 || emailAddress.value.indexOf(".@") != -1 || emailAddress.value.indexOf("@-") != -1 || emailAddress.value.indexOf("-@") != -1 || emailAddress.value.indexOf("@_") != -1 || emailAddress.value.indexOf("_@") != -1 || emailAddress.value.substr(emailAddress.value.indexOf("@"),emailAddress.value.length-1).indexOf(".") == -1 || emailAddress.value.indexOf("@@") != -1) {
			error("L'indirizzo e-mail inserito non \u00e8 valido.\nPer favore inserire un indirizzo valido.",emailAddress);
		}

		for (i=0;i<emailAddress.value.length;i++) {
			temp=emailAddress.value.substring(i,i+1);
			if (EM.indexOf(temp) == -1) {
				error("Il tuo indirizzo e-mail contiene caratteri non validi.\nPer favore controlli il suo indirizzo.",emailAddress);
				break;
			}
		}

		if (emailAddress.value != emailConfirm.value) {
			error("Gli indirizzi email che hai inserito non corrispondono.\nPer favore inserire corrispondenti indirizzi email.",emailConfirm);
		}

		if($('.productLinesLeft:checked').val() == null && $('.productLines:checked').val() == null && !errfound){
   			error("Si prega di selezionare un tipo di prodotto.","trm_productline");
			$("#input").addClass("highlight");
			$("#trm_productline").focus();
		}
	}
	return !errfound;
}

// display an error alert
function error(text,element) {
	if (errfound) return;
	$('#errorMessage').show();
	$('#errorMessage').text(text);
	errfound = true;
	if (element!="" && element!="trm_productline") {
		element.focus();
		$(element).addClass("highlight");
	}
}



