//@require jquery.hoverIntent.js
//@require taskshttpd.js

// nombre par défaut de minutes au bout desquelles la page est rechargée
var DEFAULT_RELOAD_TIMEOUT= 5;
function reload_page_every(timeout) {
	// rechargement de la page toutes les timeout minutes
	// La souris et le clavier sont monitorés, et la page est rechargée s'il
	// n'y a pas eu de mouvement pendant la durée spécifiée.
	if (timeout === undefined) {
		timeout = DEFAULT_RELOAD_TIMEOUT;
	}
	
	var mousemoved = false;
	var keypressed = false;
	$(window).mousemove(function () {
		mousemoved = true;
	}).keyup(function () {
		keypressed = true;
	});
	var counter = 0;
	window.setInterval(function () {
		if (mousemoved || keypressed) {
			mousemoved = false;
			keypressed = false;
			counter = 0;
		}
		counter++;
		if (counter >= timeout) {
			if ($(".tcheckbox:enabled:checked").length) {
				// Ne pas recharger si une des cases à cocher est cochée
				window.location.reload(true);
			} else {
				counter = 0;
			}
		}
	}, 60 * 1000);
}

$(function () {
	// previous queries
	$("#btn_prev_queries").click(function() {
		if ($("#prev_queries").toggle().is(":visible")) {
			placeUnder("#prev_queries", "#btn_prev_queries");
		}
	});
	// select wstore
	$("#btn_store").click(function() {
		if ($("#stores").toggle().is(":visible")) {
			placeUnder("#stores", "#btn_store");
		}
	});
	// messages
	delayer(2500)(null, function() {
		$(".msg_fade").fadeOut("slow");
	});
	
	// Barre d'icones
	$(".task-div").hoverIntent(function() {
		$(this).find(".ticonsbar").show();
	}, function () {
		$(this).find(".ticonsbar").hide();
	});

	// Installers les handlers des icones
	// ... tidetails: tooltip + afficher body
	var ZOOM_IN = "zoom_in";
	var ZOOM_OUT = "zoom_out";
	$(".tidetails")
	.tooltip({
		track: true,
		showURL: false,
		bodyHandler: function() {
			var task = $(this).parents(".task-div");
			return task.find(".tprefix-div").html() +
				task.find(".tsummary-div").html() +
				task.find(".ttag-div").html();
		},
	})
	.click(function() {
		var body = $(this).parents(".task-div").find(".tbody-div");
		body.toggle();
		var hidden = body.is(":hidden");
		$(this).toggleClass(ZOOM_IN, hidden).toggleClass(ZOOM_OUT, !hidden);
		return false;
	});
	
	// double-click pour éditer
	$(".task-div").dblclick(function() {
		var form = $("#actionform");
		form.find("#query").attr("value", "/e " + $(this).attr("id"));
		form.submit();
	});
});
