var flag = 0;
var Membership = {
	
	"start": function (event) {
	
	    if($('already_logged_in') != null)
        {
            if(confirm("You cannot buy a gift membership while logged in. By continuing, you will be logged out of the system. Are you sure you want to continue?"))
            {
                window.location = '/member/logout.php?redirect_to=/page/Membership/Become_A_Member';
            }
            else
            {
                window.location = '/index.php';
            }
            return false;
        }
        
        if($('single') != null)
			$('single').addEvent('click', Membership.JoinTypeCheck);
		
		if($('joint') != null)
			$('joint').addEvent('click', Membership.JoinTypeCheck);
		
		if($('join') != null)
			$('join').addEvent('submit', Membership.FormSubmit);
		
		if($('update_detail') != null)
			$('update_detail').addEvent('submit', Membership.FormSubmit);
		
		if($('preferences') != null)
			$('preferences').addEvent('submit', Membership.FormSubmit);
		
		if($('donation') != null)
			$('donation').addEvent('submit', Membership.FormSubmit);

		if($('interest') != null)
		{
			$('backBtn').addEvent('click', function(){
				window.location.href = "/page/Membership/Become_A_Member";
			});
			$('interest').addEvent('submit', Membership.FormSubmit);
		}
		
		if($('order') != null)
			$('order').addEvent('submit', Membership.FormSubmit);
		
		if($('renew') != null)
			$('renew').addEvent('submit', Membership.FormSubmit);
		
		//if($('pretypepassword') != null)
			//$('pretypepassword').addEvent('blur', Membership.SkipToAddress);
		
		if($('pcellphone') != null && $('renew') != null)
			$('pcellphone').addEvent('blur', Membership.SkipToAddress);
		
		if($('phomecountry') != null)
			$('phomecountry').addEvent('change', Membership.GetTelephoneCode);

		if($('login_info') != null)
			$('username').focus();
		
		if($('forgot_password_info') != null)
			$('membership_no').focus();
		
		if($('pprivacy') != null)
		{
			Membership.TopicCodeProcess();
			$('pprivacy').addEvent('click', Membership.TopicCodeProcess);
		}
		
		if($('member-login-btn') != null)
			$('member-login-btn').addEvent('click', function(){
				$('member-username').focus();
			});
		
		
		if($('grapevinecredit_info') != null)
		{
			$('pgrapevinecredit').disabled = true;
			//$('pgrapevinecredit').select();
			$('pgrapevinecredit').addEvent('blur', Membership.CalculateBalance);
			$('usegrapevinecredit').addEvent('change', Membership.PrepareFields);
		}
		
		
		if($('membership_type') != null)
		{
			$('membershipcost').value = products[$('membership_type').value][1];
			$('gifted_by').value = "None";
			$('gifted_by').disabled = true;
			$('membership_type').addEvent('change', Membership.CalculateMembershipCost);
		}
		
	},
	
	
	"PrepareFields":function()
	{
		var zero = 0;
		if($('usegrapevinecredit').value == "Yes")
		{
			$('pgrapevinecredit').disabled = false;
			$('pgrapevinecredit').select();
		}
		else
		{
			paymentSlide.slideIn();
			$('pgrapevinecredit').disabled = true;
			$('pgrapevinecredit').value = zero.toFixed(2);
			$('availablebalance').value = $('actualbalance').value;
			$('membershipcost').value = products[$('membership_type').value][1];
		}
		
	},
	 
	
	"CalculateMembershipCost": function()
	{
		var zero = 0;
		var cost = parseFloat(products[$('membership_type').value][1]);

		if($('availablebalance') != null)
			cost -= $('pgrapevinecredit').value;
		
		$('membershipcost').value = cost.toFixed(2);
		if(cost > 0)
		{
			paymentSlide.slideIn();
		}
		else
		{
			$('pgrapevinecredit').value = zero.toFixed(2);
			$('availablebalance').value = parseFloat($('actualbalance').value).toFixed(2);
			$('membershipcost').value = parseFloat(products[$('membership_type').value][1]).toFixed(2);
		}
		
		// handle gift processing
		$('gifted_by').value = "None";
		$('gifted_by').disabled = true;
		
		var product_name = products[$('membership_type').value][0]; 
		if(product_name.test("Gift|gift") == true)
		{
			$('gifted_by').value = "";
			$('gifted_by').disabled = false;
		}
	},
	
	
	"CalculateBalance": function(event)
	{
		var errFlag = 0;
		
		var zero = 0;
		var actual_balance = parseFloat($('actualbalance').value);
		var available_balance = parseFloat($('availablebalance').value);
		$('pgrapevinecredit').value = $('pgrapevinecredit').value.replace("-","");
		var credit = parseFloat($('pgrapevinecredit').value.replace("-",""));
		var membership_cost = parseFloat(products[$('membership_type').value][1]);
		
		if(isNaN(credit))
		{
			alert("Please enter a valid number");
			$('pgrapevinecredit').value = zero.toFixed(2);
			$('availablebalance').value = actual_balance.toFixed(2);
			$('membershipcost').value = membership_cost.toFixed(2);
			errFlag = 1;
		}
		
		if(!errFlag && (credit > actual_balance))
		{
			alert("You do not have enough credit");
			$('pgrapevinecredit').value = zero.toFixed(2);
			$('availablebalance').value = actual_balance.toFixed(2);
			$('membershipcost').value = membership_cost.toFixed(2);
			errFlag = 1;	
		}
		
		if (!errFlag && credit > membership_cost)
		{
			alert("You cannot use credits more than the membership cost.");
			$('pgrapevinecredit').value = zero.toFixed(2);
			
			$('availablebalance').value = actual_balance.toFixed(2);
			$('membershipcost').value = membership_cost.toFixed(2);
			errFlag = 1;
		}
		
		// if no error occurred
		if(!errFlag)
		{
			$('availablebalance').value = (actual_balance - credit).toFixed(2);
			$('pgrapevinecredit').value = credit.toFixed(2);
			$('membershipcost').value = (membership_cost - credit).toFixed(2);
			
			if(credit == membership_cost)
			{
				paymentSlide.slideOut();
			}
			else
			{
				paymentSlide.slideIn();				
			}
				 
		}
		else
		{
			paymentSlide.slideIn();
		}
			 
		
	},
	
	"EnableTopicCodeInfo":function()
	{
		for(var i = 0; i < topic_code_array.length; i++)
		{
			$('topic_code_info[' + [topic_code_array[i]] + ']').disabled = false;
		}
	},
	
	"DisabledTopicCodeInfo":function()
	{
		for(var i = 0; i < topic_code_array.length; i++)
		{
			$('topic_code_info[' + [topic_code_array[i]] + ']').disabled = true;
		}
	},

	
	"TopicCodeProcess": function()
	{
		if($('pprivacy').checked)
		{
			Membership.DisabledTopicCodeInfo();
		}
		else
		{
			Membership.EnableTopicCodeInfo();
		}
	},
	
	
	"JoinTypeCheck": function(event) 
	{
		if(this.value == "Single") {                    
			myVerticalSlide.slideOut().chain(function(){     $('secondary_info').style.display = "none"; });
            
		} else {
            $('secondary_info').style.display = "block";
			myVerticalSlide.slideIn();                 
        }
	},
	
	"FormSubmit": function(event) 
	{
/*		
		// if we are using grapevine credit
		if($('payment_info') != null || $('usegrapevinecredit').value == "Yes")
		{
			var credit = parseFloat($('pgrapevinecredit').value);
			var membership_cost = parseFloat(products[$('membership_type').value][1]);
			
			// is used credit is less than membership cost
			if(credit < membership_cost)
			{
				// we still need to pay my CC
				// so validate the credit card
				if(flag && ($('ccnumber').value == "" || $('ccname').value == ""))
				{
					alert("Please enter your payment details");
					return false;
				}
				
				if($('ccnumber').value == "" && !flag)
				{
					Membership.CalculateBalance();
					if(!flag)
					{
						flag = 1;
						return false;	
					}
				}
			}	
		
		}
*/
		
		if($('payment_info') != null || ($('usegrapevinecredit') != null && $('usegrapevinecredit').value == "Yes"))
		{
            if(($('usegrapevinecredit') != null && $('usegrapevinecredit').value == "Yes"))
			{
				var credit = parseFloat($('pgrapevinecredit').value);
				var membership_cost = parseFloat(products[$('membership_type').value][1]);
				
				// is used credit is less than membership cost
				if(credit < membership_cost)
				{
					// we still need to pay my CC
					// so validate the credit card
					if($('ccnumber').value == "" || $('ccname').value == "")
					{
						alert("Please enter your payment details");
						return false;
					}
					
					if($('ccnumber').value == "" && !flag)
					{
                        Membership.CalculateBalance();
						if(!flag)
						{
							flag = 1;
							return false;	
						}
					}
				}
			}
			else
			{
                if($('ccnumber').value == "" || $('ccname').value == "")
				{
					alert("Please enter your payment details");
					return false;
				}
			}
		}
      
		$("submit").disabled = true;
		$("submit").value = "Processing...";
        
	},
	
	/*
    // if single membership, then ONTAB, focus on address section
	"SkipToAddress": function(event)
	{
		if($('single').checked)
		{
			//$('phomeaddressline1').focus();
		}
	},
    */
	
	"GetTelephoneCode": function(event)
	{
		var code = countries[$('phomecountry').value][1];
		if(code != "" && code != null)
			$('phomecountrycode').value = code;
	}
	
};

window.addEvent('domready', Membership.start);
