function getHttpRequestObj() {
  var req = false;
  if(window.XMLHttpRequest) {
      try {
         req = new XMLHttpRequest();
      } 
      catch(e) {
         req = false;
      }
  } 
  else if(window.ActiveXObject) {
      try {
         req = new ActiveXObject("Msxml2.XMLHTTP");
      } 
      catch(e) {
         try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
         } 
         catch(e) {
            req = false;
         }
      }
  }
  return req;
}

function updateCityState(form) {
  
  if(form.postalCode && form.postalCode.value != '') {
	var url = 'getCityState.php?zip=' + form.postalCode.value;
	url += "&sid="+Math.random();
	http = getHttpRequestObj();
	http.onreadystatechange = function() { 
		if(http.readyState == 4){
			var cityStateStr = http.responseText;
			if(cityStateStr.indexOf("|")>0) {
				var dashIndex = cityStateStr.indexOf("|");
				var cityStr = cityStateStr.substring(0,dashIndex);
				var stateStr = cityStateStr.substring(dashIndex+1);
				if(form.city) form.city.value = cityStr;
				if(form.state) {
					for (var iState=0; iState<form.state.length; iState++){
						if(form.state.options[iState].value == stateStr) {
							form.state.selectedIndex = iState;
							break;
						}	
					}
				}
			}
		}
	};
	http.open('GET', url, true);
	http.send(null);
  }

}

function handlePhonePrefixResponse() {
   
   if(http.readyState == 4){
      var progStr = http.responseText;
	  if(progStr.indexOf("invalid")>=0)
		alert(progStr);
   }
}

function verifyPhonePrefixMatch(phone) {
  
  if(phone.length>=10) {
	var url = 'matchPhonePrefix.php?phone=' + escape(phone);
	url += "&sid="+Math.random();
	http = getHttpRequestObj();
	http.onreadystatechange = handlePhonePrefixResponse;
	http.open('GET', url, true);
	http.send(null);
  }
}

function checkPhone(phoneNumber) {
	var stripped = phoneNumber.replace(/[^0-9]/g, '');
	if (stripped.length != 10) {
		return false;
	}
	var areaCode=stripped.substring(0,3);
	var phoneValue=stripped.substring(3);
	if(areaCode=="111"||areaCode=="123"||areaCode=="222"||areaCode=="333"||areaCode=="444"
	||areaCode=="555"||areaCode=="666"||areaCode=="777"||areaCode=="999"||areaCode=="000"||areaCode=="098") {
		return false;
	}
	if(phoneValue.indexOf("000")==0||phoneValue.indexOf("911")==0||phoneValue.indexOf("555")==0||phoneValue.indexOf("1234")==0||phoneValue.indexOf("0123")==0) {
		return false;
	}
	if(phoneValue=="1234567"||phoneValue=="4567890"||phoneValue=="0000000"||phoneValue=="1111111"
	||phoneValue=="2222222"||phoneValue=="3333333"||phoneValue=="4444444"||phoneValue=="5555555"
	||phoneValue=="6666666"||phoneValue=="7777777"||phoneValue=="8888888"||phoneValue=="9999999") {
		return false;
	}
	return true;
}

function step1CheckForm(form) {
	if (form.modality && !form.modality[0].checked && !form.modality[1].checked) {
      alert("Please specify whether you are interested in online or campus-based learning.");
      return (false);
	}
	if (form.postalCode1) {
		if (form.postalCode1.value == "") {
			alert("Please specify your Zip/Postal code.");
			return (false);
		}

		if (form.postalCode1.value.length < 5) {
			alert("Please enter a valid Zip/Postal code of at least 5 digits.");
			form.postalCode1.focus();
			return (false);
		}

		if (form.postalCode1.value.length > 10) {
			alert("Please enter a valid Zip/Postal code of at most 10 digits.");
			form.postalCode1.focus();
			return (false);
		}

		var regZipUS = /^\d{5}$/;
		var regZipCA = /^[a-zA-Z]\d[a-zA-Z](\s)?(-)?(\s)?\d[a-zA-Z]\d$/;
				
		if (!regZipUS.test(form.postalCode1.value) && !regZipCA.test(form.postalCode1.value)) {
			alert("Please enter a valid United States ZIP code in 55555 formoat, or a valid Canada Postal code in A1A 1A1 format.");
			form.postalCode1.focus();
			return (false);
		}
	}
	if (form.interest && form.interest.value == "") {
      alert("Please specify Area of Interest.");
      return (false);
    }
	if (form.program && form.program.value == "") {
      alert("Please specify Program of Interest.");
      return (false);
    }	
	if (form.program && (form.program.value == 'BSN'||form.program.value == 'c_BSN'
		||form.program.value == 'MSN'||form.program.value == 'c_MSN'
		||form.program.value == 'SNC'||form.program.value == 'c_SNC'
		||form.program.value == 'MSN/ED'||form.program.value == 'c_MSN/ED'
		||form.program.value == 'MSN/MHA'||form.program.value == 'c_MSN/MHA'
		||form.program.value == 'MSN/MBA/HC'||form.program.value == 'c_MSN/MBA/HC'
		||form.program.value == 'MSN/NPFT'||form.program.value == 'c_MSN/NPFT'
		||form.program.value == 'MSN/FNP'||form.program.value == 'c_MSN/FNP'
		||form.program.value == 'LPN/BSN'||form.program.value == 'c_LPN/BSN'
		||form.program.value == 'LVN/BSN'||form.program.value == 'c_LVN/BSN')) {
		if (form.registerednurse && !form.registerednurse[0].checked && !form.registerednurse[1].checked) {
			alert("Please specify whether you possess a current, unrestricted license to practice as a registered nurse in at least one U.S. state.");
			return (false);
		}
		if (form.registerednurse && !form.registerednurse[0].checked) {
			alert("Thank you for your interest. This program requires an RN license. Please select another program.");
			return (false);
		}
    }
	return true;
}
//john's improvised step2check
function step2CheckForm(form) {

	if (form.program && (form.program.value.indexOf("MAED") == 0||form.program.value.indexOf("c_MAED") == 0)) {
        if (form.state && (form.state.value == "AR" || form.state.value == "KY" || form.state.value == "MN")) {
            alert("At this time, this program is not offered in your area. Please select a different Program of Interest. Thank you.");
            return (false);
			//if this is the case, show first step again so they can choose diff program
        }
    }
	if (form.military && form.military.value == "---") {
      alert("Please specify whether you are associated with the US military.");
      return (false);
    }
	if (form.educationLevel && form.educationLevel.value == "") {
		alert("Please specify your highest level of education.");
		return (false);
	}
	if (form.program && (form.program.value=='NHCE'||form.program.value=='HCI'||form.program.value=='CERT/GMGT'||form.program.value=='CERT/TMGT'
		||form.program.value.indexOf("M")==0||form.program.value.indexOf("G")==0
		||form.program.value=='c_NHCE'||form.program.value=='c_HCI'||form.program.value=='c_CERT/GMGT'||form.program.value=='c_CERT/TMGT'
		||form.program.value.indexOf("c_M")==0||form.program.value.indexOf("c_G")==0)) {
		if (form.educationLevel && form.educationLevel.value != '48 or more college credits' 
			&& form.educationLevel.value != 'Bachelors' && form.educationLevel.value != 'Masters' 
			&& form.educationLevel.value != 'Doctoral') {
			alert("Your Student Information Form indicates that you do not meet the admissions requirements.");
			return (false);
			//if this is the case, show first step again
		}
    }	
	if (form.program && (form.program.value.indexOf("D")==0||form.program.value.indexOf("PHD")==0||form.program.value.indexOf("E")==0
		||form.program.value.indexOf("c_D")==0||form.program.value.indexOf("c_PHD")==0||form.program.value.indexOf("c_E")==0)) {
		if (form.educationLevel && form.educationLevel.value != 'Masters' 
			&& form.educationLevel.value != 'Doctoral') {
			alert("Your Student Information Form indicates that you do not meet the admissions requirements.");
			return (false);
			//if this is the case, show program selection again
		}
    }
	if (form.custom1 && !form.custom1[0].checked && !form.custom1[1].checked) {
        alert("Please specify whether any college credits were earned at institutions outside of the United States.");
        return (false);
    }
    if (form.custom2 && !form.custom2[0].checked && !form.custom2[1].checked) {
        alert("Please specify whether you are a United States citizen.");
        return (false);
    }
    return true;
}

//john's improvised step3check
function step3CheckForm(form) {
	if (form.firstName && form.firstName.value == "") {
      alert("Please specify First Name.");
      return (false);
    }

	if (form.firstName && form.firstName.value.length < 2) {
      alert("First Name must be at least 2 characters long.");
      return (false);
    }

	if (form.lastName && form.lastName.value == "") {
      alert("Please specify Last Name.");
      return (false);
    }

	if (form.lastName && form.lastName.value.length < 2) {
      alert("Last Name must be at least 2 characters long.");
      return (false);
    }

	if (form.emailAddress && form.emailAddress.value == "") {
		alert("Please specify your email address.");
		return (false);
	}

	var regEmail = /^\S+@\S+(\.\S+)+$/;
	if (form.emailAddress && !regEmail.test(form.emailAddress.value))
	{
		alert("Please enter a valid e-mail address.")
		return (false);
	}

    if (form.address1 && form.address1.value == "") {
      alert("Please specify Address.");
      return (false);
    }

	if (form.address1 && form.address1.value.length < 4) {
      alert("Address must be at least 4 characters long.");
      return (false);
    }

    if (form.city && form.city.value == "") {
      alert("Please specify City.");
      return (false);
    }

    if (form.state && form.state.value == "") {
      alert("Please select State.");
      return (false);
    }
	if (form.program && (form.program.value.indexOf("MAED") == 0||form.program.value.indexOf("c_MAED") == 0)) {
        if (form.state && (form.state.value == "AR" || form.state.value == "KY" || form.state.value == "MN")) {
            alert("At this time, this program is not offered in your area. Please select a different Program of Interest. Thank you.");
            return (false);
        }
    }
	if(form.businessPhone && form.homePhone) {
		if(form.businessPhone.value == "" && form.homePhone.value == "" && (!form.mobilePhone || form.mobilePhone.value == "")) {
			alert("Please provide one phone number.");
			return (false);
		}
		else if(!checkPhone(form.businessPhone.value) && !checkPhone(form.homePhone.value) && (!form.mobilePhone ||!checkPhone(form.mobilePhone.value))) {
			alert("Please provide one valid phone number.");
			return (false);
		}
		else {
			validPhone = form.homePhone.value;
			if(!checkPhone(form.homePhone.value) && checkPhone(form.businessPhone.value)) {
				validPhone = form.businessPhone.value;
			}
			else if(!checkPhone(form.homePhone.value) && form.mobilePhone && checkPhone(form.mobilePhone.value)) {
				validPhone = form.mobilePhone.value;
			}
			if(!checkPhone(form.homePhone.value)) {
				form.homePhone.value = validPhone;
			}
			if(!checkPhone(form.businessPhone.value)) {
				form.businessPhone.value = validPhone;
			}
		}
		if (form.custom4) {
			if(form.custom4.value=='') {
				alert("Please specify your Preferred Phone.");
				return (false);
			}
			if(form.custom4.value=='home') {
		        if(form.homePhone.value == "") {
					alert("Please provide home phone number.");
					return (false);
				}
				if(!checkPhone(form.homePhone.value)) {
					alert("Please provide valid home phone number.");
					return (false);
				}
			}
			else if(form.custom4.value=='work') {
			    if(form.businessPhone.value == "") {
					alert("Please provide work phone number.");
					return (false);
				}
				if(!checkPhone(form.businessPhone.value)) {
					alert("Please provide valid work phone number.");
					return (false);
				}
			}
			else if(form.custom4.value=='mobile') {
				if(form.mobilePhone.value == "") {
					alert("Please provide mobile phone number.");
					return (false);
				}
				if(!checkPhone(form.mobilePhone.value)) {
					alert("Please provide valid mobile phone number.");
					return (false);
				}
			}
		}
	}
	if (form.military && form.military.value == "---") {
      alert("Please specify whether you are associated with the US military.");
      return (false);
    }
	if (form.educationLevel && form.educationLevel.value == "") {
		alert("Please specify your highest level of education.");
		return (false);
	}
	if (form.program && (form.program.value=='NHCE'||form.program.value=='HCI'||form.program.value=='CERT/GMGT'||form.program.value=='CERT/TMGT'
		||form.program.value.indexOf("M")==0||form.program.value.indexOf("G")==0
		||form.program.value=='c_NHCE'||form.program.value=='c_HCI'||form.program.value=='c_CERT/GMGT'||form.program.value=='c_CERT/TMGT'
		||form.program.value.indexOf("c_M")==0||form.program.value.indexOf("c_G")==0)) {
		if (form.educationLevel && form.educationLevel.value != '48 or more college credits' 
			&& form.educationLevel.value != 'Bachelors' && form.educationLevel.value != 'Masters' 
			&& form.educationLevel.value != 'Doctoral') {
			alert("Your Student Information Form indicates that you do not meet the admissions requirements. Please choose another degree program.");
			return (false);
		}
    }	
	if (form.program && (form.program.value.indexOf("D")==0||form.program.value.indexOf("PHD")==0||form.program.value.indexOf("E")==0
		||form.program.value.indexOf("c_D")==0||form.program.value.indexOf("c_PHD")==0||form.program.value.indexOf("c_E")==0)) {
		if (form.educationLevel && form.educationLevel.value != 'Masters' 
			&& form.educationLevel.value != 'Doctoral') {
			alert("Your Student Information Form indicates that you do not meet the admissions requirements. Please choose another degree program.");
			return (false);
		}
    }
	if (form.custom1 && !form.custom1[0].checked && !form.custom1[1].checked) {
        alert("Please specify whether any college credits were earned at institutions outside of the United States.");
        return (false);
    }
    if (form.custom2 && !form.custom2[0].checked && !form.custom2[1].checked) {
        alert("Please specify whether you are a United States citizen.");
        return (false);
    }
    if (form.contactRequest && !form.contactRequest.checked) {
        alert("To request more information, you must understand that you will be contacted by a University of Phoenix representative.");
        return (false);
    }

    return true;
}

	//set the 2nd zip field to show the first zip field's value
function syncZip() {
	document.getElementById('zipField').value = document.getElementById('zipField1').value;
}

function uoponlineProgramChange(form)
{
	if (form.program.value == 'BSN'||form.program.value == 'c_BSN'
		||form.program.value == 'MSN'||form.program.value == 'c_MSN'
		||form.program.value == 'SNC'||form.program.value == 'c_SNC'
		||form.program.value == 'MSN/ED'||form.program.value == 'c_MSN/ED'
		||form.program.value == 'MSN/MHA'||form.program.value == 'c_MSN/MHA'
		||form.program.value == 'MSN/MBA/HC'||form.program.value == 'c_MSN/MBA/HC'
		||form.program.value == 'MSN/NPFT'||form.program.value == 'c_MSN/NPFT'
		||form.program.value == 'MSN/FNP'||form.program.value == 'c_MSN/FNP'
		||form.program.value == 'LPN/BSN'||form.program.value == 'c_LPN/BSN'
		||form.program.value == 'LVN/BSN'||form.program.value == 'c_LVN/BSN') {
		document.getElementById("NursingDiv").style.display = "block";
    }
    else {
		document.getElementById("NursingDiv").style.display = "none";
    }
}

function handleHttpResponse(form) {
   
   if(http.readyState == 4){
      var progStr = http.responseText;
	  var arr = Array();
	  arr = progStr.split("\n");
	  
		if(progStr){
			updatePrograms(arr,form);
		
			var modality = form.modality.value;
			
			var bCampusProgs = false;
			
			for(var i=0;i<arr.length;i++){
				
				if(modality == 'campus' && arr[i].match(/Campus Programs/))
				{
					bCampusProgs = true;
					break;
				}
			}

			if(document.getElementById("sorry_text"))
			{
				if(modality == 'campus' && !bCampusProgs)
				{
					document.getElementById("sorry_text").innerHTML = "<br/><strong>There are no campus-based programs to match your Area of Interest. Please select a different Area of Interest, or an online program from the list below.</strong><br/><br/>";
				}
				else
				{
					document.getElementById("sorry_text").innerHTML = '';
				}
			}
		}
   }
}


function updatePrograms(a, form) {
	
	if(a.length != 0) {
		clearPrograms(form);
		
		var progs = getProgramsElem(form);
		
		
		for(var i=0;i<a.length;i++){
			if(a[i]){
				var arr = Array();
				arr = a[i].split(":");
    			var opt = document.createElement("OPTION");
				opt.value = arr[0];
				opt.text = arr[1];
				if(opt.text.match(/Online Programs/) || opt.text.match(/Campus Programs/)){
					opt.style.backgroundColor="#CCCCCC";
					opt.style.font_weight="bold";
				}
				progs.options.add(opt);
			}
		}
	}
}

function loadPrograms(form) {
  if (form.modality && !form.modality[0].checked && !form.modality[1].checked) {
      alert("Please specify whether you are interested in online or campus-based learning.");
	  getInterestElem(form).selectedIndex = 0;
      return (false);
  }
  if (form.postalCode1 && form.postalCode1.value == "") {
      alert("Please specify your Zip.");
	  getInterestElem(form).selectedIndex = 0;
      return (false);
  }
  var modalitySelect = "online";
  if (form.modality && form.modality[0].checked) modalitySelect = "campus";
  var interestSelect = getInterestElem(form);
  var interest = interestSelect.value;
  
  var url = '/getPrograms.php?interest=' + interest;
  
  url += '&modality='+modalitySelect;
  url += '&zip=' + form.postalCode1.value;
  url += "&sid="+Math.random();
  http = getHttpRequestObj();
  http.onreadystatechange = function() {
	  handleHttpResponse(form);
  }
  http.open('GET', url, true);
  http.send(null);
}

function getProgramsElem(form) {
   return form.program;
}

function getInterestElem(form) {
   return form.interest;
}


function clearPrograms(form) {
 var selectbox = getProgramsElem(form);
 var i;
 for(i=selectbox.options.length-1;i>=0;i--) {
    selectbox.remove(i);
 }

}

var submitNum=0;

function checkSubmitNum()
{
  if (submitNum == 0)
  {
      submitNum++;
      return (true);
  }
  else
  {
      alert("The form is still processing. Please wait...");
      return (false);
  }
}
