function validatePostJob() {
    var position = document.getElementById('position').value;
    var company = document.getElementById('company').value;
    var jobLoc = document.getElementById('job_loc').value;
    var conName = document.getElementById('con_name').value;
    var telephone = document.getElementById('telephone').value;
    var descrip = document.getElementById('descrip').value;
    var dateavaYear = document.getElementById('dateava_year').value;
    var dateavaMonth = document.getElementById('dateava_month').value;
    var dateavaDay = document.getElementById('dateava_day').value;
    var closingdateYear = document.getElementById('closingdate_year').value;
    var closingdateMonth = document.getElementById('closingdate_month').value;
    var closingdateDay = document.getElementById('closingdate_day').value;
    
    var phoneRegex = /^[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}([- .]?x\d{1,6})?$/i;
    var errors = '';
    var isFail = false;
    
    if(position == '' || company == '' || jobLoc == '' || conName == '' || telephone == '' || descrip == '' || dateavaYear == '' || dateavaDay == '' || dateavaMonth == '' || closingdateYear == '' || closingdateMonth == '' || closingdateDay == '') {
        alert('Please enter all required fields.');
        return false;
    }
    
    if(!phoneRegex.test(telephone)) {
        errors += 'Please enter a valid telephone.\n\n';
        isFail = true;
    }
    
    var currentDate = new Date();
    var dateavaDate = new Date(dateavaYear, dateavaMonth, dateavaDay, 0, 0, 0);
    var closingdateDate = new Date(closingdateYear, closingdateMonth, closingdateDay, 0, 0, 0);
    
    if(dateavaDate.getMonth() != dateavaMonth) {
        errors += 'Please select a valid date available.\n\n';
        isFail = true;
    }
    
    if(closingdateDate.getMonth() != closingdateMonth) {
        errors += 'Please select a valid closing date.\n\n';
        isFail = true;
    }
    
    if(isFail) {
        alert(errors);
    }
    
    return !isFail;
}

function validateJoin() {
    var joinForm = document.getElementById('join_form');
    var firstName = document.getElementById('first_name').value;
    var lastName = document.getElementById('last_name').value;
    var referrerOther = document.getElementById('referrer_other').value;
    var jobTitle = document.getElementById('job_title').value;
    var businessName = document.getElementById('business_name').value;
    var descipline = document.getElementById('descipline').value;
    var specializationOther = document.getElementById('specialization_other').value;
    var cerNum = document.getElementById('cer_num').value;
    
    var salutationChecked = false;
    for(var i=0; i < joinForm.salutation.length; i++) {
	   if(joinForm.salutation[i].checked) {
		  salutationChecked = true;
	   }
    }
    
    var referrerChecked = false;
    for(var i=0; i < joinForm.referrer.length; i++) {
	   if(joinForm.referrer[i].checked) {
	       if(joinForm.referrer[i].value != 'Other') {
	           referrerChecked = true;
	       } else if(referrerOther != '') {
	           referrerChecked = true;
	       }
	   }
    }
    
    var primaryContactChecked = false;
    for(var i=0; i < joinForm.primary_contact.length; i++) {
	   if(joinForm.primary_contact[i].checked) {
		  primaryContactChecked = true;
	   }
    }
    
    var residenceAddressChecked = true;
    for(var i=0; i < joinForm.residence_address.length; i++) {
        // apt and fax field are optional
        if(i != 1 && i != 6) {
            if(joinForm.residence_address[i].value == '') {
                residenceAddressChecked = false;
                break;
            }
        }
    }
    
    var businessAddressChecked = true;
    for(var i=0; i < joinForm.business_address.length; i++) {
        // apt and fax field are optional
        if(i != 1 && i != 6) {
            if(joinForm.business_address[i].value == '') {
                businessAddressChecked = false;
                break;
            }
        }
    }
    
    var degreeChechedNum = 0;
    for(var i=0; i < joinForm.degree.length; i++) {
	   if(joinForm.degree[i].checked) {
		  degreeChechedNum++;
	   }
    }
    
    var specializationCheckedNum = 0;
    for(var i=0; i < joinForm.specialization.length; i++) {
	   if(joinForm.specialization[i].checked) {
	       if(joinForm.specialization[i].value != 'Other') {
	           specializationCheckedNum++;
	       } else if(specializationOther != '') {
	           specializationCheckedNum++;
	       }
	   }
    }
    
    var membershipFeeChecked = false;
    var professionalFeeChecked = false;
    for(var i=0; i < joinForm.membership_fee.length; i++) {
	   if(joinForm.membership_fee[i].checked) {
	      membershipFeeChecked = true;
	      if(joinForm.membership_fee[i].value == 'Professional') {
	       professionalFeeChecked = true;
	      }
	   }
    }
    
    // if professional fee checked the designation ad certificate number must be checked too
    var designationChecked = false;
    for(var i=0; i < joinForm.designation.length; i++) {
	   if(joinForm.designation[i].checked) {
		  designationChecked = true;
	   }
    }
    
    if(firstName == '' || lastName == '' || !salutationChecked || !referrerChecked || jobTitle == '' || businessName == '' || !primaryContactChecked || (!residenceAddressChecked && !businessAddressChecked) || descipline == '' || degreeChechedNum < 2 || specializationCheckedNum < 2 || !membershipFeeChecked || (professionalFeeChecked && (!designationChecked || cerNum == ''))) {
        alert('Please enter all required fields.');
        return false;
    }
}

function validateRenewMembership() {
    var renewMembershipForm = document.getElementById('renew_membership_form');
    var firstName = document.getElementById('first_name').value;
    var lastName = document.getElementById('last_name').value;
    var memberNumber = document.getElementById('member_number').value;
    var jobTitle = document.getElementById('job_title').value;
    var businessName = document.getElementById('business_name').value;
    
    var salutationChecked = false;
    for(var i=0; i < renewMembershipForm.salutation.length; i++) {
	   if(renewMembershipForm.salutation[i].checked) {
		  salutationChecked = true;
	   }
    }
    
    var primaryContactChecked = false;
    for(var i=0; i < renewMembershipForm.primary_contact.length; i++) {
	   if(renewMembershipForm.primary_contact[i].checked) {
		  primaryContactChecked = true;
	   }
    }
    
    var residenceAddressChecked = true;
    for(var i=0; i < renewMembershipForm.residence_address.length; i++) {
        // apt and fax field are optional
        if(i != 1 && i != 6) {
            if(renewMembershipForm.residence_address[i].value == '') {
                residenceAddressChecked = false;
                break;
            }
        }
    }
    
    var businessAddressChecked = true;
    for(var i=0; i < renewMembershipForm.business_address.length; i++) {
        // apt and fax field are optional
        if(i != 1 && i != 6) {
            if(renewMembershipForm.business_address[i].value == '') {
                businessAddressChecked = false;
                break;
            }
        }
    }
    
    var membershipFeeChecked = false;
    var professionalFeeChecked = false;
    for(var i=0; i < renewMembershipForm.membership_fee.length; i++) {
	   if(renewMembershipForm.membership_fee[i].checked) {
	      membershipFeeChecked = true;
	      if(renewMembershipForm.membership_fee[i].value == 'Professional') {
	       professionalFeeChecked = true;
	      }
	   }
    }
    
    // if professional fee checked the designation ad certificate number must be checked too
    var designationChecked = false;
    for(var i=0; i < renewMembershipForm.designation.length; i++) {
	   if(renewMembershipForm.designation[i].checked) {
		  designationChecked = true;
	   }
    }
    
    if(firstName == '' || lastName == '' || !salutationChecked || memberNumber == '' | jobTitle == '' || businessName == '' || !primaryContactChecked || (!residenceAddressChecked && !businessAddressChecked) || !membershipFeeChecked || (professionalFeeChecked && !designationChecked)) {
        alert('Please enter all required fields.');
        return false;
    }
}
