function validateForm(theForm) {
	var errors = "The following errors were found:\n";
	if(theForm.solutionsseeked){theForm.solutionsseeked.value = findCheckboxes();}
	
	errors += validateRecipient(theForm.recipient);
	errors += validateLastName(theForm.lastname);
	errors += validateFirstName(theForm.firstname);
	errors += validateEmail(theForm.sender);
	
	if(theForm.rcompany) {errors += validateCompany(theForm.rcompany);}
	if(theForm.rtelephone) {errors += validateTelephone(theForm.rtelephone);}
	if(theForm.alttelephone) {errors += validateAltTelephone(theForm.alttelephone);}
	if(theForm.cellphone) {errors += validateCell(theForm.cellphone);}
	if(theForm.title) {errors += validateTitle(theForm.title);}
	if(theForm.address1) {errors += validateAddress(theForm.address1);}
	if(theForm.city) {errors += validateCity(theForm.city);}
	if(theForm.state) {errors += validateState(theForm.state);}
	if(theForm.zipcode) {errors += validateZip(theForm.zipcode);}
	if(theForm.fund) {errors += validateFund(theForm.fund);}
	if(theForm.notes) {errors += validateNotes(theForm.notes);}
		
	if(errors != "The following errors were found:\n") {
		alert(errors);
		return false;
	} else {
		theForm.submit();
	}
}

function validateRecipient(fld) {
    var error = "";
  	
    if (fld.value.length == 0) { 
        error = "- Please select a department.\n"
    } else {}
    return error;   
}

function validateLastName(fld) {
    var error = "";
  	reEx = new RegExp(/[^a-zA-Z0-9-_().\s\+]/);
    if (fld.value.length == 0) { 
        error = "- Please enter your last name.\n"
    } else if (reEx.test(fld.value)) {
		error = "- Please enter a valid last name.\n"
	} else {}
    return error;   
}

function validateFirstName(fld) {
    var error = "";
  	reEx = new RegExp(/[^a-zA-Z0-9-_().\s\+]/);
    if (fld.value.length == 0) { 
        error = "- Please enter your first name.\n"
	} else if (reEx.test(fld.value)) {
		error = "- Please enter a valid first name.\n"
    } else {}
    return error;   
}

function validateCompany(fld) {
    var error = "";
  	reEx = new RegExp(/[^a-zA-Z0-9-_().\s\+]/);
    if (reEx.test(fld.value)) { 
        error = "- Please enter a valid company name.\n"
    } else {}
    return error;   
}

function validateTitle(fld) {
    var error = "";
  reEx = new RegExp(/[^a-zA-Z0-9-_().\s\+]/);
  
    if (reEx.test(fld.value)) { 
        error = "- Please enter a valid title.\n"
    } else {
    }
    return error;   
}

function validateAddress(fld) {
    var error = "";
  	reEx = new RegExp(/[^a-zA-Z0-9-_().\s\+]/);
    if (reEx.test(fld.value)) { 
        error = "- Please enter a valid address.\n"
    } else {
    }
    return error;   
}

function validateCity(fld) {
    var error = "";
   	reEx = new RegExp(/[^a-zA-Z-_.\s]/);
    if (reEx.test(fld.value)) { 
        error = "- Please enter a valid city.\n"
    } else {
    }
    return error;   
}

function validateState(fld) {
    var error = "";
  	reEx = new RegExp(/[^a-zA-Z-_()\s]/);
    if (reEx.test(fld.value)) { 
        error = "- Please select a valid state.\n"
    } else {
    }
    return error;   
}

function trim(s){return s.replace(/^\s+|\s+$/, '');} 

function validateTelephone(fld) {
    var error = "";
  	rePhoneNumber = new RegExp(/[^a-zA-Z0-9-()\s\+]/);
    if ((rePhoneNumber.test(fld.value))) { 
        error = "- Please enter a valid phone number. \n"
    } else {}
    return error;   
}

function validateAltTelephone(fld) {
    var error = "";
  	rePhoneNumber = new RegExp(/[^a-zA-Z0-9-()\s\+]/);
    if ((rePhoneNumber.test(fld.value))) { 
        error = "- Please enter a valid Alt. Telephone number, or leave blank. \n"
    } else {}
    return error;   
}

function validateCell(fld) {
    var error = "";
  	rePhoneNumber = new RegExp(/[^a-zA-Z0-9-()\s\+]/);

    if ((rePhoneNumber.test(fld.value))) { 
        error = "- Please enter a valid Cell phone number, or leave blank. \n"
    } else {}
    return error;   
}

function validateZip(fld) {
    var error = "";
  	reZip = new RegExp(/[^a-zA-Z0-9-\s]/);
    if (reZip.test(fld.value)) { 
        error = "- Please enter a valid postal code. \n"
    } else {
    }
    return error;   
}

function validateFund(fld) {
    var error = "";
  	reEx = new RegExp(/[^a-zA-Z0-9-_().\s\+]/);
    if (reEx.test(fld.value)) { 
        error = "- Please enter a valid Fund. \n"
    } else {
    }
    return error;   
}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\'\;\:\\\"\[\]]/ ;
    
    if (fld.value == "") {
        error = "- Please enter an email address.\n";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        error = "- Please enter a valid email address.\n";
    } else if (fld.value.match(illegalChars)) {
        error = "- The email address contains illegal characters.\n";
    } else {}
    return error;
}

function validateNotes(fld) {
    var error = "";
  	reEx = new RegExp(/[^a-zA-Z0-9-_()\s\+]/);
    if ((reEx.test(fld.value))) { 
        error = "- Please enter a valid comments. \n"
    } else {}
    return error;   
}
function violationsForm(theForm) {
	var stdSubjectHdr = "JaggedPeak.com Violations Report: ";
	var enteredSubjectHdr = theForm.subject.value;
	
	if(theForm.message.value == 0) {
		alert("You must enter a message in order to send this e-mail.")
		return false;
	} else {
		if(theForm.sender.value == 0) {theForm.sender.value = "anonymous@jaggedpeak.com";}
		if(theForm.subject.value == 0) {
			theForm.subject.value = stdSubjectHdr + "No Subject Provided";
		} else {
			theForm.subject.value = stdSubjectHdr + enteredSubjectHdr;
		}
		theForm.submit();
	}
}

function findCheckboxes() {
	var inputs = document.getElementsByTagName("input");
	var checkboxes = new Array();
	var solutions = "";
	var j = 0;
	
	for (i=0; i<inputs.length; i++) {
		if (inputs[i].type == "checkbox") {
			checkboxes[j] = inputs[i];
			j++;
		}
	}
	
	for (i=0; i<checkboxes.length; i++) {
		if (checkboxes[i].checked == 1) {
			solutions += checkboxes[i].value + ",";
		}
	}
	return solutions;
}

function ckselect(n){
	if (n == 'United States'){
			document.getElementById("stdiv1").style.display = 'block';
			document.getElementById("stdiv2").style.display = 'none';
	} else {
			document.getElementById("stdiv1").style.display = "none";
			document.getElementById("stdiv2").style.display = "block";
	}
}