
var submit_btn = $('submit_btn');
var submit_default = "Submit";
var submit_active = "Processing...";
var form_container;
var member_funcs_page = 'funcs_membership.php';
var email_id = "input_email";
var warning_delay = 5000;

var s_prefex = 'select_';
var input_prefex = 'input_';


function init_form(f) 
{
	
	
	
	if (!f) {return} 
	
		
	submit_default = submit_btn.value;
	f.addEvents({
		"submit": function(e) {
			e.preventDefault(); // can also do new Event(e).stop();
			//submit_btn.value = submit_active;
			//submit_btn.disabled = true;
			
			//// CLEAN INPUTS AND TEXTAREAS
			cleanData(f.getElements("input"));
			
			var noErrors = true;
		
			$$("input.required,textarea.required").each(function(el) 
			{
				
				var testedValue = el.get("value");
				if (testedValue.length == 0 || testedValue == "Required field") 
				{
					noErrors = false;
					el.fieldWarning("Required field", warning_delay);
					submit_btn.value = submit_default;
					submit_btn.disabled = false;
				}
				
			});
			//////// EOF LOOP 
			var testedEmail = $(email_id).get("value");

			if (testedEmail)
			{
			///// TEST FOR ERRORS
				if (!isValid(testedEmail)) {						
					$(email_id).fieldWarning("INVALID Address: " + testedEmail, warning_delay);
					submit_btn.value = submit_default;
					submit_btn.disabled = false;
					noErrors = false;
				} /// EOF IF VALID
			} /// EOF IF EMAIL
			
			if (noErrors) 			
			{
								this.submit();

			} /// EOF IF ERRORS
			else {
				alert('Please correct errors');
				return false;

			}
			
		}
	});
	
 setup_elements(f);

} /// EOF -- init_form


///////////
///// EVENT HANDLERS
///////////

function onMembTypeSelect(element)
{
	
	
	if(!mem_type_container_id) {return;}
	
	
	var mem_type = $(s_prefex + mem_type_id);
	var mem_employee_type = $(s_prefex + mem_size_type_id);
	var mem_amount = $(input_prefex + mem_amount_id);
	var keys = new Array()
	var values = new Array();
	var parms = new Object();
	

	
	////// ADD ALL SET VALUES TO PARMS AOBJECT THROUGH ARRAY ASSOCIATION
	if (mem_type && mem_type.value != 'undefined') 
	{
		 keys.push(mem_type_id);
		 values.push(mem_type.value);
			
			if (mem_employee_type && mem_employee_type.value != 'undefined' && element.name != mem_type_id) 
			{
					keys.push(mem_size_type_id);
					values.push(mem_employee_type.value);
					
					if (mem_amount && mem_amount.value != 'undefined') 
					{
							keys.push(mem_amount_id);
							values.push(mem_amount.value);
					}// EOF mem_amount
					
					
			}// EOF mem_employee_type
						
	}// EOF mem_type
	


	keys.push('task');
	values.push('get_membership_type');

 parms = values.associate(keys);
	

	///// IF ANY VALUE IS SET MAKE AJAX CALL
	if (values.length != 0)
	{				
			Ajax.holder = mem_type_container_id;			
			Ajax.funcs_page = member_funcs_page;
			Ajax.onComplete = update_amount;
			Ajax.init();
			Ajax.send(parms);									
	}

}


var update_amount = function()
{

	
	var total = $(input_prefex+'total');
	if (total)
	{

		check_employee_type();

		
		var add = admin_fee;
		var _amount = $(input_prefex + mem_amount_id);

		if (_amount.value>0)
		{
			add += (parseFloat(_amount.value));			
		}
		
		total.value = add;
	}/// EOF IF	
}/// EOF update_amount


function check_employee_type()
{
	var element = $(s_prefex + mem_size_type_id);

	if (!element){return false;}

	if (element.value==0)
	{
			reset_membership_amount();
			set_total_amount(admin_fee);
			element.selectWarning(warning_delay);
	}
	
	return true;
	
}/// EOF check_employee_type()

function reset_membership_amount()
{
		var obj = $(input_prefex + mem_amount_id);
	if (obj)
	{
		obj.value = 'N/A';
	}
}

function set_total_amount(amount)
{
	if (amount) 
	{
		$(input_prefex+'total').value = amount;	
	}
}

function setup_elements(form)
{
	//alert('setup form elements');	
}
	
	

window.addEvent("domready", function() {
			init_form(form);					 

});
