var tiers = new Array();
tiers[0] = "";


var tier = new Array();
tier[0] = new Array();
tier[0][0] = new Array();
tier[0][0][0] = "Opening Reception, Sunday, June 6";
tier[0][0][1] = 25.00;
tier[0][1] = new Array();
tier[0][1][0] = "Lunch, Monday, June 7";
tier[0][1][1] = 40.00;
tier[0][2] = new Array();
tier[0][2][0] = "Banquet Dinner, Tuesday, June 8";
tier[0][2][1] = 70.00;

var fieldArray = new Array();
fieldArray[0] = "eFirstName";
fieldArray[1] = "eLastName";
fieldArray[2] = "eJobTitle";
fieldArray[3] = "eOrg";
fieldArray[4] = "eAddress";
fieldArray[5] = "eCity";
fieldArray[6] = "eProvState";
fieldArray[7] = "ePCZip";
fieldArray[8] = "eCountry";
fieldArray[9] = "ePhone";
fieldArray[10] = "eEmail";
fieldArray[11] = "eEmail2";


function resetform()
{
	// Reset Numbers
	for (i = 0; i < tiers.length; i++)
		for (j = 0; j < tier[i].length; j++)
			document.getElementById("tot" + i + j).innerHTML = Dollar(0);

	document.getElementById("total").innerHTML = Dollar(0);

	// Reset error messages
	for (i = 0; i < fieldArray.length; i++)
		document.getElementById(fieldArray[i] + "_err").innerHTML = "&nbsp;";

	return 0;
}

function Dollar(num)
{
   return "$" + num.toFixed(2);
}

function UpdateTotals()
{
	memberType = "";

	for (i = 0; i < document.Registration.membership.length; i++)
		if (document.Registration.membership[i].checked)
			memberType = document.Registration.membership[i].value;

	var total = 0;

	if (memberType == "111")
		total = 350;
	else if (memberType == "121")
		total = 200;
	else if (memberType == "131")
		total = 200;
	else if (memberType == "141")
		total = 200;	
	else if (memberType == "112")
		total = 400;	
	else if (memberType == "122")
		total = 250;	
	else if (memberType == "132")
		total = 250;		
	else if (memberType == "142")
		total = 250;		
	else if (memberType == "113")
		total = 100;	
	else if (memberType == "123")
		total = 60;	
	else if (memberType == "133")
		total = 60;		
	else if (memberType == "143")
		total = 60;			
	else if (memberType == "211")
		total = 400;	
	else if (memberType == "221")
		total = 200;	
	else if (memberType == "231")
		total = 200;		
	else if (memberType == "241")
		total = 200;	
	else if (memberType == "212")
		total = 450;	
	else if (memberType == "222")
		total = 250;	
	else if (memberType == "232")
		total = 250;		
	else if (memberType == "242")
		total = 250;			
	else if (memberType == "213")
		total = 100;	
	else if (memberType == "223")
		total = 60;	
	else if (memberType == "233")
		total = 60;		
	else if (memberType == "243")
		total = 60;			
	else
		total = 0;

	for(i = 0; i < tiers.length; i++)
		for(j = 0; j < tier[i].length; j++)
		{
			document.getElementById("tot" + i + j).innerHTML = Dollar(document.getElementById("qty" + i + j).value * tier[i][j][1]);

			total += document.getElementById("qty" + i + j).value * tier[i][j][1];
		}

	document.getElementById("total").innerHTML = Dollar(total);

	return 0;
}

function Add(i, j)
{
	if (i == 2)
	{
		if (document.getElementById("qty" + i + j).value < (tier[2][j][2] - Number(document.getElementById("sum2" + j).value)) && document.getElementById("qty" + i + j).value < 2)
			qty = ++document.getElementById("qty" + i + j).value;
	}
	else
		qty = ++document.getElementById("qty" + i + j).value;
	UpdateTotals();

	return 0;
}

function Del(i, j)
{
	if (document.getElementById("qty" + i + j).value > 0)
		document.getElementById("qty" + i + j).value--;

	UpdateTotals();

	return 0;
}

function resetForm()
{
	for (i = 0; i < fieldArray.length; i++)
		document.getElementById(fieldArray[i] + "_err").innerHTML = "&nbsp;";

	document.getElementById("membership_err").innerHTML = "&nbsp;";
	document.getElementById("payment_err").innerHTML = "&nbsp;";
	document.getElementById("refund_err").innerHTML = "&nbsp;";

	return 0;
}

function validateField(fname)
{
	if (document.getElementById(fname).value.length == 0)
	{
		flag = 1;

		document.getElementById(fname + "_err").innerHTML = "Please complete this mandatory field.";
	}
	else
		flag = 0;

	return flag;
}

function validateForm()
{
	// Reset error messages
	resetForm();

	var errStr = "";

	// Check for empty fields
	flag = 0;
	for (i = 0; i < fieldArray.length; i++)
		flag += validateField(fieldArray[i]);
	if (flag != 0)
		errStr += "Some mandatory fields in step 1 are still empty.  You must complete them before you can continue.\n\n";

	// Check for attendees with non-zero quantities
	tempflag = flag;
	for(i = 0; i < tiers.length; i++)
		for(j = 0; j < tier[i].length; j++)
			if (document.getElementById("qty" + i + j).value != 0 && (document.getElementById("att" + i + j).value == null || document.getElementById("att" + i + j).value == "") && tempflag == flag)
			{
				errStr += "You must fill in the attendees' name for each extra ticket ordered in Step 3.\n\n";

				flag++;
			}

	// Check for unselected Radio Buttons
	tempflag = flag;
	for (i = 0; i < document.Registration.membership.length; i++)
		if (document.Registration.membership[i].checked)
			flag++;
	if (flag == tempflag)
	{
		errStr += "Please indicate in step 2 your membership status.\n\n";

		document.getElementById("membership_err").innerHTML = "Please indicate your membership status.";

		flag = tempflag + 1;
	}
	else
		flag = tempflag;

	tempflag = flag;
	for (i = 0; i < document.Registration.payment.length; i++)
		if (document.Registration.payment[i].checked)
			flag++;
	if (flag == tempflag)
	{
		errStr += "Please indicate in step 4 your preferred payment type.\n\n";

		document.getElementById("payment_err").innerHTML = "Please select your payment preference.";

		flag = tempflag + 1;
	}
	else
		flag = tempflag;

	// Check to see if refund policy accepted
	if (document.Registration.refund.checked == false)
	{
		flag++;
		errStr += "You must accept the refund policy in order to register for the conference. \n\n";

		document.getElementById("refund_err").innerHTML = "Please indicate your acceptance of the terms of the refund policy.";
	}

	// Check if email addresses match
	if (document.getElementById("eEmail").value != document.getElementById("eEmail2").value && document.getElementById("eEmail").value != "" && document.getElementById("eEmail2").value != "")
	{
		flag++;
		errStr += "The email addresses you've provided in step 1 do not match. Please check the email address in both fields.\n\n";

		document.getElementById("eEmail2_err").innerHTML = "The email addresses do not match. Please correct.";
	}

	// Check if email addresses contain any invalid characters
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var address = document.getElementById("eEmail").value;
	if(!reg.test(address))
	{
		flag++;
		errStr += "The email address you've provided in step 1 do not seem valid.  Please re-enter the email address in both fields.\n\n";

		document.getElementById("eEmail_err").innerHTML = "The email address is not valid. Please correct.";
	}

	// Flag determines how to proceed
	if (flag != 0)
	{
		alert (errStr, "");
		return false;
	}
	else
	{
		// Fill in eBadge if empty
		if (document.getElementById("eBadge").value == "")
			document.getElementById("eBadge").value = document.getElementById("eFirstName").value + " " + document.getElementById("eLastName").value;

		return true;
	}
}

function WriteAdditionalTickets(i)
{
	for(j = 0; j < tier[i].length; j++)
	{
		if(j == 0)
			document.write(
				"<table border=0 cellspacing=0 cellpadding=2 align='center'>" +
					"<tr>" +
						"<td class='table_h_title'>" + tiers[i] + "</td>" +
						"<td align='center'><strong>Quantity</strong></td>" +
						"<td align='center'><strong>Attendees' Names</strong></td>" +
						"<td align='center'><strong>Unit Cost</strong></td>" +
						"<td align='center'><strong>Total Cost</strong></td>" +
					"</tr>"
					);

		if (i != 2)
			document.write(
				"<tr>" +
					"<td valign='top'><strong>" + tier[i][j][0] + "</strong></td>" +
					"<td align='right' valign='top'><input type='text' id='qty" + i + j + "' name='qty" + i + j + "' value='0' size='1' readonly /><button type='button' onclick='Add(" + i + ", " + j + ")'>+</button><button type='button' onclick='Del(" + i + ", " + j + ")'>-</button></td>" +
					"<td valign='top'><input type='text' id='att" + i + j +"' name='att" + i + j +"' size='16' /></td>" +
					"<td align='center' valign='top'>" + Dollar(tier[i][j][1]) + "</td>" +
					"<td valign='top'><div align='center' id = 'tot" + i + j +"'>" + Dollar(0) + "</div></td>" +
				"</tr>"	
				);
		else
		{
			document.write(
				"<tr>" +
					"<td valign='top' width='175'>" + 
						tier[i][j][0] + "<br />" + 
						"Spaces remaining: ");
				if ((tier[2][j][2] - Number(document.getElementById("sum2" + j).value)) <= 0)		
					document.write("0");
				else
					document.write(tier[2][j][2] - Number(document.getElementById("sum2" + j).value));
			document.write("</td>");
			
			if ((tier[2][j][2] - Number(document.getElementById("sum2" + j).value)) <= 0)
			{
				document.write(
						"<td align='center' valign='top' colspan='2'><strong><font color='red'><input type='hidden' id='qty" + i + j + "' name='qty" + i + j + "' value='0' />TOUR FULL</font></strong></td>"
					);
			}
			else
			{
				document.write(
						"<td align='right' valign='top'><input type='text' id='qty" + i + j + "' name='qty" + i + j + "' value='0' size='1' readonly /><button type='button' onclick='Add(" + i + ", " + j + ")'>+</button><button type='button' onclick='Del(" + i + ", " + j + ")'>-</button></td>" +
						"<td valign='top'><input type='text' id='att" + i + j +"' name='att" + i + j +"' size='16' /></td>"
					);		
			}
			
			document.write(						
					"<td align='center' valign='top'>" + Dollar(tier[i][j][1]) + "</td>" +
					"<td valign='top'><div align='center' id = 'tot" + i + j +"'>" + Dollar(0) + "</div></td>" +
				"</tr>" +
				"<tr>" +
					"<td colspan=5>&nbsp;</td>" +
				"</tr>"				
				);
		}

		if(j == tier[i].length - 1)
			document.write(
					"</table>" +
				"<br />" +
				"<br />"
				);
	}
}

