/*****************************************************
Form validation and DHTML functionality
for Florida Marine Aquarium Society (FMAS)
@author Pedro Riera
@created Sept 27, 2008

********************************************************/


function selectedValue(object) {

	var objVal = object.options[object.selectedIndex].value;
	
	//alert(objVal);

	return objVal;
}

function selectMembershipType(object) {
	var membershipTypeId = selectedValue(object);
	/* Check if user is selecting commercial membership
		, enable commercial fields
	*/
	if (membershipTypeId == "3" || membershipTypeId == "10") {
		document.getElementById("commRow").style.display = "block";
	}  else {
		document.getElementById("commRow").style.display = "none";
	}
	
	/* Check if user is selecting family membership
		, enable family members fields
	*/
	if (membershipTypeId == "2" || membershipTypeId == "9") {
		document.getElementById("famRow").style.display = "block";
	}  else {
		document.getElementById("famRow").style.display = "none";
	}
	
	

}

function validatePhone(object) {
   if(object.value.search(/\d{3}\-\d{3}\-\d{4}/)==-1) {
      alert("The phone number you entered is not valid.\r\nPlease enter a phone number with the format xxx-xxx-xxxx.");
      object.focus();
      object.select();
      return false;
   }
   return true;
}

function validateEmailAddress(object) {
		
		var str = object.value;
		var invalid = false;

		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
		
		if (str.indexOf(at) == -1){
		   invalid = true;
		}

		if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr){
			invalid = true;
		}

		if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr){
		   invalid = true;
		}

		 if (str.indexOf(at,(lat+1)) != -1){
		   invalid = true;
		 }

		 if (str.substring(lat-1,lat) == dot || str.substring(lat + 1, lat + 2) == dot){
		   invalid = true;
		 }

		 if (str.indexOf(dot,(lat+2)) == -1){
		   invalid = true;
		 }
		
		 if (str.indexOf(" ") != -1){
		   invalid = true;
		 }
		 
		 if (invalid) {
		 	alert("The email address you entered appears to be invalid.");
		 	object.focus();
			object.select();
		 	return false;
		 }
		 

 		 return true;					
	}


function validateRequiredSelectList(object, label) {

	var objVal = selectedValue(object);

	if (objVal == "") {
		alert(label + " is required.");
		object.options[0].focus();
		return false;
	}
	return true;
}


function validateRequiredField(object, label) {

	var objVal = object.value;

	if (objVal == "") {
		alert(label + " is required.");
		object.focus();
		object.select();
		return false;
	}
	return true;
}

function checkMembershipForm(form) {

	if (!validateRequiredSelectList(form.membership_type, "Type of Membership")) {
		return false;
	}
	// Company is required for commercial memberships
	if (selectedValue(form.membership_type) == "3" || selectedValue(form.membership_type) == "10") {
		if (!validateRequiredField(form.company, "Company")) {
			return false;
		}
	}
	if (!validateRequiredField(form.first_name, "First Name")) {
		return false;
	}
	if (!validateRequiredField(form.last_name, "Last Name")) {
		return false;
	}
	if (!validateRequiredField(form.address, "Address")) {
		return false;
	}
	if (!validateRequiredField(form.city, "City")) {
		return false;
	}
	if (!validateRequiredField(form.zip, "Zip Code")) {
		return false;
	}
	if (!validateRequiredField(form.email, "Email")) {
		return false;
	} 
	if (!validateEmailAddress(form.email)) {
		return false;
	}
	if (!validateRequiredField(form.phone, "Phone")) {
		return false;
	}

	if (!validatePhone(form.phone)) {
		return false;
	}
	if (!validateRequiredField(form.pwd, "Password")) {
		return false;
	}
	if (!validateRequiredField(form.cnf_pwd, "Confirm Password")) {
		return false;
	}

	// compare the password fields
	if (form.cnf_pwd.value != form.pwd.value) {
		alert("The passwords you entered do not match, please correct and click 'Continue'");
		form.pwd.focus();
		form.pwd.select();
		return false;
	}

	return true;
	
}





