function radioCheck(ss) {
  for(var i = 0; i < ss.length; i++) {
	  if(ss[i].checked) { return ss[i].value; }
	  }
  return false;
}

function checkbox_empty(ss) {
  for(var i = 0; i < ss.length; i++) {
	   if(ss[i].checked) { return false; }
	 }
  return true;
}

function dropdown_empty(ss){
// Note: ss will need to be fetched via document.getElementById('ss-id-name') for multi-select menus
  for(var i = 0; i < ss.length; i++) {
    if(ss[i].selected) {
      if(ss[i].value.length) { return false; }
    }
  }
  return true;
}

function stripChars(pstrSource){ 
  var m_strOut = new String(pstrSource); 
		// Non-alpha characters
  //m_strOut = m_strOut.replace(/[^0-9]/g, '');
		
		// remove spaces, ( ), -, and .
		m_strOut = m_strOut.replace(/[\-|(|)|[^a-zA-Z]| |\.|\+| ]/g, ''); 

  return m_strOut; 
}
	
function disableForm(formID){
  var element = document.getElementById(formID);
  element.style.display = "none;";
}

// ----------- validation functions ------------------------------------------

function validateDate( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains only
    valid dates with 2 digit month, 2 digit day,
    4 digit year. Date separator can be ., -, or /.
    Uses combination of regular expressions and
    string parsing to validate date.
    Ex. mm/dd/yyyy or mm-dd-yyyy or mm.dd.yyyy

PARAMETERS:
   strValue - String to be tested for validity

RETURNS:
   True if valid, otherwise false.

REMARKS:
   Avoids some of the limitations of the Date.parse()
   method such as the date separator character.
*************************************************/
  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
 
  //check to see if in correct format
  if(!objRegExp.test(strValue)){
    return false; //doesn't match pattern, bad date
	}
  else{
    var strSeparator = strValue.substring(2,3);
    var arrayDate = strValue.split(strSeparator); 
    //create a lookup for months not equal to Feb.
    var arrayLookup = { '01' : 31,'03' : 31, 
                        '04' : 30,'05' : 31,
                        '06' : 30,'07' : 31,
                        '08' : 31,'09' : 30,
                        '10' : 31,'11' : 30,'12' : 31};
    var intDay = parseInt(arrayDate[1],10); 

    //check if month value and day value agree
    if(arrayLookup[arrayDate[0]] !== null) {
      if(intDay <= arrayLookup[arrayDate[0]] && intDay !== 0){
        return true; //found in lookup table, good date
			}
    }
    
    //check for February (bugfix 20050322)
    //bugfix  for parseInt kevin
    //bugfix  biss year  O.Jp Voutat
    var intMonth = parseInt(arrayDate[0],10);
    if (intMonth == 2) { 
       var intYear = parseInt(arrayDate[2]);
       if (intDay > 0 && intDay < 29) {
           return true;
       }
       else if (intDay == 29) {
         if ((intYear % 4 === 0) && (intYear % 100 !== 0) || 
             (intYear % 400 === 0)) {
              // year div by 4 and ((not div by 100) or div by 400) ->ok
             return true;
         }   
       }
    }
  }  
  return false; //any other values, bad date
}	

function  validateNumeric( strValue ) {
/*****************************************************************
DESCRIPTION: Validates that a string contains only valid numbers.

PARAMETERS:
   strValue - String to be tested for validity

RETURNS:
  True if valid, otherwise false.
******************************************************************/
var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;

  //check for numeric characters
  return objRegExp.test(strValue);
}

	
function validateEmail( strValue) {
/************************************************
DESCRIPTION: Validates that a string contains a
  valid email pattern.

 PARAMETERS:
   strValue - String to be tested for validity

RETURNS:
   True if valid, otherwise false.

REMARKS: Accounts for email with country appended
  does not validate that email contains valid URL
  type (.com, .gov, etc.) or valid country suffix.
*************************************************/
//var objRegExp = /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;
var objRegExp = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

  //check for valid email
  return objRegExp.test(strValue);
}

function validateUSPhone( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains valid
  US phone pattern.
  Ex. (999) 999-9999 or (999)999-9999

PARAMETERS:
   strValue - String to be tested for validity

RETURNS:
   True if valid, otherwise false.
*************************************************/
  var objRegExp  = /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/;

  //check for valid us phone with or without space between
  //area code
  return objRegExp.test(strValue);
}

function validateZip( strValue ) {
/************************************************
DESCRIPTION: Validates that a string a United
  States zip code in 5 digit format or zip+4
  format. 99999 or 99999-9999

PARAMETERS:
   strValue - String to be tested for validity

RETURNS:
   True if valid, otherwise false.

*************************************************/
var objRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;

  //check for valid US Zipcode
  return objRegExp.test(strValue);
}

// function to see if date 1 occurs before date 2
function validFromDate(fromDate,toDate){

	// Assuming that the date was in the correct format, this is our separator
 var separator1 = fromDate.charAt(2);
	var arrDate1 = fromDate.split(separator1);

	var checkFromDate = new Date();
	checkFromDate.setFullYear(arrDate1[2],arrDate1[0]-1,arrDate1[1]);
	
 var separator2 = toDate.charAt(2);
	var arrDate2 = toDate.split(separator2);
	
	var checkToDate = new Date();
	checkToDate.setFullYear(arrDate2[2],arrDate2[0]-1,arrDate2[1]);
	
	if (checkToDate > checkFromDate){
	  return true;
	}
	else {
	  return false;
	}
}

function check_job_application(){
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var first_name = document.job_application.first_name.value;
	var last_name = document.job_application.last_name.value;
	var email = document.job_application.email.value;
	var phone = document.job_application.phone.value;
	var preferred_contact_method = document.job_application.preferred_contact_method;
	/*
	var address1 = document.job_application.address1.value;
	var city = document.job_application.city.value;
	var country = document.job_application.country.value;
	*/
	var applied_job = document.job_application.applied_job.value;

	if (applied_job === ""){
		applied_job = document.job_application.applied_job_selection;
		if(dropdown_empty(applied_job)){
			error_msg = error_msg + "<li>Please select the <b>Job Position</b> you are applying.</li>";
			$('#applied-job-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (first_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>First Name</b>.</li>";
		$('#first-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (last_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>Last Name</b>.</li>";
		$('#last-name-label').addClass("form-error-label");
		error = true;
	}
	
	if ((email === "")||(!validateEmail(email))){
		error_msg = error_msg + "<li>Please enter a valid <b>Email Address</b>.</li>";
		$('#email-label').addClass("form-error-label");
		error = true;
	}
	
	phone = stripChars(phone);
	if ((phone.length < 10)||(!validateNumeric(phone))){
		error_msg = error_msg + "<li>Please enter a valid numerical <b>Phone Number</b>.</li>";
		$('#phone-label').addClass("form-error-label");
		error = true;
	}
	
	if(dropdown_empty(preferred_contact_method)){
		error_msg = error_msg + "<li>Please select your <b>Preferred Method of Contact</b>.</li>";
		$('#preferred-contact-method-label').addClass("form-error-label");
		error = true;
	}
	
	/*
	if (address1 === ""){
		error_msg = error_msg + "<li>Please enter your <b>Address</b>.</li>";
		$('#address1-label').addClass("form-error-label");
		error = true;
	}
	if (city === ""){
		error_msg = error_msg + "<li>Please enter your <b>City</b>.</li>";
		$('#city-label').addClass("form-error-label");
		error = true;
	}
	if (country === ""){
		error_msg = error_msg + "<li>Please enter your <b>Country</b>.</li>";
		$('#country-label').addClass("form-error-label");
		error = true;
	}
	*/

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
		$('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_contact_us(){
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var first_name = document.contact_us.first_name.value;
	var last_name = document.contact_us.last_name.value;
	var company = document.contact_us.company.value;
	var email = document.contact_us.email.value;
	var phone = document.contact_us.phone.value;
	var message = document.contact_us.message.value;
	
	// non-required fields that needs validation
	var fax = document.contact_us.fax.value;
	var cell = document.contact_us.cell.value;
		
	if (first_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>First Name</b>.</li>";
		$('#first-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (last_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>Last Name</b>.</li>";
		$('#last-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (company === ""){
		error_msg = error_msg + "<li>Please enter the name of your <b>Company</b>.</li>";
		$('#company-label').addClass("form-error-label");
		error = true;
	}

	if ((email === "")||(!validateEmail(email))){
		error_msg = error_msg + "<li>Please enter a valid <b>Email Address</b>.</li>";
		$('#email-label').addClass("form-error-label");
		error = true;
	}
	
	phone = stripChars(phone);
	if ((phone.length < 10)||(!validateNumeric(phone))){
		error_msg = error_msg + "<li>Please enter a valid numerical <b>Phone Number</b>.</li>";
		$('#phone-label').addClass("form-error-label");
		error = true;
	}
	
	if (fax !== ""){
		fax = stripChars(fax);
		if ((fax.length < 10)||(!validateNumeric(fax))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Fax Number</b>.</li>";
			$('#fax-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (cell !== ""){
		cell = stripChars(cell);
		if ((cell.length < 10)||(!validateNumeric(cell))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Cell or Pager Number</b>.</li>";
			$('#cell-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (message === ""){
		error_msg = error_msg + "<li>Please include your <b>Message</b>.</li>";
		$('#message-label').addClass("form-error-label");
		error = true;
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
	  $('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_rma_request(){
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var first_name = document.rma_request.first_name.value;
	var last_name = document.rma_request.last_name.value;
	var email = document.rma_request.email.value;
	var phone = document.rma_request.phone.value;
	var company = document.rma_request.company.value;
	var address1 = document.rma_request.address1.value;
	var city = document.rma_request.city.value;
	var country = document.rma_request.country;
	var make_and_model = document.rma_request.make_and_model.value;
	var part_number = document.rma_request.part_number.value;
	var problem_details = document.rma_request.problem_details.value;
	
	// non-required fields that needs validation
	var fax = document.rma_request.fax.value;
	var cell = document.rma_request.cell.value;
	
	if (first_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>First Name</b>.</li>";
		$('#first-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (last_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>Last Name</b>.</li>";
		$('#last-name-label').addClass("form-error-label");
		error = true;
	}
	
	if ((email === "")||(!validateEmail(email))){
		error_msg = error_msg + "<li>Please enter a valid <b>Email Address</b>.</li>";
		$('#email-label').addClass("form-error-label");
		error = true;
	}
	
	phone = stripChars(phone);
	if ((phone.length < 10)||(!validateNumeric(phone))){
		error_msg = error_msg + "<li>Please enter a valid numerical <b>Phone Number</b>.</li>";
		$('#phone-label').addClass("form-error-label");
		error = true;
	}
	
	if (fax !== ""){
		fax = stripChars(fax);
		if ((fax.length < 10)||(!validateNumeric(fax))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Fax Number</b>.</li>";
			$('#fax-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (cell !== ""){
		cell = stripChars(cell);
		if ((cell.length < 10)||(!validateNumeric(cell))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Cell or Pager Number</b>.</li>";
			$('#cell-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (company === ""){
		error_msg = error_msg + "<li>Please enter the name of your <b>Company</b>.</li>";
		$('#company-label').addClass("form-error-label");
		error = true;
	}
	
	if (address1 === ""){
		error_msg = error_msg + "<li>Please enter your <b>Address</b>.</li>";
		$('#address1-label').addClass("form-error-label");
		error = true;
	}
	if (city === ""){
		error_msg = error_msg + "<li>Please enter your <b>City</b>.</li>";
		$('#city-label').addClass("form-error-label");
		error = true;
	}
	if (dropdown_empty(country)){
		error_msg = error_msg + "<li>Please enter your <b>Country</b>.</li>";
		$('#country-label').addClass("form-error-label");
		error = true;
	}
	
	if (make_and_model === ""){
		error_msg = error_msg + "<li>Please enter your system's <b>Make &amp; Model</b>.</li>";
		$('#make-and-model-label').addClass("form-error-label");
		error = true;
	}
	
	if (part_number === ""){
		error_msg = error_msg + "<li>Please enter your <b>Part Number(s)</b>.</li>";
		error = true;
	}
	if (problem_details === ""){
		error_msg = error_msg + "<li>Please supply us with a detail description on the problem and what has been done to troubleshoot it.</li>";
		error = true;
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
		$('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_ramdisk(){
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var email = document.ramdisk_questionnaire.email.value;
	
	if ((email !== "")&&(!validateEmail(email))){
		error_msg = error_msg + "<li>Please enter a valid <b>Email Address</b>.</li>";
		$('#email-label').addClass("form-error-label");
		error = true;
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
		$('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_mailing_list(ramdisk){
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var first_name = document.mailing_list.first_name.value;
	var last_name = document.mailing_list.last_name.value;
	var title = document.mailing_list.title;
	var email = document.mailing_list.email.value;
	
	// non-required fields that needs validation
	var phone = document.mailing_list.phone.value;
		
	if (first_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>First Name</b>.</li>";
		$('#first-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (last_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>Last Name</b>.</li>";
		$('#last-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (dropdown_empty(title)){
		error_msg = error_msg + "<li>Please select your <b>Title</b>.</li>";
		$('#title-label').addClass("form-error-label");
		error = true;
	}
	
	if (ramdisk){
		var company = document.mailing_list.company.value;
		if (company === ""){
			error_msg = error_msg + "<li>Please enter your <b>Company</b>.</li>";
			$('#company-label').addClass("form-error-label");
			error = true;
		}
	}

	if ((email === "")||(!validateEmail(email))){
		error_msg = error_msg + "<li>Please enter a valid <b>Email Address</b>.</li>";
		$('#email-label').addClass("form-error-label");
		error = true;
	}
	
	if (phone !== ""){
		phone = stripChars(phone);
		if ((phone.length < 10)||(!validateNumeric(phone))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Phone Number</b>.</li>";
			$('#phone-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (ramdisk){
		var address1 = document.mailing_list.address1.value;
		if (address1 === ""){
			error_msg = error_msg + "<li>Please enter your <b>Address</b>.</li>";
			$('#address1-label').addClass("form-error-label");
			error = true;
		}
		var city = document.mailing_list.city.value;
		if (city === ""){
			error_msg = error_msg + "<li>Please enter your <b>City</b>.</li>";
			$('#city-label').addClass("form-error-label");
			error = true;
		}
		var country = document.mailing_list.country;
		if (dropdown_empty(country)){
			error_msg = error_msg + "<li>Please enter your <b>Country</b>.</li>";
			$('#country-label').addClass("form-error-label");
			error = true;
		}
		var q2 = document.mailing_list.q2;
		if (dropdown_empty(q2)){
			error_msg = error_msg + "<li>Please tell us your <b>main RAMDisk usage</b>.</li>";
			$('#q2-label').addClass("form-error-label");
			error = true;
		}
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
	  $('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_submit_cart(){
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var first_name = document.submit_cart.first_name.value;
	var last_name = document.submit_cart.last_name.value;
	var company = document.submit_cart.company.value;
	var email = document.submit_cart.email.value;
	var phone = document.submit_cart.phone.value;
	var address1 = document.submit_cart.address1.value;
	var city = document.submit_cart.city.value;
	var country = document.submit_cart.country;
	
	// non-required fields that needs validation
	var fax = document.submit_cart.fax.value;
	var cell = document.submit_cart.cell.value;
		
	if (first_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>First Name</b>.</li>";
		$('#first-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (last_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>Last Name</b>.</li>";
		$('#last-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (company === ""){
		error_msg = error_msg + "<li>Please enter the name of your <b>Company</b>.</li>";
		$('#company-label').addClass("form-error-label");
		error = true;
	}

	if ((email === "")||(!validateEmail(email))){
		error_msg = error_msg + "<li>Please enter a valid <b>Email Address</b>.</li>";
		$('#email-label').addClass("form-error-label");
		error = true;
	}
	
	phone = stripChars(phone);
	if ((phone.length < 10)||(!validateNumeric(phone))){
		error_msg = error_msg + "<li>Please enter a valid numerical <b>Phone Number</b>.</li>";
		$('#phone-label').addClass("form-error-label");
		error = true;
	}
	
	if (fax !== ""){
		fax = stripChars(fax);
		if ((fax.length < 10)||(!validateNumeric(fax))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Fax Number</b>.</li>";
			$('#fax-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (cell !== ""){
		cell = stripChars(cell);
		if ((cell.length < 10)||(!validateNumeric(cell))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Cell or Pager Number</b>.</li>";
			$('#cell-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (address1 === ""){
		error_msg = error_msg + "<li>Please enter your <b>Address</b>.</li>";
		$('#address1-label').addClass("form-error-label");
		error = true;
	}
	
	if (city === ""){
		error_msg = error_msg + "<li>Please enter your <b>City</b>.</li>";
		$('#city-label').addClass("form-error-label");
		error = true;
	}
	
	if (dropdown_empty(country)){
		error_msg = error_msg + "<li>Please select your <b>Country</b>.</li>";
		$('#country-label').addClass("form-error-label");
		error = true;
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
	  $('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_program_application(storage){
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var program_id = document.program_application.program_id;
	var first_name = document.program_application.first_name.value;
	var last_name = document.program_application.last_name.value;
	var email = document.program_application.email.value;
	var phone = document.program_application.phone.value;
	var company = document.program_application.company.value;
	var address1 = document.program_application.address1.value;
	var city = document.program_application.city.value;
	var country = document.program_application.country;
	
	// non-required fields that needs validation
	var fax = document.program_application.fax.value;
	var cell = document.program_application.cell.value;
	
	if (dropdown_empty(program_id)){
		error_msg = error_msg + "<li>Please select a <b>Partner Program</b>.</li>";
		$('#partner-program-label').addClass("form-error-label");
		error = true;
	}
		
	if (first_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>First Name</b>.</li>";
		$('#first-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (last_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>Last Name</b>.</li>";
		$('#last-name-label').addClass("form-error-label");
		error = true;
	}

	if ((email === "")||(!validateEmail(email))){
		error_msg = error_msg + "<li>Please enter a valid <b>Email Address</b>.</li>";
		$('#email-label').addClass("form-error-label");
		error = true;
	}
	
	phone = stripChars(phone);
	if ((phone.length < 10)||(!validateNumeric(phone))){
		error_msg = error_msg + "<li>Please enter a valid numerical <b>Phone Number</b>.</li>";
		$('#phone-label').addClass("form-error-label");
		error = true;
	}
	
	if (fax !== ""){
		fax = stripChars(fax);
		if ((fax.length < 10)||(!validateNumeric(fax))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Fax Number</b>.</li>";
			$('#fax-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (cell !== ""){
		cell = stripChars(cell);
		if ((cell.length < 10)||(!validateNumeric(cell))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Secondary Phone/Cell Number</b>.</li>";
			$('#cell-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (company === ""){
		error_msg = error_msg + "<li>Please enter the name of your <b>Company</b>.</li>";
		$('#company-label').addClass("form-error-label");
		error = true;
	}
	
	if (address1 === ""){
		error_msg = error_msg + "<li>Please enter your <b>Address</b>.</li>";
		$('#address1-label').addClass("form-error-label");
		error = true;
	}
	if (city === ""){
		error_msg = error_msg + "<li>Please enter your <b>City</b>.</li>";
		$('#city-label').addClass("form-error-label");
		error = true;
	}
	if (dropdown_empty(country)){
		error_msg = error_msg + "<li>Please enter your <b>Country</b>.</li>";
		$('#country-label').addClass("form-error-label");
		error = true;
	}
	
	if (storage === true){
		var storage_practice = document.program_application.storage_practice;
		if (dropdown_empty(storage_practice)){
			error_msg = error_msg + "<li>Please tell us if you have a <b>Storage Practice</b>.</li>";
			$('#storage-practice-label').addClass("form-error-label");
			error = true;
		}
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
	  $('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_login(){
	$('.form-full-row label').removeClass("form-error-label");
	$('.form-full-row-full-label label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var email = document.login.username.value;
	var password = document.login.password.value;
	
	if ((email === "")||(!validateEmail(email))){
		error_msg = error_msg + "<li>Please enter a valid <b>Email Address</b>.</li>";
		$('#email-label').addClass("form-error-label");
		error = true;
	}

	if (password === ""){
		error_msg = error_msg + "<li>Please enter your <b>Password</b>.</li>";
		$('#password-label').addClass("form-error-label");
		error = true;
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
	  $('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_edit_profile(password_length){
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var first_name = document.edit_profile.first_name.value;
	var last_name = document.edit_profile.last_name.value;
	var company = document.edit_profile.company.value;
	var phone = document.edit_profile.phone.value;
	
	// only required if user is changing password
	var reset_pw = document.edit_profile.new_password.value;
	var confirm_pw = document.edit_profile.confirm_password.value;
	
	// non-required fields that needs validation
	var fax = document.edit_profile.fax.value;
	var cell = document.edit_profile.cell.value;
		
	if (first_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>First Name</b>.</li>";
		$('#first-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (last_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>Last Name</b>.</li>";
		$('#last-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (company === ""){
		error_msg = error_msg + "<li>Please enter the name of your <b>Company</b>.</li>";
		$('#company-label').addClass("form-error-label");
		error = true;
	}
	
	if (reset_pw !== ""){
		if (reset_pw.length < password_length){
			error_msg = error_msg + "<li><b>New Password</b> needs to be <b>"+password_length+" characters or greater</b>.</li>";
			$('#new-password-label').addClass("form-error-label");
			error = true;
		}
		else if (confirm_pw === ""){
			error_msg = error_msg + "<li>Please <b>Confirm your New Password</b>.</li>";
			$('#confirm-password-label').addClass("form-error-label");
			error = true;
		}
		else if(reset_pw !== confirm_pw){
			error_msg = error_msg + "<li><b>New Password</b> and <b>Confirm New Password</b> do not match.</li>";
			$('#new-password-label').addClass("form-error-label");
			$('#confirm-password-label').addClass("form-error-label");
			error = true;
		}
	}
	
	phone = stripChars(phone);
	if ((phone.length < 10)||(!validateNumeric(phone))){
		error_msg = error_msg + "<li>Please enter a valid numerical <b>Phone Number</b>.</li>";
		$('#phone-label').addClass("form-error-label");
		error = true;
	}
	
	if (fax !== ""){
		fax = stripChars(fax);
		if ((fax.length < 10)||(!validateNumeric(fax))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Fax Number</b>.</li>";
			$('#fax-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (cell !== ""){
		cell = stripChars(cell);
		if ((cell.length < 10)||(!validateNumeric(cell))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Cell or Pager Number</b>.</li>";
			$('#cell-label').addClass("form-error-label");
			error = true;
		}
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
	  $('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_send_documents(){
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var document_file = document.send_documents.document_file.value;
	
	if (document_file === ""){
		error_msg = error_msg + "<li>Please select a <b>Document</b> to be uploaded.</li>";
		$('#document-file-label').addClass("form-error-label");
		error = true;
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
		$('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_forgotten_password(){
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var email = document.forgotten_password.email.value;
	
	if ((email === "")||(!validateEmail(email))){
		error_msg = error_msg + "<li>Please enter a valid <b>Email Address</b>.</li>";
		$('#email-label').addClass("form-error-label");
		error = true;
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
		$('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_billing_info(loggedin,password_length){
	$('.form-half-row label').removeClass("form-error-label");
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var first_name = document.billing_info.first_name.value;
	var last_name = document.billing_info.last_name.value;
	var company = document.billing_info.company.value;
	var phone = document.billing_info.phone.value;
	var address1 = document.billing_info.address1.value;
	var city = document.billing_info.city.value;
	var zip = document.billing_info.zip.value;
	var country = document.billing_info.country;
	
	// only required if user is creating an account
	if (!loggedin){
		var create_account = document.billing_info.create_account;
		var email = document.billing_info.email.value;
		var password = document.billing_info.password.value;
		var confirm_pw = document.billing_info.confirm_password.value;
	}
	
	// only required if user's shipping info is different from billing info
	var shipping_checkbox = document.billing_info.shipping_checkbox;
	var shipping_email = document.billing_info.shipping_email.value;
	var shipping_first_name = document.billing_info.shipping_first_name.value;
	var shipping_last_name = document.billing_info.shipping_last_name.value;
	var shipping_company = document.billing_info.shipping_company.value;
	var shipping_phone = document.billing_info.shipping_phone.value;
	var shipping_address1 = document.billing_info.shipping_address1.value;
	var shipping_city = document.billing_info.shipping_city.value;
	var shipping_zip = document.billing_info.shipping_zip.value;
	var shipping_country = document.billing_info.shipping_country;
	
	// non-required fields that needs validation
	var fax = document.billing_info.fax.value;
	var cell = document.billing_info.cell.value;
	var shipping_fax = document.billing_info.shipping_fax.value;
	var shipping_cell = document.billing_info.shipping_cell.value;
	
	if (!loggedin){
		if ((email === "")||(!validateEmail(email))){
			error_msg = error_msg + "<li>Please enter a valid <b>Email Address</b>.</li>";
			$('#email-label').addClass("form-error-label");
			error = true;
		}
	}
		
	if (first_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>First Name</b>.</li>";
		$('#first-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (last_name === ""){
		error_msg = error_msg + "<li>Please enter your <b>Last Name</b>.</li>";
		$('#last-name-label').addClass("form-error-label");
		error = true;
	}
	
	if (company === ""){
		error_msg = error_msg + "<li>Please enter the name of your <b>Company</b>.</li>";
		$('#company-label').addClass("form-error-label");
		error = true;
	}
	
	phone = stripChars(phone);
	if ((phone.length < 10)||(!validateNumeric(phone))){
		error_msg = error_msg + "<li>Please enter a valid numerical <b>Phone Number</b>.</li>";
		$('#phone-label').addClass("form-error-label");
		error = true;
	}
	
	if (fax !== ""){
		fax = stripChars(fax);
		if ((fax.length < 10)||(!validateNumeric(fax))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Fax Number</b>.</li>";
			$('#fax-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (cell !== ""){
		cell = stripChars(cell);
		if ((cell.length < 10)||(!validateNumeric(cell))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Cell or Pager Number</b>.</li>";
			$('#cell-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (address1 === ""){
		error_msg = error_msg + "<li>Please enter your <b>Address</b>.</li>";
		$('#address1-label').addClass("form-error-label");
		error = true;
	}
	if (city === ""){
		error_msg = error_msg + "<li>Please enter your <b>City</b>.</li>";
		$('#city-label').addClass("form-error-label");
		error = true;
	}
	if (zip === ""){
		error_msg = error_msg + "<li>Please enter your <b>Zip or Postal code</b>.</li>";
		$('#zip-label').addClass("form-error-label");
		error = true;
	}
	if (dropdown_empty(country)){
		error_msg = error_msg + "<li>Please enter your <b>Country</b>.</li>";
		$('#country-label').addClass("form-error-label");
		error = true;
	}
	
	if (country.value === "United States"){
		var state = document.billing_info.state;
		
		if (dropdown_empty(state)){
			error_msg = error_msg + "<li>Please enter your <b>US State</b>.</li>";
			$('#state-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if (!shipping_checkbox.checked){
		if ((shipping_email === "")||(!validateEmail(shipping_email))){
			error_msg = error_msg + "<li>Please enter a valid Email Address for your <b>Shipping Contact's Email Address</b>.</li>";
			$('#shipping-email-label').addClass("form-error-label");
			error = true;
		}
		
		if (shipping_first_name === ""){
			error_msg = error_msg + "<li>Please enter your <b>Shipping Contact's First Name</b>.</li>";
			$('#shipping-first-name-label').addClass("form-error-label");
			error = true;
		}
	
		if (shipping_last_name === ""){
			error_msg = error_msg + "<li>Please enter your <b>Shipping Contact's Last Name</b>.</li>";
			$('#shipping-last-name-label').addClass("form-error-label");
			error = true;
		}
	
		if (shipping_company === ""){
			error_msg = error_msg + "<li>Please enter the name of your <b>Shipping Contact's Company</b>.</li>";
			$('#shipping-company-label').addClass("form-error-label");
			error = true;
		}
	
		shipping_phone = stripChars(shipping_phone);
		if ((shipping_phone.length < 10)||(!validateNumeric(shipping_phone))){
			error_msg = error_msg + "<li>Please enter a valid numerical <b>Shipping Contact's Phone Number</b>.</li>";
			$('#shipping-phone-label').addClass("form-error-label");
			error = true;
		}
	
		if (shipping_fax !== ""){
			shipping_fax = stripChars(shipping_fax);
			if ((shipping_fax.length < 10)||(!validateNumeric(shipping_fax))){
				error_msg = error_msg + "<li>Please enter a valid numerical <b>Shipping Contact's Fax Number</b>.</li>";
				$('#shipping-fax-label').addClass("form-error-label");
				error = true;
			}
		}
	
		if (shipping_cell !== ""){
			shipping_cell = stripChars(shipping_cell);
			if ((shipping_cell.length < 10)||(!validateNumeric(shipping_cell))){
				error_msg = error_msg + "<li>Please enter a valid numerical <b>Shipping Contact's Cell or Pager Number</b>.</li>";
				$('#shipping-cell-label').addClass("form-error-label");
				error = true;
			}
		}
		
		if (shipping_address1 === ""){
			error_msg = error_msg + "<li>Please enter your <b>Shipping Contact's Address</b>.</li>";
			$('#shipping-address1-label').addClass("form-error-label");
			error = true;
		}
		if (shipping_city === ""){
			error_msg = error_msg + "<li>Please enter your <b>Shipping Contact's City</b>.</li>";
			$('#shipping-city-label').addClass("form-error-label");
			error = true;
		}
		if (shipping_zip === ""){
			error_msg = error_msg + "<li>Please enter your <b>Shipping Contact's Zip or Postal code</b>.</li>";
			$('#shipping-zip-label').addClass("form-error-label");
			error = true;
		}
		if (dropdown_empty(shipping_country)){
			error_msg = error_msg + "<li>Please enter your <b>Shipping Contact's Country</b>.</li>";
			$('#shipping-country-label').addClass("form-error-label");
			error = true;
		}
		
		if (shipping_country.value === "United States"){
			var shipping_state = document.billing_info.shipping_state;
		
			if (dropdown_empty(shipping_state)){
				error_msg = error_msg + "<li>Please enter your <b>Shipping Contact's US State</b>.</li>";
				$('#shipping-state-label').addClass("form-error-label");
				error = true;
			}
		}
	}
	
	if (!loggedin){
		if (create_account.checked){		
			if (password.length < password_length){
				error_msg = error_msg + "<li><b>Password</b> needs to be <b>"+password_length+" characters or greater</b>.</li>";
				$('#password-label').addClass("form-error-label");
				error = true;
			}
			else if (confirm_pw === ""){
				error_msg = error_msg + "<li>Please <b>Confirm your Password</b>.</li>";
				$('#confirm-password-label').addClass("form-error-label");
				error = true;
			}
			else if(password !== confirm_pw){
				error_msg = error_msg + "<li><b>Password</b> and <b>Confirm New Password</b> do not match.</li>";
				$('#password-label').addClass("form-error-label");
				$('#confirm-password-label').addClass("form-error-label");
				error = true;
			}
		}
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
	  $('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(50,70);
		return false;
	}
}

function check_payment_info(){
	$('.form-half-row label').removeClass("form-error-label");
	$('.form-full-row label').removeClass("form-error-label");
	error = false;
	var error_msg = "";
	
	// required fields
	var shipping_method = document.payment_info.shipping_method;
	
	if (dropdown_empty(shipping_method)){
		error_msg = error_msg + "<li>Please select a <b>Shipping Method</b>.</li>";
		error = true;
	}
	
	if ($('#cc_radio').attr("checked")){
		var cc_num = document.payment_info.cc_num.value;
		var cc_name = document.payment_info.cc_name.value;
		var exp_month = document.payment_info.exp_month;
		var exp_year = document.payment_info.exp_year;
		var cc_security = document.payment_info.cc_security.value;
		
		cc_num = stripChars(cc_num);
		if ((cc_num.length < 14)||(!validateNumeric(cc_num))){
			error_msg = error_msg + "<li>Please enter a valid <b>Credit Card Number</b>.</li>";
			$('#cc-num-label').addClass("form-error-label");
			error = true;
		}
		
		if (cc_name === ""){
			error_msg = error_msg + "<li>Please enter the <b>Name on your Credit Card</b>.</li>";
			$('#cc-name-label').addClass("form-error-label");
			error = true;
		}
		
		if (dropdown_empty(exp_month)){
			error_msg = error_msg + "<li>Please enter your Credit Card's <b>Expiration Month</b>.</li>";
			$('#expiration-label').addClass("form-error-label");
			error = true;
		}
	
		if (dropdown_empty(exp_year)){
			error_msg = error_msg + "<li>Please enter your Credit Card's <b>Expiration Year</b>.</li>";
			$('#expiration-label').addClass("form-error-label");
			error = true;
		}
		
		cc_security = stripChars(cc_security);
		if ((cc_security.length < 3)||(!validateNumeric(cc_security))){
			error_msg = error_msg + "<li>Please enter your Credit Card's <b>Security Code</b>.</li>";
			$('#cc-security-code-label').addClass("form-error-label");
			error = true;
		}
	}
	
	if ($('#paypal_radio').attr("checked")){
		var paypal_email = document.payment_info.paypal_email.value;
		
		if ((paypal_email === "")||(!validateEmail(paypal_email))){
			error_msg = error_msg + "<li>Please enter a valid <b>PayPal Email Address</b>.</li>";
			$('#email-label').addClass("form-error-label");
			error = true;
		}
	}

	error_msg = "<ul>" + error_msg + "</ul>";
	
	if(!error){
	  $('.form-full-row label').removeClass("form-error-label");
		$('#form_errors').hide('fast');
		return true;
	}
	else{
		$('#form_errors').show('slow');
		$('#form_error_msg').html(error_msg);
		window.scrollTo(200,70);
		return false;
	}
}