
function validateRequestAuthsForm()
{
	
	var numSerials = document.requestAuthsForm.numSerials.value;
	var serialsChosen = 0;
	var returnValue = false;
	
	for( var count = 0; count < numSerials; count++ )
	{
		if( document.requestAuthsForm[("choose" + count)].checked )
		{
			serialsChosen++;
		}
	}
	
	if( serialsChosen == 0 )
	{
		returnValue = false;
		alert( "You must choose at lease one serial number to request more authorizations for." );
	}
	else
	{
		if( document.requestAuthsForm.reason.value == "" )
		{
			returnValue = false;
			alert( "You must enter a reason that you need the serial number(s) incremented." );
		}
		else
		{
			returnValue = true;
		}
	}
	
	return returnValue;
}

function validateContactForm()
{
	var errorMessage = "The following field(s) are required:\n\n";
	var fails = 0;
	var returnValue = false;
	
		
	//--------------------------------------------------------------------------
	// hardware info
	//--------------------------------------------------------------------------
	if( document.startContactForm.platform.value == "" )
	{
		fails++;
		errorMessage += " -Platform\n";
	}
	else
	{
		if( document.startContactForm.platform.value == "Windows PC" )
		{
			if( document.startContactForm.windowsProcessorMenu.value == "other" )
			{
				if( document.startContactForm.otherProcessor.value == "" )
				{
					fails++;
					errorMessage += " -Other Processor\n";
				}
			}
			else
			{
				if( document.startContactForm.windowsProcessorMenu.value == "" )
				{
					fails++;
					errorMessage += " -Windows PC Processor\n";
				}
			}
		}
		else if( document.startContactForm.platform.value == "Apple PPC" )
		{
			if( document.startContactForm.applePpcProcessorMenu.value == "other" )
			{
				if( document.startContactForm.otherProcessor.value == "" )
				{
					fails++;
					errorMessage += " -Other Processor\n";
				}
			}
			else
			{
				if( document.startContactForm.applePpcProcessorMenu.value == "" )
				{
					fails++;
					errorMessage += " -Mac PPC-based Processor\n";
				}
			}
		}
		else // Apple Intel
		{
			if( document.startContactForm.appleIntelProcessorMenu.value == "other" )
			{
				if( document.startContactForm.otherProcessor.value == "" )
				{
					fails++;
					errorMessage += " -Other Processor\n";
				}
			}
			else
			{
				if( document.startContactForm.appleIntelProcessorMenu.value == "" )
				{
					fails++;
					errorMessage += " -Mac Intel-based Processor\n";
				}
			}
		}
	}
	
	if( document.startContactForm.cpuSpeed.value == "" )
	{
		fails++;
		errorMessage += " -CPU Speed\n";
	}
	
	if( document.startContactForm.ram.value == "" )
	{
		fails++;
		errorMessage += " -RAM\n";
	}
	
	if( document.startContactForm.notebook.checked )
	{
		if( document.startContactForm.notebookBrand.value == "" )
		{
			fails++;
			errorMessage += " -Brand\n";
		}
		if( document.startContactForm.notebookModel.value == "" )
		{
			fails++;
			errorMessage += " -Model\n";
		}
	}
	
	
	//--------------------------------------------------------------------------
	// software information
	//--------------------------------------------------------------------------
	if( document.startContactForm.platform.value == "Windows PC" )
	{
		if( document.startContactForm.windowsOsVersion.value == "" )
		{
			if( document.startContactForm.otherOs.value == "" )
			{
				fails++;
				errorMessage += " -Operating System Version\n";
			}
		}
	}
	else
	{
		if( document.startContactForm.appleOsVersion.value == "" )
		{
			if( document.startContactForm.otherOs.value == "" )
			{
				fails++;
				errorMessage += " -Operating System Version\n";
			}
		}
	}
	
	
	if( document.startContactForm.problemCategory.value == "" )
	{
		fails++;
		errorMessage += " -Problem Category\n";
	}
	
	if( document.startContactForm.problemDescription.value == "" )
	{
		fails++;
		errorMessage += " -Problem Description\n";
	}
	
	
	if( fails > 0 )
	{
		returnValue = false;
		alert( errorMessage );
	}
	else
	{
		returnValue = true;
	}
	
	return returnValue;
}

function notebookChanged()
{
	if( document.startContactForm.notebook.checked )
	{
		document.getElementById( "notebookBrandRow" ).style.display = "table-row";
		document.getElementById( "notebookModelRow" ).style.display = "table-row";
	}
	else
	{
		document.getElementById( "notebookBrandRow" ).style.display = "none";
		document.getElementById( "notebookModelRow" ).style.display = "none";
	}
}

function platformMenuChanged()
{
	if( document.startContactForm.platform.value == "Windows PC" )
	{
		document.getElementById( "windowsProcessorRow" ).style.display = "table-row";
		document.getElementById( "applePpcProcessorRow" ).style.display = "none";
		document.getElementById( "appleIntelProcessorRow" ).style.display = "none";

		document.getElementById( "appleOsRow" ).style.display = "none";
		document.getElementById( "windowsOsRow" ).style.display = "table-row";
		
	}
	else if( document.startContactForm.platform.value == "Apple PPC" )
	{
		document.getElementById( "windowsProcessorRow" ).style.display = "none";
		document.getElementById( "applePpcProcessorRow" ).style.display = "table-row";
		document.getElementById( "appleIntelProcessorRow" ).style.display = "none";

		document.getElementById( "appleOsRow" ).style.display = "table-row";
		document.getElementById( "windowsOsRow" ).style.display = "none";
	}
	else
	{
		document.getElementById( "windowsProcessorRow" ).style.display = "none";
		document.getElementById( "applePpcProcessorRow" ).style.display = "none";
		document.getElementById( "appleIntelProcessorRow" ).style.display = "table-row";

		document.getElementById( "appleOsRow" ).style.display = "table-row";
		document.getElementById( "windowsOsRow" ).style.display = "none";
	}
}





function validateLoginForm()
{
	var returnValue = false;
	
	if( 
		( document.loginForm.password.value == "" ) || 
		( document.loginForm.emailAddress.value == "" )
	)
	{
		alert( "You must enter an email address and password to log in." );
		returnValue = false;
	}
	else
	{
		returnValue = true;
	}
	
	return returnValue;
}

function validateFindEmailForm()
{
	var returnValue = false;
	
	if( 
		( document.findEmailForm.serialNumber.value == "" )
	)
	{
		alert( "You must enter a serial number to log in." );
		returnValue = false;
	}
	else
	{
		returnValue = true;
	}
	
	return returnValue;
}

function validateCreateAccountForm()
{
	var returnValue = false;
	
	if( 
		( document.createAccountForm.emailAddress.value == "" )
	)
	{
		alert( "You must enter an email address to log in." );
		returnValue = false;
	}
	else
	{
		returnValue = true;
	}
	
	return returnValue;
}


function validateLostPasswordForm()
{
	var returnValue = false;
	
	if( 
		( document.lostPasswordForm.emailAddress.value == "" )
	)
	{
		alert( "You must enter an email address." );
		returnValue = false;
	}
	else
	{
		returnValue = true;
	}
	
	return returnValue;
}


function validateChangePasswordForm()
{
	var returnValue = false;
	
	if( document.changePasswordForm.password.value == "" )
	{
		returnValue = false;
		alert( "You must enter a new password." ); 
	}
	else
	{	
		if( 
			document.changePasswordForm.password.value == 
			document.changePasswordForm.confirmPassword.value
		)
		{
			returnValue = true;
		}
		else
		{
			returnValue = false;
			alert( "The fields New Password and Confirm New Password must match." ); 
		}
	}
	return returnValue;
}


function validateUpdateContactInfoForm()
{
	var returnValue = false;
	
	var fieldNames = new Array(
		"emailAddress",
		"firstName",
		"lastName",
		"addressLineOne",
		"city",
		"state",
		"zipCode",
		"country",
		"phoneNumber"
	);
	
	var fieldLabels = new Array(
		" -Email Address\n",
		" -First Name\n",
		" -Last Name\n",
		" -Address Line One\n",
		" -City\n",
		" -State\n",
		" -Zip Code\n",
		" -Country\n",
		" -Phone Number\n"
	);
	
	var max = fieldNames.length;
	var fails = 0;
	var errorMessage = "The following field(s) are required:\n\n";
	
	for( var count = 0; count < max; count++ )
	{
		if( document.updateContactInfoForm[fieldNames[count]].value == "" )
		{
			fails++;
			errorMessage += fieldLabels[count];
		}
	}
	
	if( fails != 0 )
	{
		returnValue = false;
		alert( errorMessage );
	}
	else
	{
		returnValue = true;
	}
	
	return returnValue;
}







