var objSubscribe = {
	init: function() {},
	
	shippingAddress: function(value){
		/*
		 * If user has indicated that they would like to use their registered address
		 * as their delivery address, hide/do not show shipping address form
		 */
		if(value == 1)
		{
			document.getElementById('shippingAddressForm').style.display = 'none';
		}
		/*
		 * Otherwise make shipping address form visible
		 */
		else
		{
			document.getElementById('shippingAddressForm').style.display = '';
		}
		
		if(document.getElementById('CreditCard'))
		{
			document.getElementById('CreditCard').disabled = false;
			document.getElementById('Invoice').disabled = false;
		}
	},
	
	/*
	 * This function is only used in admin when a subscription is being set up on a
	 * customer's behalf. If user has chosen the package option (i.e. including the book),
	 * display the shipping address question.
	 */
	chooseSub: function(value){
		/*
		 * If user has indicated that they would like to use their registered address
		 * as their delivery address, hide/do not show shipping address form
		 */
		if(value == 6 || value == 7)
		{
			document.getElementById('shippingAddressQuestion').style.display = '';
			
			//If user has selected the Book Only product, hide the subscription status box
			if(value == 6)
			{
				document.getElementById('subStatus').style.display = 'none';
				document.getElementById('bookQuantityBox').style.display = '';
			}
			else
			{
				document.getElementById('subStatus').style.display = '';
				document.getElementById('bookQuantityBox').style.display = 'none';
			}
		}
		/*
		 * Otherwise make shipping address form visible
		 */
		else
		{
			document.getElementById('shippingAddressQuestion').style.display = 'none';
			document.getElementById('shippingAddressForm').style.display = 'none';
			document.getElementById('subStatus').style.display = '';
			document.getElementById('bookQuantityBox').style.display = 'none';
		}
	},
	
	/*
	 * This function is only used in admin when a subscription is being upgraded/adjusted. 
	 * If user is being upgraded to full package, then show form boxes for campaign Code, 
	 * EuVat number and payment method. Otherwise, if they are simply swapping from Supplier's
	 * subscription to manufacturer's subscription (or vice-versa), hide the boxes as they are
	 * not relevant 
	 */
	chooseUpgrade: function(value){
		/*
		 * Full upgrade option has Product ID of 8
		 */
		if(value == 8)
		{
			document.getElementById('campaignCodeRow').style.display = '';
			document.getElementById('VatNumberRow').style.display = '';
			document.getElementById('paymentMethodRow').style.display = '';
			document.getElementById('purchaseOrderNumberRow').style.display = '';
		}
		else
		{
			document.getElementById('campaignCodeRow').style.display = 'none';
			document.getElementById('VatNumberRow').style.display = 'none';
			document.getElementById('paymentMethodRow').style.display = 'none';
			document.getElementById('purchaseOrderNumberRow').style.display = 'none';
		}
	},
	
	showInfo: function(ID){
		var currentStatus = document.getElementById('moreInfo'+ ID).style.display;
		
		if(currentStatus == 'none')
		{
			document.getElementById('moreInfo'+ ID).style.display = '';
		}
		else
		{
			document.getElementById('moreInfo'+ ID).style.display = 'none';
		}
	},
	
	//Function to hide or display all renewal packages available
	showAllRenewals: function(){
		var currentStatus = document.getElementById('showAllRenewals').checked;
		
		if(currentStatus == true)
		{
			document.getElementById('otherRenewals').style.display = '';
		}
		else
		{
			document.getElementById('otherRenewals').style.display = 'none';
		}
	},
	
	checkShipping: function (formID, productID, countryID, needVATNumber)
	{
		if(productID == 6 || productID == 7)
		{
			if(document.getElementById('useDetailAddress_yes').checked == false && document.getElementById('useDetailAddress_no').checked == false)
			{
				alert("Please choose what shipping address you would like to use for delivery of your Book");
			}
			else
			{
				objSubscribe.validate(formID, productID, countryID, needVATNumber);
				return false;
			}
		}
		else
		{
			objSubscribe.validate(formID, productID, countryID, needVATNumber);
			return false;
		}
	},
	
	// Validate the shipping address form when applicable
	validate: function(formID, productID, countryID, needVATNumber){
		
		var success = true;
		var message = '';
		
		//alert(formID);
		//alert(productID);
		//alert(countryID);
		//alert(needVATNumber);
		
		//If a product which includes a copy of the Rd book has been chosen
		if(productID == 6 || productID == 7)
		{		
			/*
			 * If user has indicated that a different address to their registered address will 
			 * be used for shipping, we need to validate
			*/ 
			if(document.getElementById('useDetailAddress_no').checked == true)
			{
				var message = message + 'We need the following shipping information before you can continue: \n';
											
				if ( document.getElementById('address1').value == '' ) {
					success = false;
					message = message + ' - Please enter the address.\n';
				}
				if ( document.getElementById('town').value == '' ) {
					success = false;
					message = message + ' - Please enter the town.\n';
				}
				if ( document.getElementById('postcode').value == '' ) 
				{
					success = false;
					message = message + ' - Please enter the postcode.\n';
				}
				if (document.getElementById('country_id').options.selectedIndex == "")
				{
					success = false;
					message = message + ' - Please choose the country of your address.\n';
				}
			}
		}
		
		//If user needs to enter a VAT number in order to avoid paying VAT on their order
		if(needVATNumber == "true" && countryID !=1)
		{
			var vatNumber = document.getElementById('euVATNumber').value;
			
			if(vatNumber == "")
			{
				if(confirm('We have detected that you live in an EU member country. If you are registered for VAT purposes you must enter it into the box provided to avoid paying VAT on your order.\nDo you wish to continue regardless?'))
				{
				}
				else
				{
					message = message + 'Please enter your VAT number before trying to continue';
					success = false;
				}
			}
		}
		
		//Validated successfully
		if (success)
		{
			//document.frmShippingAddress.submit();
			document.getElementById(formID).submit();
		} 
		else 
		{
			alert(message);
		}
	},
	
	validateFinalStep: function(){
		if(document.getElementById('confirm1').checked == false)
		{
			alert("You must read and accept our Terms and Conditions\n(by ticking the checkbox provided) before continuing");
		}
		else
		{
			document.frmConfirm.submit();
		}
	},
	
	validateUpgrade: function (formID) {
		var success = true;
		var message = '';
		
		var subscription = document.getElementById('SubscriptionTypeID').selectedIndex;
		var paymentMethod = document.getElementById('paymentMethodID').selectedIndex;
		//alert(subscription);
		//alert(paymentMethod);
		
		if(subscription == 0)
		{
			success = false;
			message = message + 'You must select a subscription to upgrade the user to from the drop down menu.\n'
		}
		
		if(subscription == 2 && paymentMethod == 0)
		{
			success= false;
			message = message + 'You just choose a payment method for this upgrade';
		}
		
		//Validated successfully
		if (success)
		{
			document.getElementById(formID).submit();
			//alert("success");
		} 
		else 
		{
			alert(message);
		}
	},
	
	//Function to validate whether user has selected a product on the first subscription page
	validatePackage: function() {
		var packages = document.frmPackages.productid;
		var packageSelected = false;
		
		for (i=0; i < packages.length; i++)
		{
 			if (packages[i].checked == true)
 			{
 				//alert(packages[i].id + ' is selected ');	
 				packageSelected = true;
 			}
  			
		}
		
		if(packageSelected)
		{
			document.frmPackages.submit();
		}
		else
		{
			alert("Please select a product before continuing");
		}
		
	},
	
	// Validate the shipping address form when applicable
	validateAdminRenewal: function(formID, productID, countryID, needVATNumber, paymentMethodID, subscriptionStatusID, actionType){
		
		var success = true;
		var message = '';
		
		//alert(formID);
		//alert(productID);
		//alert(countryID);
		//alert(needVATNumber);
		
		
		//Check that a Product has been chosen for the renewal
		if(productID == 0)
		{
			success = false;
			message = message + 'Please choose a Subscription Type for this subscription.\n';
		}
		
		
		if(paymentMethodID == "0")
		{
			success = false;
			message = message + 'Please choose a Payment Method for this subscription.\n';
		}
		
		if(productID != 6 && subscriptionStatusID == "0")
		{
			success = false;
			message = message + 'Please choose a Subscription Status for this subscription.\n';
		}
		
		//If a product which includes a copy of the Rd book has been chosen
		if(productID == 6 || productID == 7)
		{		
			
			/**
			 * If a product which includes the book has been chosen and user has not indicated whether
			 * what shipping address to use, throw an error
			**/
			if(document.getElementById('useDetailAddress_no').checked == false && document.getElementById('useDetailAddress_yes').checked == false)
			{
				success = false;
				message = message + 'Please indicate what shipping address to use for this subscription.\n';
			}
			
			/*
			 * If user has indicated that a different address to their registered address will 
			 * be used for shipping, we need to validate
			*/ 
			if(document.getElementById('useDetailAddress_no').checked == true)
			{										
				if ( document.getElementById('address1').value == '' ) {
					success = false;
					message = message + ' - Please enter the shipping address.\n';
				}
				if ( document.getElementById('town').value == '' ) {
					success = false;
					message = message + ' - Please enter the shipping town.\n';
				}
				if ( document.getElementById('postcode').value == '' ) 
				{
					success = false;
					message = message + ' - Please enter the shipping postcode.\n';
				}
				if (document.getElementById('country_id').options.selectedIndex == "")
				{
					success = false;
					message = message + ' - Please choose the country of your shipping address.\n';
				}
			}
		}
		
		//If user needs to enter a VAT number in order to avoid paying VAT on their order
		if(needVATNumber == "true" && countryID !=1)
		{
			var vatNumber = document.getElementById('euVATNumber').value;
			
			if(vatNumber == "")
			{
				if(confirm('We have detected that you live in an EU member country. If you are registered for VAT purposes you must enter it into the box provided to avoid paying VAT on your order.\nDo you wish to continue regardless?'))
				{
				}
				else
				{
					message = message + 'Please enter your VAT number before trying to continue';
					success = false;
				}
			}
		}
		
		//Validated successfully
		if (success)
		{
			//document.frmShippingAddress.submit();
			document.getElementById(formID).submit();
		} 
		else 
		{
			alert(message);
		}
	},
	
	showEndDate: function() {
		if(document.getElementById('importUser').checked == true)
		{
			document.getElementById('subEndDate').style.display = '';
		}
		else
		{
			document.getElementById('subEndDate').style.display = 'none';
		}
	}

}

addLoadEvent(objSubscribe.init);