// JavaScript Document
var errors = new Array();
var objs = new Array();

var eid = /^[\w\d]+$/;
var name_exp = /^[\w\d-' ,\.]+$/;
var email_exp = /\b[\w\.-_]+@[\w-_]+\.[\w\.-_]+\w\b/;
var ssn_exp = /^\d{3}-?\d{2}-?\d{4}$/;
var city_exp = /^[a-zA-Z \-]+$/;
var state_exp = /^[a-zA-Z]{2}$/;
var zip_exp = /^[\d]{5}-?(\d{4})?$/
var phone_exp = /^\(?\d{3}\)?-? ?\d{3}-?\d{4}$/;
var short_phone_exp = /^\d{3}-?\d{4}$/;
var areacode_exp = /^\d{3}$/;
var major_exp = /^[a-zA-Z -]+$/;
var number_exp = /^\d+$/;

function chkform_appointment()
{
	var result;


	var frm = document.apptfrm;
	
	//Sender's name
	result = frm.sender_name.value.search(name_exp);
	if( result == -1 ) inserterror("Invalid sender name", frm.sender_name);
	
	//sender's area code
	result = frm.sender_phone_areacode.value.search(areacode_exp);
	if( result == -1) inserterror("Invalid sender area code", frm.sender_phone_areacode);
	
	//sender's phone
	result = frm.sender_phone.value.search(short_phone_exp);
	if(result == -1 ) inserterror("Invalid sender phone number", frm.sender_phone);
	
	//sender's email (not required)
	result = frm.sender_email.value.search(email_exp);
	if(result == -1 && frm.sender_email.value != "") inserterror("Invalid email (sender)", frm.sender_email);
	
	//Name (patient)
	result = frm.p_name.value.search( name_exp );
	if( result == -1 ) inserterror("Please provide full legal name of patient.", frm.p_name );
	
	//address (patient)
	if( frm.p_home_addr.value == "" ) inserterror("Invalid address (patient)", frm.p_home_addr);
	//city (patient)
	result = frm.p_city.value.search( city_exp );
	if( result == -1 ) inserterror("Invalid city (patient)", frm.p_city );
	//state (patient)
	if( frm.p_state.selectedIndex == 0 ) inserterror("Select a city (patient)", frm.p_state );
	//zip code (patient)
	result = frm.p_zipcode.value.search( zip_exp );
	if( result == -1 ) inserterror("Invalid ZIP code (patient)", frm.p_zipcode );
	
	//patient area code
	result = frm.p_dt_phone_areacode.value.search(areacode_exp);
	if( result == -1 ) inserterror("Invalid daytime phone area code (patient", frm.p_dt_phone_areacode);
	//daytime phone (patient)
	result = frm.p_dt_phone.value.search( short_phone_exp );
	if( result == -1 ) inserterror("Invalid daytime phone number (patient)", frm.p_dt_phone);
	//evening phone (patient)
	result = frm.p_ev_phone.value.search( short_phone_exp );
	if( result == -1 && frm.p_ev_phone.value != "") inserterror("Invalid evening phone number (patient)", frm.p_ev_phone);
	
	//mobile phone (patient)
	result = frm.p_cell_phone.value.search( short_phone_exp );
	if( result == -1 && frm.p_cell_phone.value != "" ) inserterror("Invalid mobile/cell phone number (patient)", frm.p_cell_phone);
	//emergency contact name
	result = frm.p_emergency_name.value.search(name_exp)
	if( result == -1 && frm.p_emergency_name.value != "") inserterror("Invalid emergeny contact name", frm.p_emergeny_name);
	//emergency contact phone (patient)
	result = frm.p_emergency_phone.value.search( short_phone_exp );
	if( result == -1 && frm.p_emergency_phone.value != "" ) inserterror("Invalid emergency contact number (patient)", frm.p_emergency_phone);
	
	//email (patient)
	result = frm.p_email.value.search( email_exp );
	if( result == -1 && frm.p_email.value != "" ) inserterror("Invald e-mail address (patient)", frm.p_email);
	//date of birth
	if( frm.p_dob.value == "" ) inserterror("Invalid date of birth (patient)", frm.p_dob);
	//gender (patient)
	//if( !frm.p_gender[0].checked && !frm.p_gender[1].checked ) inserterror("Please select a gender", frm.p_gender[0]);
	
	//resson
	if( frm.reason_for_referral.value == "") inserterror("Please enter a reason for the referral", frm.reason_for_referral);
	
	//health insurance plan
	//if( frm.health_insurance_company.value == "" ) inserterror("Health insurance company", frm.health_insurance_company);
	

	//pcp name
	//result = frm.pcp_name.value.search(name_exp);
	//if( result == -1 ) inserterror("Name of primary care physician", frm.pcp_name);
	
	//pcp phone areacode
	result = frm.pcp_phone_areacode.value.search(areacode_exp);
	if(result == -1 ) inserterror("Area code (Primary care physician)", frm.pcp_phone_areacode);
	
	//pcp phone number
	result = frm.pcp_phone.value.search( short_phone_exp );
	if( result == -1 && frm.pcp_phone.value != "" ) inserterror("Phone number (Primary care physician)", frm.pcp_phone);
	result = frm.pcp_email.value.search(email_exp);
	if( result == -1 && frm.pcp_email.value != "") inserterror("Email address (Primary care physician)", frm.pcp_email);
	
	
	return submitform(frm);
	
}//chkform_appointment

function chkform_askmassey()
{
	var frm = document.frmAskMassey;
	
	result = frm.email.value.search(email_exp);
	if( result == -1 ) inserterror("Invalid e-mail", frm.email);
	
	if( frm.email.value != frm.email2.value) inserterror("The two e-mail addresses do not match", frm.email2);
	
	//if( frm.comment.value.indexOf("Enter comment here") >= 0 || frm.comment.value == "") inserterror("Please enter your comment", frm.comment);
	
	return submitform(frm);
	
}//chkform_askmassey

function chkform_speakerrequest()
{
	var frm = document.frmSpeakerRequest;
	
	
	if( frm.RequestOrg.value == "") inserterror("Requesting organization", frm.RequestOrg);
	
	result = frm.ContactPerson.value.search(name_exp);
	if( result == -1 ) inserterror("Contact person", frm.ContactPerson);
	
	if( frm.Street.value == "") inserterror("Street", frm.Street);
	
	result = frm.City.value.search(city_exp);
	if( result == -1) inserterror("City", frm.City);
	
	if( frm.State.selectedIndex == 0 ) inserterror("State", frm.State);
	
	result = frm.ZipCode.value.search(zip_exp);
	if(result == -1) inserterror("ZIP Code", frm.ZipCode);
	
	result = frm.DaytimePhone.value.search(phone_exp);
	if( result == -1 ) inserterror("Daytime phone number", frm.DaytimePhone);
	
	result = frm.FaxNumber.value.search(phone_exp);
	if( result == -1) inserterror("Fax number", frm.FaxNumber);
	
	result = frm.Email.value.search(email_exp);
	if( result == -1 ) inserterror("E-mail", frm.Email);
	
	if( frm.Topic1.selectedIndex == 0) inserterror("Topic", frm.Topic1);
	
	if( frm.DateOfEvent.value == "" ) inserterror("Date of event", frm.DateOfEvent);
	
	if( frm.LengthOfTalk.value == "" ) inserterror("Length of talk", frm.LengthOfTalk);
	
	if( frm.Time.value == "" ) inserterror("Time", frm.Time);
	
	if( frm.Location.value == "" ) inserterror("Location/direction", frm.Location);
	
	if( frm.GroupName.value == "" ) inserterror("Group name and event description", frm.GroupName);
	
	if( frm.NumberOfAttendees.value == "") inserterror("Number of attendees", frm.NumberOfAttendees);
	if( frm.AudienceMakeup.value == "") inserterror("Audience make-up", frm.AudienceMakeup);
	
	return submitform(frm);
	
}//chkform_speakerrequest

function chkform_subscribe()
{
	var frm = document.frmSubscribe;
	
//	result = frm.FirstName.value.search(name_exp);
//	if( result == -1 ) inserterror("First name", frm.FirstName);
	
//	result = frm.LastName.value.search(name_exp);
//	if( result == -1 ) inserterror("Last anem", frm.LastName);
	
//	if( frm.Title.value == "" ) inserterror("Title", frm.Title);
	
//	if( frm.Affiliation.value == "" ) inserterror("Affiliation", frm.Affiliation);
	
	result = frm.Email.value.search(email_exp);
	if(result == -1) inserterror("E-mail", frm.Email);
	
	if(frm.State.selectedIndex == 0 ) inserterror("State", frm.State);
	
	
	if( !frm.Subscription[0].checked && !frm.Subscription[1].checked ) inserterror("Subscription", frm.Subscription[0]);
	
	return submitform(frm);
	
}//chkform_subscribe

function chkform_emailtopic()
{
	
	var frm = document.frmEmailTopic;
	
	result = frm.from_name.value.search(name_exp);
	if( result == -1 ) inserterror("Your name", frm.from_name);
	
	result = frm.from_email.value.search(email_exp);
	if( result == -1 ) inserterror("Your e-mail", frm.from_email);
	
	resuult = frm.to_name.value.search(name_exp);
	if( result == -1 ) inserterror("Recipient's name", frm.to_name);
	
	result = frm.to_email.value.search(email_exp);
	if( result == -1 ) inserterror("Recipient's e-mail", frm.to_email);
	
	submitform(frm);
}//chkform_emailtopic

function chkform_biodata()
{
	var frm = document.bioform;
	
	result = frm.VCUeID.value.search(eid);
	if(result == -1) inserterror("VCU eID", frm.VCUeID);
	
	//Last name
	if( frm.lastname.value == "" ) inserterror("Last name", frm.lastname);
	
	//first name
	if( frm.firstname.value == "") inserterror("First name", frm.firstname);
	
	if( frm.fullname.value == "") inserterror("Full name", frm.fullname);
	
	result = frm.email.value.search(email_exp);
	if( result == -1 ) inserterror("E-mail", frm.email );
	
	//if( frm.cln_expt_keywords.value == "")  inserterror("Clinical expertise", frm.cln_expt_keywords);
	
	submitform(frm);
	
}//chkform_biodata

function chkform_survivors()
{
	var frm = document.regform;
	var result;
	


	//first name, check if field is empty
	if(frm.firstname.value == "") inserterror("Missing first name", frm.firstname);
	
	//last name, check if field is empty
	if(frm.lastname.value == "") inserterror("Missing last name", frm.lastname);
	
	//e-mail, check for correct format
	result = frm.email.value.search(email_exp);
	if( result == -1 ) inserterror("Missing e-mail", frm.email);
	
	var radioselected = false;
	
	for(var i=0; i < frm.session.length; i++)
	{
		if(frm.session[i].checked)
		{
			radioselected = true;
			break;
		}//if
	}//for
	
	//radioselected = frm.session.checked;
	if( !radioselected ) inserterror("No session has been selected", frm.session[0]);
	
	submitform(frm);
	
	
	
}//chkform_survivor

function chkform_ctmyths()
{
	var frm = document.regform;
	var result;
	


	//first name, check if field is empty
	if(frm.firstname.value == "") inserterror("Missing first name", frm.firstname);
	
	//last name, check if field is empty
	if(frm.lastname.value == "") inserterror("Missing last name", frm.lastname);
	
	//e-mail, check for correct format
	result = frm.email.value.search(email_exp);
	if( result == -1 ) inserterror("Missing e-mail", frm.email);
	
	//number attending
	result = frm.number_attending.value.search(number_exp);
	if( result == -1 ) inserterror("Missing number attending", frm.number_attending);
	

	
	submitform(frm);
	
	
	
}//chkform_ctmyths

function chkform_sneakerAndGenes()
{
	var frm = document.regform;
	var result;
	


	//first name, check if field is empty
	if(frm.firstname.value == "") inserterror("Missing first name", frm.firstname);
	
	//last name, check if field is empty
	if(frm.lastname.value == "") inserterror("Missing last name", frm.lastname);
	
	//e-mail, check for correct format
	result = frm.email.value.search(email_exp);
	if( result == -1 ) inserterror("Missing e-mail", frm.email);
	
	//number attending
	result = frm.register;
	if( !result.checked ) inserterror("Missing sessions", frm.register);
	

	
	submitform(frm);
	
	
	
}//chkform_sneakerAndGenes


function inserterror( message, obj )
{
		errors[errors.length] = message;
		objs[objs.length] = obj;
}//inserterror

function submitform( frm )
{
	if( errors.length > 0 ) 
	{
		var err_message = "Following error(s) have been found:\n\r \n\r";
		for( i=0; i < errors.length; i++ )
			err_message += errors[i] + "\n\r";
		err_message += "\n\rPlease make the correction.\n\r";
		alert( err_message );
		objs[0].focus();
		if( objs[0].type == "text" )
			objs[0].select();
		
		errors = new Array();
		objs = new Array();
		return false;
	} 
	else
	{
		frm.submit();
	}
}//submitform