var isMS = false;

function ModifyForm()
{
	document.getElementById("BalanceTransferFee").value = "1";

	// Identify selected radio button.
	var selectedId;
	for (i = 1; i <= document.getElementsByName('FId').length; i++)
	{
		if (document.getElementsByName('FId')[i-1].checked)
		{
			selectedId = document.getElementsByName('FId')[i-1].id;
			break;
		}
	}
		
	// Set properties for radio button selection.
	switch (selectedId)
	{
		case "F1": // All Balance transfer and purchase cards
			document.getElementsByName("Feature")[0].value = "BalanceAndIntro";
			document.getElementsByName("Adverse")[0].value = "No";
			break;
		case "F3": //Lowest std rate
			document.getElementsByName("Feature")[0].value = "StandardNew";
			document.getElementsByName("Adverse")[0].value = "No";
			break;
		case "F4": //Abroad
			document.getElementsByName("Feature")[0].value = "usingabroad";
			document.getElementsByName("Adverse")[0].value = "No";
			break;
		case "F5": //Intro for purchases
			document.getElementsByName("Feature")[0].value = "SpecialNew";
			document.getElementsByName("Adverse")[0].value = "No";
			break;
		case "F6": //Design
			document.getElementsByName("Feature")[0].value = "design";
			document.getElementsByName("Adverse")[0].value = "No";
			break;
		case "F7": //Cashback
			document.getElementsByName("Feature")[0].value = "CashbackNew";
			document.getElementsByName("Adverse")[0].value = "No";
			break;
		case "F8": //Other
			switch(document.getElementsByName("OtherFeature")[0].value)
			{
				case "":
					alert("Please select a feature from the 'Other types of credit card' list");
					return false;
					break;
				case "sports":
					document.getElementsByName("Feature")[0].value = "sports";
					document.getElementsByName("Adverse")[0].value = "No";	
					break;
				case "Save":
					document.getElementById("CardsForm").action = "CardChooseCard.asp";
					break;
				case "adverse":
					document.getElementsByName("Feature")[0].value = "Adverse";
					document.getElementsByName("Adverse")[0].value = "Yes";
					break;
				case "loyalty":
					document.getElementsByName("Feature")[0].value = "loyalty";
					document.getElementsByName("Adverse")[0].value = "No";			
					break;		
				default:
					document.getElementsByName("Feature")[0].value = document.getElementById("OtherFeature").value;
					document.getElementsByName("Adverse")[0].value = "No";
					if (document.getElementById("OtherFeature").value == "alphabetically")
					{
						document.getElementById("CardTypeOL").checked = false;
					}
					break;
			}
			break;
		case "F9": //Adverse
			document.getElementsByName("Feature")[0].value = "StandardNew";
			document.getElementsByName("Adverse")[0].value = "Yes";
			break;
		case "F10": //By brand
			if (document.getElementsByName("BrandID")[0].value == '') {
				alert("Please select a brand from the list");
				return false;
			} else {
				document.getElementsByName("Feature")[0].value = "brand";
				document.getElementsByName("Adverse")[0].value = "No";
			}
			document.getElementById("CardTypeOL").checked = false;
			break;
		case "F11": // All balance transfer cards.
			document.getElementsByName("Feature")[0].value = "StandardTrans";
			document.getElementsByName("Adverse")[0].value = "No";
			break;
		case "F12": // Lifetime balance transfer.
			document.getElementsByName("Feature")[0].value = "lifeofbalance";
			break;
		case "F13": // Pre-paid Cards.
			document.getElementsByName("Feature")[0].value = "PrePaid";
			document.getElementsByName("Adverse")[0].value = "No";
			break;
		case "F14": //no fee 0% balance transfer
			document.getElementsByName("Feature")[0].value = "StandardTrans";
			document.getElementsByName("Adverse")[0].value = "No";
			document.getElementById("BalanceTransferFee").value = "0";
			break;
	}

	if (document.getElementById("CardTypeCC").checked == true) {
		if (document.getElementById("CardTypeGP").checked == true) {
			document.getElementsByName("CardType")[0].value = "credit card";
		} else {
			document.getElementsByName("CardType")[0].value = "notgoldplatinum";
		}
	} else {
		if (document.getElementById("CardTypeGP").checked == true) {
			document.getElementsByName("CardType")[0].value = "goldplatinum";
		} else {
			if (i != 1)
				alert("Please select if you wish to show Credit Cards and/or Gold & Platinum cards");
				return false;
		}
	}
	return true;
}




function validateDDL(Id, NotSelectedValue, Msg)
{
	if (document.getElementById(Id).value == NotSelectedValue)
	{
		alert(Msg);
		document.getElementById(Id).focus();
		return false;
	}
	return true;
}

//validate answers to smart search questions
function checkSpecific()
{
	// Check if SmartSearch is available.
	if (document.getElementById("SmartSearch"))
	{
		// Search type.
		if (!document.getElementById("SmartSearch").checked &&  !document.getElementById("StandardSearch").checked)
		{
			alert("Please select the type of search you require");
			return false;
		}

		// SmartSearch questions.
		if (document.getElementById("SmartSearch").checked)
		{
	
			// Date of birth.
			if (!isFieldValidAndFocus(document.CardsForm.C1DoBDate, 'Day', false, 'Date of birth (day)'))
				return false;
			if (!isFieldValidAndFocus(document.CardsForm.C1DoBMonth, 'Month', false, 'Date of birth (month)'))
				return false;
			if (!isFieldValidAndFocus(document.CardsForm.C1DoBYear, 'Year', false, 'Date of birth (year)'))
				return false;
		
			var currentTime = new Date();
			var entDay = document.getElementById("C1DoBDate").value;
			var entMonth = document.getElementById("C1DoBMonth").value;
			var entYear = document.getElementById("C1DoBYear").value;
			if(entYear > currentTime.getFullYear() ||
				(entYear == currentTime.getFullYear() &&
				entMonth >= (currentTime.getMonth() + 1) &&
				entDay > currentTime.getDate()))
			{
				alert("Date of birth cannot be in the future");
				document.getElementById("C1DoBYear").focus();
				document.getElementById("C1DoBYear").select();
				return false;
			}

			// Residential status.
			if (!validateDDL("C9", "", "Please select your current residential status"))
				return false;
				
			// Postcode.
			if (!isFieldValidAndFocus(document.CardsForm.C1, 'Postcode', false, 'Postcode'))
				return false;
	
			// Current address.
			if (!validateDDL("C2", "", "Please select how many years have you lived at your current address"))
				return false;
	
			// CCJ/Bankruptcy.
			if (!validateDDL("C3", "", "Please select if you have ever had a CCJ or bankruptcy"))
				return false;
	
			// Default.
			if (!validateDDL("C4", "", "Please select if you have ever defaulted on a credit account"))
				return false;
	
			// Credit account.
			if (!validateDDL("C5", "", "Please select if you have ever missed a payment on a credit account"))
				return false;
	
			// Credit applications.
			if (!validateDDL("C6", "", "Please select how many credit accounts have you applied for in the past 6 months"))
				return false;
	
			// Credit accounts.
			if (!isFieldValidAndFocus(document.CardsForm.C7a, 'Integer', false, 'Number of personal loans'))
				return false;
			if (!isFieldValidAndFocus(document.CardsForm.C7b, 'Integer', false, 'Number of overdrafts'))
				return false;
			if (!isFieldValidAndFocus(document.CardsForm.C7c, 'Integer', false, 'Number of credit/store cards'))
				return false;
	
			// Employment status.
			if (!validateDDL("C10", "", "Please select your current employment status"))
				return false;
	
			// Current account duration.
			if (!validateDDL("C11", "", "Please select how long you have held your main current account for"))
				return false;

			// Current account provider.
			if (!validateDDL("C12", "", "Select which provider your main current account is with"))
				return false;

			// Email.
			if (!isFieldValidAndFocus(document.CardsForm.Email, 'Email', true,  'Email address'))
				return false;
				
            // Telephone if it is displayed it must be compulsary.
            //***********************************
            // Count the number of spaces in the telephone number

            if  (document.CardsForm.TelephoneNo)
            {   
                intPhoneChar = 0
                intPhoneLength = 0
                while (intPhoneChar < document.CardsForm.TelephoneNo.value.length) 
                {   if (document.CardsForm.TelephoneNo.value.charAt(intPhoneChar) == " ") intPhoneLength++;
	                intPhoneChar++;
                }
                intPhoneLength = document.CardsForm.TelephoneNo.value.length - intPhoneLength;
            	
                // Check if the Telephone number is the correct length & only contains digits
                if (intPhoneLength >= 11)
                {   if (!isFieldValidAndFocus(document.CardsForm.TelephoneNo, 'Numeric', false, 'Telephone number'))
	                {   return false;
	                }
                } 
                else 
                {   alert("Please enter your full Telephone number including the STD code");
	                document.CardsForm.TelephoneNo.focus();
	                return false;
                }
            }            
		}
	}

	// No validation errors or SmartSearch wasn't available.
	return true;
}

//-------------------------------------------------------------------------------------	
function formValidate()
{
	return ( (ModifyForm() && checkSpecific()) );
}