// Validate the form.
function perform_request() {
	// The form is complete by default.
	form_complete = true;
	
	// Validate
	if(document.mlist_signup.name_first.value == ''){
		message = 'Your first name is required.';
		document.mlist_signup.name_first.focus();
		form_complete = false;
	}else if(document.mlist_signup.name_last.value == ''){
		message = 'Your last name is required.';
		document.mlist_signup.name_last.focus();
		form_complete = false;
	}else if(document.mlist_signup.email_address.value == ''){
		message = 'Your email address is required.';
		document.mlist_signup.email_address.focus();
		form_complete = false;
	}
	
	// Proceed if the form is complete.
	if(form_complete == true){
		document.getElementById('api_message').innerHTML = "Your entry is being saved ...";
		return(true);
	}else{
		alert(message);
		return(false);
	}
}

// Indicate success or failure.
function request_response(response){
	// Reset the form.
	document.mlist_signup.reset();
		
	// Return a message to the user.
	document.getElementById('api_message').innerHTML = "You have been successfully signed up!";
}

// ----------------------------------------- Start Unsubscribe Request
// Validate the form.
function request_unsubscribe() {
	// The form is complete by default.
	form_complete = true;

	// email_address
	email_address = document.mlist_signup.email_address.value;
	if(email_address == ''){
		message = 'Please enter the email address you wish to unsubscribe.';
		document.mlist_signup.email_address.focus();
		form_complete = false;
	}
	
	// Proceed if the form is complete.
	if(form_complete == true){
		document.getElementById('api_message').innerHTML = "Your unsubscription request is processing...";
		return(true);
	}else{
		alert(message);
		return(false);
	}
}

// Indicate success or failure.
function request_unsubscribe_response(response){
	// Reset the form.
	document.mlist_signup.reset();
		
	// Return a message to the user.
	document.getElementById('api_message').innerHTML = response;
}
// ----------------------------------------- End Unsubscribe Request

// xmlhttpPost: Post an AJAX request.
function xmlhttpPost(strURL,target){
	var xmlHttpReq = false;
	var self = this;
	
	// Mozilla/Safari
	if (window.XMLHttpRequest) {
		self.xmlHttpReq = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	self.xmlHttpReq.open('POST', strURL, true);
	self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	self.xmlHttpReq.onreadystatechange = function() {
		if (self.xmlHttpReq.readyState == 4) {
			updatepage(self.xmlHttpReq.responseText,target);
		}
	}
	self.xmlHttpReq.send(getquerystring());
}

function getquerystring(){
	qstr = 'w=' + escape('test');  // NOTE: no '?' before querystring
	return qstr;
}

function updatepage(str,target){
	//str = trim(str);
	if(str != ''){
		document.getElementById(target).innerHTML = str;
	}
	
	// call a callback function if it exists
	if(window.ajax_callback){
		ajax_callback();
	}
}

// perform the request
function ajax_request(url,target,message){
	// reveal a message if one exists
	if(message != ''){
		document.getElementById(target).innerHTML = message;		
	}
	
	// post the request
	xmlhttpPost(url,target);
}