(function($){
	$.fn.ajaxLoginbox = function(params){
	
		var params = $.extend({
			keepAliveInterval: 900 * 1000
		},params);
		
		var loginbox = function (jElt) {
			
			var writeInput = jElt.find('.loginboxInput');
			var logoutButton = jElt.find(".loginboxLogout");
			var timerId;
			
			var link = writeInput.attr('action') + "&cache_control=0";
			
			var doLogin = function(username, password, remember_me) {
				$.post(link, {username: username, password: password, remember_me: remember_me}, function(data){
					if (data.logged_in == 1) {
						showRestrictedBlocks();
						timerId = setTimeout(keepAlive, params.keepAliveInterval);
					} else {
						hideRestrictedBlocks(data.msg);
					}
				}, "json");
			}
			
			var doLogout = function() {
				$.post(link + "&logout=1", {}, "", "json");
				clearTimeout(timerId);
				hideRestrictedBlocks();
			}
			
			var keepAlive = function() {
				$.post(link + "&keep_alive=1", {}, "", "json");
				timerId = setTimeout(keepAlive, params.keepAliveInterval);
			}
			
			writeInput.submit(function() {
				var username = document.getElementById("users[username]").value;
				var password = document.getElementById("users[password]").value;
				var remember_me = document.getElementById("users[remember_me]").value;
				doLogin(username, password, remember_me);
			});
			
			logoutButton.submit(function() {
				doLogout();
			});
			
			if (readCookie("loginbox_username")) {
				showRestrictedBlocks();
				keepAlive();
				timerId = setTimeout(keepAlive, params.keepAliveInterval);
			} else if (readCookie("loginbox_remember_username") && readCookie("loginbox_remember_password")) {
				doLogin(readCookie("loginbox_remember_username"), readCookie("loginbox_remember_password"), 1);
			} else {
				hideRestrictedBlocks();
			}
			
		}
		
		//printCookies();
		
		return this.each(function(){
			loginbox($(this));
		});
			
	};
})(jQuery)

function printCookies() {
			alert(document.cookie);
			setTimeout("printCookies()", 5000);
		}