	function validateSSBRRequest(form) {
		if (form == null)
			return false;

		if (! setRequestTimestamp(form)) {
			alert('Dice Request Timestamp Error!');
			return false;
		}
		if (! spamCheck(form)) {
			alert('Dice Request Spam Check Failure!');
			return false;
		}

		//	Field Validation.
		var foundError = false;
		clearErrorMessages();

		var eTurn = document.getElementById('turn');
		if (eTurn != null) {
			if (! isValidNumber('turn')) {
				showErrorMessage('turn_error', 'Invalid Turn');
				foundError = true;
			}
		}
		else {
			alert("Site Error: Missing Turn Element");
			foundError = true;
		}

		var eTerritory = document.getElementById('territory');
		if (eTerritory != null) {
			var territory = eTerritory.options[eTerritory.selectedIndex].text;
			if (territory.match(/^---/) != null) {
				showErrorMessage('territory_error', 'Invalid Territory');
				foundError = true;
			}
		}
		else {
			alert("Site Error: Missing Territory Element");
			foundError = true;
		}

		var atk_has_daimyo = false;
		var def_has_daimyo = false;
		var def_has_daimyo_and_provincial = false;

		if (document.getElementById('atk_color').selectedIndex == document.getElementById('def_color').selectedIndex) {
			showErrorMessage('atk_color_error', 'Same Color as Defending Color.');
			showErrorMessage('def_color_error', 'Same Color as Attacking Color.');
			foundError = true;
		}
		if (document.getElementById('atk_daimyo').selectedIndex > 0) {
			var eColor = document.getElementById('atk_color');
			var eDaimyo = document.getElementById('atk_daimyo');
			var colorIndex = eColor.selectedIndex;
			var daimyoIndex = eDaimyo.selectedIndex;
			var daimyoColor = (daimyoIndex - 1) / 3;

			atk_has_daimyo = true;

			if (colorIndex != daimyoColor) {
				var colorNeeded = eColor.options[daimyoColor].text;
				showErrorMessage('atk_daimyo_error', "The Selected Daimyo does not Match the Selected Color (" + colorNeeded + ")");
				foundError = true;
			}
		}
		if (document.getElementById('def_daimyo').selectedIndex > 0) {
			var eColor = document.getElementById('def_color');
			var eDaimyo = document.getElementById('def_daimyo');
			var colorIndex = eColor.selectedIndex;
			var daimyoIndex = eDaimyo.selectedIndex;
			var daimyoColor = ((daimyoIndex - 1) % 15) / 3;

			def_has_daimyo = true;
			if (daimyoIndex > 15)
				def_has_daimyo_and_provincial = true;

			if (colorIndex != daimyoColor) {
				var colorNeeded = eColor.options[daimyoColor].text;
				showErrorMessage('def_daimyo_error', "The Selected Daimyo does not Match the Selected Color (" + colorNeeded + ")");
				foundError = true;
			}
		}

		var valid_atk = 0;

		if (! isValidNumber('atk_bow')) {
			showErrorMessage('atk_bow_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		else
			valid_atk += 1;
		if (! isValidNumber('atk_gun')) {
			showErrorMessage('atk_gun_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		else
			valid_atk += 1;
		if (! isValidNumber('atk_sword')) {
			showErrorMessage('atk_sword_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		else
			valid_atk += 1;
		if (! isValidNumber('atk_spear')) {
			showErrorMessage('atk_spear_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		else
			valid_atk += 1;
		if (! isValidNumber('atk_ronin')) {
			showErrorMessage('atk_ronin_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		else
			valid_atk += 1;

		if (valid_atk == 5) {
			var atk_bow = getTextNumber('atk_bow');
			var atk_gun = getTextNumber('atk_gun');
			var atk_sword = getTextNumber('atk_sword');
			var atk_spear = getTextNumber('atk_spear');
			var atk_ronin = getTextNumber('atk_ronin');

			if (atk_has_daimyo) {
				if ((atk_bow + atk_sword) > 4) {
					showErrorMessage('atk_bow_error', 'Too Many Samurai in the Army');
					showErrorMessage('atk_sword_error', 'Too Many Samurai in the Army');
					foundError = true;
				}
				if ((atk_gun + atk_spear) > 10) {
					showErrorMessage('atk_gun_error', 'Too Many Ashigaru in the Army');
					showErrorMessage('atk_spear_error', 'Too Many Ashigaru in the Army');
					foundError = true;
				}
			}
			else if ((atk_bow + atk_gun + atk_sword + atk_spear) == 0) {
				showErrorMessage('atk_bow_error', 'No Attacking Forces Specified');
				showErrorMessage('atk_gun_error', 'No Attacking Forces Specified');
				showErrorMessage('atk_sword_error', 'No Attacking Forces Specified');
				showErrorMessage('atk_spear_error', 'No Attacking Forces Specified');
				foundError = true;
			}
			else if ((atk_bow + atk_gun + atk_sword + atk_spear) > 5) {
				showErrorMessage('atk_bow_error', 'Too Many Units in a Provincial force');
				showErrorMessage('atk_gun_error', 'Too Many Units in a Provincial force');
				showErrorMessage('atk_sword_error', 'Too Many Units in a Provincial force');
				showErrorMessage('atk_spear_error', 'Too Many Units in a Provincial force');
				foundError = true;
			}
			if (atk_ronin >= (atk_bow + atk_gun + atk_sword + atk_spear)) {
				showErrorMessage('atk_spear_error', 'Too Many Ronin in force');
				foundError = true;
			}
		}

		var valid_def = 0;

		if (! isValidNumber('def_bow')) {
			showErrorMessage('def_bow_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		else
			valid_def += 1;
		if (! isValidNumber('def_gun')) {
			showErrorMessage('def_gun_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		else
			valid_def += 1;
		if (! isValidNumber('def_sword')) {
			showErrorMessage('def_sword_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		else
			valid_def += 1;
		if (! isValidNumber('def_spear')) {
			showErrorMessage('def_spear_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		else
			valid_def += 1;
		if (! isValidNumber('def_ronin')) {
			showErrorMessage('def_ronin_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		else
			valid_def += 1;

		if (valid_def == 5) {
			var def_bow = getTextNumber('def_bow');
			var def_gun = getTextNumber('def_gun');
			var def_sword = getTextNumber('def_sword');
			var def_spear = getTextNumber('def_spear');
			var def_ronin = getTextNumber('def_ronin');
			var def_fortress = document.getElementById('def_fortress').selectedIndex;

			if (def_has_daimyo) {
				if (def_has_daimyo_and_provincial) {
					if ((def_bow + def_gun + def_sword + def_spear) > 19) {
						showErrorMessage('def_bow_error', 'Too Many Units in a Combined force');
						showErrorMessage('def_gun_error', 'Too Many Units in a Combined force');
						showErrorMessage('def_sword_error', 'Too Many Units in a Combined force');
						showErrorMessage('def_spear_error', 'Too Many Units in a Combined force');
						foundError = true;
					}
					else {
						if ((def_bow + def_sword) > 9) {
							showErrorMessage('def_bow_error', 'Too Many Samurai in Combined force');
							showErrorMessage('def_sword_error', 'Too Many Samurai in Combined force');
							foundError = true;
						}
						if ((def_gun + def_spear) > 15) {
							showErrorMessage('def_gun_error', 'Too Many Ashigaru in Combined force');
							showErrorMessage('def_spear_error', 'Too Many Ashigaru in Combined force');
							foundError = true;
						}
					}
				}
				else {
					if ((def_bow + def_sword) > 4) {
						showErrorMessage('def_bow_error', 'Too Many Samurai in the Army');
						showErrorMessage('def_sword_error', 'Too Many Samurai in the Army');
						foundError = true;
					}
					if ((def_gun + def_spear) > 10) {
						showErrorMessage('def_gun_error', 'Too Many Ashigaru in the Army');
						showErrorMessage('def_spear_error', 'Too Many Ashigaru in the Army');
						foundError = true;
					}
				}
			}
			else if ((def_bow + def_gun + def_sword + def_spear + def_fortress) == 0) {
				showErrorMessage('def_bow_error', 'No Defending Forces Specified');
				showErrorMessage('def_gun_error', 'No Defending Forces Specified');
				showErrorMessage('def_sword_error', 'No Defending Forces Specified');
				showErrorMessage('def_spear_error', 'No Defending Forces Specified');
				showErrorMessage('def_fortress_error', 'No Defending Forces Specified');
				foundError = true;
			}
			else if ((def_bow + def_gun + def_sword + def_spear) > 5) {
				showErrorMessage('def_bow_error', 'Too Many Units in a Provincial force');
				showErrorMessage('def_gun_error', 'Too Many Units in a Provincial force');
				showErrorMessage('def_sword_error', 'Too Many Units in a Provincial force');
				showErrorMessage('def_spear_error', 'Too Many Units in a Provincial force');
				foundError = true;
			}
			if (def_ronin >= (def_bow + def_gun + def_sword + def_spear)) {
				showErrorMessage('def_spear_error', 'Too Many Ronin in force');
				foundError = true;
			}
		}

		if (foundError) {
			setDirty();
			return false;
		}

		alert('SSBR Validation Succeeded!');
		return true;
	}
