
		
		function mark_selected_custom(radioObj, id)
		{	
		
			var rowId = "module_item_data_"+id;
			ActiveClass = 'gender_bgcolor'
			if(!radioObj)
				return "";

			if (radioObj.checked) {
				$(rowId).addClassName(ActiveClass);
			}else{
				$(rowId).removeClassName(ActiveClass);
			}
			
		}
		
		
		//since there's no way to tell which radio is checked, we have to loop through all of them
		function getRadioCheckedValue(radioObj)
		{
			if(!radioObj)
				return "";
			var radioLength = radioObj.length;
			if(radioLength == undefined)
				if(radioObj.checked)
					return radioObj.value;
				else
					return "";
			for(var i = 0; i < radioLength; i++) {
				if(radioObj[i].checked) {
					return radioObj[i].value;
				}
			}
			return "";
		}
				
		function recalculatePriceForStandalonePackage(formId)
		{
			var myForm = document.getElementById("standalone_packages_"+formId);
			var AccessLengthDisplay = $('total_access_length_'+formId);
			var TotalSavingDisplay = $('total_saving_'+formId);
			var BilledMonthlyPoundsDisplay = $('monthly_pounds_'+formId);
			var BilledMonthlyPenceDisplay = $('monthly_pence_'+formId);
			
			var numberOfUsers = myForm.number_of_users.value;
			
			var myRadios = myForm.plan_id;
			var pricePlan = getRadioCheckedValue(myRadios);
			if(pricePlan)
			{
				var price = document.getElementById("package_price_"+pricePlan).value;
				
				
				var access_length = document.getElementById("package_length_input_"+pricePlan).value;
				var number_months_access = document.getElementById("package_length_int_"+pricePlan).value;
				
				
				//The multi-user calculation is not supposed to multiple each additional user by 100%.
				//These are the rules for calculating multiple users:
				//First user: 100% of the list price. (e.g. �500)
				//Second user: 50% of the list price. (e.g. �250)
				//3rd-10th user: 25% of the list price each (e.g. �125)
				
				var first_user = 0;
				var second_user = 0;
				var rest_users = 0;
				var saving = 0;
				
				if(numberOfUsers >= 1)
				{
					first_user = eval(price);
				}
				if(numberOfUsers >=2 )
				{
					second_user = eval(price)*0.5;
				}
				if(numberOfUsers >=3 )
				{
					rest_users = eval(price) * 0.25 * (numberOfUsers-2);
				}
				
				var MultiData = $('multi_user_data_'+formId);				
				
				if (MultiData.style.display == 'block') {
					if (numberOfUsers > 1) {
						Subscribe.MultiUserValues(formId, 0);
					}
					else {
						Subscribe.MultiUserValues(formId, 1);
					}
				}
					
				
				var totalPrice = first_user + second_user + rest_users;
				var fullaccessPackagesTotalCosts = document.getElementById("total_price_"+formId);
				var fullaccessMultiuserTotal = document.getElementById("total_multiuser_"+formId);
				totalPrice = totalPrice.toFixed(2);
				
				
				/* Saving Details */
				saving = ((price * numberOfUsers)- totalPrice).toFixed(2);
				monthly_billed = ((totalPrice/numberOfUsers)/number_months_access).toFixed(2);
				
				monthly_billed_array = monthly_billed.split(".");
				monthly_billed_pounds = monthly_billed_array[0];
				monthly_billed_pence = monthly_billed_array[1];
				/******************/
				
				fullaccessPackagesTotalCosts.innerHTML = totalPrice;
				fullaccessMultiuserTotal.innerHTML = numberOfUsers;
				AccessLengthDisplay.innerHTML = access_length;
				TotalSavingDisplay.innerHTML = saving;
				BilledMonthlyPoundsDisplay.innerHTML = monthly_billed_pounds;
				BilledMonthlyPenceDisplay.innerHTML = monthly_billed_pence;
				Subscribe.PackagePhotoHeightChange();
			}
		}
		
		
	var Subscribe = {};
	
	Subscribe.Settings = {
		
		PrefixId : {
			PackageSelected : 'package_access_item_',
			MultiUserLink : 'multi_link_',
			MultiUserInputContainer : 'multi_user_data_',
			MultiUserValueContainer : 'multi_user_data_extra_',
			MultiLength : 'multiuser_standalone_length'
		},		
		ModuleData : {
			PeriodText : 'module_access_length_',
			PoundText : 'module_monthly_billed_pounds_',
			PenceText : 'module_monthly_billed_pence_',
			PricePlan: 'feature_',
			ContractPriceText : 'contract_billed_price_'
		},
		CssClass : {
			MultiUserActive : 'multi_user_activated',
			MultiUserFullActive : 'multi_user_full_activated'
		}
		
	}

	/*Show Multi User Option*/
	Subscribe.MultiUserOption = function(AccessId){
		
		var Package = $(Subscribe.Settings.PrefixId.PackageSelected + AccessId);
		var Link = $(Subscribe.Settings.PrefixId.MultiUserLink + AccessId);
		var Data = $(Subscribe.Settings.PrefixId.MultiUserInputContainer + AccessId);
		
		if (Link && Data) {
		
			if (Data.style.display == 'none') {
				if (Package) {
					Package.addClassName(Subscribe.Settings.CssClass.MultiUserActive);
				}
				Link.style.display = 'none';
				Data.style.display = 'block';
			}
			else {
				if (Package) {
					Package.removeClassName(Subscribe.Settings.CssClass.MultiUserActive);
				}
				Link.style.display = 'block';
				Data.style.display = 'none';
			}
			Subscribe.PackagePhotoHeightChange();
		}
		
	}
	
	Subscribe.MultiUserValues = function(AccessId, Active){

		var Package = $(Subscribe.Settings.PrefixId.PackageSelected + AccessId);
		var DataExtra = $(Subscribe.Settings.PrefixId.MultiUserValueContainer + AccessId);
		
		if (DataExtra) {
		
			if (Active == 0) {
				if (Package) {
					Package.addClassName(Subscribe.Settings.CssClass.MultiUserFullActive);
					Package.removeClassName(Subscribe.Settings.CssClass.MultiUserActive);
				}
				if (DataExtra) {
					DataExtra.style.display = 'block';
				}
			}
			else {
				if (Package) {
					Package.removeClassName(Subscribe.Settings.CssClass.MultiUserFullActive);
					Package.addClassName(Subscribe.Settings.CssClass.MultiUserActive);
				}
				if (DataExtra) {
					DataExtra.style.display = 'none';
				}
			}
			
		}
		
	}
	
	/*Update Module Access Length and Prices*/
	Subscribe.ModuleDataUpdate = function(Period){	

		var PlanList = Subscribe.StandaloneSourcesWomen.concat(Subscribe.StandaloneSourcesMen);
		var MultiAccessLength = $(Subscribe.Settings.PrefixId.MultiLength);
		
		if(Period == 12){
			PeriodText = '1 year';
		}else{
			PeriodText = Period+' months';
		}
		
		MultiAccessLength.update(PeriodText);
		
		PlanList.each(function(Plan, iIndex) {
			var updateAccessLength = $(Subscribe.Settings.ModuleData.PeriodText+Plan['ModuleId']);
			var updateMonthlyPound = $(Subscribe.Settings.ModuleData.PoundText+Plan['ModuleId']);
			var updateMonthlyPence = $(Subscribe.Settings.ModuleData.PenceText+Plan['ModuleId']);
			var updateContractPrice = $(Subscribe.Settings.ModuleData.ContractPriceText+Plan['ModuleId']);
			
			var LengthValue = Plan['PlanLength'];
			var PoundValue = Plan['PlanPounds'];
			var PenceValue = Plan['PlanPence'];
			var ContractValue = Plan['PlanFullPrice'];
		
			if(Period == LengthValue){
				if(updateAccessLength){
					updateAccessLength.update(PeriodText);
				}
				if(updateMonthlyPound && updateMonthlyPence){
					updateMonthlyPound.update(PoundValue);
					updateMonthlyPence.update(PenceValue);
					updateContractPrice.update(ContractValue);
				}
			}
		});

	}
	
	Subscribe.SelectedOption = function(selected_item_id)
	{
		child_item = $(selected_item_id);
		parent_item = child_item.parentNode;

		selectedCssClas = 'gender_bgcolor';
		
		Element.childElements(parent_item).each(function(childElem) {
			item_id = childElem.getAttribute('id');
			if (item_id == selected_item_id) {
				childElem.addClassName(selectedCssClas);
			}else{
				childElem.removeClassName(selectedCssClas);
			}
		});
	}
	
	Subscribe.SelectedRadio = function(formId, itemId){
		var FormItem = $("standalone_packages_"+formId);
		RadioContainerId = "option_"+itemId;
		selectedCssClas = 'gender_bgcolor';
		
		FoundElements = FormItem.descendants();
		
		FoundElements.each(function(childElem){
			if (childElem.tagName.toLowerCase() == "dt") {
				item_id = childElem.getAttribute('id');
				if (item_id == RadioContainerId) {
					childElem.addClassName(selectedCssClas);
				}else{
					childElem.removeClassName(selectedCssClas);
				}
			}
			
		});
	}
	
	
	Subscribe.Height = function(ViewElement){
		return ViewElement.offsetHeight;
	}
	
	Subscribe.PackagePhotoHeightChange = function()
	{
		var PackageIdList = Subscribe.SourcesPackageId;
		
		PackageIdList.each(function(PackageId, iIndex) {
			var PackagePhotoHolderElement = $('package_access_photo_'+PackageId);
			var PackageDetailsHolderElement = $('package_access_subscribe_'+PackageId);
			
			if(PackageDetailsHolderElement){
				DetailsContentHeight = Subscribe.Height(PackageDetailsHolderElement);
				
				if (PackageDetailsHolderElement) {
					PackagePhotoHolderElement.style.height = DetailsContentHeight+'px';
				}
			}
			
		});

	}
	
	
	
	
	Subscribe.updateRenewSelection = function(row, selectedId) {
		parent_item = row.parentNode.parentNode;
		selectedCssClas = 'gender_bgcolor';
		
		Element.childElements(parent_item).each(function(childElem) {
			item_id = childElem.getAttribute('id');
			
			if (item_id == selectedId) {
				childElem.addClassName(selectedCssClas);
			}else{
				childElem.removeClassName(selectedCssClas);
			}
		});
	}
	
	Subscribe.getFeatures = function(mem_type_id, feature_id, gender)
	{
		
		advAJAX.post({
			url: '/',
			mode:'ajax',
			act:'packages',
			_type:'ajax',
			_fetch:'features',
			mem_type_id: mem_type_id,
			feature_id: feature_id,
			gender: gender,
			onLoading: function()   {Popup.Loader() },
			onSuccess: function(Obj){ Popup.AjaxShowContent(Obj.responseText, 'subscribe_packages_popupclass')
			}
		})
	}

	Subscribe.changeHeight = function(sElementName, sHeightClass) {
		var oElement = $(sElementName);
		
		oElement.addClassName(sHeightClass);
	}

	Subscribe.moreUsers = function(sSelected, iId) {
		if(sSelected == '10+') {
			$('more_users_' + iId).style.display = 'block';
			if($('buy_now_bt_' + iId)) {
				$('buy_now_bt_' + iId).style.display = 'none';	
			}
			if($('show_discount_btn_' + iId)) {
				$('show_discount_btn_' + iId).style.display = 'none';
			}
		} else {
			$('more_users_' + iId).style.display = 'none';
			if($('buy_now_bt_' + iId)) {
				$('buy_now_bt_' + iId).style.display = 'inline';
			}
			if($('show_discount_btn_' + iId)) {
				$('show_discount_btn_' + iId).style.display = 'inline';
			}
		}
		Subscribe.PackagePhotoHeightChange();
	}
	
	Subscribe.Lite = {};
	
	
	Subscribe.Lite.Switch = function(sSelectedId, sGender) {
		
		var LitePlansList = $('plans_list_lite').immediateDescendants('plans_list_lite');
		
		LitePlansList.each(function(Elem) {
			var LitePlanId = Elem.readAttribute('gender');
			var ElemImg = $('img_'+LitePlanId);
			var ElemPlans = $('plan_lite_'+LitePlanId);  
			
			ElemImg.style.display = (LitePlanId == sSelectedId) ? 'block' : 'none';
			ElemPlans.style.display = (LitePlanId == sSelectedId) ? 'block' : 'none';
		});
		
		var SelectedInput = Subscribe.Lite.PreSelect[sGender]['months_'+Subscribe.Lite.CurrentPeriod]['users_'+Subscribe.Lite.CurrentUsers];
		
		Subscribe.Lite.DescriptionSwitch(sGender);
		Subscribe.Lite.SelectedRadio(sGender, SelectedInput);
		Subscribe.Lite.SelectedStatus(Subscribe.Lite.CurrentPeriod,Subscribe.Lite.CurrentUsers);
	}
	
	Subscribe.Lite.DescriptionSwitch = function(sGender){
		var DescriptionListHolder = $('lite_summary_list');
	    if(DescriptionListHolder)
            DescriptionListHolder.className = 'summary_list_'+sGender;
	}
	
	Subscribe.Lite.PreSelect = {
		m : {
			months_6 : {
				users_1 : null,
				users_5 : null,
				users_10 : null
			},
			months_12 : {
				users_1 : null,
				users_5 : null,
				users_10 : null
			}
		},
		w : {
			months_6 : {
				users_1 : null,
				users_5 : null,
				users_10 : null
			},
			months_12 : {
				users_1 : null,
				users_5 : null,
				users_10 : null
			}
		},	
		u : {
			months_6 : {
				users_1 : null,
				users_5 : null,
				users_10 : null
			},
			months_12 : {
				users_1 : null,
				users_5 : null,
				users_10 : null
			}
		}
		
	};
	
	Subscribe.Lite.CurrentPeriod = 12;
	Subscribe.Lite.CurrentUsers = 1;
	
	Subscribe.Lite.SelectedStatus = function (selectedPeriod, selectedUsers){
		Subscribe.Lite.CurrentPeriod = selectedPeriod;
		Subscribe.Lite.CurrentUsers = selectedUsers;
	}
	
	
	Subscribe.Lite.SelectedRadio = function(sGender, itemId){ 
		selectedCssClas = 'gender_bgcolor';
		
		var genderList = Subscribe.Lite.PreSelect[sGender];
		
		for(genderPediod in genderList){
			var dtList = genderList[genderPediod];
			
			for(dtItem in dtList){
				var dtId = dtList[dtItem];
				var dtStringId = "option_"+dtId;
				var dtElement = $(dtStringId);
				
				if (dtId == itemId) {
					if (dtElement) {
						dtElement.addClassName(selectedCssClas);
						$('input_id_' + itemId).checked = true;
					}
				}else{
					if (dtElement) dtElement.removeClassName(selectedCssClas);
				}
			}
			
		}
		
	}
		
	