// ----------------------------------------- Start Request Update
// Update a subscriber's profile
function request_update(){
	// The form is complete by default.
	form_complete = true;
	
	// Valid the required fields
	if(document.mediaglide_update.name_first.value == ''){
		message = 'Your first name is a required field.';
		document.mediaglide_update.name_first.focus();
		form_complete = false;
	}else if(document.mediaglide_update.name_last.value == ''){
		message = 'Your last name is a required field.';
		document.mediaglide_update.name_last.focus();
		form_complete = false;
	}else if(document.mediaglide_update.email_address.value == ''){
		message = 'Your email address is a required field and must be confirmed.';
		document.mediaglide_update.email_address.focus();
		form_complete = false;
	}
	
	// Proceed if the form is complete.
	if(form_complete == true){
		document.getElementById('api_message').innerHTML = "Your subscription is being saved ...";
		return(true);
	}else{
		alert(message);
		return(false);
	}
}

// Response: Sign up a subscriber.
function request_update_response(response){
	// Return a message to the user.
	document.getElementById('api_message').innerHTML = response;
}
// ----------------------------------------- End Request Update

// ----------------------------------------- Start Request Sign Up
// Sign up a subscriber.
function request_signup() {
	// The form is complete by default.
	form_complete = true;
	
	// Valid the required fields
	if(document.mediaglide_signup.name_first.value == '' || document.mediaglide_signup.name_first.value == 'First Name'){
		message = 'Your first name is a required field.';
		document.mediaglide_signup.name_first.focus();
		form_complete = false;
	}else if(document.mediaglide_signup.name_last.value == '' || document.mediaglide_signup.name_last.value == 'Last Name'){
		message = 'Your last name is a required field.';
		document.mediaglide_signup.name_last.focus();
		form_complete = false;
	}else if(document.mediaglide_signup.email_address.value == '' || document.mediaglide_signup.email_address.value == 'Email Address'){
		message = 'Your email address is a required field.';
		document.mediaglide_signup.email_address.focus();
		form_complete = false;
	}
	
	// Proceed if the form is complete.
	if(form_complete == true){
		document.getElementById('api_message').innerHTML = "Your subscription is being saved ...";
		return(true);
	}else{
		alert(message);
		return(false);
	}
}

// Response: Sign up a subscriber.
function request_signup_response(response){
	// Reset the form.
	document.mediaglide_signup.reset();
		
	// Return a message to the user.
	document.getElementById('api_message').innerHTML = response;
}
// ----------------------------------------- End Request Sign Up

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

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

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

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

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

// Indicate success or failure.
function request_login_response(response){
	// Return a message to the user.
	if(response == "true"){
		// Refresh the page.
		document.location.href = "?request=update-profile";
	}else{
		// Error message.
		document.getElementById('api_message').innerHTML = response;
	}
}
// ----------------------------------------- End Request Login

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

	// email_address
	email_address = document.mediaglide_unsubscribe.email_address.value;
	if(email_address == ''){
		message = 'Please enter the email address you wish to unsubscribe.';
		document.mediaglide_unsubscribe.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.mediaglide_unsubscribe.reset();
		
	// Return a message to the user.
	document.getElementById('api_message').innerHTML = response;
}
// ----------------------------------------- End Unsubscribe Request

// ----------------------------------------- Start Unsubscribe Confirm
$(function(){
	// Only perform this request on relevant pages.
	if(document.getElementById("unsubscribe_confirm")){
		// Get the remote content.
		$.ajax({
			type: "GET",
			url: document.getElementById("unsubscribe_confirm").value,
			dataType: "html",
			success: function(html){
				document.getElementById("api_message").innerHTML = html;
			}
		});
	}
});
// ----------------------------------------- End Unsubscribe Confirm

// Get and process the mailing list archive.
$(function(){
	// Only perform this request on relevant pages.
	if(document.getElementById("archive_xml_data")){
		// Hide the liquid template.
		document.getElementById("archive_container").style.display = "none";
		
		// Get the remote content.
		$.ajax({
			type: "GET",
			url: document.getElementById("archive_xml_data").value,
			dataType: "html",
			success: function(html){
				// Then reveal it once the data is loaded.
				document.getElementById("archive_container").style.display = "";
		
				document.getElementById("archive_container").innerHTML = html;
			}
		});
	}
});

// Get and process the mailing list lists.
$(function(){
	// Only perform this request on relevant pages.
	if(document.getElementById("list_xml_data")){
		// Hide the liquid template.
		document.getElementById("lists_container").style.display = "none";
		
		// Get the remote content.
		$.ajax({
			type: "GET",
			url: document.getElementById("list_xml_data").value,
			dataType: "html",
			success: function(html){
				// Then reveal it once the data is loaded.
				document.getElementById("lists_container").style.display = "";
		
				document.getElementById("lists_container").innerHTML = html;
			}
		});
	}
});

// Detect the subscriber's city.
$(function(){
	// Only perform this request on relevant pages.
	if(document.getElementById("city_detection")){
		$("#city_input").focus(function(){
			if($("#city_input").val() == ""){
				// Disable the field temporarily.
				document.getElementById("city_input").disabled = true;
				document.getElementById("city_input").value = "loading...";
			
				// Get the remote content.
				$.ajax({
					type: "POST"
					,url: document.getElementById("city_detection").value
					,dataType: "xml"
					,contentType: "application/xml; charset=utf-8"
					,success: function(xml){
						// Then reveal it once the data is loaded.
						document.getElementById("city_input").disabled = false;
						
						$(xml).find('response').each(function(){
							document.getElementById("city_id").value = $(this).find('id').text();
							document.getElementById("city_input").value = $(this).find('city').text() + ", " + $(this).find('province_state').text() + ", " + $(this).find('country').text();
						});
					}
					,error: function(request,error){
						alert(error);
					}
				});
			}
		});
	}
});

// ajax_request: Post an AJAX request.
function ajax_request(ajax_url,target,request){
	var xmlHttpReq = false;
	
	// Mozilla/Safari
	if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlHttpReq.open('POST', ajax_url, true);
	xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpReq.onreadystatechange = function() {
		if (xmlHttpReq.readyState == 4) {
			//alert(xmlHttpReq.getAllResponseHeaders());
			ajax_response(xmlHttpReq.responseText,target,request);
		}
	}
	xmlHttpReq.send("w="+escape("text"));
}

// ajax_response
function ajax_response(response_content,target,request){
	if(response_content != ''){
		document.getElementById(target).innerHTML = response_content;
	}
}