/* ======================================================================== */
/* Name:			Payment.js												*/
/* Author:			Derrick Went											*/
/* Date:			31 July 2006											*/
/* Client:			SpecHead    											*/
/* Description:		Functions for validating payment details				*/
/* ======================================================================== */

function CheckExpiryDate( )
{
	var EM;
	var EY;
	var Today;
	var MM;
	var YYYY;
	Today = new Date();
	MM = Today.getMonth() + 1;
	YYYY = Today.getFullYear();
	EM = document.form1.EndMonth.value;
	EY = '20' + document.form1.EndYear.value;
	if (EY < YYYY)
	{
		objMessage = document.getElementById( 'PaymentCardErrorMessage' );
		objMessage.innerHTML = '** Expiry Year is invalid';
		alert('Expiry Year is invalid');
		document.form1.EndYear.focus;
		return false;
	}
	else
	{
		if (EY == YYYY)
		{
			// look at Month
			if (EM < MM)
			{
				objMessage = document.getElementById( 'PaymentCardErrorMessage' );
				objMessage.innerHTML = '** Expiry Month is invalid';
				alert('Expiry month is invalid');
				document.form1.EndMonth.focus;
				return false;
			}
			else
			{
				return true;
			}
		}
		else
		{
			return true;
		}
	}		
}
function ValidateCardDetailsAndGoToNext(NextPage)
{
	var objField;	
	var emf;
	emf = 'PaymentCardErrorMessage';

	if (CheckMandatoryField(document.form1.CardNumber1, 'Card Number', emf))
		if (CheckMandatoryField(document.form1.CardNumber2, 'Card Number', emf))
			if (CheckMandatoryField(document.form1.CardNumber3, 'Card Number', emf))
				if (CheckMandatoryField(document.form1.CardNumber4, 'Card Number', emf))
					if (CheckMandatoryField(document.form1.NameOnCard, 'Name On Card', emf))
						if (CheckMandatoryField(document.form1.SecurityCode, 'Security Code', emf))
							if (CheckMandatoryField(document.form1.TotalAmount, 'Total Amount', emf))
								if (CheckExpiryDate())
								{
									objField = document.getElementById('CardTypeName');
									switch (objField.value)
									{
										case "maestro":
											if (CheckMandatoryField(document.form1.CardNumber5, 'Card Number', emf))
												if (CheckMandatoryField(document.form1.IssueNumber, 'Issue Number', emf))
												{
													document.form1.action = NextPage;
													document.form1.submit();
												}
											break;
										case "solo":
											if (CheckMandatoryField(document.form1.CardNumber5, 'Card Number', emf))
												if (CheckMandatoryField(document.form1.IssueNumber, 'Issue Number', emf))
												{
													document.form1.action = NextPage;
													document.form1.submit();
												}
											break;
										case "switch":
											if (CheckMandatoryField(document.form1.CardNumber5, 'Card Number', emf))
												if (CheckMandatoryField(document.form1.IssueNumber, 'Issue Number', emf))
												{
													document.form1.action = NextPage;
													document.form1.submit();
												}
											break;
										default:
											document.form1.action = NextPage;
											document.form1.submit();
											break;
									}
								}
}
function ValidateCustomerDetailsAndGoToNext(NextPage)
{
	// validate the input fields here
	var objField;	
	var emf;
	emf = 'PaymentCustomerErrorMessage';
		
	// Validate Customer Details...
	if (CheckMandatoryField(document.form1.CFirstName, 'First Name', emf))
		if (CheckMandatoryField(document.form1.CLastName, 'Last Name', emf))
			if (CheckMandatoryField(document.form1.CLine1, 'First line of address', emf))
				if (CheckMandatoryField(document.form1.CTown, 'Town', emf))
					if (CheckMandatoryField(document.form1.CPostcode, 'Postcode', emf))
						if (CheckMandatoryField(document.form1.Telephone, 'Telephone', emf))
							if (CheckEmailField(document.form1.Email, 'Email address', emf))
							{							
							    if (document.form1.CBSame.checked == false)
								{
							        document.form1.DSame.value = 'No';
									if (CheckMandatoryField(document.form1.DLine1, 'First line of delivery address', emf))
										if (CheckMandatoryField(document.form1.DTown, 'Delivery Town', emf))
											if (CheckMandatoryField(document.form1.DPostcode, 'Delivery Postcode', emf))
											{
												document.form1.action = NextPage;
												document.form1.submit();
											}
								}
								else
								{
							        document.form1.DSame.value = 'Yes';
									document.form1.action = NextPage;
									document.form1.submit();
								}
							}

}
function CardTypeClicked( objEvent )
{
    var objInput;	// The field being clicked
    var objCheckbox;
	var objTextField1;
	var objTextField2;
	var objTextField3;
    if ( !objEvent )
        objEvent = event;
    objInput = objEvent.target || objEvent.srcElement;
	switch (objInput.name)
	{
		case "CardTypeName":
			objTextField1 = document.getElementById('CardNumber5');
			objTextField2 = document.getElementById('StartDateLine');
			objTextField3 = document.getElementById('IssueNumberLine');
			switch (objInput.value)
			{
				case "maestro":
					objTextField1.style.display = 'inline'; 
					objTextField2.style.display = 'block'; 
					objTextField3.style.display = 'block'; 
					break;
				case "solo":
					objTextField1.style.display = 'inline'; 
					objTextField2.style.display = 'none'; 
					objTextField3.style.display = 'block'; 
					break;
				case "switch":
					objTextField1.style.display = 'inline'; 
					objTextField2.style.display = 'block'; 
					objTextField3.style.display = 'block'; 
					break;
				default:
					objTextField1.style.display = 'none'; 	
					objTextField2.style.display = 'none'; 
					objTextField3.style.display = 'none'; 
					break;
			}
			break;
	}
    return true;
}