/******************************************************************************
 *	Function:		Form Validation Scripts
 *	Created:		06/11/2007
 *
 *	Purpose:		JavaScript library of enhanced text field functions.
 *
 *	Functions:		
 *					validateEmail
 *					CheckCountryCode
 *					checkNominatorForm
 * 					checkCandidateForm
 *					checkReferenceForm
 *					checkReviewerForm
 *
*******************************************************************************
Date:				
Author:  			
Mod Description:	
******************************************************************************/

// ########################################################
// VALIDATE EMAIL
// ########################################################
//	Function: 	validateEmail()
//	Author:		Randy Adkins
//	Created:	06/11/2007
//	Purpose:  	Validates that a string contains a  valid email pattern.		
//	Returns: 	True if valid, otherwise false.
//	Arguements: oField - Form field containing string to be tested for validity
// #################################################################################
function validateEmail_prev( oField ) {
	var strValue = oField.value;
	var objRegExp  =	/(^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$)/i;
	//check for valid email
	if (!objRegExp.test(strValue) )	{
		//alert('Invalid email address!');
		return false;
	}
	else { 
		return true;
	}
}

function validateEmail(argvalue) {

  if (argvalue.indexOf(" ") != -1)
    return false;
  else if (argvalue.indexOf("@") == -1)
    return false;
  else if (argvalue.indexOf("@") == 0)
    return false;
  else if (argvalue.indexOf("@") == (argvalue.length-1))
    return false;

}

// ########################################################
// CHECKCOUNTRYCODE
// ########################################################
//	Function: 	CheckCountryCode()
//	Author:		Randy Adkins
//	Created:	06/11/2007
//	Purpose:  	Checks Country code corresponds to State or Province
//	Returns: 	N/A
//	Arguements: N/A
//
//  Developer Comments:
//	Firefox handles the display of the dynamic fields differently than IE.
//  You must determine browser level prior to toggling field.
//
// #################################################################################
function CheckCountryCode(){
	thisCode = document.getElementById('sCountryList').value;
	
	 if(navigator.appName.indexOf("Microsoft") > -1){
		var canSee = 'inline'
	 } 
	 else {
	 	var canSee = 'table-row';
	} 
	
	if (thisCode == 'USA'){
		document.getElementById('fProvince').value == '';
		document.getElementById('fState').style.visibility = "visible";
		document.getElementById('fState').style.display = canSee;
		document.getElementById('fProvince').style.visibility = "hidden";
		document.getElementById('fProvince').style.display = "none";
	}
	else {
		document.getElementById('fState').style.visibility = "hidden";
		document.getElementById('fProvince').style.visibility = "visible";
		document.getElementById('fState').style.display = "none";
		document.getElementById('fProvince').style.display = canSee;
		document.getElementById('sStateList').value == '';
	}
}


// ########################################################
// CHECK NOMINATOR FORM
// ########################################################
//	Function: 	checkNominatorForm()
//	Author:		Randy Adkins
//	Created:	06/11/2007
//	Purpose:  	Validates that all form field elements for the Nominator are complete
//	Returns: 	True if all fields are complete, otherwise false.
//	Arguements: N/A
// #################################################################################
function checkNominatorForm(){
	var msg = "Please complete the following fields before continuing:\n";
	var err = 0;
	if (trimAll(document.getElementById('nominatorFirstName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your First Name";
	}
	if (trimAll(document.getElementById('nominatorLastName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Last Name";
	}
	if (trimAll(document.getElementById('nominatorOrganization').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your School/Organization";
	}
	if (trimAll(document.getElementById('nominatorTitle').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Title";
	}
	if (trimAll(document.getElementById('nominatorAddress').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Mailing Address";
	}
	if (trimAll(document.getElementById('nominatorCity').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your City";
	}
	if (trimAll(document.getElementById('nominatorZip').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Zip/Postal Code";
	}
	if (document.getElementById('sCountryList').value == "") {
		err = err + 1;
		msg = msg + "\n-Your Country";
	}
	else {
		thisCode = document.getElementById('sCountryList').value;
		if (thisCode == 'USA'){
			// Make sure the user has selected a State
			if (document.getElementById('sStateList').value == "") {
				err = err + 1;
				msg = msg + "\n-Your State";
			}
		}
		else {
			// Make sure the user has entered a Province
			if (trimAll(document.getElementById('nominatorProvince').value) == "") {
				err = err + 1;
				msg = msg + "\n-Your Province";
			}
		}
	}
	if (trimAll(document.getElementById('nominatorEmail').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Email Address";
	}
	else {
		if (validateEmail(document.getElementById('nominatorEmail').value) == false){
			err = err + 1;
			msg = msg + "\n-Your Email Address is not valid";
		}
	}
	if (trimAll(document.getElementById('nominatorPhone').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Phone Number";
	}
	if (trimAll(document.getElementById('nominatorCandidateFirstName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Candidate's First Name";
	}
	if (trimAll(document.getElementById('nominatorCandidateLastName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Candidate's Last Name";
	}
	if (trimAll(document.getElementById('nominatorCandidateOrganization').value) == "") {
		err = err + 1;
		msg = msg + "\n-Candidate's School/Organization";
	}
	if (trimAll(document.getElementById('nominatorCandidateTitle').value) == "") {
		err = err + 1;
		msg = msg + "\n-Candidate's Title";
	}
	if (trimAll(document.getElementById('nominatorCandidateEmail').value) == "") {
		err = err + 1;
		msg = msg + "\n-Candidate's Email Address";
	}
	else {
		if (validateEmail(document.getElementById('nominatorCandidateEmail').value) == false){
			err = err + 1;
			msg = msg + "\n-Candidate's Email Address is not valid";
		}
	}
	if (err != 0){
		alert(msg);
		return false
	}
	return true
}




// ########################################################
// CHECK CANDIDATE FORM
// ########################################################
//	Function: 	checkCandidateForm()
//	Author:		Randy Adkins
//	Created:	06/11/2007
//	Purpose:  	Validates that all form field elements for the Candidate are complete
//	Returns: 	True if all fields are complete, otherwise false.
//	Arguements: N/A
// #################################################################################
function checkCandidateForm(){
	var msg = "Please complete the following fields before continuing:\n";
	var err = 0;
	if (trimAll(document.getElementById('candidateFirstName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your First Name";
	}
	if (trimAll(document.getElementById('candidateLastName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Last Name";
	}
	if (trimAll(document.getElementById('candidateOrganization').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your School/Organization";
	}
	if (trimAll(document.getElementById('candidateTitle').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Title";
	}
	if (trimAll(document.getElementById('candidateAddress').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Mailing Address";
	}
	if (trimAll(document.getElementById('candidateCity').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your City";
	}
	if (trimAll(document.getElementById('candidateZip').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Zip/Postal Code";
	}
	if (document.getElementById('sCountryList').value == "") {
		err = err + 1;
		msg = msg + "\n-Your Country";
	}
	else {
		thisCode = document.getElementById('sCountryList').value;
		if (thisCode == 'USA'){
			// Make sure the user has selected a State
			if (document.getElementById('sStateList').value == "") {
				err = err + 1;
				msg = msg + "\n-Your State";
			}
		}
		else {
			// Make sure the user has entered a Province
			if (trimAll(document.getElementById('candidateProvince').value) == "") {
				err = err + 1;
				msg = msg + "\n-Your Province";
			}
		}
	}
	if (trimAll(document.getElementById('candidateEmail').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Email Address";
	}
	else{
		if (validateEmail(trimAll(document.getElementById('candidateEmail').value)) == false){
			err = err + 1;
			msg = msg + "\n-Your Email Address is not valid";
		}
	}
	if (trimAll(document.getElementById('candidatePhone').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Phone Number";
	}
	if (trimAll(document.getElementById('candidateReferenceFirstName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Reference's First Name";
	}
	if (trimAll(document.getElementById('candidateReferenceLastName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Reference's Last Name";
	}
	if (trimAll(document.getElementById('candidateReferenceOrganization').value) == "") {
		err = err + 1;
		msg = msg + "\n-Reference's School/Organization";
	}
	if (trimAll(document.getElementById('candidateReferenceTitle').value) == "") {
		err = err + 1;
		msg = msg + "\n-Reference's Title";
	}
	if (trimAll(document.getElementById('candidateReferenceEmail').value) == "") {
		err = err + 1;
		msg = msg + "\n-Reference's Email Address";
	}
	else{
		if (validateEmail(trimAll(document.getElementById('candidateReferenceEmail').value)) == false){
			err = err + 1;
			msg = msg + "\n-Reference's Email Address is not valid";
		}
	}
	// Commentary
	if (trimAll(document.getElementById('candidateCommentary').value) == "") {
		err = err + 1;
		msg = msg + "\n-Commentary";
	}
	// Resume Skills 
	if (trimAll(document.getElementById('resumeKeySkills').value) == "") {
		err = err + 1;
		msg = msg + "\n-Key Skills";
	}
	if (trimAll(document.getElementById('resumeWorkHistory').value) == "") {
		err = err + 1;
		msg = msg + "\n-Work History";
	}
	if (trimAll(document.getElementById('resumeEducation').value) == "") {
		err = err + 1;
		msg = msg + "\n-Education";
	}
	if (trimAll(document.getElementById('resumeProfessionalAffiliations').value) == "") {
		err = err + 1;
		msg = msg + "\n-Professional Affiliations";
	}
	if (err != 0){
		alert(msg);
		return false
	}
	return true
}




// ########################################################
// CHECK REFERENCE FORM
// ########################################################
//	Function: 	checkReferenceForm()
//	Author:		Randy Adkins
//	Created:	06/17/2007
//	Purpose:  	Validates that all form field elements for the Reference are complete
//	Returns: 	True if all fields are complete, otherwise false.
//	Arguements: N/A
// #################################################################################
function checkReferenceForm(){
	var msg = "Please complete the following fields before continuing:\n";
	var err = 0;
	if (trimAll(document.getElementById('referenceFirstName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your First Name";
	}
	if (trimAll(document.getElementById('referenceLastName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Last Name";
	}
	if (trimAll(document.getElementById('referenceOrganization').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your School/Organization";
	}
	if (trimAll(document.getElementById('referenceTitle').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Title";
	}
	if (trimAll(document.getElementById('referenceAddress').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Mailing Address";
	}
	if (trimAll(document.getElementById('referenceCity').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your City";
	}
	if (trimAll(document.getElementById('referenceZip').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Zip/Postal Code";
	}
	if (document.getElementById('sCountryList').value == "") {
		err = err + 1;
		msg = msg + "\n-Your Country";
	}
	else {
		thisCode = document.getElementById('sCountryList').value;
		if (thisCode == 'USA'){
			// Make sure the user has selected a State
			if (document.getElementById('sStateList').value == "") {
				err = err + 1;
				msg = msg + "\n-Your State";
			}
		}
		else {
			// Make sure the user has entered a Province
			if (trimAll(document.getElementById('referenceProvince').value) == "") {
				err = err + 1;
				msg = msg + "\n-Your Province";
			}
		}
	}
	if (trimAll(document.getElementById('referenceEmail').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Email Address";
	}
	else{
		if (validateEmail(trimAll(document.getElementById('referenceEmail').value)) == false){
			err = err + 1;
			msg = msg + "\n-Your Email Address is not valid";
		}
	}
	if (trimAll(document.getElementById('referencePhone').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Phone Number";
	}
	// Statement of Support
	if (trimAll(document.getElementById('statementOfSupport').value) == "") {
		err = err + 1;
		msg = msg + "\n-Statement of Support";
	}
	if (err != 0){
		alert(msg);
		return false
	}
	return true
}



// ########################################################
// CHECK REVIEWER FORM
// ########################################################
//	Function: 	checkReviewerForm()
//	Author:		Randy Adkins
//	Created:	06/20/2007
//	Purpose:  	Validates that all form field elements for the Reviewer are complete
//	Returns: 	True if all fields are complete, otherwise false.
//	Arguements: N/A
// #################################################################################
function checkReviewerForm(){
	var msg = "Please complete the following fields before continuing:\n";
	var err = 0;
	if (trimAll(document.getElementById('reviewerID').value) == "") {
		err = err + 1;
		msg = msg + "\n-ID Number";
	}
	else {
		if (isNaN(document.getElementById('reviewerID').value)){
			err = err + 1;
			msg = msg + "\n-ID number must be NUMERIC";
		}
	}
	if (trimAll(document.getElementById('reviewerFirstName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your First Name";
	}
	if (trimAll(document.getElementById('reviewerLastName').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Last Name";
	}
	if (trimAll(document.getElementById('reviewerEmail').value) == "") {
		err = err + 1;
		msg = msg + "\n-Your Email Address";
	}
	else{
		if (validateEmail(trimAll(document.getElementById('reviewerEmail').value)) == false){
			err = err + 1;
			msg = msg + "\n-Your Email Address is not valid";
		}
	}
	if (err != 0){
		alert(msg);
		return false
	}
	return true
}


