// 2007 December Conference Registration Page
//Rush waz H3r3
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 getTotal() 
{
	
	var MTotal = 0;
	var AOTotal = 0;
	var OneVal = 195;
	var ITIVal = 390;
	var MVal = 695;
	var CA = 0;
	var aodays = 0;
	var PCodeDiscount = 0;
	var SeniorStudent = 0;
	var grandTotal = 0;
	
	
	if (document.regform.ITI.value == "0") {document.regform.Master1.disabled=false;}
	if (document.regform.ITI.value == "ITI1") {document.regform.Master1.disabled=true; document.regform.Master1.value=0;}
	if (document.regform.ITI.value == "ITI2") {document.regform.Master1.disabled=true; document.regform.Master1.value=0;}
	if (document.regform.ITI.value == "ITI3") {document.regform.Master1.disabled=false;}
	if (document.regform.ITI.value == "ITI4") {document.regform.Master1.disabled=false;}
	if (document.regform.ITI.value == "ITI5") {document.regform.Master1.disabled=false;}
	if (document.regform.ITI.value == "ITI6") {document.regform.Master1.disabled=false;}

		
	if (document.regform.MainConference.checked)
	{
	
		document.regform.Session1.disabled=false;
		document.regform.Session2.disabled=false;
		document.regform.Session3.disabled=false;
		document.regform.Session4.disabled=false;
		document.regform.Session5.disabled=false;
		document.regform.Session6.disabled=false;
		document.regform.ThursdayLunch.disabled=false;
		document.regform.FridayLunch.disabled=false;
		document.regform.CA.disabled=false;

		MTotal+=MVal;//Add Main Fee

		if (document.regform.CA.checked) CA=95;
		if (document.regform.SSDiscount[0].checked || document.regform.SSDiscount[1].checked) SeniorStudent=100;

		// Register before Oct 20 and save $100
		//if (((myMonth<9)||(myMonth==9 && myDate<=20)) && myYear==2006) MTotal-=100;
		
		// Register before Oct 19 and save $100
		var Today = new Date(), myMonth = Today.getMonth(), myDate = Today.getDate(), myYear = Today.getFullYear();
	//	if (((myMonth<10)||(myMonth==10 && myDate<=19)) && myYear==2007) MTotal-=100;

		
		// Register before Aug 16 and save $200
		Today = new Date(), myMonth = Today.getMonth(),myDate = Today.getDate(), myYear = Today.getFullYear();
	//	if (((myMonth<7)||(myMonth==7 && myDate<=16)) && myYear==2007) MTotal-=100;
		
		
		//Add any ITI fee
		if (document.regform.ITI.value != "0") {AOTotal+=390;}
		//If necessary, Add Master Class Fee	
		if(AOTotal<390){if (document.regform.Master1.value != "0") {AOTotal+=195;}}
		if(AOTotal<390){if (document.regform.Master2.value != "0") {AOTotal+=195;}}

	}
	else
	{
		MTotal = 0;
		document.regform.Session1.disabled=true;
		document.regform.Session2.disabled=true;
		document.regform.Session3.disabled=true;
		document.regform.Session4.disabled=true;
		document.regform.Session5.disabled=true;
		document.regform.Session6.disabled=true;
		document.regform.ThursdayLunch.disabled=true;
		document.regform.FridayLunch.disabled=true;
		document.regform.CA.disabled=true;
		//Add any ITI fee
		if (document.regform.ITI.value == "ITI4")  AOTotal+=390;
		if (document.regform.ITI.value == "ITI5")  AOTotal+=390;
		if (document.regform.ITI.value == "ITI6")  AOTotal+=390;
		if (document.regform.ITI.value == "ITI3")  AOTotal+=390;
		if (document.regform.ITI.value == "ITI2")  AOTotal+=585;
		if (document.regform.ITI.value == "ITI1")  AOTotal+=585;

		//Add Master Class Fee	
		if (document.regform.Master1.value != "0") {AOTotal+=195;}
		if (document.regform.Master2.value != "0") {AOTotal+=195;}
	}
	
	
	
	
		
	
	var thePcode = document.regform.PCode.value.toLowerCase();	
	if((thePcode == "d07888") || ( thePcode == "do7888") || ( thePcode == "dO7888"))
	{
		PCodeDiscount = 0;
	}
	else
	if (thePcode.length==6 && thePcode.charAt(0)>='d' && thePcode.charAt(0)<='d' && (thePcode.substr(1,2)=="07" || thePcode.substr(1,2)=="o7" || thePcode.substr(1,2)=="O7")) // starts with [alpha]06 and 6 characters long
	{
		if (thePcode.charAt(3)>='0' && thePcode.charAt(3)<='9')		// 4th character is a #
		{
			if (thePcode.charAt(4)>='0' && thePcode.charAt(4)<='9')	// 5th character is a #
			{
					if (thePcode.charAt(5)>='0' && thePcode.charAt(5)<='9') {PCodeDiscount = 10;}		// 6th character is a #
			}
		}
	}
	
	// Display Totals
	document.regform.MainTotal.value = MTotal;
	document.regform.CertATotal.value = CA;
	document.regform.AddOnTotal.value = AOTotal;
	document.regform.SeniorStudentTotal.value = SeniorStudent;
	document.regform.PCodeTotal.value = PCodeDiscount;
	grandTotal = MTotal+CA+AOTotal-SeniorStudent-PCodeDiscount
	if (grandTotal<0)
		document.regform.Total.value = 0;
	else
		document.regform.Total.value = grandTotal;
	
		// PCode like [alpha]06### save $5 
	
}

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.HomePhone.value.length!=10 && document.regform.WorkPhone.value.length!=10)
	{
		alert("Please enter at least one valid phone number!");
		return false;	
	}
	if (document.regform.HomePhone.value.length==10)
	{
		for (x=0;x<document.regform.HomePhone.value.length;x++)
		{
			if (document.regform.HomePhone.value.charAt(x)<'0' || document.regform.HomePhone.value.charAt(x)>'9')
			{
				alert("Please enter a valid home phone number!");
				return false;
			}
		}	
	}
	if (document.regform.WorkPhone.value.length==10)
	{
		for (x=0;x<document.regform.WorkPhone.value.length;x++)
		{
			if (document.regform.WorkPhone.value.charAt(x)<'0' || document.regform.WorkPhone.value.charAt(x)>'9')
			{
				alert("Please enter a valid work phone number!");
				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;
	// check for valid pcode
	var thePcode = document.regform.PCode.value.toLowerCase(), pCode3="";
	if (thePcode.length>=3) pCode3 = thePcode.substr(0,3);
	if ((thePcode.length!=0 && thePcode.length!=6) || (pCode3!="d07" && pCode3!="do7"))
	{
		alert("Please enter a valid P-code!");
		return false;
	}
	// check total for at least one course
	if (document.regform.Total.value==0)
	{
		alert("Please select at least one workshop!");
		return false;
	}
	
	//check for scheduling conflicts
	if (document.regform.Master1.value!=0)
		{
		 if (document.regform.ITI.value=="ITI2" || document.regform.ITI.value=="ITI1") 
		 	{
		 	 alert("Schedule Conflict! It is not Possible to attend both a PreConference Master Class and a 3-day Intensive Training Workshop");
		 	 return false;
		 	}
		}
		
		
	if (document.regform.MainConference.checked)
		{
		 if (document.regform.Session1.value=="0") {alert("Don't forget to call and select your workshop sessions.");}
		 else if (document.regform.Session2.value=="0") {alert("Don't forget to call and select your workshop sessions.");}
   		 else if (document.regform.Session3.value=="0") {alert("Don't forget to call and select your workshop sessions.");}
		 else if (document.regform.Session4.value=="0") {alert("Don't forget to call and select your workshop sessions.");}
		 else if (document.regform.Session5.value=="0") {alert("Don't forget to call and select your workshop sessions.");}
		 else if (document.regform.Session6.value=="0") {alert("Don't forget to call and select your workshop sessions.");}

	
		}
		
	// 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!");
				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
	if(document.regform.CardType.value == "AmExCard")
	{	
		/*if((ccn.length != 15)||(ccn.charAt(0)=='3'))
		{
			alert("Please enter a valid credit card number!");
			return false;
		}
		else
		{
			alert("Thank you for registering!");
			document.regform.submit();
			return true;
		}*/
		sum=0;
	}
	else
	{
		
	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 to register!");
		return false;
	}
	return false;
}
