function validateForm(optinForm) {
	var email = optinForm.email.value;
	var postalcode = optinForm.postalcode.value;
	var cellphonenumber = setMSISDN(optinForm);
	var carrier = optinForm.carrier.selectedIndex;
	var countryIndex = optinForm.country.selectedIndex;
	optinForm.attendance.value = 1;
	if ( optinForm.checkedTree[1].checked ) 
		optinForm.attendance.value = 0;
	else if ( optinForm.checkedTree[2].checked )
		optinForm.attendance.value = 2;
	var reEmail = /^[^@]+@.+$/;
	var reZip = /^[0-9]{5}(-[0-9]{4})?$/;
	if ( countryIndex > 0 ) 
		reZip = /^[0-9-]+$/;

	var rePhone = /^[0-9]{10}$/;
	var rePhoneAU = /^04[0-9]{8}$/;
	if ( email == '' ) {
		alert('Please enter an Email Address.');
		return false;
	}
	else if (! reEmail.test(email) ) {
		alert('Please enter a valid Email.');
		return false;
	}
	else if ( cellphonenumber == '' ) {
		alert('Please enter a Phone Number.');
		return false;
	}
	else if ( countryIndex == 2 && ! rePhoneAU.test(cellphonenumber) ) { /* Australia */
		alert('Please enter a 10 digit cellular number beginning with 04');
		return false;
	}
	else if ( countryIndex != 2 && ! rePhone.test(cellphonenumber) ) {
		alert('Please enter a valid Phone Number.');
		return false;
	}	
	else if ( postalcode == '' ) {
		alert('Please enter a Zip Code.');
		return false;
	}  
	else if (! reZip.test(postalcode) ) {
		alert('Please enter a valid Zip Code.');
		return false;
	} 
	else if ( countryIndex == 0 && carrier == 0 ) {
		alert('Please select your carrier. If your carrier is not listed they may not support SMS campaigns.');
		return false;
	}
	if ( countryIndex == 2 ) {
	// remove leading zero
		cellphonenumber = cellphonenumber.substring(1, cellphonenumber.length);
	}
	// make sure form is only submitted once
	optinForm.onsubmit = new Function('return false;');

	return true;
}
function setMSISDN(optinForm) {
	   var phone1 = optinForm.phone1.value;
	   var phone2 = optinForm.phone2.value;
	   var phone3 = optinForm.phone3.value;
	   return optinForm.cellphonenumber.value = phone1 + phone2 + phone3;
}
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
