// JavaScript Document


///Auto Formats Phone Number

var tax = 1.05;
var typeOfGuest = "Ticket";

function clearNumOfRegs()
{
	document.getElementById('numOfRegs').value = 1;
}

function add_registrant() 
{
	var costPerPerson = document.getElementById('costPerPerson').value;  //including tax
	var costPerTable = document.getElementById('costPerTable').value;  //including tax
	costPerPerson *= tax;
	costPerTable *= tax;
	var totalCost
	if (document.getElementById('addReg').innerHTML != '')
	{
		var numOfReg = parseInt(document.getElementById('numOfRegs').value);
	} else {
		var numOfReg = 1;	
	}
	
	var regForm = '<div id="reg'+ (numOfReg + 1) +'"><h3>' + typeOfGuest +' #' + (numOfReg + 1) + '</h3><fieldset>' +
'<label class="fieldFirst">First Name <span style="color: red;">*</span><input type="text" title="First Name:" name="firstName' + (numOfReg+1) + '" /></label>' +
'<label class="fieldLast">Last Name <span style="color: red;">*</span> <input type="text" title="Last Name:" name="lastName' + (numOfReg+1) + '" /></label>';
		regForm +='<label class="fieldTitle">Title <span style="color: red;">*</span><input type="text" title="Title:" name="title' + (numOfReg+1) + '" /></label>';
		regForm += '<input type="hidden" name="title'+ (numOfReg+1) +'" value="public" />';


regForm += '<label class="fieldPersonalEmail">Personal eMail <span style="color: red;">*</span><input type="text" title="Person eMail:" name="personalEmail' + (numOfReg+1) + '" /></label>' +
'<label class="fieldDirectTel">Direct Tel <span style="color: red;">*</span><input type="text" title="Direct Tel:" name="directTel' + (numOfReg+1) + '"onkeydown="javascript:backspacerDOWN(this,event);" onkeyup="javascript:backspacerUP(this,event);"   /></label>' +
'</fieldset></div>';
	document.getElementById('addReg').innerHTML += regForm;

	numOfTables = Math.floor((numOfReg+1) / 10);
	numOfTickets = (numOfReg + 1) - (numOfTables * 10);
	document.getElementById('numOfRegs').value = parseInt(numOfReg) + 1;
	document.getElementById('numOfRegsCell').innerHTML = parseInt(numOfReg) + 1;
	document.getElementById('numOfTablesCell').innerHTML = numOfTables;
	totalCost = (costPerPerson * numOfTickets) + (costPerTable * numOfTables);
	document.getElementById('totalCost').innerHTML = "$" + totalCost.toFixed(2) + " CAD";
	document.forms['registration'].elements['addRegistrant'].focus()
	//document.forms['registration'].elements['directTel' + (numOfReg+1)].focus();
	//document.forms['registration'].elements['firstName' + (numOfReg+1)].focus();

}

function remove_registrant()
{
	var costPerPerson = document.getElementById('costPerPerson').value
	costPerPerson *= tax;
	if (document.getElementById('addReg').innerHTML != '')
	{
		var numOfReg = parseInt(document.getElementById('numOfRegs').value);
	} else {
		var numOfReg = 1;	
	}
	
	if (numOfReg == 1)
	{
		alert ("Error: Must Have atleast one Ticket");
	} else {
		 var d = document.getElementById('addReg');
 		 var olddiv = document.getElementById('reg' + numOfReg);
 		 d.removeChild(olddiv);
		 document.getElementById('numOfRegsCell').innerHTML = parseInt(numOfReg) - 1;
		var totalCost = costPerPerson * (numOfReg - 1);
		document.getElementById('totalCost').innerHTML = "$" + totalCost.toFixed(2) + " CAD";
		document.forms['registration'].elements['directTel' + (numOfReg-1)].focus();
		document.forms['registration'].elements['firstName' + (numOfReg-1)].focus();
		document.getElementById('numOfRegs').value = parseInt(numOfReg) - 1;

	}
	
	
}

function validate_form()
{
	if (document.registration.terms.checked == true)
	{
	var numOfReg = parseInt(document.getElementById('numOfRegs').value);
	var canSubmit = true;
	var toAlert = "The Following Fields are missing:\n";
	
		if (document.registration.address.value == '')
		{
			toAlert += "Address\n";
			canSubmit = false;
			
		}
		
		if (document.registration.city.value == '')
		{
			toAlert += "City\n";
			canSubmit = false;
		}
		if (document.registration.provState.value == '')
		{
			toAlert += "Prov / State\n";
			canSubmit = false;	
		}
		if (document.registration.country.value == '')
		{
			toAlert += "Country\n";
			canSubmit = false;
		}
		if (document.registration.postalZip.value == '')
		{
			toAlert += "Postal Code / Zip Code\n";
			canSubmit = false;	
		}
		if (document.registration.mainTel.value == '')
		{
			toAlert += "Main Telephone\n";
			canSubmit = false;
		}
		if (document.registration.company.value == '')
		{
			toAlert += "Company Name\n";
			canSubmit = false;
		}
		if ((!document.registration.payment[0].checked) && (!document.registration.payment[1].checked))
		{
			toAlert += "Payment Method\n";
			canSubmit = false;
		}
		
		for (var i = 1; i <= numOfReg; i++)
		{
			if (document.getElementsByName('firstName' + i)[0].value == '')
			{
				toAlert += "Ticket #"+i+"'s First Name\n";
				canSubmit = false;
			}
			
			if (document.getElementsByName('lastName' + i)[0].value == '')
			{
				toAlert += "Ticket #"+i+"'s Last Name\n";
				canSubmit = false;
			}
			
			if ((document.getElementsByName('title' + i)[0].value == ''))
			{
				toAlert += "Ticket #"+i+"'s Title\n";
				canSubmit = false;
			}
			
			if (document.getElementsByName('personalEmail' + i)[0].value == '')
			{
				toAlert += "Ticket #"+i+"'s Personal Email\n";
				canSubmit = false;
			} else {
				// Confirms Email is correctly entered
				var apos=document.getElementsByName('personalEmail' + i)[0].value.indexOf("@");
				var dotpos=document.getElementsByName('personalEmail' + i)[0].value.lastIndexOf(".");
				if (apos<1||dotpos-apos<2) {
					toAlert += "Ticket #"+i+"'s Email is present but not valid\n";
					canSubmit = false;
				}
			}
			
			///////
			
			if (document.getElementsByName('directTel' + i)[0].value == '')
			{
				toAlert += "Ticket #"+i+"'s Direct Telephone Number\n";
				canSubmit = false;
			}
			
		}
		if (canSubmit == false)
		{
			alert (toAlert);
		} else {

		}
		return canSubmit;
	} else {
		alert('Please read over the Terms and Conditions on the right before submiting');
		return false;
	}
		
		
}

