// December 2007 Work Scholar Application
// Ronique Wright / David Lanier / RushiKumar Bhatt- Updated 06/22/07

function Tab(box)
{	
	with (document.regform)
	{		
		if ((box.name == "CardNumber1")&&(box.value.length == 4)) CardNumber2.focus();
		else if ((box.name == "CardNumber2")&&(box.value.length == 4)) CardNumber3.focus();
		else if ((box.name == "CardNumber3")&&(box.value.length == 4)) CardNumber4.focus();
		else if ((box.name == "CardNumber4")&&(box.value.length == 4)) ExpMonth.focus();
		else if ((box.name == "ExpMonth")&&(box.value.length == 2)) ExpYear.focus();
		else if ((box.name == "ExpYear")&&(box.value.length == 2)) CVN.focus();
	}	
}


function verify()
{	
	// make badgename first name if not entered
	if (document.regform.BadgeName.value.length==0) document.regform.BadgeName.value = document.regform.FName.value;
	// make country united states if not entered
	if (document.regform.Country.value.length==0) document.regform.Country.value = "United States";
	// check all fields
	if (document.regform.FName.value.length==0)
	{
		alert("Please enter your first name!");
		return false;
	}
	if (document.regform.LName.value.length==0)
	{
		alert("Please enter your last name!");
		return false;
	}
	if (document.regform.Address.value.length==0)
	{
		alert("Please enter your address!");
		return false;
	}
	if (document.regform.City.value.length==0)
	{
		alert("Please enter your city!");
		return false;
	}
	if (document.regform.Country.value.toLowerCase()=="united states" || document.regform.Country.value.toLowerCase()=="us" || document.regform.Country.value.toLowerCase()=="usa")
	{
		if (document.regform.State.value.length!=2)
		{
			alert("Please enter a valid state!");
			return false;
		}
		else if (document.regform.Zip.value.length!=5)
		{
			alert("Please enter a valid zip code!");
			return false;
		}
		for (x=0;x<document.regform.Zip.value.length;x++)
		{
			if (document.regform.Zip.value.charAt(x)<'0' || document.regform.Zip.value.charAt(x)>'9')
			{
				alert("Please enter a valid zip code!");
				return false;
			}
		}
	}
		if (document.regform.Email.value.length!=0 && document.regform.Email.value.indexOf('@')==-1)
	{
		alert("Please enter a valid email address!");
		return false;
	}	
	var x,sum=0,calc;
	
	/*if (document.regform.HasAttendedAsScholar.value=="undefined")
	{
		alert("Please indicate whether or not you have attended a NICABM conference as a Work Scholar before");
		return false;
	}
	else if((document.regform.YearsAttended.value.length==0)&&(document.regform.HasAttendedAsScholar.value == "Yes"))
	{
		alert("Please enter the years you have attended as a work scholar");
		return false;
	}
	else if((document.regform.HasAttendedAsScholar.value == "Yes")&&((document.regform.HasBeenOnConference.value == "No") && (document.regform.HasBeenOnBookstore.value == "No") && (document.regform.HasBeenOnAudiostore.value == "No") && (document.regform.HasBeenOnRegistration.value == "No")))
	{
		alert("Please indicate which teams you have been on before");
		return false;
	}
	if (!((document.regform.WorkedAtOtherConferences.value == "Yes") || (document.regform.HasAttendedAsScholar.value == "No")))
	{
		alert("Please indicate whether or not you have worked at any other conferences");
		return false;
	}
	else if((document.regform.OtherConferenceResponsibilites.value.length==0)&&(document.regform.WorkedAtOtherConferences.value == "Yes"))
	{
		alert("Please enter the responsibilities you had at other conferences.");
		return false;
	}
	if(!((document.regform.TeamDesired.value == "Conference") || (document.regform.TeamDesired.value == "AudioStore") || (document.regform.TeamDesired.value == "Bookstore") || (document.regform.TeamDesired.value == "Registration")))
	{
		alert("Please indicate which teams you would like to be on");
		return false;
	}
	if(!((document.regform.ProductiveTime.value == "Morning") || (document.regform.ProductiveTime.value == "Afternoon") || (document.regform.ProductiveTime.value == "Evening")))
	{
		alert("Please indicate which time is your most productive time");
		return false;
	}
	if (!((document.regform.AttendingWithSomeone.value == "Yes") || (document.regform.AttendingWithSomeone.value == "No")))
	{
		alert("Please indicate whether or not you are attending with someone else");
		return false;
	}
	else if((document.regform.AttendingWithSomeone.value == "Yes")&&((document.regform.AlsoApplying.value == "Yes") || (document.regform.AlsoApplying.value == "No")))
	{
		alert("Please indicate whether or not the person you are attending the conference with will also be applying for work scholarship");
		return false;
	}
	else if((document.regform.AlsoApplying.value == "Yes")&&((document.regform.NameOfApplicant.value.length == 0)))
	{
		alert("Please enter the person's name that you are attending with ");
		return false;
	}
	if (!((document.regform.RoomShare.value == "Yes") || (document.regform.RoomShare.value == "No")))
	{
		alert("Please indicate whether or not you want to be on the Room Share list");
		return false;
	}*/
	
	
	
	
	
	
	// get full credit card number
	var ccn = document.regform.CardNumber1.value+document.regform.CardNumber2.value+document.regform.CardNumber3.value+document.regform.CardNumber4.value;
	if (ccn.length == 0)
	{
		alert("No Credit Card Info Supplied - If accepted, you will be asked for your Credit Card information again.");
		alert("Thank you for registering!");
		document.regform.submit();
		return true;
	}
	
	
		
	// check for valid expiration length and characters
	if (document.regform.ExpMonth.value.length!=2 || document.regform.ExpYear.value.length!=2)
	{
		alert("Please enter a valid expiration date!");
		return false;
	}
	else
	{
		for (x=0;x<2;x++)
		{
			if (document.regform.ExpMonth.value.charAt(x)<'0' || document.regform.ExpMonth.value.charAt(x)>'9' || document.regform.ExpYear.value.charAt(x)<'0' || document.regform.ExpYear.value.charAt(x)>'9')
			{
				alert("Please enter a valid expiration date!A");
				return false;
			}
		}	
	}
	// check for valid expiration date
	calc = 2000 + (10*(document.regform.ExpYear.value.charAt(0)-'0')) + (document.regform.ExpYear.value.charAt(1)-'0'); // get full expiration year, parseInt sucks!
	x = (10*(document.regform.ExpMonth.value.charAt(0)-'0')) + (document.regform.ExpMonth.value.charAt(1)-'0')-1; // get expiration month, once again parseInt sucks!
	var Today = new Date();
	if (calc<Today.getFullYear() || (calc==Today.getFullYear() && x<Today.getMonth()))
	{
		alert("Please enter a valid expiration date!");
		return false;
	}
	// check for valid credit card verification number
	if (document.regform.CVN.value.length<3)
	{
		alert("Please enter a valid credit card verification number!");	
		return false;
	}
	// get full credit card number
	var ccn = document.regform.CardNumber1.value+document.regform.CardNumber2.value+document.regform.CardNumber3.value+document.regform.CardNumber4.value;
	// check for valid number length
	if (ccn.length<13)
	{
		alert("Please enter all digits of your credit card number!");
		return false;
	}
	// check for valid characters and calculate check sum
	for (x=0;x<ccn.length;x++)
	{
		if (ccn.charAt(x)<'0' || ccn.charAt(x)>'9')
		{
			alert("Please enter a valid credit card number!");
			return false;
		}
		calc=parseInt(ccn.charAt(x));
		if (x%2==0)
		{
			calc*=2;
			if (calc>9) calc-=9;
		}
		sum+=calc;
	}
	// submit for if card number is valid
	if (sum%10==0)
	{
		alert("Thank you for registering!");
		document.regform.submit();
		return true;
	}
	else
	{
		alert("Please enter a valid credit card number!");
		return false;
	}
	return false;
}
