function mailinglist() {

	this.initObservers = function() {
		if ($('MB_window')) {
			Modalbox.resizeToContent();
		}
		
		if (!$('action')) { return; }
		
		if ($('action').getValue() == "Subscribe") {
			$('action_sub').checked = true;
		}
		else {
			$('action_unsub').checked = true;
		}
		
		$('action_sub').observe('click', function() {
			$('action').value = "Subscribe";
			$('actionbutton').value = "Subscribe";
			$('nameinputwrapper').removeClassName('displaynone');
			Modalbox.resizeToContent();		
		});
		
		$('action_unsub').observe('click', function() {
			$('action').value = "Unsubscribe";
			$('actionbutton').value = "Unsubscribe";
			$('nameinputwrapper').addClassName('displaynone');
			Modalbox.resizeToContent();			
		});
		
		$('email').observe('keypress', function(e) {
			var key = e.which || e.keyCode;
			if (key == Event.KEY_RETURN) {
				e.stop();				
				if ($('email').getValue()) {
					mailinglist.processAddress();					
				}
			}
		})
		
		$('actionbutton').observe('click', function() {
			if ($('email').getValue()) {
				mailinglist.processAddress();				
			}
		});			
	}
	
	this.processAddress = function() {
		new Ajax.Updater('feedback', '/nm_webkit/templates/mailinglist_template.php', {
			method:'post',
			parameters:'action=' + $('action').getValue() + '&email=' + $('email').getValue() + '&firstname=' + $('firstname').getValue() + '&lastname=' + $('lastname').getValue(),
			onComplete:function() {
				if ($('MB_window')) {
					Modalbox.resizeToContent();
					
					if ($('subscribesuccess') || $('unsubscribesuccess')) {
						setTimeout("Modalbox.hide()", 5000);
					}
				}
			}
		});
	}
	
	this.pastIssuesObservers = function() {
		$('issue').observe('change', function() {
			var urlbase = window.location.href.replace(/\/showissue\/[0-9]+/,'');
			// strip trailing slash from urlbase
			urlbase = urlbase.replace(/\/$/,'');
			window.location.href = urlbase + '/showissue/' + $('issue').getValue();
		});
	}

}

var mailinglist = new mailinglist();

function check_address(ID, email, action) {
	// legacy function
	webkit.modinit('mailinglist');
	
}

document.observe('dom:loaded', function() {
	// invoke observers for past issues page
	if ($('issueselect')) {
		mailinglist.pastIssuesObservers();
	}	
});