	function checkB2BRLeader(nation, leader) {
		return (((leader == "Aelle") && (nation != "Saxon")) ||
				((leader == "Alfred") && (nation != "Saxon")) ||
				((leader == "Arthur") && (nation != "Romano-British")) ||
				((leader == "Boudicca") && (nation != "Belgae")) ||
				((leader == "Cnut") && (nation != "Dane")) ||
				((leader == "Edgar") && (nation != "Saxon")) ||
				((leader == "Egbert") && (nation != "Saxon")) ||
				((leader == "Fergus Mor Mac Erc") && (nation != "Scot")) ||
				((leader == "Harald Hardrada") && (nation != "Norwegian")) ||
				((leader == "Harold") && (nation != "Saxon")) ||
				((leader == "Ida") && (nation != "Angle")) ||
				((leader == "Ivar and Halfdan") && (nation != "Dane")) ||
				((leader == "Ketil") && (nation != "Norsemen")) ||
				((leader == "Offa") && (nation != "Angle")) ||
				((leader == "Olaf Guthfrithsson") && (nation != "Dubliner")) ||
				((leader == "Oswiu") && (nation != "Angle")) ||
				((leader == "Svein Estrithson") && (nation != "Dane")) ||
				((leader == "Urien") && (nation != "Brigante")) ||
				((leader == "William") && (nation != "Norman"))) ? false : true;
	}

	function validateB2BRRequest(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 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;
			}
		}
		if (document.getElementById('atk_nation').selectedIndex == document.getElementById('def_nation').selectedIndex) {
			showErrorMessage('atk_nation_error', 'Same Nation as Defending Nation.');
			showErrorMessage('def_nation_error', 'Same Nation as Attacking Nation.');
			foundError = true;
		}
		if (document.getElementById('atk_leader').selectedIndex > 0) {
			var eNation = document.getElementById('atk_nation');
			var atk_nation = eNation.options[eNation.selectedIndex].text;
			var eLeader = document.getElementById('atk_leader');
			var atk_leader = eLeader.options[eLeader.selectedIndex].text;

			if (atk_leader == "------") {
				showErrorMessage('atk_leader_error', "Invalid Leader Selection");
				foundError = true;
			}
			else if (! checkB2BRLeader(atk_nation, atk_leader)) {
				showErrorMessage('atk_leader_error', "The Selected Leader does not Lead the Selected Nation");
				foundError = true;
			}
		}
		if (document.getElementById('def_leader').selectedIndex > 0) {
			var eNation = document.getElementById('def_nation');
			var def_nation = eNation.options[eNation.selectedIndex].text;
			var eLeader = document.getElementById('def_leader');
			var def_leader = eLeader.options[eLeader.selectedIndex].text;

			if (def_leader == "------") {
				showErrorMessage('def_leader_error', "Invalid Leader Selection");
				foundError = true;
			}
			else if (! checkB2BRLeader(def_nation, def_leader)) {
				showErrorMessage('def_leader_error', "The Selected Leader does not Lead the Selected Nation");
				foundError = true;
			}
		}
		if (! isValidNumber('atk_arm')) {
			showErrorMessage('atk_arm_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		if (! isValidNumber('atk_cav')) {
			showErrorMessage('atk_cav_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		if (! isValidNumber('def_arm')) {
			showErrorMessage('def_arm_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		if (! isValidNumber('def_cav')) {
			showErrorMessage('def_cav_error', 'Invalid or Missing Entry');
			foundError = true;
		}
		if (isValidNumber('atk_arm') && isValidNumber('atk_cav')) {
			var atk_arm = parseInt(document.getElementById('atk_arm').value);
			var atk_cav = parseInt(document.getElementById('atk_cav').value);
			if ((atk_arm + atk_cav) == 0) {
				showErrorMessage('atk_arm_error', 'No Attacking Forces Specified');
				showErrorMessage('atk_cav_error', 'No Attacking Forces Specified');
				foundError = true;
			}
		}
		if (isValidNumber('def_arm') && isValidNumber('def_cav')) {
			var def_arm = parseInt(document.getElementById('def_arm').value);
			var def_cav = parseInt(document.getElementById('def_cav').value);
			var def_fort = document.getElementById('def_fort').checked ? 1 : 0;
			if ((def_arm + def_cav + def_fort) == 0) {
				showErrorMessage('def_arm_error', 'No Defending Forces Specified');
				showErrorMessage('def_cav_error', 'No Defending Forces Specified');
				showErrorMessage('def_fort_error', 'No Defending Forces Specified');
				foundError = true;
			}
		}
		if (document.getElementById('def_fort').checked) {
			var eNation = document.getElementById('def_nation');
			if (eNation != null) {
				var def_nation = eNation.options[eNation.selectedIndex].text;
				if ((def_nation != 'Roman') && (def_nation != 'Saxon')) {
					showErrorMessage('def_fort_error', 'Forts/Burhs not allowed for non-Roman or non-Saxon defenders');
					foundError = true;
				}
			}
			else {
				alert("Couldn't find def_nation");
				foundError = true;
			}
		}

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

		//alert('B2BR Validation Succeeded!');
		return true;
	}
