/*
		File: init-admin-members.js
		Description: Code for handling membership registration form
*/

var states = {
		active: 0,
		suspended: 1
};
var statusTable = $H(states);


function submitMemberData_Add()
{
	var member = new Object;
	
	member.firstName = $F('member_first_name');
	member.lastName = $F('member_last_name');
	member.email = $F('member_email');
	member.postCode = $F('member_postcode');	

//	member.pwd1 = $F('member_pwd1');
//	member.pwd2 = $F('member_pwd2');
	
	
	// verify the data that the member entered - skip password check
	var success = checkMemberData(member, false);

 	var feedBackArea = $('formFeedback_Member_Add');
	if (feedBackArea != null)
	{
		if (success == false)
		{
			feedBackArea.className = 'feedbackWarning';	

			var errorHTML = "Whoops! You forgot to enter some of the info we need. We the items marked in red.<br />";
			feedBackArea.innerHTML = errorHTML;
		}
		else
		{
			// Send the data to the server. Get the results back via AJAX and populate in the feedback box.
			sendMemberData_Add(member);
		}
	}

	return false;
}



function submitMemberData_Edit(memberId)
{
	var member = new Object;
	member.id = memberId;	

	member.firstName = $F('member_first_name');
	member.lastName = $F('member_last_name');
	member.email = $F('member_email');
	member.postCode = $F('member_postcode');	

//	member.pwd1 = $F('member_pwd1');
//	member.pwd2 = $F('member_pwd2');
	
	// verify the data that the member entered
	var success = checkMemberData(member, false);

 	var feedBackArea = $('formFeedback_Member_Edit');
	if (feedBackArea != null)
	{
		if (success == false)
		{
			feedBackArea.className = 'feedbackWarning';	

			var errorHTML = "Whoops! You forgot to enter some of the info we need. We the items marked in red.<br />";
			feedBackArea.innerHTML = errorHTML;
		}
		else
		{
			/// Send the data to the server. Get the results back via AJAX and populate in the feedback box.
			sendMemberData_Edit(member);
		}
	}

	return false;
}

function submitMemberData_Delete(memberId)
{
	var member = new Object;
	member.id = memberId;	
	
 	var feedBackArea = $('formFeedback_Member_Delete');
	if (feedBackArea != null)
	{
		/// Send the data to the server. Get the results back via AJAX and populate in the feedback box.
		sendMemberData_Delete(member);
	}

	return false;
}

function checkMemberData(dataObj, checkPWD)
{
	var results = true;

	resetMemberInputs();

	if (dataObj.firstName == null || dataObj.firstName == "")
	{
		$('member_first_name').style.border = "solid 2px #900";		
		$('member_first_name').style.background = "#FFFF99";		
		results = false;
	}
	if (dataObj.lastName == null || dataObj.lastName == "")
	{
		$('member_last_name').style.border = "solid 2px #900";		
		$('member_last_name').style.background = "#FFFF99";		
		results = false;
	}
	if (dataObj.email == null || dataObj.email == "")
	{
		$('member_email').style.border = "solid 2px #900";		
		$('member_email').style.background = "#FFFF99";		
		results = false;
	}
	if (dataObj.postCode == null || dataObj.postCode == "")
	{
		$('member_postcode').style.border = "solid 2px #900";		
		$('member_postcode').style.background = "#FFFF99";		
		results = false;
	}
	// If either password field is not empty we need to check for parity
	//	if ((dataObj.pwd1 != null && dataObj.pwd1 != "") || (dataObj.pwd2 != null && dataObj.pwd2 != ""))
	if(checkPWD)
	{
		var pwd1 = "1";
		var pwd2 = "2";
				
		if (dataObj.pwd1 != null || dataObj.pwd1 != "")
		{
			pwd1 = dataObj.pwd1;
		}			
		if (dataObj.pwd2 != null || dataObj.pwd2 != "")
		{
			pwd2 = dataObj.pwd2;
		}			
		if(pwd1 == "" || (pwd1 != pwd2))
		{
			// set the input style to error condition
			$('member_pwd1').style.border = "solid 2px #900";		
			$('member_pwd1').style.background = "#FFFF99";		
			$('member_pwd2').style.border = "solid 2px #900";		
			$('member_pwd2').style.background = "#FFFF99";		
			results = false;
		}
	}
	return results;
}

function resetMemberInputs()
{
		$('member_first_name').style.border = "1px solid #999";
		$('member_first_name').style.background = "#FFFFFF";		
		$('member_last_name').style.border = "1px solid #999";
		$('member_last_name').style.background = "#FFFFFF";		
		$('member_email').style.border = "1px solid #999";
		$('member_email').style.background = "#FFFFFF";		
		$('member_postcode').style.border = "1px solid #999";
		$('member_postcode').style.background = "#FFFFFF";		
		if ($('member_pwd1') != null)
		{
			$('member_pwd1').style.border = "1px solid #999";
			$('member_pwd1').style.background = "#FFFFFF";		
		}
		if ($('member_pwd2') != null)
		{		
			$('member_pwd2').style.border = "1px solid #999";
			$('member_pwd2').style.background = "#FFFFFF";		
		}
}

function sendMemberData_Add(member)
{
	var url = "db_send_member_data.php";
//  var context = getHiddenValue('form_context');
	var context = $F('form_context');

	if(context == 'register')
		url = "admin/db_send_member_data.php";

	var pars = "action=add";
	pars += "&firstname=" + member.firstName;
	pars += "&lastname=" + member.lastName;		
	pars += "&email=" + member.email;
	pars += "&postcode=" + member.postCode;
	pars += "&pwd=" + member.pwd1;
	var ajaxRequest = new Ajax.Request(
	url,
	{
			method: 'post',
			parameters: pars,
			onComplete: showData_MemberDataFeedback_Add
	});
}

function sendMemberData_Edit(member)
{
	var url = "db_send_member_data.php";
	var pars = "action=edit";
	pars += "&id=" + member.id;
	pars += "&firstname=" + member.firstName;
	pars += "&lastname=" + member.lastName;		
	pars += "&email=" + member.email;
	pars += "&postcode=" + member.postCode;
	var ajaxRequest = new Ajax.Request(
	url,
	{
			method: 'post',
			parameters: pars,
			onComplete: showData_MemberDataFeedback_Edit
	});
}

function sendMemberData_Delete(member)
{
		var url = "db_send_member_data.php";
		var pars = "action=delete";
		pars += "&id=" + member.id;
		var ajaxRequest = new Ajax.Request(
		url,
		{
				method: 'post',
				parameters: pars,
				onComplete: showData_MemberDataFeedback_Delete
		});
}


function showData_MemberDataFeedback_Add(ajaxRequest)		
{
	try{
			var response = eval("(" + ajaxRequest.responseText + ")");
			if(response.error)
				alert("Eval Error:" + response.error);
			else
			{
				var target = $('formFeedback_Member_Add');
				if (response.resultData.result == 'success')
				{
					target.className = 'feedbackMessage';	
					
					if ($('memberTable') != null)
						refreshTableDisplay();					

					hideIbox();
					return;
				}
				else
				{
					target.className = 'feedbackWarning';	
					target.innerHTML = decodeAJAX(response.resultData.feedbackHTML);
				}
			}
	}
	catch(e)
	{
		if (e instanceof Error) 
			alert('showData_MemberDataFeedback_Add:\n' + e.name + ': ' + e.message + '\n' + ajaxRequest.responseText);
	}
}


function showData_MemberDataFeedback_Edit(ajaxRequest)		
{
	try{
			var response = eval("(" + ajaxRequest.responseText + ")");
			if(response.error)
				alert("Eval Error:" + response.error);
			else
			{
				var target = $('formFeedback_Member_Edit');
				if (response.resultData.result == 'success')
				{
					target.className = 'feedbackMessage';	
					
					if ($('memberTable') != null)
						refreshTableDisplay();					
				}
				else
				{
					target.className = 'feedbackWarning';	
				}
				target.innerHTML = decodeAJAX(response.resultData.feedbackHTML);
			}
	}
	catch(e)
	{
		if (e instanceof Error) 
			alert('showData_MemberDataFeedback_Edit:\n' + e.name + ': ' + e.message + '\n' + ajaxRequest.responseText);
	}
}

function showData_MemberDataFeedback_Delete(ajaxRequest)		
{
	try{
			var response = eval("(" + ajaxRequest.responseText + ")");
			if(response.error)
				alert("Eval Error:" + response.error);
			else
			{
				var target = $('formFeedback_Member_Delete');
				if (response.resultData.result == 'success')
				{
					target.className = 'feedbackMessage';	
					
					if ($('memberTable') != null)
						refreshTableDisplay();					
					
					hideIbox();
					return;
				}
				else
				{
					target.className = 'feedbackWarning';	
					target.innerHTML = decodeAJAX(response.resultData.feedbackHTML);
				}
			}
	}
	catch(e)
	{
		if (e instanceof Error) 
			alert('showData_MemberDataFeedback_Delete:\n' + e.name + ': ' + e.message + '\n' + ajaxRequest.responseText);
	}
}

function onCancel()
{
	hideIbox();
  setTimeout('init_ibox()', 0);  
	return;
}

function getContext()
{
	var hasInnerText = (document.getElementsByTagName("body")[0].innerText != undefined) ? true : false;
	var context = "";

	if(hasInnerText)
		context = $('form_context').innerText
	else
		context = $('form_context').textContent

	return context;
}