function switchAgree() {
  if (document.agreement.agree[0].checked == true) {
    document.agreement.iagree.style.backgroundColor = '#CCCCCC';
    document.agreement.iagree.disabled = true;
  }
  if (document.agreement.agree[1].checked == true) {
    document.agreement.iagree.style.backgroundColor = '#8DA9C2';
    document.agreement.iagree.disabled = false;
  }
}

function checkUser(myform, step) {
	// skip the check if "cancel" is pressed
	if (typeof myform.dobutton != "undefined") {
		if (myform.dobutton.value == 'CANCEL') {
			return true;
		}
	}
	
	var nameFilter = /^[a-z]([a-z]|-|\s)+$/i;
  var altFilter = /^[a-z]([a-z]|\s|\-|,|\.)+$/i;
  var phoneFilter = /^(\s|\-|\+|\(|\)|\d){10,}$/;
  var emailFilter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  var urlFilter = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
  var streetFilter = /^\w(\w|\-|\s|\,|\.|#|\(|\)){4,}$/i;
  var cityFilter = /^([a-z]|\-|\s|\,|\.)+$/i;
  var zipFilter = /^(\w|-|\s){4,}$/i;
  var numericFilter = /^\d+$/;
  var cupFilter = /^([A B C D E F G]){1,2}$/;
  var alphanumFilter = /^\w+(\w|\s|\-|,|\.|\')+$/i;
  var photoFilter = /\.(jpg|jpeg|gif|png)$/i;
  var resumeFilter = /\.(doc|docx|pdf)$/i;
  
	if (step == 1) {
		var shortest = 4;
		var nUser=myform.email1.value;
  	var nPass=myform.password.value;
  	var nCPass=myform.confirmpassword.value;
  	
  	// check last name
  	var nameErr = "Permitted characters are: " +
                 "[a-z] [A-Z] -";

  	var lName = myform.lastname.value;
  	if (nameFilter.test(lName)) {}
  	else { 
    	var err = "Please enter a valid Last Name.\n" + nameErr;
    	var badfield = "lastname";
  	}
 
  	// check first name
  	var fName = myform.firstname.value;
  	if (nameFilter.test(fName)) {}
  	else {
   		var err = "Please enter a valid First Name.\n" + nameErr;
    	var badfield = "firstname";
  	}
  	  	
  	if (getSelectedRadio(myform.gender) == -1) {
  		var err = "Please select your gender.\n";
  		var badfield = "firstname";
  	}
  	
  	// check birthdate 
  	if (validateDate(myform.birthday, myform.birthmonth, 
      	myform.birthyear) == false) {
    	var err = "Please select a valid Birthdate.";
    	badfield = "birthmonth";
  	}
  	
  	// check age
  	var today = new Date();
  	var born = Date.parse(myform.birthmonth.value + "/" + myform.birthday.value + "/" + myform.birthyear.value);
  	var diff_date = today - born;
  	var age = diff_date/31536000000;
  	if (age < 18) {
  		var err = "Sorry. You must be 18 or over.";
    	badfield = "birthmonth";
    }
  
  	var filter=/^([\w-]+(?:\.[\w-]+)*)$/i;
  	if (nUser == nPass) {
    	var err = "Email/Username and Password cannot be the same.";
    	var badfield = "password";
  	}
  	if (nPass != nCPass) { 
    	var err = "Password/Confirm Password must match."; 
    	var badfield = "password";
  	}
  	if (nCPass.length = 0) {
    	var err = "Confirm your password."; 
    	var badfield = "confirmpassword";
  	}
  	if (nPass.length < shortest) { 
    	var err = "Your password must be at least " + shortest + " characters."; 
    	var badfield = "password";
  	}
  	
  	// check email address
  	if (emailFilter.test(nUser)) {}
  	else {
    	var err = "Please enter a valid Email address.";
    	var badfield = "email1";
  	}
  	if (myform.confirmemail.value != nUser) { 
    	var err = "Email and Confirmation email must match."; 
    	var badfield = "email1";
  	}
  	
  	// check languages
  	var langArr = getSelectedCheckbox(myform.language);
  	if (langArr.length == 0) {
    	var err = "Please select at least one language.";
    	var badfield = "altlanguage";
  	}
  	if (langArr[langArr.length-1] == 9) { 
    	if (altFilter.test(myform.altlanguage.value)) {}
    	else {
      	var err = "Please specify a valid 'Other' language.\n" +  
        	        "Permitted characters are: [a-z] [A-Z] [space] - , .";
      	var badfield = "altlanguage";
    	}
		}

  	// check ethnicity
  	var ethnicityArr = getSelectedCheckbox(myform.ethnicity);
  	if (ethnicityArr.length == 0) {
    	var err = "Please select at least one Ethnic group,\n" +
      	        "or check 'Prefer not to Share'.";
    	var badfield = "altethnicity";
  	}
  	if (ethnicityArr[ethnicityArr.length-1] == 8) {
    	if (altFilter.test(myform.altethnicity.value)) {}
    	else {
      	var err = "Please specify a valid 'Other' ethnicity.\n" + 
        	        "Permitted characters are: [a-z] [A-Z] [space] - , .";
      	var badfield = "altethnicity";
    	}
  	}
  	
  }
  else if (step == 2) {
  	var ph1 = myform.phone_1.value;
  	var ph2 = myform.phone_2.value;
  	var ph3 = myform.phone_3.value;
  	var ph4 = myform.phone_4.value;
  	var ph5 = myform.phone_5.value;
  	var ph6 = myform.phone_6.value;
  	var ph7 = myform.phone_7.value;
  	var ph8 = myform.phone_8.value;
  	var ph9 = myform.phone_9.value;
  	
  	var phone1 = ph1 + "-" + ph2 + "-" + ph3;
  	var confirmphone1 = ph4 + "-" + ph5 + "-" + ph6;
  	var phone2 = ph7 + "-" + ph8 + "-" + ph9;
  	
  	if (phone1 != confirmphone1) { 
    	var err = "Phone/Confirm Phone must match."; 
    	var badfield = "phone_1";
  	}
  	
  	//phone1 tests
  	if (numericFilter.test(ph1) && numericFilter.test(ph2) && numericFilter.test(ph3)) {}
  	else {
    	var err = "Please enter a valid Primary phone number.\n";
    	var badfield = "phone_1";
  	}
  	if (ph1.length + ph2.length + ph3.length < 10) {
  		var err = "Please enter a valid Primary phone number.\n";
    	var badfield = "phone_1";
    }
    
    //phone2 tests
    if (ph7.length != 0 || ph8.length != 0 || ph9.length != 0) {
  	  if (numericFilter.test(ph7) && numericFilter.test(ph8) && numericFilter.test(ph9)) {}
  		else {
    		var err = "Please enter a valid Secondary phone number.\n";
    		var badfield = "phone_7";
  		}
  		if (ph7.length + ph8.length + ph9.length < 10) {
  			var err = "Please enter a valid Secondary phone number.\n";
    		var badfield = "phone_7";
    	}
    }
    
    // check country
    if ((myform.country[0].checked == true || myform.country[1].checked == true)&& myform.state.value == 'n/a') {
			var err = "You have selected 'NOT IN USA OR CANADA' for State, and "; 
			if(myform.country[0].checked == true) {
  			err += "'USA' for ";
			}
			else {
  			err += "'Canada' for ";
			}
			err += "country."
      badfield = "zip";
    }
    if (myform.country[2].checked == true) {
      if (altFilter.test(myform.altcountry.value)) {
        myform.state.value = 'n/a';
      }
      else {
        var err = "Please specify a valid 'Other' country.\n" +
                  "Permitted characters are: [a-z] [A-Z] [space] - , .";
        var badfield = "altcountry";
      }
    }
      
    
    // check zip code
    if (zipFilter.test(myform.zip.value)) {}
    else {
      var err = "Please enter a valid Zip code.";
      var badfield = "zip";
    }
  
    // check state
    if (myform.state.selectedIndex == 0) {
      var err = "Please select a State.";
      var badfield = "state";
    }
  
    // check city
    if (cityFilter.test(myform.city.value)) {}
    else {
      var err = "Please enter a valid City.";
      var badfield = "city";
    }
  
    var streetErr = "At least 4 characters.\n" +
                    "Permitted characters are: [a-z] [A-Z] [0-9] ( ) - # , .";
  
    // Street address line 2 is not required, and can accept any characters.
  
    // check street address line 1
    if (streetFilter.test(myform.street1.value)) {}
    else {
      var err = "Please enter a valid Street address.\n" + streetErr;
      var badfield = "street1";
    }
    
  	if (myform.url.value != 0) {
    	if (urlFilter.test(myform.url.value)) {}
    	else {
      	var err = "Please enter a valid Website address.\n" + 
        	        "e.g. www.yourwebsite.com";
      	var badfield = "url";
    	}
  	}
  }
  else if (step == 3) {
		// check eye color
    if (myform.eyes.selectedIndex == 0) {
      var err = "Please select an Eye Color.";
      var badfield = "eyes";
    }
    // check hair color
    if (myform.hair.selectedIndex == 0) {
      var err = "Please select a Hair Color.";
      var badfield = "hair";
    }
    // check weight
    if (numericFilter.test(myform.weight.value)) {}
    else {
      var err = "Please enter a valid Weight."; 
      var badfield = "weight";
    }
    // check height
    if (myform.heightfoot.selectedIndex == 0 || 
       myform.heightinch.selectedIndex == 0) {
      var err = "Please select a valid Height.";
      var badfield = "heightfoot";
    }
    // check shoesize
    if (myform.shoesize.selectedIndex == 0) {
      var err = "Please select a valid shoe size.";
      var badfield = "shoesize";
    }
    
    // check piercings
    if (myform.piercings[0].checked == true) {
      if (alphanumFilter.test(myform.altpiercings.value)) {}
      else {
        var err = "Please provide a valid description of your piercings.\n" +
                  "Permitted characters are: [a-z] [A-Z] [0-9] [space] - , .";
        var badfield = "altpiercings";
      }
    } 
  
    // check tattoos
    if (myform.tattoos[0].checked == true) {
      if (alphanumFilter.test(myform.alttattoos.value)) {}
      else {
        var err = "Please provide a valid description of your tattoos.\n" +
                  "Permitted characters are: [a-z] [A-Z] [0-9] [space] - , .";
        var badfield = "alttattoos";
      }
    }
    
		// check gender specific measurements
    // male
    if (myform.gender.value == 'M') {
      // check shirt
      if (myform.male_shirt.selectedIndex == 0) {
        var err = "Please select a Shirt size.";
        var badfield = "male_shirt";
      } 
      
      // check neck
      //if (numericFilter.test(myform.male_neck.value)) {}
      //else {
      //  var err = "Please enter a valid Neck size, in inches.";
      //  var badfield = "male_neck";
      //}
      // check sleeve
      //if (numericFilter.test(myform.male_sleeve.value)) {}
      //else {
      //  var err = "Please enter a valid Sleeve length, in inches.";
      //  var badfield = "male_sleeve";
      //}
      
      // check inseam
      if (numericFilter.test(myform.male_inseam.value)) {}
      else {
        var err = "Please enter a valid Inseam size, in inches.";
        var badfield = "male_inseam";
      }
      // check waist
      if (numericFilter.test(myform.male_waist.value)) {}
      else {
        var err = "Please enter a valid Waist size, in inches.";
        var badfield = "male_waist";
      }
    }
    // female
    if (myform.gender.value == 'F') {
    	// check shirt
      if (myform.female_shirt.selectedIndex == 0) {
        var err = "Please select a Shirt size.";
        var badfield = "female_shirt";
      } 
      // check dress
      if (myform.female_dress.selectedIndex == 0) {
        var err = "Please select a Dress size.";
        var badfield = "female_dress";
      }
      // check cup
      if (cupFilter.test(myform.female_cup.value)) {}
      else {
        var err = "Please enter a valid Cup size.";
        var badfield = "female_cup";
      }
      // check hips
      if (numericFilter.test(myform.female_hips.value)) {}
      else {
        var err = "Please enter a valid Hip size.";
        var badfield = "female_hips";
      }
      // check waist
      if (numericFilter.test(myform.female_waist.value)) {}
      else {
        var err = "Please enter a valid Waist size.";
        var badfield = "female_waist";
      }
      // check chest
      if (numericFilter.test(myform.female_chest.value)) {}
      else {
        var err = "Please enter a valid Chest size.";
        var badfield = "female_chest";
      }
    }
    // check photo 2
    if (!checkFileUpload(myform.photo2, photoFilter)) {
			var err = "Please provide two valid Photo files.\n" +
				"Permitted types are: jpg, gif, png";
			var badfield = "shoesize";
		}
		
	  // check photo 1
	  if (!checkFileUpload(myform.photo1, photoFilter)) {
			var err = "Please provide two valid Photo files.\n" +
				"Permitted types are: jpg, gif, png";
			var badfield = "shoesize";
		}
  }
  else if (step == 4) {
  	// check experience
    if (myform.experience.value.length < 5) {
      var err = "Please enter a descriptive summary of your Experience.\n";
      var badfield = "experience";
    }
    
    // check sectors
    var sectorArr = getSelectedCheckbox(myform.sector);
    if (sectorArr.length == 0) {
      var err = "Please check at least one Sector.";
      var badfield = "altsector";
    }   
    if (sectorArr[sectorArr.length-1] == 25) { 
      if (altFilter.test(myform.altsector.value)) {}
      else {
        var err = "Please specify a valid 'Other' sector.\n" +
                  "Permitted characters are: [a-z] [A-Z] [space] - , .";
        var badfield = "altsector"; 
      }
		}
		// check resume
		if (!checkFileUpload(myform.resume, resumeFilter)) {
			var err = "Please provide a valid Resume file.\n" +
		               "Permitted types are: doc, docx, pdf";
		   var badfield = "resume";
		}
	}
	else if (step == 5) {
		// check availability
    var availArr = getSelectedCheckbox(myform.availability);
    if (availArr.length == 0) {
      var err = "Please check at least one period of Availability.";
      var badfield = "altavailability";
    } 
    if (availArr[availArr.length-1] == 4) {
      if (altFilter.test(myform.altavailability.value)) {}
      else {
        var err = "Please specify a valid 'Other' availability.\n" +
                  "Permitted characters are: [a-z] [A-Z] [space] - , .";
        var badfield = "altavailability";
      }
    }
  
    // check willtravel
    var willArr = getSelectedRadio(myform.willtravel);
    if (willArr == '-1') {
    var err = "Please select a Travel for Work choice (Yes/No/Maybe).";
      var badfield = "willtravel";
    }
  
    // check transport
    if (myform.hastransport[0].checked == false && 
       myform.hastransport[1].checked == false) {
      var err = "Please select a Transporton choice (Yes/No).";
      var badfield = "hastransport";
    }
    // check locations
	  //var locationArr = getSelectedCheckbox(myform.location);
	  //if (locationArr.length == 0) {
	  //  var err = "Please check at least one Location.";
	  //  var badfield = "location";
	  //}
	}
	else if (step == 6) {
		if (myform.referrer.selectedIndex == 0){
			var err = "Please explain how you heard about us.";
			var badfield = "referrer";
		}
		if (myform.referrer_notes.value.length < 2){
			var err = "Please provide some details about how you heard of us.";
			var badfield = "referrer_notes";
		}
	}
	
  
  if (err) { 
    alert(err); 
    myform.elements[badfield].focus(); 
    return false; 
  }
  else return true;
}

function validateDate(day, month, year) {
//check correct number of day for given month/year
  if (day.selectedIndex != 0 && month.selectedIndex != 0 
  && year.selectedIndex != 0) {
    switch(month.value) {
      case "02" :
        //February
        if (year.value == Math.round(year.value / 4) * 4) {
          //leap year
          if (day.value > 29) { return false; } 
        }
        else {
          //non-leap year
          if (day.value > 28) { return false; } 
        }
      break;	
      case "04" :
        //April
          if (day.value > 30) { return false; }	
      break;
      case "06":
        //June
          if (day.value > 30) { return false; }	
      break;		
      case "09":
        //September
        if (day.value > 30) { return false; }	
      break;
      case "11":
        //November
        if (day.value > 30) { return false; }	
      break;
      default:
        //date is valid
        return true;
      break;
    }
  }
  else {
    return false;
  }
}

function getSelectedRadio(buttonGroup) {
  // returns the array number of the selected radio button or 
  // -1 if no button is selected
  // if the button group is an array (one button is not an array)
  if (buttonGroup[0]) { 
    for (var i=0; i<buttonGroup.length; i++) {
      if (buttonGroup[i].checked) {
        return i
      }
    }
  } 
  // if the one button is checked, return zero
  else {
    if (buttonGroup.checked) { return 0; }
  }
  // if we get to this point, no radio button is selected
  return -1;
} 

function getSelectedCheckbox(buttonGroup) {
   // Go through all the check boxes. return an array of all the ones
   // that are selected (their position numbers). if no boxes were checked,
   // returned array will be empty (length will be zero)
   var retArr = new Array();
   var lastElement = 0;
   // if the button group is an array (one check box is not an array)
   if (buttonGroup[0]) { 
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            retArr.length = lastElement;
            retArr[lastElement] = i;
            lastElement++;
         }
      }
   } else { // There is only one check box (it's not an array)
      if (buttonGroup.checked) { // if the one check box is checked
         retArr.length = lastElement;
         retArr[lastElement] = 0; // return zero as the only array value
      }
   }
   return retArr;
}

function isArray(obj){return(typeof(obj.length)=="undefined")?false:true;}

function checkNewCon(myform) {
  var nameFilter = /^[a-z]([a-z]|-|\s)+$/i;
  var altFilter = /^[a-z]([a-z]|\s|\-|,|\.)+$/i;
  var phoneFilter = /^(\s|\-|\+|\(|\)|\d){10,}$/;
  var emailFilter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  var urlFilter = /^(http\:\/\/)\w+([\.\-]\w+)*\.\w{2,4}(\:\d+)*([\/\.\-\?\&\%\#\=]\w+)*\/?$/i;
  var streetFilter = /^\w(\w|\-|\s|\,|\.|#|\(|\)){4,}$/i;
  var cityFilter = /^([a-z]|\-|\s|\,|\.)+$/i;
  var zipFilter = /^(\w|-|\s){4,}$/i;
  var numericFilter = /^\d+$/;
  var cupFilter = /^([A B C D E F G]){1,2}$/;
  var alphanumFilter = /^\w+(\w|\s|\-|,|\.|\')+$/i;
  var photoFilter = /\.(jpg|jpeg|gif|png)$/i;
  var resumeFilter = /\.(doc|docx|pdf)$/i;

  // check availability
  var availArr = getSelectedCheckbox(myform.availability);
  if (availArr.length == 0) {
    var err = "Please check at least one period of Availability.";
    var badfield = "availability";
  } 
  if (availArr[availArr.length-1] == 4) {
    if (altFilter.test(myform.altavailability.value)) {}
    else {
      var err = "Please specify a valid 'Other' availability.\n" +
                "Permitted characters are: [a-z] [A-Z] [space] - , .";
      var badfield = "altavailability";
    }
  }

  // check willtravel
  var willArr = getSelectedRadio(myform.willtravel);
  if (willArr == '-1') {
  var err = "Please select a Travel for Work choice (Yes/No/Maybe).";
    var badfield = "willtravel";
  }
  
  // check locations
  var locationArr = getSelectedCheckbox(myform.location);
  var locationArr_ca = getSelectedCheckbox(myform.location_ca);
  if (locationArr.length == 0 && locationArr_ca.length == 0) {
    var err = "Please check at least one Location.";
    var badfield = "location";
  }  
  if (locationArr[locationArr.length-1] == 63) {
    if (altFilter.test(myform.altlocation.value)) {}
    else { 
      var err = "Please specify a valid 'Other' location.\n" +
                "Permitted characters are: [a-z] [A-Z] [space] - , .";
      var badfield = "altlocation";
    }
  }

  // check transport
  if (myform.hastransport[0].checked == false && 
     myform.hastransport[1].checked == false) {
    var err = "Please select a Transporton choice (Yes/No).";
    var badfield = "hastransport";
  }

  // check resume
  if (myform.resume.value.length != 0) {
    if (resumeFilter.test(myform.resume.value)) {}
    else {
      var err = "Please provide a valid Resume file.\n" +
                "Permitted types are: doc, docx, rtf, txt, pdf, html";
      var badfield = "resume";
    }
  }

  // check experience
  if (myform.experience.value.length < 5) {
    var err = "Please enter a brief summary of your Experience.\n";
    var badfield = "experience";
  }
  
  // check sectors
  var sectorArr = getSelectedCheckbox(myform.sector);
  if (sectorArr.length == 0) {
    var err = "Please check at least one Sector.";
    var badfield = "sector";
  }   
  if (sectorArr[sectorArr.length-1] == 14) { 
    if (altFilter.test(myform.altsector.value)) {}
    else {
      var err = "Please specify a valid 'Other' sector.\n" +
                "Permitted characters are: [a-z] [A-Z] [space] - , .";
      var badfield = "altsector"; 
    }
  } 

  // check photo 2
  if (myform.photo2.value.length != 0) {
    if (photoFilter.test(myform.photo2.value)) {}
    else {
      var err = "Please provide a valid Image file.\n" +
                "Permitted types are: jpg, gif, png";
      var badfield = "photo2";
    }
  }
  // check photo 1
  if (myform.photo1.value.length != 0) {
    if (photoFilter.test(myform.photo1.value)) {}
    else {
      var err = "Please provide a valid Image file.\n" +
                "Permitted types are: jpg, gif, png";
      var badfield = "photo1";
    }
  }
  
  // check piercings
  if (myform.piercings[1].checked == true) {
    if (alphanumFilter.test(myform.altpiercings.value)) {}
    else {
      var err = "Please provide a valid description of your piercings.\n" +
                "Permitted characters are: [a-z] [A-Z] [0-9] [space] - , .";
      var badfield = "altpiercings";
    }
  } 

  // check tattoos
  if (myform.tattoos[1].checked == true) {
    if (alphanumFilter.test(myform.alttattoos.value)) {}
    else {
      var err = "Please provide a valid description of your tattoos.\n" +
                "Permitted characters are: [a-z] [A-Z] [0-9] [space] - , .";
      var badfield = "alttattoos";
    }
  }

  // check gender specific measurements
  // male
  //if (myform.gender[1].checked == true) {
    // check shirt
    //if (myform.male_shirt.selectedIndex == 0) {
      //var err = "Please select a Shirt size.";
      //var badfield = "male_shirt";
    //} 
    // check neck
    //if (numericFilter.test(myform.male_neck.value)) {}
    //else {
      //var err = "Please enter a valid Neck size, in inches.";
      //var badfield = "male_neck";
    //}
    // check sleeve
    //if (numericFilter.test(myform.male_sleeve.value)) {}
    //else {
      //var err = "Please enter a valid Sleeve length, in inches.";
      //var badfield = "male_sleeve";
    //}
    // check inseam
    //if (numericFilter.test(myform.male_inseam.value)) {}
    //else {
      //var err = "Please enter a valid Inseam size, in inches.";
      //var badfield = "male_inseam";
    //}
    // check waist
    //if (numericFilter.test(myform.male_waist.value)) {}
    //else {
      //var err = "Please enter a valid Waist size, in inches.";
      //var badfield = "male_waist";
    //}
  //}
  // female
  //if (myform.gender[0].checked == true) {
    // check dress
    //if (myform.female_dress.selectedIndex == 0) {
      //var err = "Please select a Dress size.";
      //var badfield = "female_dress";
    //}
    // check cup
    //if (cupFilter.test(myform.female_cup.value)) {}
    //else {
      //var err = "Please enter a valid Cup size.";
      //var badfield = "female_cup";
    //}
    // check hips
    //if (numericFilter.test(myform.female_hips.value)) {}
    //else {
      //var err = "Please enter a valid Hip size.";
      //var badfield = "female_hips";
    //}
    // check waist
    //if (numericFilter.test(myform.female_waist.value)) {}
    //else {
      //var err = "Please enter a valid Waist size.";
      //var badfield = "female_waist";
    //}
    // check chest
    //if (numericFilter.test(myform.female_chest.value)) {}
    //else {
      //var err = "Please enter a valid Chest size.";
      //var badfield = "female_chest";
    //}
  //}

  // check eye color
  if (myform.eyes.selectedIndex == 0) {
    var err = "Please select an Eye Color.";
    var badfield = "eyes";
  }
  // check hair color
  if (myform.hair.selectedIndex == 0) {
    var err = "Please select a Hair Color.";
    var badfield = "hair";
  }
  // check weight
  if (numericFilter.test(myform.weight.value)) {}
  else {
    var err = "Please enter a valid Weight."; 
    var badfield = "weight";
  }
  // check height
  if (myform.heightfoot.selectedIndex == 0 || 
     myform.heightinch.selectedIndex == 0) {
    var err = "Please select a valid Height.";
    var badfield = "heightfoot";
  }

  // check country
  if ((myform.country[0].checked == true || myform.country[1].checked == true)&& myform.state.value == 'n/a') {
      var err = "You have selected 'NOT IN USA OR CANADA' for State, and "; 
		  if(myform.country[0].checked == true)	
		  {
			err += "'USA' for ";
		  }
		  else
		  {
			err += "'Canada' for ";
		  }
		  err += "country."
    badfield = "country";
  }
  if (myform.country[2].checked == true) {
    if (altFilter.test(myform.altcountry.value)) {
      myform.state.value = 'n/a';
    }
    else {
      var err = "Please specify a valid 'Other' country.\n" +
                "Permitted characters are: [a-z] [A-Z] [space] - , .";
      var badfield = "altcountry";
    }
  }
    
  
  // check zip code
  if (zipFilter.test(myform.zip.value)) {}
  else {
    var err = "Please enter a valid Zip code.";
    var badfield = "zip";
  }

  // check state
  if (myform.state.selectedIndex == 0) {
    var err = "Please select a State.";
    var badfield = "state";
  }

  // check city
  if (cityFilter.test(myform.city.value)) {}
  else {
    var err = "Please enter a valid City.";
    var badfield = "city";
  }

  var streetErr = "At least 4 characters.\n" +
                  "Permitted characters are: [a-z] [A-Z] [0-9] ( ) - # , .";

  // check street address line 2
  if (myform.street2.value != 0) {
    if (streetFilter.test(myform.street2.value)) {}
    else {
      var err = "Please enter a valid Street address (line 2).\n" + streetErr;
      var badfield = "street2";
    }
  }

  // check street address line 1
  if (streetFilter.test(myform.street1.value)) {}
  else {
    var err = "Please enter a valid Street address.\n" + streetErr;
    var badfield = "street1";
  }

  // check website url
  if (myform.url.value != 0) {
    if (urlFilter.test(myform.url.value)) {}
    else {
      var err = "Please enter a valid Website address.\n" + 
                "e.g. http://www.yourwebsite.com";
      var badfield = "url";
    }
  }

  // check email address
  if (emailFilter.test(myform.email1.value)) {}
  else {
    var err = "Please enter a valid Email address.";
    var badfield = "email1";
  }

  var phoneErr = "At least 10 characters.\n" + 
                 "Permitted characters are: [0-9] ( ) - +";

  // check pager
  if (myform.pager.value.length != 0) {
    if (phoneFilter.test(myform.pager.value)) {}
    else {
      var err = "Please enter a valid Pager number.\n" + phoneErr;
      var badfield = "pager";
    }
  }

  // check secondary phone
  if (myform.phone2.value.length != 0) {
    if (phoneFilter.test(myform.phone2.value)) {}
    else {
      var err = "Please enter a valid Secondary phone number.\n" + phoneErr;
      var badfield = "phone2";
    }
  }

  // check primary phone
  if (phoneFilter.test(myform.phone1.value)) {}
  else {
    var err = "Please enter a valid Primary phone number.\n" + phoneErr;
    var badfield = "phone1";
  }

  // check languages
  var langArr = getSelectedCheckbox(myform.language);
  if (langArr.length == 0) {
    var err = "Please select at least one language.";
    var badfield = "language";
  }
  if (langArr[langArr.length-1] == 8) { 
    if (altFilter.test(myform.altlanguage.value)) {}
    else {
      var err = "Please specify a valid 'Other' language.\n" +  
                "Permitted characters are: [a-z] [A-Z] [space] - , .";
      var badfield = "altlanguage";
    }
  }

  // check ethnicity
  var ethnicityArr = getSelectedCheckbox(myform.ethnicity);
  if (ethnicityArr.length == 0) {
    var err = "Please select at least one Ethnic group,\n" +
              "or check 'Prefer not to Share'.";
    var badfield = "ethnicity";
  }
  if (ethnicityArr[ethnicityArr.length-1] == 6) {
    if (altFilter.test(myform.altethnicity.value)) {}
    else {
      var err = "Please specify a valid 'Other' ethnicity.\n" + 
                "Permitted characters are: [a-z] [A-Z] [space] - , .";
      var badfield = "altethnicity";
    }
  }
  
  // check social security number
  //ssn1 = myform.ssn1.value;
  //ssn2 = myform.ssn2.value;
  //ssn3 = myform.ssn3.value;
  //if (ssn1 || ssn2 || ssn3) {
    //ssn = ssn1+'-'+ssn2+'-'+ssn3;
    //ssnFilter = /^\d{3}\-?\d{2}\-?\d{4}$/;
    //if (ssnFilter.test(ssn)) {}
    //else {
      //var err = "Please enter a valid Social Security Number.";
      //badfield = "ssn1"
    //}
  //}

  // check birthdate 
  var birthErr = "Please select a valid Birthdate.";
  if (validateDate(myform.birthday, myform.birthmonth, 
      myform.birthyear) == false) {
    var err = birthErr;
    badfield = "birthmonth";
  }

  // check last name
  var nameErr = "Permitted characters are: " +
                 "[a-z] [A-Z] -";

  var lName = myform.lastname.value;
  if (nameFilter.test(lName)) {}
  else { 
    var err = "Please enter a valid Last Name.\n" + nameErr;
    var badfield = "lastname";
  }
 
  // check first name
  var fName = myform.firstname.value;
  if (nameFilter.test(fName)) {}
  else {
    var err = "Please enter a valid First Name.\n" + nameErr;
    var badfield = "firstname";
  }

	//check referrer
	if (checkReferrer(myform)){
		if (myform.referrer_notes.value.length < 2){
			var err = "Please explain how you heard about us.";
			var badfield = "referrer_notes";
		}
	}
	
  // report error or proceed
  if (err != undefined) {
    alert(err);
    if (myform.elements[badfield].length == undefined) {
      myform.elements[badfield].focus();
    }
    else {
      myform.elements[badfield][0].focus;
    }  
    return false;
  }
  else return true;
}

function autotab(original,destination){
  if (original.getAttribute &&
    original.value.length==original.getAttribute("maxlength"))
  destination.focus()
}

function checkAlternate(elem) {
  //if(elem == "country") setDisabled( document, "alt" + elem,
  //!document.contractor.elements[elem][2].checked, true );
  //if(elem == "tattoos") setDisabled( document, "alt" + elem,
  //!document.contractor.elements[elem][1].checked, true );
  //if(elem == "piercings") setDisabled( document, "alt" + elem,
  //!document.contractor.elements[elem][1].checked, true );
  //if(elem == "ethnicity") setDisabled( document, "alt" + elem,
  //!document.contractor.elements[elem][6].checked, true );
  //if(elem == "language") setDisabled( document, "alt" + elem,
  //!document.contractor.elements[elem][8].checked, true );
  //if(elem == "location") setDisabled( document, "alt" + elem,
  //!document.contractor.elements[elem][63].checked, true );
  //if(elem == "availability") setDisabled( document, "alt" + elem,
  //!document.contractor.elements[elem][4].checked, true );
  //if(elem == "sector") setDisabled( document, "alt" + elem,
  //!document.contractor.elements[elem][14].checked, true );
}

function onLoad() {
  //setDisabled( document, "altcountry",
  //!document.contractor.elements["country"][1].checked, true );
  //setDisabled( document, "alttattoos",
  //!document.contractor.elements["tattoos"][0].checked, true );
  //setDisabled( document, "altpiercings",
  //!document.contractor.elements["piercings"][0].checked, true );
  //setDisabled( document, "altethnicity",
  //!document.contractor.elements["ethnicity"][6].checked, true );
  //setDisabled( document, "altlanguage",
  //!document.contractor.elements["language"][2].checked, true );
  //setDisabled( document, "altlocation",
  //!document.contractor.elements["location"][33].checked, true );
  //setDisabled( document, "altavailability",
  //!document.contractor.elements["availability"][4].checked, true );
  //setDisabled( document, "altsector",
  //!document.contractor.elements["sector"][25].checked, true );
}

function showMesLayer() {
  var cGender = document.contractor.elements['gender'][0].checked;
  if (cGender == true) {
    document.getElementById("mesForm2").style.display = 'none';
    document.contractor.male_waist.value='';
    document.contractor.male_inseam.value='';
    document.contractor.male_sleeve.value='';
    document.contractor.male_neck.value='';
    document.contractor.male_shirt.value='SELECT';
    document.getElementById("mesForm1").style.display = 'block';
  }
  if (cGender == false) {
    document.getElementById("mesForm1").style.display = 'none';
    document.contractor.female_chest.value = '';
    document.contractor.female_waist.value = '';
    document.contractor.female_hips.value = '';
    document.contractor.female_cup.value = '';
    document.contractor.female_dress.value = 'SELECT';
    document.getElementById("mesForm2").style.display = 'block';
  }
}

function upperCase(myelem) {
  myelem.value = myelem.value.toUpperCase();
}

function popUp(URL,showB) {
  var sB = showB;
  if (sB == undefined) { sB = 0 };
  winpops=window.open(URL,"AttackFile","width=800,height=600,scrollbars=1," +
  "resizable=1,titlebar=0,status=0,toolbar=" +
   sB + ",location=0,menubar=0","false");
  if (window.focus) { winpops.focus() }
}

function doEdit(type) {
  document.editcon.edit_type.value = type;
  document.editcon.submit();
}

function checkReferrer(myform){
	var Referrer=document.getElementById("referrer");
  myReferrer = Referrer.options[Referrer.selectedIndex].text;
	referrer_notes = myform.referrer_notes;
	if (myReferrer.search(/\*/) > -1){
		referrer_notes.focus();
		return true;
	}
	else{
		return false;
	}
}

function editPage(myform,myfunc,mypage) {
	myform.elements[myfunc].value = mypage;
	return true;
}

function goPage(myform,mypage) {
	myform.pageselect.value = mypage;
	myform.submit;
}

function checkFileUpload(myfield, mytest) {
	if (typeof myfield == "undefined") {
		// user has not uploaded a file
		//alert ('no file for ' + myfield.name);
		return false;
	}
	else if (myfield.value.length == 0) {
		//alert ('no file for ' + myfield.name);
		return false;
	}
	else {
   	if (mytest.test(myfield.value)) {}
    else {
    	// user has uploaded a bad file
    	//alert ('bad file for ' + myfield.name);
      return false;
    }
	}
	return true;
}

function checkTestimonial(myform) {
	if (myform.testimonial.value.length < 5) {
		var err = "Please enter a descriptive testimonial.\n";
  	var badfield = "testimonial";
  }
  
  // report error or proceed
  if (err != undefined) {
    alert(err);
    if (myform.elements[badfield].length == undefined) {
      myform.elements[badfield].focus();
    }
    else {
      myform.elements[badfield][0].focus;
    }
    return false;
  }
  else return true;
}

function checkQuestion(myform) {
	if (myform.question.value.length < 5) {
		var err = "Please enter a descriptive question.\n";
  	var badfield = "question";
  }
  
  // report error or proceed
  if (err != undefined) {
    alert(err);
    if (myform.elements[badfield].length == undefined) {
      myform.elements[badfield].focus();
    }
    else {
      myform.elements[badfield][0].focus;
    }
    return false;
  }
  else return true;
}

function prompt_other(myform, prompttype) {
	var otherbox = 'alt' + prompttype;
  if (myform.elements[otherbox].value == '') {
  	// set the prompt
  	if (prompttype == 'tattoos') {
  		myform.elements[otherbox].value = 'Where are your visible tattos?';
  	}
  	else if (prompttype == 'piercings') {
  		myform.elements[otherbox].value = 'Where are your piercings?';
  	}
  }
  return true;
}
 
  
	
