
/*
checkdate - check that date is valid and in correct format
*/
function checkdate(objName) {
	var datefield = objName;
	if (chkdate(objName) == false) {
		datefield.select();
		alert("Please enter a valid date in the 'mm/dd/yyyy' format")
		datefield.focus();
		return false;
	}
	else {
		return true;
	}
}

function chkdate(objName) {
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intDay;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var err = 0;

strDate = datefield.value;
if (strDate.length < 1) {
	return false;
}

if (strDate.indexOf("/") != -1) {
	strDateArray = strDate.split("/")
	if (strDateArray.length != 3) {
		err = 1;
		return false;
	}
	else {
		strMonth = strDateArray[0];
		strDay = strDateArray[1];
		strYear = strDateArray[2];
	}
	booFound = true;
}

if (booFound == false) {
	return false;
}

if ((strYear.length == 3) || (strYear.length > 4)){
	err = 11;
	return false;
}

if (strYear.length == 2) {
	if (parseInt(strYear,10) <= 49){
		strYear = '20' + strYear;
	}
	else {
		strYear = '19' + strYear;
	}
}

if (strYear.length == 1) {
	strYear = '200' + strYear;
}

if (strMonth.length == 1) {
	strMonth = '0' + strMonth
}

if (strDay.length == 1) {
	strDay = '0' + strDay
}

intDay = parseInt(strDay, 10);
if (isNaN(intDay)) {
	err = 2;
	return false;
}

intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
	err = 3;
	return false;
}

intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
	err = 4;
	return false;
}

if (intMonth>12 || intMonth<1) {
	err = 5;
	return false;
}

if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intDay > 31 || intDay < 1)) {
	err = 6;
	return false;
}

if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intDay > 30 || intDay < 1)) {
	err = 7;
	return false;
}
if (intMonth == 2) {
	if (intDay < 1) {
		err = 8;
		return false;
	}
	if (LeapYear(intYear) == true) {
		if (intDay > 29) {
			err = 9;
			return false;
		}
	}
	else {
		if (intDay > 28) {
			err = 10;
			return false;
		}
	}
}
datefield.value = strMonth + "/" + strDay+"/" + strYear;
return true;
}

function LeapYear(intYear) {
	if (intYear % 100 == 0) {
		if (intYear % 400 == 0) {
			return true;
		}
	}
	else {
		if ((intYear % 4) == 0) {
			return true;
		}
	}
return false;
}

function doDateCheck(from, to) {
	alert(from.value);
	alert(to.value);
	/*
	if (Date.parse(from.value) <= Date.parse(to.value)) {
		alert ("Dates OK")
		return true;
	}
	else {
		alert("TO date must be later than the FROM date for auto loan effective dates.")
		return false;
	}
	*/
}

/*
============================================================
START - Admin Event Entry and Edit Validations
============================================================
*/
function ValidateEventEnter(form)
{
	var msg = "";
	var msg_begin = "Please enter or select a value for: ";
	if ((form.Name.value == null) || (form.Name.value.length == 0)){
		if (msg != "") msg = msg + "\n\tName";
		else msg = msg_begin + "\n\tName";
	}

	if (((form.EventDate.value == null) || (form.EventDate.value.length == 0)) && (form.EventType.value != 'ODW')){
		if (msg != "") msg = msg + "\n\tDate";
		else msg = msg_begin + "\n\tDate";
	}
	
	if (((form.Location.value == null) || (form.Location.value.length == 0)) && (form.EventType.value != 'ODW')){
		if (msg != "") msg = msg + "\n\tLocation";
		else msg = msg_begin + "\n\tLocation";
	}

	if ((form.CostCenter.value == null) || (form.CostCenter.value.length == 0)){
		if (msg != "") msg = msg + "\n\tCost Center";
		else msg = msg_begin + "\n\tCost Center";
	}
	
	if ((form.MemberFee.value == null) || (form.MemberFee.value.length == 0)){
		if (msg != "") msg = msg + "\n\tFee";
		else msg = msg_begin + "\n\tFee";
	}
	/*
	if (((form.NonMemberFee.value == null) || (form.NonMemberFee.value.length == 0)) && (form.EventType.value != 'ODW')){
		if (msg != "") msg = msg + "\n\tNon-Member Fee";
		else msg = msg_begin + "\n\tNon-Member Fee";
	}
	
	if (((form.Scholarship.value == null) || (form.Scholarship.value.length == 0)) && (form.EventType.value != 'ODW')){
		if (msg != "") msg = msg + "\n\tScholarship Fee";
		else msg = msg_begin + "\n\tScholarship Fee";
	}
	*/
	if (form.Active.value == "0"){
		if (msg != "") msg = msg + "\n\tActive";
		else msg = msg_begin + "\n\tActive";
	}

	if ((form.EventType.value == 'Webinar') && (chkdate(form.SortDate) == false)){
		if (msg != "") msg = msg + "\n\nA Webinar Event requires a valid Start Date in the 'mm/dd/yyyy' format"
		else msg = "A Webinar Event requires a valid Start Date in the 'mm/dd/yyyy' format"
	}

	if ((form.EventType.value == 'Webinar') && (((form.StartHour.value > 12) || (form.StartHour.value < 1)) || ((form.StartMinute.value < 0) || (form.StartMinute.value > 59)))){
		if (msg != "") msg = msg + "\n\nA Webinar Event requires a valid Start Time in the 'hh:mm' format"
		else msg = "A Webinar Event requires a valid Start Time in the 'hh:mm' format"
	}

	if (form.DiscAvail.checked == true){
		if ((form.DiscFee.value.length == 0) || (form.DiscFee.value == 0)){
			if (msg != "") msg = msg + "\n\nIf Discount Fee Available is checked, you must enter a non-zero Discount Fee";
			else msg = msg_begin + "\n\nIf Discount Fee Available is checked, you must enter a non-zero Discount Fee";
		}
	}

	if (form.DiscAvail.checked == true){
		if ((form.DiscCode.value.length == 0) &&
			(form.DiscCode2.value.length == 0) &&
			(form.DiscCode3.value.length == 0) &&
			(form.DiscCode4.value.length == 0) &&
			(form.DiscCode5.value.length == 0) &&
			(form.DiscCode6.value.length == 0)){
			if (msg != "") msg = msg + "\n\nIf Discount Fee Available is checked, you must enter at least one Discount Code";
			else msg = msg_begin + "\n\nIf Discount Fee Available is checked, you must enter at least one Discount Code";
		}
	}

	if (form.Comp.checked == true){
		if ((form.CompCode.value.length == 0) &&
			(form.CompCode2.value.length == 0) &&
			(form.CompCode3.value.length == 0) &&
			(form.CompCode4.value.length == 0) &&
			(form.CompCode5.value.length == 0) &&
			(form.CompCode6.value.length == 0)){
			if (msg != "") msg = msg + "\n\nIf Complimentary Fee Available is checked, you must enter at least one Complimentary Code";
			else msg = msg_begin + "\n\nIf Complimentary Fee Available is checked, you must enter at least one Complimentary Code";
		}
	}

	if (form.EventType.value == 'ODW'){
		if (form.ODWLink.value.length == 0){
			if (msg != "") msg = msg + "\n\nIf On-Demand Webinar is selected, you must enter an On-Demand Webinar Link";
			else msg = msg_begin + "\n\nIf On-Demand Webinar is selected, you must enter an On-Demand Webinar Link";
		}
	}

/*	
	if ((chkdate(form.StartDate) == true) && (chkdate(form.EndDate) == true) && (Date.parse(form.EndDate.value) < Date.parse(form.StartDate.value))){
		if (msg != ""){
			msg = msg + "\n\nEnd Date must be greater than or equal to the Start Date"
		}else{
			msg = "End Date must be greater than or equal to the Start Date"
		}
	}
*/
	
	if (msg != "")
	{
		alert(msg)
		return false
	}
	return true
}
/*
============================================================
END - Admin Event Entry and Edit Validations
============================================================
*/

/*
Function to set Event Location and Description to "Webinar" if user selects Webinar from Event Type drop-down
and to "On-Demand Webinar" if user selects On-Demand Webinar
*/
function EventSetLoc(){
	if (document.NENData.EventType.value == "Webinar"){
		document.NENData.Location.value = "Webinar";
		document.NENData.Description.value = "Webinar";
		return
	}
	if (document.NENData.EventType.value == "ODW"){
		document.NENData.Location.value = "On-Demand Webinar";
		document.NENData.Description.value = "On-Demand Webinar";
		return
	}
	if ((document.NENData.EventType.value != "Webinar") && (document.NENData.EventType.value != "ODW")){
		document.NENData.Location.value = "";
		document.NENData.Description.value = "";
	}
}

/*
============================================================
START - Online Event Registration Pages Validations
============================================================
*/
//Validate required fields on form on Event Registration page 1
function ValidateEventReg1(form)
{
	
	var msg = "";
	var msg_begin = "Please select a value for: ";
	
	if (form.EventID.value == "0"){
		if (msg != ""){
			msg = msg + "\n\tEvent";
		}
		else{
			msg = msg_begin + "\n\tEvent";
		}
	}

	if (msg != "")
	{
		alert(msg)
		return false
	}
	return true
}

//Validate required fields on form on Event Registration page 2
function ValidateEventReg2(form)
{
	
	var msg = "";
	var msg_begin = "Please enter or select a value for: ";
	
	if ((form.FirstName1.value == null) || (form.FirstName1.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAttendee #1 First Name";
		else msg = msg_begin + "\n\tAttendee #1 First Name";
	}
	
	if ((form.LastName1.value == null) || (form.LastName1.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tAttendee #1 Last Name";
		}
		else{
			msg = msg_begin + "\n\tAttendee #1 Last Name";
		}
	}
	
	if ((form.Email1.value == null) || (form.Email1.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tAttendee #1 Email";
		}
		else{
			msg = msg_begin + "\n\tAttendee #1 Email";
		}
	}
	
	if ((form.LastName2.value != null) && (form.LastName2.value.length > 0) && (form.FirstName2.value.length <= 0)){
		if (msg != ""){
			msg = msg + "\n\tAttendee #2 First Name";
		}
		else{
			msg = msg_begin + "\n\tAttendee #2 First Name";
		}
	}
	
	if ((form.FirstName2.value != null) && (form.FirstName2.value.length > 0) && (form.LastName2.value.length <= 0)){
		if (msg != ""){
			msg = msg + "\n\tAttendee #2 Last Name";
		}
		else{
			msg = msg_begin + "\n\tAttendee #2 Last Name";
		}
	}
	
	if ((form.FirstName2.value.length > 0) && (form.LastName2.value.length > 0) && (form.Email2.value.length <= 0)){
		if (msg != ""){
			msg = msg + "\n\tAttendee #2 Email";
		}
		else{
			msg = msg_begin + "\n\tAttendee #2 Email";
		}
	}
	
	if ((form.Agency.value == null) || (form.Agency.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tAgency";
		}
		else{
			msg = msg_begin + "\n\tAgency";
		}
	}
	
	if ((form.City.value == null) || (form.City.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCity";
		}
		else{
			msg = msg_begin + "\n\tCity";
		}
	}
	
	if (form.State.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tState";
		}
		else{
			msg = msg_begin + "\n\tState";
		}
	}
	
	if ((form.Phone.value == null) || (form.Phone.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tPhone";
		}
		else{
			msg = msg_begin + "\n\tPhone";
		}
	}
/*	
	if (form.Member.value == "0"){
		if (msg != ""){
			msg = msg + "\n\tMember or Non-Member";
		}
		else{
			msg = msg_begin + "\n\tMember or Non-Member";
		}
	}
*/	
	if (form.Fee.value == "-1"){
		if (msg != "") msg = msg + "\n\tRegistration Fee";
		else msg = msg_begin + "\n\tRegistration Fee";
	}
	
	if (form.Fee.value == "0"){
		if (form.UserCompCode.value.length > 0){
			if ((form.CompCode.value != form.UserCompCode.value) &&
				(form.CompCode2.value != form.UserCompCode.value) &&
				(form.CompCode3.value != form.UserCompCode.value) &&
				(form.CompCode4.value != form.UserCompCode.value) &&
				(form.CompCode5.value != form.UserCompCode.value) &&
				(form.CompCode6.value != form.UserCompCode.value)){
				if (msg != "") msg = msg + "\n\nInvalid Complimentary Code. Please contact Cindy Carraway-Wilson at (207) 319-6009.";
				else msg = "\n\nInvalid Complimentary Code. Please contact Cindy Carraway-Wilson at (207) 319-6009.";
			}
		}
	}

	if (form.Fee.value == "0"){
		if (form.UserCompCode.value.length == 0){
			if (msg != "") msg = msg + "\n\nComplimentary Code required for a Complimentary Registration Fee. \nTo obtain Code please contact Cindy Carraway-Wilson at (207) 319-6009.";
			else msg = "\n\nComplimentary Code required for a Complimentary Registration Fee. \nTo obtain Code please contact Cindy Carraway-Wilson at (207) 319-6009.";
		}
	}

	if (msg != "")
	{
		alert(msg)
		return false
	}
	return true
}

/*
Function to set Registration Fee based on user choice of Member or Non-Member
*/
/*
function SetFee(){
	if (document.EvntReg2.Member.value == "y"){
		document.EvntReg2.Fee.value = document.EvntReg2.MemberFee.value;
	}
	if (document.EvntReg2.Member.value == "n"){
		document.EvntReg2.Fee.value = document.EvntReg2.NonMemberFee.value;
	}
}
*/

/*
Function to set Registration Fee based # of Registrants
*/
function SetFee(){
	if (document.EvntReg3.NumReg.value == "1"){
		document.EvntReg3.fee.value = document.EvntReg3.single_amount.value * 1;
		document.EvntReg3.amount.value = document.EvntReg3.single_amount.value * 1;
	}
	if (document.EvntReg3.NumReg.value == "2"){
		document.EvntReg3.fee.value = document.EvntReg3.single_amount.value * 2;
		document.EvntReg3.amount.value = document.EvntReg3.single_amount.value * 2;
	}
}

//Validate required fields on form on Event Registration page 3
function ValidateEventReg3(form)
{
	
	var msg = "";
	var msg_begin = "Please enter or select a value for: ";
	
	if ((form.firstName.value == null) || (form.firstName.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tFirst Name";
		}
		else{
			msg = msg_begin + "\n\tFirst Name";
		}
	}
	
	if ((form.lastName.value == null) || (form.lastName.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tLast Name";
		}
		else{
			msg = msg_begin + "\n\tLast Name";
		}
	}
	
	if (form.creditCardType.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Type";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Type";
		}
	}
	
	if ((form.creditCardNumber.value == null) || (form.creditCardNumber.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Number";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Number";
		}
	}
	
	if (form.expDateMonth.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Expiration Month";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Expiration Month";
		}
	}
	
	if (form.expDateYear.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Expiration Year";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Expiration Year";
		}
	}
	
	if ((form.cvv2Number.value == null) || (form.cvv2Number.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCVV2 (Card Verification Number)";
		}
		else{
			msg = msg_begin + "\n\tCVV2 (Card Verification Number)";
		}
	}
	
	if ((form.address1.value == null) || (form.address1.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tAddress";
		}
		else{
			msg = msg_begin + "\n\tAddress";
		}
	}
	
	if ((form.city.value == null) || (form.city.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCity";
		}
		else{
			msg = msg_begin + "\n\tCity";
		}
	}
	
	if (form.state.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tState";
		}
		else{
			msg = msg_begin + "\n\tState";
		}
	}
	
	if (form.NumReg.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tNumber Of Registrants";
		}
		else{
			msg = msg_begin + "\n\tNumber Of Registrants";
		}
	}
	
	if (form.creditCardNumber.value.length > 0){
	 	if (!LuhnCheck(form.creditCardNumber.value) || !validateCCNum(form.creditCardType.value,form.creditCardNumber.value)){
			if (msg != ""){
				msg = msg + "\n\nPlease enter a valid credit card number for this card type";
			}
			else{
				msg = "\n\nPlease enter a valid credit card number for this card type";
			}
		}
	}

	if (msg != "")
	{
		alert(msg)
		return false
	}
	return true
}
/*
======================================================================
END - Online Event Registration Pages Validations
======================================================================
*/

/*
======================================================================
START - Membership Enrollment Pages Validations
======================================================================
*/
//Validate required fields on form on Membership Enrollment page 1
function ValidateNENMemberEnroll1(form){
	var msg = "";
	var msg_begin = "Please enter or select a value for: ";
	
	if ((!form.Status[0].checked) && (!form.Status[1].checked)){
		if (msg != "") msg = msg + "\n\tPartner/Subscriber";
		else msg = msg_begin + "\n\tPartner/Subscriber";
	}
	
	if ((form.YourFirstName.value == null) || (form.YourFirstName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tYour First Name";
		else msg = msg_begin + "\n\tYour First Name";
	}
	
	if ((form.YourLastName.value == null) || (form.YourLastName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tYour Last Name";
		else msg = msg_begin + "\n\tYour Last Name";
	}
	
	if ((form.AgencyName.value == null) || (form.AgencyName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAgency Name";
		else msg = msg_begin + "\n\tAgency Name";
	}
	
	if ((form.AgencyAddress.value == null) || (form.AgencyAddress.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAgency Address";
		else msg = msg_begin + "\n\tAgency Address";
	}
	
	if ((form.AgencyCity.value == null) || (form.AgencyCity.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAgency City";
		else msg = msg_begin + "\n\tAgency City";
	}
	
	if (form.AgencyState.value == "XX"){
		if (msg != "") msg = msg + "\n\tAgency State";
		else msg = msg_begin + "\n\tAgency State";
	}
	
	if ((form.AgencyZip.value == null) || (form.AgencyZip.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAgency Zip";
		else msg = msg_begin + "\n\tAgency Zip";
	}
	
	if ((form.AgencyPhone.value == null) || (form.AgencyPhone.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAgency Phone";
		else msg = msg_begin + "\n\tAgency Phone";
	}
	
	if ((form.AgencyFax.value == null) || (form.AgencyFax.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAgency Fax";
		else msg = msg_begin + "\n\tAgency Fax";
	}
	
	if ((form.AgencyEmail.value == null) || (form.AgencyEmail.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAgency Email";
		else msg = msg_begin + "\n\tAgency Email";
	}
	
	if ((form.ContactFirstName.value == null) || (form.ContactFirstName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tContact First Name";
		else msg = msg_begin + "\n\tContact First Name";
	}
	
	if ((form.ContactLastName.value == null) || (form.ContactLastName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tContact Last Name";
		else msg = msg_begin + "\n\tContact Last Name";
	}
	
	if ((form.ContactAddress.value == null) || (form.ContactAddress.value.length == 0)){
		if (msg != "") msg = msg + "\n\tContact Address";
		else msg = msg_begin + "\n\tContact Address";
	}
	
	if ((form.ContactCity.value == null) || (form.AgencyCity.value.length == 0)){
		if (msg != "") msg = msg + "\n\tContact City";
		else msg = msg_begin + "\n\tContact City";
	}
	
	if (form.ContactState.value == "XX"){
		if (msg != "") msg = msg + "\n\tContact State";
		else msg = msg_begin + "\n\tContact State";
	}
	
	if ((form.ContactZip.value == null) || (form.ContactZip.value.length == 0)){
		if (msg != "") msg = msg + "\n\tContact Zip";
		else msg = msg_begin + "\n\tContact Zip";
	}
	
	if ((form.ContactPhone.value == null) || (form.ContactPhone.value.length == 0)){
		if (msg != "") msg = msg + "\n\tContact Phone";
		else msg = msg_begin + "\n\tContact Phone";
	}
	
	if ((form.ContactEmail.value == null) || (form.ContactEmail.value.length == 0)){
		if (msg != "") msg = msg + "\n\tContact Email";
		else msg = msg_begin + "\n\tContact Email";
	}
	
	if (form.Dues.value == "XX"){
		if (msg != "") msg = msg + "\n\tBudget Level";
		else msg = msg_begin + "\n\tBudget Level";
	}
	
	if (msg != "")
	{
		alert(msg)
		return false
	}
	return true
}

//Validate required fields on form on Member Registration page 2
function ValidateNENMemberEnroll2(form)
{
	
	var msg = "";
	var msg_begin = "Please enter or select a value for: ";
	
	if ((form.firstName.value == null) || (form.firstName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tFirst Name";
		else msg = msg_begin + "\n\tFirst Name";
	}
	
	if ((form.lastName.value == null) || (form.lastName.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tLast Name";
		}
		else{
			msg = msg_begin + "\n\tLast Name";
		}
	}
	
	if (form.creditCardType.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Type";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Type";
		}
	}
	
	if ((form.creditCardNumber.value == null) || (form.creditCardNumber.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Number";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Number";
		}
	}
	
	if (form.expDateMonth.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Expiration Month";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Expiration Month";
		}
	}
	
	if (form.expDateYear.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Expiration Year";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Expiration Year";
		}
	}
	
	if ((form.cvv2Number.value == null) || (form.cvv2Number.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCVV2 (Card Verification Number)";
		}
		else{
			msg = msg_begin + "\n\tCVV2 (Card Verification Number)";
		}
	}
	
	if ((form.address1.value == null) || (form.address1.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tAddress";
		}
		else{
			msg = msg_begin + "\n\tAddress";
		}
	}
	
	if ((form.city.value == null) || (form.city.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCity";
		}
		else{
			msg = msg_begin + "\n\tCity";
		}
	}
	
	if (form.state.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tState";
		}
		else{
			msg = msg_begin + "\n\tState";
		}
	}
	
	if (form.creditCardNumber.value.length > 0){
	 	if (!LuhnCheck(form.creditCardNumber.value) || !validateCCNum(form.creditCardType.value,form.creditCardNumber.value)){
			if (msg != ""){
				msg = msg + "\n\nPlease enter a valid credit card number for this card type";
			}
			else{
				msg = "\n\nPlease enter a valid credit card number for this card type";
			}
		}
	}

	if (msg != "")
	{
		alert(msg)
		return false
	}
	return true
}
/*
======================================================================
END - Membership Enrollment Pages Validations
======================================================================
*/

/*
======================================================================
START - Manual Credit Card Entry Validations
======================================================================
*/
//Validate required fields on form for Manual Credit Card Entry
function ValidateManualCCEnter(form)
{
	
	var msg = "";
	var msg_begin = "Please enter or select a value for: ";
	
	if ((form.firstName.value == null) || (form.firstName.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tFirst Name";
		}
		else{
			msg = msg_begin + "\n\tFirst Name";
		}
	}
	
	if ((form.lastName.value == null) || (form.lastName.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tLast Name";
		}
		else{
			msg = msg_begin + "\n\tLast Name";
		}
	}
	
	if (form.creditCardType.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Type";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Type";
		}
	}
	
	if ((form.creditCardNumber.value == null) || (form.creditCardNumber.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Number";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Number";
		}
	}
	
	if (form.expDateMonth.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Expiration Month";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Expiration Month";
		}
	}
	
	if (form.expDateYear.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tCredit Card Expiration Year";
		}
		else{
			msg = msg_begin + "\n\tCredit Card Expiration Year";
		}
	}
	
	if ((form.cvv2Number.value == null) || (form.cvv2Number.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCVV2 (Card Verification Number)";
		}
		else{
			msg = msg_begin + "\n\tCVV2 (Card Verification Number)";
		}
	}
	
	if ((form.address1.value == null) || (form.address1.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tAddress";
		}
		else{
			msg = msg_begin + "\n\tAddress";
		}
	}
	
	if ((form.city.value == null) || (form.city.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCity";
		}
		else{
			msg = msg_begin + "\n\tCity";
		}
	}
	
	if (form.state.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tState";
		}
		else{
			msg = msg_begin + "\n\tState";
		}
	}
	
	if ((form.amount.value == null) || (form.amount.value.length == 0) || (form.amount.value == 0)){
		if (msg != ""){
			msg = msg + "\n\tAmount";
		}
		else{
			msg = msg_begin + "\n\tAmount";
		}
	}
	
	if (form.creditCardNumber.value.length > 0){
	 	if (!LuhnCheck(form.creditCardNumber.value) || !validateCCNum(form.creditCardType.value,form.creditCardNumber.value)){
			if (msg != ""){
				msg = msg + "\n\nPlease enter a valid credit card number for this card type";
			}
			else{
				msg = "\n\nPlease enter a valid credit card number for this card type";
			}
		}
	}

	if (msg != "")
	{
		alert(msg)
		return false
	}
	return true
}
/*
======================================================================
END - Manual Credit Card Entry Validations
======================================================================
*/
	
/*
======================================================================
START - Donation Page Validations
======================================================================
*/
function ValidateNENDonateEntry(form)
{
	var msg = "";
	var msg_begin = "Please enter or select a value for: ";
	
	if ((form.firstName.value == null) || (form.firstName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tFirst Name";
		else msg = msg_begin + "\n\tFirst Name";
	}
	
	if ((form.lastName.value == null) || (form.lastName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tLast Name";
		else msg = msg_begin + "\n\tLast Name";
	}
	
	if (form.creditCardType.value == "XX"){
		if (msg != "") msg = msg + "\n\tCredit Card Type";
		else msg = msg_begin + "\n\tCredit Card Type";
	}
	
	if ((form.creditCardNumber.value == null) || (form.creditCardNumber.value.length == 0)){
		if (msg != "") msg = msg + "\n\tCredit Card Number";
		else msg = msg_begin + "\n\tCredit Card Number";
	}
	
	if (form.expDateMonth.value == "XX"){
		if (msg != "") msg = msg + "\n\tCredit Card Expiration Month";
		else msg = msg_begin + "\n\tCredit Card Expiration Month";
	}
	
	if (form.expDateYear.value == "XX"){
		if (msg != "") msg = msg + "\n\tCredit Card Expiration Year";
		else msg = msg_begin + "\n\tCredit Card Expiration Year";
	}
	
	if ((form.cvv2Number.value == null) || (form.cvv2Number.value.length == 0)){
		if (msg != "") msg = msg + "\n\tCVV2 (Card Verification Number)";
		else msg = msg_begin + "\n\tCVV2 (Card Verification Number)";
	}
	
	if ((form.address1.value == null) || (form.address1.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAddress";
		else msg = msg_begin + "\n\tAddress";
	}
	
	if ((form.city.value == null) || (form.city.value.length == 0)){
		if (msg != "") msg = msg + "\n\tCity";
		else msg = msg_begin + "\n\tCity";
	}
	
	if (form.state.value == "XX"){
		if (msg != "") msg = msg + "\n\tState";
		else msg = msg_begin + "\n\tState";
	}
	
	if ((form.DonorEmail.value == null) || (form.DonorEmail.value.length == 0)){
		if (msg != "") msg = msg + "\n\tEmail";
		else msg = msg_begin + "\n\tEmail";
	}
	
	if ((form.amount.value == null) || (form.amount.value.length == 0) || (form.amount.value == 0)){
		if (msg != "") msg = msg + "\n\tAmount";
		else msg = "\n\tAmount";
	}

	if (msg != ""){
		alert(msg)
		return false
	}
	return true
}
/*
======================================================================
END - Donation Page Validations
======================================================================
*/
	
/*
======================================================================
START - Into Practice Bulletin Subscription Page Validations
======================================================================
*/
function ValidateNENSubscribeEntry(form)
{
	var msg = "";
	var msg_begin = "Please enter or select a value for: ";
	
	if ((form.firstName.value == null) || (form.firstName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tFirst Name";
		else msg = msg_begin + "\n\tFirst Name";
	}
	
	if ((form.lastName.value == null) || (form.lastName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tLast Name";
		else msg = msg_begin + "\n\tLast Name";
	}
	
	if (form.creditCardType.value == "XX"){
		if (msg != "") msg = msg + "\n\tCredit Card Type";
		else msg = msg_begin + "\n\tCredit Card Type";
	}
	
	if ((form.creditCardNumber.value == null) || (form.creditCardNumber.value.length == 0)){
		if (msg != "") msg = msg + "\n\tCredit Card Number";
		else msg = msg_begin + "\n\tCredit Card Number";
	}
	
	if (form.expDateMonth.value == "XX"){
		if (msg != "") msg = msg + "\n\tCredit Card Expiration Month";
		else msg = msg_begin + "\n\tCredit Card Expiration Month";
	}
	
	if (form.expDateYear.value == "XX"){
		if (msg != "") msg = msg + "\n\tCredit Card Expiration Year";
		else msg = msg_begin + "\n\tCredit Card Expiration Year";
	}
	
	if ((form.cvv2Number.value == null) || (form.cvv2Number.value.length == 0)){
		if (msg != "") msg = msg + "\n\tCVV2 (Card Verification Number)";
		else msg = msg_begin + "\n\tCVV2 (Card Verification Number)";
	}
	
	if ((form.address1.value == null) || (form.address1.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAddress";
		else msg = msg_begin + "\n\tAddress";
	}
	
	if ((form.city.value == null) || (form.city.value.length == 0)){
		if (msg != "") msg = msg + "\n\tCity";
		else msg = msg_begin + "\n\tCity";
	}
	
	if (form.state.value == "XX"){
		if (msg != "") msg = msg + "\n\tState";
		else msg = msg_begin + "\n\tState";
	}
	
	if ((form.SubscriberEmail.value == null) || (form.SubscriberEmail.value.length == 0)){
		if (msg != "") msg = msg + "\n\tEmail";
		else msg = msg_begin + "\n\tEmail";
	}
	
	if ((form.amount.value == null) || (form.amount.value.length == 0) || (form.amount.value == 0)){
		if (msg != "") msg = msg + "\n\tAmount";
		else msg = "\n\tAmount";
	}

	if (msg != ""){
		alert(msg)
		return false
	}
	return true
}
/*
======================================================================
END - Into Practice Bulletin Subscription Page Validations
======================================================================

/*
======================================================================
START - On-Demand Webinar Registration Page Validations
======================================================================
*/
function ValidateNENODWEntry(form)
{
	var msg = "";
	var msg_begin = "Please enter or select a value for: ";
	
	if ((form.firstName.value == null) || (form.firstName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tFirst Name";
		else msg = msg_begin + "\n\tFirst Name";
	}
	
	if ((form.lastName.value == null) || (form.lastName.value.length == 0)){
		if (msg != "") msg = msg + "\n\tLast Name";
		else msg = msg_begin + "\n\tLast Name";
	}
	
	if (form.creditCardType.value == "XX"){
		if (msg != "") msg = msg + "\n\tCredit Card Type";
		else msg = msg_begin + "\n\tCredit Card Type";
	}
	
	if ((form.creditCardNumber.value == null) || (form.creditCardNumber.value.length == 0)){
		if (msg != "") msg = msg + "\n\tCredit Card Number";
		else msg = msg_begin + "\n\tCredit Card Number";
	}
	
	if (form.expDateMonth.value == "XX"){
		if (msg != "") msg = msg + "\n\tCredit Card Expiration Month";
		else msg = msg_begin + "\n\tCredit Card Expiration Month";
	}
	
	if (form.expDateYear.value == "XX"){
		if (msg != "") msg = msg + "\n\tCredit Card Expiration Year";
		else msg = msg_begin + "\n\tCredit Card Expiration Year";
	}
	
	if ((form.cvv2Number.value == null) || (form.cvv2Number.value.length == 0)){
		if (msg != "") msg = msg + "\n\tCVV2 (Card Verification Number)";
		else msg = msg_begin + "\n\tCVV2 (Card Verification Number)";
	}
	
	if ((form.address1.value == null) || (form.address1.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAddress";
		else msg = msg_begin + "\n\tAddress";
	}
	
	if ((form.city.value == null) || (form.city.value.length == 0)){
		if (msg != "") msg = msg + "\n\tCity";
		else msg = msg_begin + "\n\tCity";
	}
	
	if (form.state.value == "XX"){
		if (msg != "") msg = msg + "\n\tState";
		else msg = msg_begin + "\n\tState";
	}
	
	if ((form.ODWEmail.value == null) || (form.ODWEmail.value.length == 0)){
		if (msg != "") msg = msg + "\n\tEmail";
		else msg = msg_begin + "\n\tEmail";
	}
	
	if (form.creditCardNumber.value.length > 0){
	 	if (!LuhnCheck(form.creditCardNumber.value) || !validateCCNum(form.creditCardType.value,form.creditCardNumber.value)){
			if (msg != "") msg = msg + "\n\nPlease enter a valid credit card number for this card type";
			else msg = "\n\nPlease enter a valid credit card number for this card type";
		}
	}

	if (msg != ""){
		alert(msg)
		return false
	}
	return true
}
/*
======================================================================
END - On-Demand Webinar Registration Page Validations
======================================================================
*/

/*
============================================================
START - Admin REGISTRATION Entry and Edit Validations
============================================================
*/
function ValidateRegEnter(form)
{
	
	var msg = "";
	var msg_begin = "Please enter or select a value for: ";
	
	if (form.EventID.value == "0"){
		if (msg != ""){
			msg = msg + "\n\tEvent";
		}
		else{
			msg = msg_begin + "\n\tEvent";
		}
	}
	
	if ((form.FirstName1.value == null) || (form.FirstName1.value.length == 0)){
		if (msg != "") msg = msg + "\n\tAttendee #1 First Name";
		else msg = msg_begin + "\n\tAttendee #1 First Name";
	}
	
	if ((form.LastName1.value == null) || (form.LastName1.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tAttendee #1 Last Name";
		}
		else{
			msg = msg_begin + "\n\tAttendee #1 Last Name";
		}
	}
	
	if ((form.Email1.value == null) || (form.Email1.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tEmail #1";
		}
		else{
			msg = msg_begin + "\n\tEmail #1";
		}
	}
	
	if ((form.LastName2.value != null) && (form.LastName2.value.length > 0) && (form.FirstName2.value.length <= 0)){
		if (msg != ""){
			msg = msg + "\n\tAttendee #2 First Name";
		}
		else{
			msg = msg_begin + "\n\tAttendee #2 First Name";
		}
	}
	
	if ((form.FirstName2.value != null) && (form.FirstName2.value.length > 0) && (form.LastName2.value.length <= 0)){
		if (msg != ""){
			msg = msg + "\n\tAttendee #2 Last Name";
		}
		else{
			msg = msg_begin + "\n\tAttendee #2 Last Name";
		}
	}
	
	if ((form.FirstName2.value.length > 0) && (form.LastName2.value.length > 0) && (form.Email2.value.length <= 0)){
		if (msg != ""){
			msg = msg + "\n\tAttendee #2 Email";
		}
		else{
			msg = msg_begin + "\n\tAttendee #2 Email";
		}
	}
	
	if ((form.Agency.value == null) || (form.Agency.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tAgency";
		}
		else{
			msg = msg_begin + "\n\tAgency";
		}
	}
	
	if ((form.City.value == null) || (form.City.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tCity";
		}
		else{
			msg = msg_begin + "\n\tCity";
		}
	}
	
	if (form.State.value == "XX"){
		if (msg != ""){
			msg = msg + "\n\tState";
		}
		else{
			msg = msg_begin + "\n\tState";
		}
	}
	
	if ((form.Phone.value == null) || (form.Phone.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tPhone";
		}
		else{
			msg = msg_begin + "\n\tPhone";
		}
	}
	
	if (form.Member.value == "0"){
		if (msg != ""){
			msg = msg + "\n\tMember or Non-Member";
		}
		else{
			msg = msg_begin + "\n\tMember or Non-Member";
		}
	}
	
	if ((form.Fee.value == null) || (form.Fee.value.length == 0)){
		if (msg != ""){
			msg = msg + "\n\tFee";
		}
		else{
			msg = msg_begin + "\n\tFee";
		}
	}

	if (msg != "")
	{
		alert(msg)
		return false
	}
	return true
}
/*
============================================================
END - Admin REGISTRATION Entry and Edit Validations
============================================================
*/

/*
Function to extract Registration Fee from Event choice based on user selection of Member or Non-Member
*/
function ExtractFee(){

	var xval = document.NENData.EventID.value;
	/*
	alert ("EventID = " + x);
	alert ("EventID length = " + x.length);
	var len = x.length;
	for (var ndx = 1; ndx <= len; ndx++){
		if (charAt(x,ndx) == "-"){
			var pos1 = ndx;
		}
		if (charAt(x.value,ndx) == "/"){
			var pos3 = ndx;
		}
	}
	pos1 = pos1 + 1;
	pos2 = pos3 - 1;
	pos3 = pos3 + 1;
	pos4 = x.value.length;
	alert("pos1 = " + pos1 + " pos2 = " + pos2 + " pos3 = " + pos3 + " pos4 = " + pos4);
	*/
	pos1 = xval.indexOf("-");
	pos3 = xval.indexOf("/");
	pos1 = pos1 + 1;
	pos2 = pos3;
	pos3 = pos3 + 1;
	pos4 = xval.length;
	//alert("pos1 = " + pos1 + " pos2 = " + pos2 + " pos3 = " + pos3 + " pos4 = " + pos4);
	mem = xval.substring(pos1,pos2);
	nonmem = xval.substring(pos3,pos4);
	//alert("mem = " + mem + " nonmem = " + nonmem);

	if (document.NENData.Member.value == "y"){
		document.NENData.Fee.value = mem;
	}
	if (document.NENData.Member.value == "n"){
		document.NENData.Fee.value = nonmem;
	}
}

//Validate Start and End dates
function ValidateStartEndDates(form){

	var msg = "";

	if (chkdate(form.SD) == false){
		if (msg != ""){
			msg = msg + "\n\nPlease enter a valid Start date in the 'mm/dd/yyyy' format"
		}else{
			msg = "Please enter a valid Start date in the 'mm/dd/yyyy' format"
		}
	}
	
	if (chkdate(form.ED) == false){
		if (msg != ""){
			msg = msg + "\n\nPlease enter a valid End date in the 'mm/dd/yyyy' format"
		}else{
			msg = "Please enter a valid End date in the 'mm/dd/yyyy' format"
		}
	}
	
	if (msg != "")
	{
		alert(msg)
		return false
	}
	return true
}

function validRequired(formField,fieldLabel)
{
	var result = true;
	
	if (formField.value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	
	return result;
}


function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;
	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

//KCA-21Jan03-Change error messages for my own use
//KCA-21Jan03-Just return if field is empty in case user needs to leave the field
//KCA-31Mar03-Add radix arg of 10 to parseInt calls so that it's not fooled by leading zero
//				into thinking the number is octal, e.g. 09/04
function isValidExpDate(formField,fieldLabel,required)
{
	var result = true;
	var formValue = formField.value;
	
	//KCA-21Jan03-if string is empty just return
 	if (isEmpty(formValue)) return true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result && (formField.value.length>0))
 	{
 		var elems = formValue.split("/");
 		
 		result = (elems.length == 2); // should be two components
 		var expired = false;
 		
 		if (result)
 		{
 			var month = parseInt(elems[0], 10);
 			var year = parseInt(elems[1], 10);
 			
			//KCA-21Jan03-Allow user to enter single digit year
 			//if (elems[1].length == 2)
 			if (elems[1].length <= 2)
 				year += 2000;
 			
 			var now = new Date();
 			
 			var nowMonth = now.getMonth() + 1;
 			var nowYear = now.getFullYear();
 			
 			expired = (nowYear > year) || ((nowYear == year ) && (nowMonth > month));
 			
			//KCA-21Jan03-Allow user to enter single digit year
			//result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
			//		 allDigits(elems[1]) && ((elems[1].length == 2) || (elems[1].length == 4));
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && ((elems[1].length == 1) || (elems[1].length == 2) || (elems[1].length == 4));
 		}
 		
  		if (!result)
 		{
 			alert('Please enter a date in the format MM/YY');
			formField.focus();
			formField.select();
		}
		else if (expired)
		{
 			result = false;
 			alert('This expiration date is in the past. Please re-enter.');
			formField.focus();
			formField.select();
		}
	} 
	
	return result;
}

function isValidCreditCardNumber(formField,ccType,fieldLabel,required)
{
	var result = true;
 	var ccNum = formField.value;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
 
  	if (result && (formField.value.length>0))
 	{ 
 		if (!allDigits(ccNum))
 		{
 			alert('Please enter only numbers (no dashes or spaces) for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}	

		if (result)
 		{ 
 			
 			if (!LuhnCheck(ccNum) || !validateCCNum(ccType,ccNum))
 			{
 				alert('Please enter a valid card number for the "' + fieldLabel +'" field.');
				formField.focus();
				result = false;
			}	
		} 

	} 
	
	return result;
}

function LuhnCheck(str) 
{
  var result = true;

  var sum = 0; 
  var mul = 1; 
  var strLen = str.length;
  
  for (i = 0; i < strLen; i++) 
  {
    var digit = str.substring(strLen-i-1,strLen-i);
    var tproduct = parseInt(digit ,10)*mul;
    if (tproduct >= 10)
      sum += (tproduct % 10) + 1;
    else
      sum += tproduct;
    if (mul == 1)
      mul++;
    else
      mul--;
  }
  if ((sum % 10) != 0)
    result = false;
    
  return result;
}



function GetRadioValue(rArray)
{
	for (var i=0;i<rArray.length;i++)
	{
		if (rArray[i].checked)
			return rArray[i].value;
	}
	
	return null;
}


function validateCCNum(cardType,cardNum)
{
	var result = false;
	cardType = cardType.toUpperCase();
	
	var cardLen = cardNum.length;
	var firstdig = cardNum.substring(0,1);
	var seconddig = cardNum.substring(1,2);
	var first4digs = cardNum.substring(0,4);

	switch (cardType)
	{
		case "VISA":
			result = ((cardLen == 16) || (cardLen == 13)) && (firstdig == "4");
			break;
		case "AMEX":
			var validNums = "47";
			result = (cardLen == 15) && (firstdig == "3") && (validNums.indexOf(seconddig)>=0);
			break;
		case "MASTERCARD":
			var validNums = "12345";
			result = (cardLen == 16) && (firstdig == "5") && (validNums.indexOf(seconddig)>=0);
			break;
		case "DISCOVER":
			result = (cardLen == 16) && (first4digs == "6011");
			break;
		case "DINERS":
			var validNums = "068";
			result = (cardLen == 14) && (firstdig == "3") && (validNums.indexOf(seconddig)>=0);
			break;
	}
	return result;
}

function validCCForm(ccTypeField,ccNumField,ccExpField)
{
	var result = isValidCreditCardNumber(ccNumField,ccTypeField.value,"Credit Card Number",true) &&
		isValidExpDate(ccExpField,"Expiration Date",true);
	return result;
}
